Skip to main content
Add card-on-file payments to an ElevenLabs agent two ways. Hosted transfers the call to Ringup at payment time; Ringup runs the whole payment and you write no payment logic. In your agent keeps the caller in your agent the whole call: webhook tools recognize the caller and charge their saved card, and nothing transfers. Either way a recognized caller never reads a card aloud, so no card data touches your agent.

Prerequisites

  • An ElevenLabs agent you already run, with a phone number.
  • Your ElevenLabs API key, and a Ringup API key.

Set up

Ringup takes payment on a transfer. Best when you want the payment moment handled for you.
The hosted transfer needs the agent’s number attached over a SIP trunk. ElevenLabs allows a SIP-URI transfer destination only with sip_refer and rejects that combination on a native-Twilio number, so such an agent cannot reach the payment line by transfer. If your number cannot transfer, use the Using Tools tab, which never transfers.
Preview. The transfer transport is live: an agent on a SIP-trunk number can refer the call to the payment line. Matching the transferred call to the order registered by the caller’s number is still in build. Confirm availability in your Ringup dashboard before relying on the hosted path in production. The Using Tools tab works today.
1

Connect ElevenLabs, once for your account

In the Ringup dashboard, open Voice integrations, then Connect ElevenLabs, and paste your ElevenLabs API key. Ringup uses it to list your agents and provision the payment objects, and never stores it. One connection covers every merchant you run.
2

Pick the agents that take payments

Select the agents that answer merchant calls. Ringup registers identify (called at the greeting) and create_checkout on each and pins your payment address in the agent’s transfer rule; paste the one prompt line the dashboard shows. No per-merchant step: the merchant resolves from the dialed number, and activates when it connects its processor.
3

Add your webhook endpoint

Under Webhooks, add your HTTPS endpoint and copy the signing secret. Ringup posts a signed checkout.succeeded there for every payment. See Webhooks.
4

Rehearse on the rehearsal number, then go live

The dashboard binds a test twin of your agent to a rehearsal number. Call it from your own phone and order: on your first call you are texted a link and pay with the test card 4111 1111 1111 1111 (any future expiry, any CVC); on the next call you pay on the saved Visa ending 1111, no real charge. When it reads a confirmation code back, click Go live.
Before you go live: add the Connect button to your dashboard. Wiring the payment tools into your agent does not, by itself, let any charge settle. Each merchant must first connect their own payment processor, from a button you embed on your merchant-facing dashboard:
That is your publishable key, not your secret one. Ship it alongside this integration so a merchant can connect the moment they are ready; until they do, the payment layer stays inaudible on their calls, so going live early is safe. Button options and the connect flow: Payment providers.

Next steps

Testing

Test mode, the test card, and the flow to run a full payment.

Webhooks

Reconcile every payment from one signed event on your server.