Skip to main content

Prerequisites

Copy the API URL from the merchant dashboard and create a test key with checkout:create and checkout:read. The read scope is required by the status confirmation step below. A webhook-only integration that never calls a checkout read endpoint can use only checkout:create. Store both values as server-side environment variables:
Never expose the API key in browser JavaScript.

Create a checkout

Redirect the customer

Send the customer to hostedUrl from the response. The checkout also includes its stable ID and expiration time.

Confirm payment

Do not fulfill an order from the browser redirect alone. Confirm a completed status through the checkout status endpoint or a signed webhook.
Use a unique Idempotency-Key for each checkout attempt. Repeating the same request with the same key returns the original checkout instead of creating a duplicate.
The response includes id, hostedUrl, expiresAt, status, and warnings. Store the checkout ID with your order. A new request using the same key but different parameters returns an idempotency conflict; use a new key for a new attempt. Expected result: a customer can open the hosted URL and complete an eligible CS2 or Rust deposit. Next: read Checkout status and Webhooks before shipping.