successUrl.
Today the hosted checkout works with PIX and crypto. Credit card is coming soon — the references to
credit_card below apply once card payments launch.When to use each mode
The full flow
1
Create the session
POST /api/v1/checkout-sessions/ with the amount and (optionally) accepted methods, items, buyer data, and webhookUrl:checkoutUrl, checkoutToken and — if you sent webhookUrl — the webhookSecret used to verify the signatures. The secret appears only in this response; store it.2
Redirect the buyer
Send the buyer to the
checkoutUrl. They complete the payment using the available method (PIX or crypto).3
Receive the confirmation
On payment, your
webhookUrl receives transaction.paid (signed — always verify it) and the buyer is taken to the successUrl.4
(Optional) Poll for status
Without a webhook, query
GET /api/v1/checkout-sessions/{token}/status — public, with per-IP rate limiting. Use it as a complement, not a replacement for the webhook.Good to know
itemsis display metadata — the catalog is yours; Bob only renders the order summary. The amount charged is always the session’samountCents.expiresAtbelongs to the link, not the PIX — the session lasts 24h by default; the PIX generated within it follows the expiration configured on the project.paymentMethodscontrols the displayed options — use["pix"](the default) or["crypto"]for crypto payments; combine them in a single session to offer both. Support for["credit_card"]arrives once card payments launch.- Method not available — session creation reports when a requested method is not enabled on the project.
- Crypto — pass
cryptoinpaymentMethods. The buyer is taken to the hosted crypto page via the samecheckoutUrl; confirmation arrives viatransaction.paidjust like the other methods. - Credit card (coming soon) — once it launches, you’ll pass
credit_cardinpaymentMethods. See Credit card. - Want to keep the buyer on your site? Use the Checkout SDK. It embeds Bob’s checkout without exposing raw card data to your application.
- Sandbox works the same way — create the session with
sk_test_and the flow runs end to end in the test environment. See Sandbox. - With the SDK:
bob.checkoutSessions.create(...)already sendswebhookVersion: "v2"by default. See Node.js SDK.
Next steps
Create a checkout session
All the creation fields, with an interactive playground.
Checkout SDK
Embed the checkout on your site instead of redirecting.