This guide uses the recommended production path: merchant server creates an order and checkout session, the browser opens SDK UI, and a webhook confirms payment.

1. Configure the merchant tenant

In SixPay Merchant Console, configure settlement and webhook details for the tenant. Copy the tenant ID from Integration. Then open Developers > Merchant API Keys. An owner or admin creates a named key with the checkout_session:create scope. The mapi_... secret is shown once; store it in your server secret manager.

2. Install SDK UI

For a React application using Privy, also install @sigworld/sixpay-wallet and use your own Privy application credentials.

3. Create a checkout session on the server

Create your merchant order first, then call the SixPay session endpoint from the server. See the checkout session guide for the request schema.
Return only session.id, session.checkoutToken, and session.expiresAt to the page that starts checkout.

4. Open checkout

5. Confirm with a webhook

Do not treat the browser’s success display as the authoritative payment confirmation. Verify the signed webhook, deduplicate by id, and update the order using order.intentId and order.merchantOrderId. Continue with webhook integration.
Use a short expiration for a checkout session and create a new session when a customer retries an expired order.