The two destinations
Everycreate_checkout response carries both ways to move the call,
and you always receive both:
transfer_tois a SIP URI. Its user part is the checkout token, so the session rides the transfer itself. Platforms that dial SIP use this lane.transfer_to_numberis a plain phone number, for platforms that can only transfer to a number. It routes to Ringup’s hosted payment line, which resolves the session server-side by the caller’s number. No configuration: a platform that cannot dial SIP just uses the number.
return_to carries where to send the caller after payment.
What rides the transfer: the checkout token
The line that answers atransfer_to leg holds no account key and needs none: the token in the
URI is all the authorization it gets. It is a session-scoped credential: a valid, unexpired
token authorizes acting on exactly the one session it names, whatever account owns that session.
The token carries the checkout session id as its k claim and nothing else; the amount, the
caller, and the cards all come from reading the session it names. The line reads the token off
the leg and presents it as a bearer credential:
Ringup’s own hosted payment line is built on nothing but this. It reads the session, offers the
card, sends the link, and charges with the token: exactly the four calls below. Any developer can
build the same line the same way; the number lane’s session lookup is internal to Ringup, so a
line you build completes transfers through
transfer_to only.What the payment line does
The token is accepted on exactly four operations, each pinned to its own session. It can touch no other session and cannot create, list, or read anything else.1
Read the session
Get the amount, the caller’s name if known, the transfer-back destination, and the cards
chargeable at this merchant: everything you need to decide what to say next.
2
Offer the saved card, or text a link
If
cards is non-empty, offer the newest one and charge it. If it is empty,
send a link: a first-time caller pays on the web and the card is saved for
next time.3
Confirm
The session read also carries the charge status, so you learn the outcome from the same object.
Your server still receives a
checkout.succeeded webhook.Read the session
Response
caller_first_name lets you greet a returning caller by name before you know whether they have a
card. cards is already narrowed to what is chargeable at this merchant, so the newest card is
safe to offer as is.
Charge the saved card
Text a link for a first-time caller
4111 1111 1111 1111. Hold the call
if you like: the payment lands as a webhook whether the caller pays now or after they hang up.
Scope and lifetime
Next steps
Build your own payment line
The Custom Platform guide: recognize, create the checkout, transfer, hear the result.
Charge
The recognized-caller path: run a saved card directly.