Guides
Create your first payment
Connect an order record to a hosted Outpay checkout.
Who this is for
Developers connecting an existing order-management system to Outpay for the first time.
Before you begin
- An API key with the
checkouts:createscope. - An internal order ID you can pass through as metadata and use as an idempotency key.
Steps
Generate an API key with
checkouts:create and keep it server-side.Create one checkout with the order ID in
metadata.orderId and a stable Idempotency-Key.Persist the returned checkout ID, payment URL, amount, and expiry alongside your order.
Redirect the customer to
paymentUrl.Wait for
checkout.paid, after verifying its signature.Fulfil the order exactly once, using a unique order-state transition.
Expected result
The customer pays Base USDC directly to the merchant's wallet, and your server can reconcile the order from the checkout reference and transaction hash alone.
Common problems
| Problem | Likely cause | Next step |
|---|---|---|
Checkout creation returns 409 | An idempotency key was reused with a different order payload, or the merchant is inactive. | See errors for the exact code and required action. |
| No webhook ever arrives | No webhook endpoint is configured yet. | Configure one from Developers before relying on webhooks; poll as a fallback in the meantime. |
Related documentation
- Quickstart — the same flow with full request/response examples.
- Receive and process webhooks — the fulfilment step in detail.
- Idempotency — safely retrying the create-checkout call.