This quickstart creates a hosted checkout session from a trusted server and redirects the customer to Zahlo-hosted checkout. The same session contract can be mounted in-page; use Customize checkout when you need that mode.

1. Create a checkout session

Use the merchant API key only from your server:
Store the returned session ID and client token on the server-side integration boundary. Do not log the token. The response contains a session ID, a checkout URL, a short-lived client token, status, and expiry. Store the session ID with your order. Return only the URL or browser token needed for the selected integration.

2. Redirect the customer

Redirect to the returned checkoutUrl, or submit the client token to the session redirect endpoint from the checkout page or use the JavaScript SDK. The token is sent in the request body or SDK configuration and never in the URL.

3. Confirm payment

Listen for the signed payment event, verify its signature, deduplicate by event ID, and fulfill only after the event confirms the payment. A browser return is not proof of payment.

4. Test and launch

Use the Testing guide to exercise success, failure, cancellation, expiry, retries, and webhook delivery. When ready, follow Go live to create production credentials and configure allowed origins.