How to Connect LiqPay to Twilio for Voice & IVR Payments

By Shuttle Team, July 4, 2026

LiqPay doesn't natively connect to Twilio for voice payments. If you want to process LiqPay 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 LiqPay (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 LiqPay + Twilio Don't Connect Directly

LiqPay is PrivatBank's payment service and one of the most widely used payment providers in Ukraine. It handles card payments (Visa and Mastercard), Privat24-based payment confirmation, and hryvnia (UAH) processing for Ukrainian businesses, from major marketplaces to utilities. Its APIs are built for online checkout: hosted payment pages, server-to-server requests, and callbacks.

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. LiqPay isn't one of Twilio's built-in connectors, so there's no native path from a Twilio call flow to your LiqPay account.

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


How It Works

Caller → Twilio (DTMF capture) → Shuttle (Pay Connector) → LiqPay (processing) → Result
  1. Caller reaches payment step. Your Twilio call flow (IVR 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. The digits never reach the agent or the call recording.

  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 LiqPay. The connector creates a LiqPay payment request, sends it to LiqPay for processing through your LiqPay merchant account, and handles the response.

  5. Result returned to your call flow. Your webhook receives the LiqPay transaction 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

  • A LiqPay merchant account with API credentials (public key + private key, found in your company settings under the API tab)

  • A Shuttle account (free to create; 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 LiqPay Credentials to Shuttle

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

  • Gateway: LiqPay

  • Public key: Your LiqPay public key

  • Private key: Your LiqPay private key

  • Currency: Set your default (UAH, or another supported currency)

  • Environment: Live or Test

Save the profile. Shuttle now has a live connection to your LiqPay 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="1499.00"
       currency="UAH"
       description="Invoice payment"
       action="/payment-complete">
  </Pay>
</Response>

Key parameters:

  • paymentConnector: set to shuttle-pay-connector

  • chargeAmount: the amount to charge

  • currency: ISO currency code (UAH for hryvnia)

  • 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:

{
  "Result": "success",
  "PaymentCardNumber": "xxxx-xxxx-xxxx-1234",
  "PaymentCardType": "visa",
  "PaymentConfirmationCode": "LIQPAY-REF-123...",
  "ProfileId": "your-shuttle-profile-id"
}

Use the PaymentConfirmationCode to look up the transaction in your LiqPay account if needed. Update your order, confirm to the caller, and continue the flow.

Step 5: Test

LiqPay provides a dedicated test environment: your test public key and private key carry a sandbox_ prefix, and sandbox transactions return a "sandbox" status rather than "success". Add your test keys to a Shuttle payment profile set to Test, run the full Twilio call flow end-to-end, then swap in your live keys when you're ready.


What You Can Do With LiqPay + Twilio

Charge Immediately

Standard charge. The caller pays, LiqPay processes the payment in UAH through PrivatBank rails, done.

Tokenise for Future Use

Capture card details once over the phone. Shuttle tokenises the card with LiqPay 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.

Serve Ukrainian Customers From Any Contact Centre

Your contact centre doesn't need to be in Ukraine to take UAH payments from Ukrainian cardholders. A BPO or offshore support team can collect payments over the phone through your LiqPay account, with card data kept out of the agent environment entirely.

Automate With IVR and AI Voice Agents

The same connector works for fully automated flows. An IVR or AI voice agent can quote an amount, trigger <Pay>, and confirm the LiqPay transaction without a human agent on the line.


Multi-PSP: Beyond LiqPay

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 Ukrainian merchants with LiqPay and your EU or US merchants with a local acquirer

  • Serve enterprise customers who mandate a specific PSP (Stripe, Worldpay, Checkout.com, etc.)

  • Want a backup gateway: if one gateway is unavailable, 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

  • Expand to new markets, with each merchant or entity there on its own gateway

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 handles which gateway processes the transaction: by merchant and payment method.

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


PCI Compliance

The LiqPay + Twilio integration via Shuttle limits your PCI scope:

Layer

PCI handled by

DTMF capture

Twilio

Card data processing

Shuttle (PCI DSS Level 1)

Payment processing

LiqPay (PCI DSS certified)

Your systems

Merchants: SAQ-A. Platforms: SAQ-D.

Card data flows from Twilio to Shuttle to LiqPay. Your application only receives redacted data (last 4 digits, card brand, transaction 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 LiqPay to Twilio without Shuttle? Twilio doesn't have a built-in LiqPay 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 connector that is PCI DSS Level 1 certified.

Can I take UAH payments over the phone? Yes. Set the currency parameter to UAH in your <Pay> verb and the transaction processes in hryvnia through your LiqPay account.

What about LiqPay's test environment? Fully supported. LiqPay issues test keys with a sandbox_ prefix. Add them to a Shuttle payment profile set to Test and run 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. LiqPay's standard processing fees apply on top.

Can I switch from LiqPay 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.



Connect LiqPay 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.

Take payments over the phone

Card capture for contact centres, IVR flows and AI voice agents, connected to 30+ payment gateways including Stripe, Adyen, and Worldpay Access.

Book a Call