Capture Payments
Studio uses Widgets to represent various parts of Twilio's API that can then be stitched together in your Studio Flow to build out robust applications that require no coding on your part.
New to Twilio Studio? Check out our Getting Started guide!
The Capture Payments Widget allows you to securely capture credit card details on a call and either tokenize or process the payment using a Payment Gateway. This widget uses the underlying TwiML verb <Pay>.
Use of Capture Payments requires PCI Mode to be enabled in Voice Settings. The Widget may not appear in your Widget Library for a couple of minutes after toggling this setting to true.
Optional Configuration for Capture Payments
The Capture Payments Widget also accepts a number of configuration options that you can use to configure the call language, max attempts, the duration before timeout, credit card types accepted, and other payment properties.
Name | Description | Default |
---|---|---|
Timeout | Sets the limit in seconds to wait for the caller to press another digit before moving on to validate the digits captured. | 5 |
Max Attempts | Number of times to retry when collecting information. | 2 |
Language | Language to speak when prompting the caller for credit card details. | empty |
Valid Card Types | Credit card types that should be accepted. Allows multiple values. | empty |
Request Security Code | Whether to prompt for credit card security code. | true |
Request Postal Code | Whether to prompt for credit card postal code. | true |
Pay Connector | Unique Name corresponding to the Payment Gateway Connector installed in Twilio Add-ons | empty |
Payment Token Type | Select one-time payment or reusable payment. | Resuable |
Charge Card with Amount | Amount to be charged. | empty |
Currency | Currency to use when charging the card. | US Dollar (USD) |
Description | Description of the payment. | empty |
Minimum Postal Code Length | Minimum length of postal code if Request Postal Code is set to true. | empty |
Payment Method | The payment method to be used (credit-card or ach-debit) | credit-card |
Bank Account Type | Bank account type being charged if using ach-debit as the Payment Method | consumer-checking |
Capture Payments Transitions
These events trigger transitions from this Widget to another Widget in your Flow. For more information on working with Studio transitions, see this guide.
Name | Description |
---|---|
Success | Payment has completed successfully. |
Max Failed Attempts | Maximum number of failed attempts has been reached. |
Provider Error | Error communicating with Payment Provider. |
Pay Interrupted | Payment process interrupted by caller pressing *. |
Hang Up | Caller hung up during payment process. |
Validation Error | Invalid attributes received. |
Capture Payments Variables
When the Capture Payments Widget executes, it will have stored the following variables for use throughout your Studio Flow (where MY_WIDGET_NAME
is the name of your actual widget). For more information on working with variables in Studio, see this guide.
Find definitions and examples for these variables at the Payment page.
Name | Liquid Template Language |
---|---|
Expiration Date | {{widgets.MY_WIDGET_NAME.ExpirationDate}} |
Payment Card Number | {{widgets.MY_WIDGET_NAME.PaymentCardNumber}} |
Payment Card Postal Code | {{widgets.MY_WIDGET_NAME.PaymentCardPostalCode}} |
Payment Card Type | {{widgets.MY_WIDGET_NAME.PaymentCardType}} |
Payment Confirmation Code | {{widgets.MY_WIDGET_NAME.PaymentConfirmationCode}} |
Payment Token | {{widgets.MY_WIDGET_NAME.PaymentToken}} |
Security Code | {{widgets.MY_WIDGET_NAME.SecurityCode}} |
Example: Service Payment
This example shows a Flow that enables a customer to pay for their order. The customer will press 1 to confirm the total amount to be charged before they are prompted with questions about their payment information. The call will then notify the customer if their payment was successful. Notice that the connector is not specified which would mean the default Pay Connector is used (the connector with the unique name Default associated with your account).
Learn how to set up your payment provider with Twilio in How to capture your first payment using <Pay>.
Learn More
Now that you know the basics of the Capture Payments Widget, you may want to learn more about Payments:
- Learn all properties of Payments in the Payment documentation
- Learn more about the TwiML <Pay> verb that powers this Widget
We can't wait to see what you build!
Need some help?
We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio's Stack Overflow Collective or browsing the Twilio tag on Stack Overflow.