Voice agents / OpenAI Realtime

Take phone payments in OpenAI Realtime agents

Ringup adds payment to your OpenAI Realtime call by transfer: when the order is confirmed, your agent creates a Checkout Session and hands the live call to a Ringup payment line, like a hosted web checkout. Returning callers are recognized by number, first-timers are texted a secure link, and charges settle on the merchant’s own payment processor.

The problem

Taking payment on a OpenAI Realtime call

Your OpenAI Realtime agent can take an order. Collecting payment is the hard part. Reading a card number aloud is clumsy and drags you into PCI scope, and telling the caller to "pay online later" loses the sale.

Ringup adds payment to the call itself, like a checkout that remembers the customer. A returning caller is recognized by phone number and pays with their saved card; a first-time caller is texted a secure link and is remembered next time. Charges settle on the merchant's own payment processor, and no card number is ever spoken.

How OpenAI Realtime takes payment

Call transfer

When the order is confirmed, your agent creates a Checkout Session and transfers the live call to a Ringup payment line, exactly as a hosted web checkout redirects the browser. Your telephony bridge owns the call leg, so it dials the Ringup SIP URI, carrying the Checkout Session id. Ringup recognizes the caller, charges the saved card on the merchant's own processor, texts a receipt, and can transfer the caller back to your agent to finish in your own voice. It is one integration you can reuse across every platform, and the same Checkout Session and webhook underneath.

LIKE A HOSTED WEB CHECKOUT, OVER THE PHONE1Your agentRecognizes the caller,confirms the order.2Checkout SessionRingup returns whereto send the call.3Ringup payment lineThe call transfers here;charges the saved card.optional4Back to your agentcheckout.completed;order marked paid.

Ready to build? The developer docs have the exact setup, the step-by-step, and the API reference.

Read the developer docs →
FAQ

Questions

How does payment work without reading a card aloud?
The caller never says a card number. A returning caller is recognized by phone number and charged their saved card; a first-time caller is texted a secure link to save one, then remembered next time. The card lives with the merchant's payment processor, so you stay out of PCI scope.
Do I have to build a payment flow?
No. You make one call to create a Checkout Session and transfer the call to the Ringup line. Ringup runs recognition, the charge, the receipt, and the return. You never build or host a payment step.
How does Ringup know the caller and the business?
Server-side, from trusted signals the telephony sets: the caller's number and the number they dialed. Neither passes through the model, so neither can be spoofed or hallucinated.
Where does the decision to take payment live?
With Ringup. Creating a Checkout Session returns payment_required as required, optional, or none, resolved per purchase from the merchant's own rule. A merchant who has not connected a processor yet simply gets a payment-free call (the none state).
Who confirms the order to the caller?
Your own agent, if you want it to. Set return_to and Ringup transfers the caller back with the outcome in SIP headers, so your agent closes in its own voice. Or let Ringup read a short confirmation and end. Either way the caller gets an SMS receipt.
What happens after payment?
Ringup texts the caller a receipt and sends your server a checkout.completed webhook with the payment id and confirmation, so you mark the order paid. See the developer docs for the webhook shape.
Can the agent recognize a caller before payment?
Yes. You call identify at the greeting yourself; it needs only the caller's phone number. For a returning caller it returns their name and saved card, so your agent greets them by name and skips re-asking for what it already knows, like the name for the order. Recognition happens at the greeting, separate from and earlier than taking payment.

Put payments in your OpenAI Realtime agent

Create a Checkout Session, transfer the call. Your returning callers never touch their card again.

Request demo
docs.ringup.dev