url. You send the customer to that page, they pay, and you reconcile the result
by polling the session status.
Payment methods
Crypto exchanges & wallets
The customer pays from Binance, Coinbase, MetaMask, and many other
exchanges and wallets. Funds settle as USDC/USDT on Polygon.
QR Bolivia
The customer pays in local currency (Bs/BOB) by scanning a QR with their
bank app. The page shows the local amount and the USD→BOB rate.
paymentMethod when creating the session, the checkout shows a method
chooser with whichever methods your account has enabled. See
Payment methods for details.
Integration flows
Hosted redirect
Redirect the customer to the hosted checkout page, then return them to your
successUrl. The simplest integration.Embedded (iframe)
Render the checkout inside your own page. The checkout posts events to the
parent window instead of redirecting.
Authentication and security model
Meru Checkout uses a Checkout API secret key to authorize requests from your backend.The Checkout API key is separate from the main Meru API key. Checkout uses a
Bearer token (Authorization: Bearer sk_live_...) against
https://checkout-api.meru.com, whereas the rest of the Meru API uses the
api-key header. Use the right key for each API.sk_live_... and is sent as:
url.
The session id embedded in the checkout URL (for example,
https://checkout.meru.com/c/cmqx...) is opaque and pay-only. It cannot be
used to authenticate API calls or read your account — it only lets the holder pay
that one session. Reading a session via GET /checkouts/{id} is intentionally
public so your backend can poll status without exposing your secret key.Reconciliation
Webhooks are not yet available. Reconcile payments by pollingGET /checkouts/{id} from your backend
and treating succeeded as paid.
Next steps
Quickstart
Create a session and redirect a customer, end to end.
Create a session
Full reference for
POST /v1/checkouts.Payment status
Poll
GET /checkouts/{id} and read the status lifecycle.Embed (iframe)
Embed the checkout and handle
postMessage events.