1
Mint a sandbox key
namebecomes the key’s label, so a human claiming it later can tell what it was for.emailis who should be told about claiming this sandbox. Never required, never used for anything else.
2
Place a sandbox order
Send the key as a Bearer token. Test keys route to the sandbox automatically — no extra headers, no mode flag:That body is exactly what the mint response hands back as
example_order — it can be sent unchanged.max_price is in cents and is required on every order. It’s the ceiling you authorize for the total, including tax and shipping. Leave idempotency_key out unless you’re generating a fresh UUID for it; one is generated for you when omitted.3
Watch it happen
Prefer not to poll? Register a webhook URL — test mode has its own webhook config, separate from live:
4
Rehearse the failure modes
Swap the product slug to reproduce each error shape. This is the part worth spending time on — a happy-path integration meets its first real failure in production.Some fail at creation, some fail after acceptance:
All slugs live under
https://zinc.com/shop/products/. Any other product URL — including a real Amazon one — simply succeeds in the sandbox. See Sandbox & Testing for the error payloads each one produces.Practical notes
- Persist the key. It’s good for 7 days of inactivity and any use resets the clock. An agent that stores its key needs the mint endpoint roughly once.
- Don’t loop on
429. The mint endpoint is capped per IP per day. A429means reuse the key you already have, not retry — wait outRetry-Afterif you genuinely need a new one. 503is retryable. The mint path fails closed when the sandbox or its rate limiter is unavailable, rather than running uncapped. Back off and try again.- Sandbox validations are looser than live. Balance checks, URL reachability, and address verification are all bypassed. See Skipped Validations before your first real order.
Next step
Going Live
Claim the sandbox into a real account and swap in a live key.

