Documentation Index
Fetch the complete documentation index at: https://docs.caibo.digital/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The Caibo embedded checkout is a drop-in JavaScript SDK that renders the Caibo payment page inside your website as an inline container or full-screen modal overlay — no full-page redirect required. The customer never leaves your site, and your servers never touch raw card data.Architecture
The SDK creates an<iframe> that hosts the Caibo payment UI. You choose between two display modes:
- Inline mode — the iframe is mounted into a
<div>on your page (ideal for single-page checkout flows). - Modal mode — the SDK injects a centered modal with backdrop overlay onto
<body>(no container element required).
embedded=true to the checkout URL automatically. The payment UI detects this flag and fires window.parent.postMessage instead of performing a full-page redirect.
postMessage Event Flow
The lifecycle of an embedded checkout session, from server-side preparation through completion:Server creates the payment request
Your backend calls
POST /payment-requests with X-API-Key and receives the request id. See Create a Payment Request.Server mints a checkout session token
Your backend calls
POST /payment-requests/{id}/checkout-session with X-API-Key. The response contains a 15-minute scoped token. See Mint a Checkout Session Token.Server returns { requestId, token } to the browser
Your own authenticated endpoint hands the values to the page that will host the SDK. Your
apiKey never leaves the server.Merchant page loads SDK script
Add the SDK
<script> tag (or load it dynamically). The global CaiboCheckout object becomes available.CaiboCheckout.init() creates iframe
Your code calls
CaiboCheckout.init({ paymentUrl: '.../main?requestId=…&token=…', ... }).Checkout UI renders inside iframe
The Caibo payment page reads
token from the URL, stores it in sessionStorage, and uses it as the X-Checkout-Token header on every API call from that point on.Customer enters card & submits payment
Card data and any 3-D Secure challenge happen entirely inside the iframe — never on your domain.
3DS challenge (if required) — inside iframe
Authentication navigates within the iframe. The final authentication result is delivered via
postMessage.payment.success / payment.failure → callback
The terminal event is forwarded to
onSuccess or onFailure with the result payload.Why Embedded?
No full-page redirect
The customer stays on your page; only the iframe content changes.
Card data isolation
Raw card data lives only inside the Caibo-hosted iframe — keeping your PCI scope minimal.
Native 3DS support
3-D Secure flows happen seamlessly inside the iframe with no extra code on your side.
Works with Apple/Google Pay
Wallet payments work normally inside the iframe; no extra configuration required.
Next Steps
- Create a Payment Request — obtain the
requestIdyou’ll pass to the SDK. - Mint a Checkout Session Token — exchange your
apiKeyfor a short-lived, scoped token. - Quick Start — Inline & Modal — copy a minimal working integration.
- SDK API Reference — review every option and event payload.

