Introducing <Pay>: PCI Compliant over the phone payments

October 17, 2018
Written by

Introducing <Pay>

<Pay> lets you capture payments over the phone easily and securely with a set of simple commands and a powerful API platform.

Before <Pay>, building PCI-compliant payments for your business wasn’t quite as simple.

First, you’d have to build PCI-compliant infrastructure that would be audited every year for compliance. Then, you’d build a custom voice interface to prompt customers for payment information, and a system to validate that information. Finally, you’d integrate with a third party to actually process the payment.  

<Pay> eliminates these hoops you used to jump through so you can build better payment workflows without the hassle.


<Pay> is a simple, yet powerful API that abstracts into a single line of code all the complexity of capturing payment information over the phone . <Pay> allows Twilio developers to capture end customer credit card information in an intuitive, and PCI-compliant fashion, and then passes that information along to your payment provider of choice through Twilio’s newly created <Pay> Connectors for processing.

<Pay> Connectors

Twilio is partnering with Stripe to launch <Pay>, enabling customers to both accept one-off payments and store payment information for future purchases. The Stripe <Pay> Connector is built and maintained by Twilio, and is accessible through Twilio Console today. Additional <Pay> Connectors will be available in the future.

Using your Stripe account, you can configure your Stripe <Pay> Connector, and will be ready to start accepting payments over the phone in minutes. With Stripe, companies can accept payments in 26 countries, which means you can use <Pay> to power all your global payment processing needs.

For more information, check out the <Pay> Connector docs.

PCI DSS Level 1 Compliance

If we had just stopped at achieving PCI DSS compliance for the Programmable Voice platform, only businesses that had gone through PCI compliance process themselves would be able to use Twilio for over the phone payments. We built <Pay> because we wanted over the phone payments to be a possibility for all businesses, not just those that have the resources to become PCI compliant. Now any developer can use <Pay> with the confidence of knowing Twilio is being held to the highest compliance standard and taking every necessary precaution to protect their customer’s payment information.

Customizing the default <Pay> experience

With a single line of code, <Pay> comes with the necessary default prompts for you to capture all the necessary credit card information. Let’s see what that looks like:

<?xml version="1.0" encoding="UTF-8"?>
    <Pay />

<Pay> is built using Programmable Voice meaning it is completely customizable giving developers control over the entire end-to-end payment experience. Here's one example of a conversation using <Pay> from the payer's perspective:

Using Amazon Polly Text-To-Speech, Twilio provides access to 25 languages in over 50 voices for voice prompts or use <Play> and playback a custom audio recording. You can also choose to not ask for certain information if it isn’t required for your payment experience. Let’s take a look at a more customized use of <Pay>:

<?xml version="1.0" encoding="UTF-8"?>
    <Say> Welcome to kickflip boards </Say>
    <Pay chargeAmount="99.99"
     validCardTypes="visa master-card"
     maxAttempts="2" />
    <Prompt for="payment-processing">
        <Say> Please wait a moment </Say>
    <Pay />

Now your customers will hear a greeting before starting the payment experience using the power of <Say>. We are also specifying that we only want to accept Visa and Mastercard credit cards and that we don’t want to ask for postal codes. We set a maximum number of attempts to make sure customers don’t get stuck trying to enter bad information. Lastly, we instruct the customer to wait as we are processing the transaction so they know what’s going on in the process.

Supported <Pay> Features

<Pay> is packed with features and functionality allowing you to cover a variety of different payment needs. <Pay> supports:

  • PCI Mode for Projects with built-in DTMF redaction
  • Automatic pause / resume recording functionality
  • Tokenization support for card-on-file use cases
  • Support for 9 different major credit cards
  • ACH / EFT* Coming Soon
  • Tokenization w/ pre-authorization* Coming soon


<Pay> starts at $0.10 / per successful transaction or tokenization meaning you don’t have to pay for failed payments attempts. You will also be charged for the associated Programmable Voice minutes and phone numbers for your payment use case. Programmable Voice pricing can be found here.