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.
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.