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.