Skip to main content
This guide walks through the hosted redirect flow end to end. You’ll need your Checkout API secret key (sk_live_...).
Keep your sk_live_ key server-side only. The steps below run on your backend; the customer only ever sees the opaque session url.
1

Create a checkout session

From your backend, call POST /v1/checkouts with your secret key. The response includes a url to send the customer to.
The response (201 Created) contains the session and its hosted url:
2

Redirect the customer to the hosted page

Send the customer to session.url. From a server you typically issue an HTTP redirect; from a button you can link directly.
In a Node/Express backend you can redirect right after creating the session:
3

Customer pays on the hosted page

The customer completes the payment on checkout.meru.com. On success they are redirected to your successUrl; on cancel, to your cancelUrl.
Landing on successUrl is a client-side signal. Always confirm the payment server-side (next step) before fulfilling an order.
4

Confirm the payment by polling

Poll GET /checkouts/{id} from your backend until status is terminal. Treat succeeded as paid. This endpoint is public (keyed by the opaque session id) and does not require your secret key.

Next steps

Create a session

Every field accepted by POST /v1/checkouts.

Payment status

The full status lifecycle and the qr object.

Payment methods

Crypto exchanges vs QR Bolivia.

Embed (iframe)

Embed the checkout instead of redirecting.