Skip to main content
Add pay-by-phone to a Vapi agent in a few clicks. Ringup attaches one payment tool and hands you one prompt line to paste. No payment code. You do this twice: in Test on a copy of your agent, then in Live on your real agent.

Before you start

1

A Vapi agent with a SIP-capable number

Vapi-native and SIP trunk (BYOC) numbers can transfer to the payment line. A number imported from a telephony provider cannot.
2

Your Vapi API key

Vapi dashboard, Org settings, then API Keys.
3

Your Ringup account

Test wires a copy of your agent (you duplicate it in Step 1), so production stays untouched until you deliberately go live.

Set it up in Test

Make sure the dashboard is in Test mode (top-right toggle).
1

Duplicate your agent

In Vapi, duplicate your live agent and name the copy something like Agent (Ringup test). You wire this copy, not production.
Duplicate the Vapi agent for testing

Vapi: duplicate your agent and name the copy Agent (Ringup test).

2

Connect your platform

In the Ringup dashboard, open Voice integrations, choose Vapi, and paste your Private API key. Ringup lists your agents to check the key, then creates one payment tool on your account.Then pick what your agent sends at hand-off:
  • The order id it creates in the point of sale. Ringup reads the total from that order, so tax and modifiers are always right and the payment lands on the real ticket.
  • The total it works out itself. For agents with no point-of-sale order.
  • Both, for a mixed fleet. Each call sends whichever it has; when an order id is present it wins.
Connect Vapi and choose the order model

Voice integrations: choose Vapi, paste your key, pick what the agent sends.

3

Choose the agent

Pick your test copy and click Add payment. Ringup attaches one tool to it and changes nothing else.
Choose the agent and add payment

Pick the test copy and click Add payment.

4

Add the prompt line

Paste the one system prompt line Ringup shows into the test copy’s system prompt in Vapi. That is the whole change on your side.
Paste the Ringup prompt line into the Vapi agent

Copy the prompt line into your Vapi agent's system prompt.

Do not add the tool by hand in Vapi. Ringup attaches it with the right server URL and secret. A hand-made tool is not bound to your account and will fail at call time.
5

Connect a test merchant

A call can only take payment for a merchant, so create one in Test first. In the dashboard, open Merchant integrations and create a test merchant; in test mode it is automatically backed by Ringup’s test processor account, so there is no OAuth step and no real processor account to connect. Without one, the payment layer stays inaudible and the test call has nothing to charge. See Merchant integrations.
6

Place a test call

Call the test copy from your own phone and place an order. It charges the test merchant you just created. On your first call you are texted a link and pay with the test card 4111 1111 1111 1111; on your next call you are recognized and pay on the saved Visa ending 1111. No real money moves. Watch it land in Logs.

Go live

1

Wire your real agent

Switch the dashboard to Live and run Connect your platform, Choose the agent, Add the prompt line again, this time on your production agent, no copy.
Go live

Switch to Live and wire your production agent the same way.

2

Let your merchants connect

Real calls take payment only for merchants who have connected their own processor. Embed the one-line Connect button so each merchant self-connects Square or Clover. Until a merchant connects, the payment layer stays inaudible on their calls, so going live first is safe. See Merchant integrations.

What Ringup guarantees during the transfer

The hand-off is never silent. Before the leg switches, Ringup speaks a heads-up in your agent’s turn (“Just a sec, connecting you to our secure payment line now”) and holds the transfer until the sentence finishes.
A dropped session reference cannot strand a payment. The Checkout Session rides the transfer two ways at once: in the transfer itself and in a short-lived server-side record keyed to the caller’s number. If either carrier fails, the other completes the payment.
The confirmation is pushed, not polled. The moment a payment settles, whether by saved card on the call or a texted link paid mid-call, the payment line announces it instantly.

Next steps

Merchant integrations

How your merchants connect Square or Clover so calls can take payment.

Webhooks

Reconcile every payment from one signed event on your server.