Ecommpay doesn't natively connect to Twilio for voice payments. If you want to process Ecommpay transactions during a phone call (via IVR, agent-assisted, or AI voice agent), you need a Twilio Pay Connector that bridges the two platforms.
Shuttle's Pay Connector does exactly this. It connects Ecommpay (and 30+ other gateways) to Twilio's <Pay> verb, so you can accept PCI-compliant card payments during any voice interaction.
This guide walks through how the integration works, how to set it up, and what to watch for.
Why Ecommpay + Twilio Don't Connect Directly
Ecommpay is a UK-headquartered payment service provider and direct card acquirer, authorised by the Financial Conduct Authority, with additional European licensing. It combines its own acquiring, 100+ alternative payment methods, and payouts in a single platform, and it's a popular choice for UK and EU merchants in specialised verticals like travel and ticketing where many mainstream providers are more restrictive.
Twilio is built for voice and messaging. Its <Pay> verb captures card details during phone calls via DTMF keypad input, so the digits never reach the agent or the call recording.
The problem: Twilio's <Pay> needs a Pay Connector to route captured card data to a payment gateway. Ecommpay isn't one of Twilio's built-in connectors, so there's no native path between the two.
This is where Shuttle comes in. Shuttle provides a Pay Connector that accepts card data from Twilio's <Pay> verb and routes it to Ecommpay's API for processing. One integration connects the two platforms.
How It Works
Caller → Twilio (DTMF capture) → Shuttle (Pay Connector) → Ecommpay (processing) → Result
Caller reaches payment step. Your Twilio call flow (IVR or custom TwiML) triggers the
<Pay>verb.Card details captured via DTMF. The caller enters their card number, expiry, and CVV on the keypad. The digits never reach the agent or the call recording.
Shuttle receives card data. The data passes from Twilio's PCI-compliant environment directly to Shuttle's connector. It never touches your servers.
Shuttle charges the card via Ecommpay. The connector creates an Ecommpay payment request, processes the transaction through your Ecommpay project, and handles the response.
Result returned to your call flow. Your webhook receives the Ecommpay payment reference, last four digits, card brand, and transaction status. The call continues.
The caller stays on the line. No redirects, no "please visit our website."
Step-by-Step Setup
Prerequisites
A Twilio account with voice capability
An Ecommpay account with API credentials (project ID + secret key)
A Shuttle account (see pricing)
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 Ecommpay Credentials to Shuttle
Log into the Shuttle dashboard. Navigate to Payment Profiles and create a new profile:
Gateway: Ecommpay
Project ID: Your Ecommpay project identifier
Secret key: Your Ecommpay project secret key (used to sign API requests)
Currency: Set your default (GBP, EUR, USD, etc.)
Environment: Live or Test
Ecommpay sets up separate test and production projects during onboarding, each with its own project ID. Use the test project first, then switch the profile to your production credentials when you're ready to go live.
Save the profile. Shuttle now has a live connection to your Ecommpay account.
Step 3: Configure Your Twilio Call Flow
Add the <Pay> verb to your TwiML:
<Response>
<Say>Please enter your card number followed by the hash key.</Say>
<Pay paymentConnector="shuttle-pay-connector"
chargeAmount="49.99"
currency="GBP"
description="Booking payment"
action="/payment-complete">
</Pay>
</Response>Key parameters:
paymentConnector: set toshuttle-pay-connectorchargeAmount: the amount to chargecurrency: ISO currency codeaction: 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:
{
"Result": "success",
"PaymentCardNumber": "xxxx-xxxx-xxxx-1234",
"PaymentCardType": "visa",
"PaymentConfirmationCode": "ECOMMPAY-PAYMENT-REF-123...",
"ProfileId": "your-shuttle-profile-id"
}Use the PaymentConfirmationCode to look up the transaction in Ecommpay if needed. Update your order, confirm to the caller, and continue the flow.
Step 5: Test
Use your Ecommpay test project credentials in Shuttle and Twilio's test setup to verify the flow end-to-end before going live. Because Ecommpay's test and production environments use identical request formats, promoting to live is a credentials change, not a rebuild.
What You Can Do With Ecommpay + Twilio
Charge Immediately
Standard auth-and-capture. The caller pays, Ecommpay processes, done.
Authorise Now, Capture Later
Place a hold on the card during the call and capture the payment later. Useful for travel bookings, ticketing holds, deposits, or variable-amount transactions where the final figure is confirmed after the call.
Tokenise for Future Use
Capture card details once over the phone. Shuttle tokenises the card with Ecommpay and returns Ecommpay's 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.
Take Deposits and Balances in Travel and Ticketing Call Centres
Travel and ticketing are phone-heavy verticals: itinerary changes, group bookings, box office sales, and rebookings all land in the call centre. With Ecommpay handling the acquiring and Twilio handling the call, agents can take a deposit on the booking call and collect the balance later against the stored token, all without ever hearing a card number.
Multi-PSP: Beyond Ecommpay
One of the key advantages of using Shuttle rather than a single-gateway connector is flexibility. Your Twilio integration stays the same even if you:
Add a second gateway: serve your UK and EU merchants with Ecommpay, and other regions with a local acquirer
Serve enterprise customers who mandate a specific PSP (Stripe, Worldpay, Checkout.com, etc.)
Want a backup gateway: if one gateway has an outage, you can move the affected payment types to another connected gateway. There is no automatic failover, and saved cards stay with the gateway that stored them, so repeat payments on stored cards will not run through the second one
You choose which connected provider handles each payment type in Shuttle’s dashboard. Your Twilio call flow doesn't change. The <Pay> verb always points to shuttle-pay-connector, and Shuttle sends the payment to the provider you configured.
This is particularly useful for BPOs and outsourced call centres that serve multiple merchants. Each merchant can use their own Ecommpay project (or any other compatible gateway) through the same Twilio integration.
PCI Compliance
The Ecommpay + Twilio integration via Shuttle limits your PCI scope:
Layer | PCI handled by |
|---|---|
Secure DTMF capture | Twilio |
Card data processing | Shuttle (PCI DSS Level 1) |
Payment processing | Ecommpay (PCI DSS Level 1) |
Your systems | No card data on your systems: SAQ-A for merchants, SAQ-D for platforms |
Card data flows from Twilio to Shuttle to Ecommpay. Your application only receives redacted data (last 4 digits, card brand, payment reference). Merchants complete SAQ-A, the lightest PCI self-assessment; platforms complete SAQ-D. Everyone taking card payments has to be PCI compliant, and your acquirer confirms which form applies to you.
For the full picture on PCI compliance with Twilio, see Twilio PCI Compliance: Payments Without Handling Card Data.
FAQ
Can I connect Ecommpay to Twilio without Shuttle? Twilio doesn't have a built-in Ecommpay Pay Connector. You'd need to build a custom connector using Twilio's Generic Pay Connector framework, which means handling PCI compliance for card data processing yourself. Shuttle provides a pre-built, PCI-certified connector.
Does this suit specialised verticals like travel and ticketing? Yes. Ecommpay's own acquiring and appetite for specialised verticals is one of the main reasons merchants choose it. The Twilio integration doesn't change your underwriting: transactions process through your existing Ecommpay project under your existing agreement.
What about Ecommpay's test environment? Fully supported. Use your Ecommpay test project ID and secret key in Shuttle and test the full flow with Twilio before going live.
What does it cost? Shuttle charges $49 per live instance per month, plus from $0.20 per transaction, falling with volume, billed through your Twilio account. Ecommpay's standard fees apply on top (your negotiated acquiring rate).
Can I switch from Ecommpay to another gateway later? Yes. Change the gateway in your Shuttle payment profile. Your Twilio call flow stays exactly the same, with no code changes needed. Saved cards stay with the gateway that stored them, so repeat payments on stored cards will not move to the new gateway.
Related Reading
Twilio Pay Connectors: How to Connect Any Compatible Payment Gateway: the complete guide to Twilio Pay Connectors and multi-PSP routing
Twilio PCI Compliance: Payments Without Handling Card Data: how to keep your PCI scope limited
How to Connect Stripe to Twilio for Voice Payments: step-by-step Stripe + Twilio setup
How to Connect Paysafe to Twilio for Voice Payments: another gateway with strong specialised-verticals coverage
Enterprise PSP Mandates: When Customers Choose Your Gateway: routing to mandated gateways without re-integrating
Payment Collection for BPOs: multi-merchant voice payments for outsourced call centres
Ecommpay: Ecommpay coverage, currencies, and supported channels via Shuttle
Twilio Pay: Connect Any Compatible Payment Gateway to Twilio: all supported gateways, pricing, and setup
Connect Ecommpay to Twilio with Shuttle's Pay Connector: PCI DSS Level 1, $49 per live instance per month, plus from $0.20 per transaction, falling with volume, billed through your Twilio account. Install on Twilio or book a discovery call.