How to Connect Stripe to Twilio for Voice & IVR Payments

By Shuttle Team, March 12, 2026

Stripe doesn't natively connect to Twilio for voice payments. If you want to charge a Stripe-connected card during a phone call — via IVR, agent-assisted, or AI voice agent — you need a Twilio Pay Connector that bridges the two.

Shuttle's Pay Connector does exactly this. It connects Stripe (and 15+ other gateways) to Twilio's <Pay> verb, so you can accept PCI-compliant card payments during any voice interaction. Setup takes minutes.

This guide walks through how the integration works, how to set it up, and what to watch for.


Why Stripe + Twilio Don't Connect Directly

Stripe is built for web and mobile checkout. Its APIs handle card tokenisation, payment intents, and checkout sessions — all designed for browser and app contexts.

Twilio is built for voice and messaging. Its <Pay> verb captures card details during phone calls via DTMF keypad input, with tones suppressed so agents never hear them.

The problem: Twilio's <Pay> needs a Pay Connector to route captured card data to a payment gateway. Stripe isn't one of Twilio's built-in connectors.

This is where Shuttle comes in. As Twilio's official payment partner, Shuttle provides a Pay Connector that accepts card data from Twilio's <Pay> verb and routes it to Stripe's API for processing. One integration connects the two platforms.


How It Works

`` Caller → Twilio (DTMF capture) → Shuttle (Pay Connector) → Stripe (processing) → Result ``

  1. Caller reaches payment step. Your Twilio call flow — IVR, Studio, or custom TwiML — triggers the <Pay> verb.

  2. Card details captured via DTMF. The caller enters their card number, expiry, and CVV on the keypad. Tones are suppressed from the agent audio and call recordings.

  3. Shuttle receives card data. The data passes from Twilio's PCI-compliant environment directly to Shuttle's connector. It never touches your servers.

  4. Shuttle charges the card via Stripe. The connector creates a Stripe PaymentIntent (or charge), processes the transaction, and handles the response.

  5. Result returned to your call flow. Your webhook receives the Stripe charge ID, last four digits, card brand, and transaction status. The call continues.

The entire flow happens in seconds. The caller stays on the line. No redirects, no "please visit our website."


Step-by-Step Setup

Prerequisites

  • A Twilio account with voice capability

  • A Stripe account with API keys

  • A Shuttle account (free to create — you pay per transaction)

Step 1: Install Shuttle's Pay Connector

Go to the Twilio Marketplace and install the Shuttle Pay Connector. This adds Shuttle as an available connector in your Twilio account's Pay configuration.

Step 2: Add Stripe Credentials to Shuttle

Log into the Shuttle dashboard. Navigate to Payment Profiles and create a new profile:

  • Gateway: Stripe

  • API key: Your Stripe secret key (sk_live_...)

  • Currency: Set your default (GBP, USD, EUR, etc.)

  • Mode: Live or Test (use sk_test_... for testing)

Save the profile. Shuttle now has a live connection to your Stripe account.

Step 3: Configure Your Twilio Call Flow

Add the <Pay> verb to your TwiML or Twilio Studio flow:

``xml <Response> <Say>Please enter your card number followed by the hash key.</Say> <Pay paymentConnector="shuttle-pay-connector" chargeAmount="29.99" currency="GBP" description="Monthly subscription" action="/payment-complete"> </Pay> </Response> ``

Key parameters:

  • paymentConnector — set to shuttle-pay-connector

  • chargeAmount — the amount to charge

  • currency — ISO currency code

  • action — your webhook endpoint for the payment result

Step 4: Handle the Payment Result

Twilio sends a POST to your action URL with the payment result:

``json { "Result": "success", "PaymentCardNumber": "xxxx-xxxx-xxxx-4242", "PaymentCardType": "visa", "PaymentConfirmationCode": "ch_3ABC123...", "ProfileId": "your-shuttle-profile-id" } ``

Use the PaymentConfirmationCode to look up the charge in Stripe if needed. Update your order, confirm to the caller, and continue the flow.

Step 5: Test

Use Stripe's test mode (sk_test_...) and Twilio's test credentials to verify the flow end-to-end before going live. Test card numbers: 4242 4242 4242 4242 (Visa), 5555 5555 5555 4444 (Mastercard).


What You Can Do With Stripe + Twilio

Charge Immediately

Standard auth-and-capture. The caller pays, Stripe processes, done.

Authorise Now, Capture Later

Place a hold on the card during the call. Capture the payment later — useful for hotel reservations, car hire deposits, or any scenario where the final amount might change.

Tokenise for Future Use

Capture card details once over the phone. Shuttle tokenises the card via Stripe and returns a reusable token. Use it for future payments across any channel — web, mobile, voice, or payment links. The card data is never stored in your systems.

Recurring Payments

Combine tokenisation with Stripe's subscription or recurring payment features. Capture the card securely over a phone call, then use the token for ongoing charges without the customer needing to call again.


Multi-PSP: Beyond Stripe

One of the key advantages of using Shuttle rather than a Stripe-only connector is flexibility. Your Twilio integration stays the same even if you:

  • Add a second gateway — route UK transactions to Worldpay and US transactions to Stripe

  • **Serve enterprise customers** who mandate a specific PSP (Adyen, Checkout.com, Global Payments, etc.)

  • Need failover — if Stripe is down, automatically route to a backup gateway

  • Expand to new markets where a local acquirer gives better authorisation rates

You configure routing rules in Shuttle's dashboard. Your Twilio call flow doesn't change. The <Pay> verb always points to shuttle-pay-connector — Shuttle handles which gateway processes the transaction.

This is particularly important for platforms and BPOs that serve multiple merchants. Each merchant can use their own Stripe account (or any other gateway) through the same Twilio integration.


PCI Compliance

The Stripe + Twilio integration via Shuttle keeps you completely out of PCI scope:

Layer

PCI handled by

DTMF capture & suppression

Twilio

Card data processing

Shuttle (PCI DSS Level 1)

Payment processing

Stripe (PCI DSS Level 1)

Your systems

No card data — SAQ-A

Card data flows from Twilio → Shuttle → Stripe. Your application only receives redacted data (last 4 digits, card brand, charge ID). You qualify for SAQ-A — the lightest PCI self-assessment.

For the full picture on PCI compliance with Twilio, see Twilio PCI Compliance: Payments Without Handling Card Data.


FAQ

Can I connect Stripe to Twilio without Shuttle? Twilio doesn't have a built-in Stripe Pay Connector. You'd need to build a custom connector yourself — which means handling PCI compliance for card data processing. Shuttle provides a pre-built, PCI-certified connector that handles this.

Does this work with Twilio Studio? Yes. Twilio Studio supports the <Pay> widget. Configure it with shuttle-pay-connector as the connector and the payment flow works within your Studio flow.

Can I use Stripe Connect with this? Yes. If you're a platform using Stripe Connect, you can configure Shuttle to route payments to your connected accounts. Each merchant's transactions go through their own Stripe connected account.

What about Stripe's test mode? Fully supported. Use your Stripe test API key (sk_test_...) in Shuttle and test the full flow with Twilio before going live.

What does it cost? Shuttle charges $0.20 per transaction. Stripe's standard fees apply on top (2.9% + 30¢ or your negotiated rate). No Shuttle setup fees or monthly minimums.

Can I switch from Stripe to another gateway later? Yes. Change the gateway in your Shuttle payment profile. Your Twilio call flow stays exactly the same — no code changes needed.


Related Reading


*Connect Stripe to Twilio in minutes with Shuttle's Pay Connector — PCI DSS Level 1, $0.20/transaction, no setup fees. Install from the Twilio Marketplace or book a discovery call.*

Talk to us

See how Shuttle can power payments for your platform — multi-PSP, multi-channel, white-label.

Book a Demo