QuickBooks Payments doesn't natively connect to Twilio for voice payments. If you invoice from QuickBooks and want to take a card payment during a phone call (a deposit, an overdue invoice, a phone order) you need a Twilio Pay Connector that bridges the two platforms.
Shuttle's Pay Connector does exactly this. It connects QuickBooks Payments (and 30+ other gateways) to Twilio's <Pay> verb, so you can accept PCI-compliant card payments during any voice interaction, with the transaction settling through your QuickBooks Payments merchant account so your books stay in QuickBooks.
This guide walks through how the integration works, how to set it up, and what to watch for.
Why QuickBooks Payments + Twilio Don't Connect Directly
QuickBooks Payments is Intuit's payment processing service, built around QuickBooks Online. It's invoicing-led: a customer receives a QuickBooks invoice, pays it online, and the payment is matched to the invoice with the deposit and fees recorded in your books. That tight reconciliation loop is why it's so popular with US small businesses and service firms.
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. QuickBooks Payments isn't one of Twilio's built-in connectors, so there's no out-of-the-box way to charge a card over the phone and have it land in your QuickBooks Payments account.
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 QuickBooks Payments for processing. One integration connects the two platforms.
How It Works
`` Caller → Twilio (DTMF capture) → Shuttle (Pay Connector) → QuickBooks Payments (processing) → Result ``
Caller reaches payment step. Your Twilio call flow (IVR or custom TwiML) triggers the
<Pay>verb. Typical trigger: a customer calls to pay a deposit or settle an overdue QuickBooks invoice.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.
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 QuickBooks Payments. The connector processes the transaction through your QuickBooks Payments merchant account and handles the response.
Result returned to your call flow. Your webhook receives the transaction reference, last four digits, card brand, and status. The call continues, and you can record the payment against the customer's invoice in QuickBooks Online.
The entire flow happens in seconds. The caller stays on the line. No redirects, no "we'll email you a link and hope you click it."
Step-by-Step Setup
Prerequisites
A Twilio account with voice capability
A QuickBooks Payments account. API access runs through Intuit's developer platform: apps authenticate with OAuth 2.0 credentials from an Intuit developer app, using the QuickBooks Payments scope
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: Connect QuickBooks Payments to Shuttle
Log into the Shuttle dashboard. Navigate to Payment Profiles and create a new profile:
Gateway: QuickBooks Payments
Credentials: authorise Shuttle against your QuickBooks Payments account via Intuit's OAuth flow
Currency: USD (QuickBooks Payments serves US merchants)
Environment: Live or Sandbox
Save the profile. Shuttle now has a live connection to your QuickBooks Payments account.
Step 3: Configure Your Twilio Call Flow
Add the <Pay> verb to your TwiML:
``xml <Response> <Say>Please enter your card number followed by the hash key.</Say> <Pay paymentConnector="shuttle-pay-connector" chargeAmount="149.00" currency="USD" description="Invoice 1042 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:
``json { "Result": "success", "PaymentCardNumber": "xxxx-xxxx-xxxx-1234", "PaymentCardType": "visa", "PaymentConfirmationCode": "QB-TXN-REF-123...", "ProfileId": "your-shuttle-profile-id" } ``
Use the PaymentConfirmationCode to record the payment against the invoice in QuickBooks Online. Because the charge runs through your QuickBooks Payments account, the deposit and processing fees flow into QuickBooks the same way as your online invoice payments, so reconciliation stays in one place.
Step 5: Test
Intuit provides a sandbox environment for QuickBooks Payments through its developer platform. Use sandbox credentials in your Shuttle payment profile and verify the flow end-to-end with Twilio before going live.
What You Can Do With QuickBooks Payments + Twilio
Collect Overdue Invoices by Phone
The most common use case. A customer with an unpaid QuickBooks invoice calls in (or your team calls out), the amount is confirmed, and the card is captured securely via DTMF while the caller is still on the line. No chasing, no "the cheque is in the post."
Take Deposits and Phone Orders
Service firms that quote by phone (contractors, repair shops, professional services) can take a deposit at the moment of commitment instead of sending an invoice and waiting.
Tokenise for Future Use
Capture card details once over the phone. Shuttle tokenises the card 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.
Keep Reconciliation in QuickBooks
Because voice payments settle through your QuickBooks Payments merchant account rather than a separate phone-payments provider, you avoid running a second merchant account that needs its own reconciliation workflow.
Multi-PSP: Beyond QuickBooks Payments
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: keep QuickBooks Payments for invoice-linked payments and route other transactions to a different acquirer
**Serve enterprise customers** who mandate a specific PSP (Stripe, Worldpay, Checkout.com, etc.)
Need failover: if one gateway has an outage, automatically route to a backup
Expand beyond the US, where QuickBooks Payments doesn't process, by routing those regions to a local gateway
You configure routing rules (by merchant, region, amount, or failover) in Shuttle's dashboard. Your Twilio call flow doesn't change. The <Pay> verb always points to shuttle-pay-connector, and Shuttle handles which gateway processes the transaction.
This is particularly important for BPOs and firms that serve multiple clients. Each client can use their own QuickBooks Payments account (or any other gateway) through the same Twilio integration.
PCI Compliance
The QuickBooks Payments + 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 Service Provider) |
Payment processing | QuickBooks Payments (Intuit) |
Your systems | No card data: SAQ-A |
Card data flows from Twilio → Shuttle → QuickBooks Payments. Your application only receives redacted data (last 4 digits, card brand, transaction reference). 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 QuickBooks Payments to Twilio without Shuttle? Twilio doesn't have a built-in QuickBooks Payments 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 that handles this.
Do phone payments show up in QuickBooks? Payments processed this way settle through your QuickBooks Payments merchant account, so deposits and fees flow into QuickBooks like your other QuickBooks Payments transactions. Use the transaction reference from the webhook to record the payment against the right invoice.
Does this work for IVR self-service payments? Yes. The <Pay> verb works in fully automated IVR flows as well as agent-assisted calls. A caller can pay an invoice at 9pm with no agent involved.
Is there a test environment? Yes. Intuit provides a sandbox for QuickBooks Payments via its developer platform. Use sandbox credentials in Shuttle and test the full flow with Twilio before going live.
What does it cost? Shuttle charges $0.20 per successful transaction. QuickBooks Payments' standard processing fees apply on top. No Shuttle setup fees or monthly minimums.
Can I switch from QuickBooks Payments 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.
Related Reading
Twilio Pay Connectors: How to Connect Any 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 at SAQ-A
How to Connect Stripe to Twilio for Voice Payments: step-by-step Stripe + Twilio setup
How to Connect Adyen to Twilio for Voice & IVR Payments: step-by-step Adyen + Twilio setup
QuickBooks Invoice Payments: How to Get Paid Faster: speeding up invoice collection in QuickBooks
QuickBooks Payment Links: Send a Pay-Now Link From Your Books: payment links for QuickBooks users
Twilio Pay: Connect Any Payment Gateway to Twilio: all supported gateways, pricing, and setup
*Connect QuickBooks Payments to Twilio in minutes with Shuttle's Pay Connector: PCI DSS Level 1, $0.20/transaction, no setup fees. Install on Twilio or book a discovery call.*