What actually happens during a payment
1
The customer clicks Buy
The frontend sends the product and quantity to the merchant backend. It does not call Clink.
2
The backend creates a merchant order first
Record what was bought, for how much, and by whom. This record is the source of truth in the merchant system, and every status below hangs off it.
3
The backend creates a Checkout Session
Clink returns a
sessionId and a url. That url is the checkout page.4
The customer pays
Choosing a payment method, entering card details, and passing 3DS all happen on Clink’s page. Card numbers never reach the merchant.
5
Clink sends the result to the webhook
order.succeeded on success, order.failed on failure.6
The backend confirms payment, then fulfills
Shipping, top-ups, and access are granted only after the event is received, verified, and matched to the merchant order.
Three things called “order”
Three things in those six steps can all be called an order: the Checkout Session Clink creates, the Order the customer’s payment produces, and the merchant backend’s own record. Similar names, completely different jobs.
One Session can produce several Orders. A customer whose first card is declined and who then pays with a second card produces two Orders under the same Session. So read the Order to determine the payment result, not the Session.
Reading the statuses
Checkout Session
status reports whether the payment entry point is still usable:
paymentStatus separately reports unpaid, processing, or paid, which is convenient for showing progress in the UI. For reconciliation, still read the Order.
Order
status is the payment result, and the field that maps onto the merchant business status:
pending causes the most damage. It means “not known yet”, not “failed”. Starting a second charge here is how customers get billed twice.
What counts as grounds for fulfillment
Exactly one thing: the backend received a signature-verifiedorder.succeeded event, or polled GET /order/{id} and got success, and that Order matches the merchant order record.
Two environments
Clink has a sandbox and a production environment. The sandbox is what people usually call the test environment; no real money moves.
The two environments are separate dashboards. Sandbox payment-domain resources and environment-specific configuration are not copied to production, including products, customers, orders, API keys, webhook endpoints, signing keys, and verification applications and details. On first access to production, Clink synchronizes the tenant, merchant, user sign-in credentials, and role assignments required for production access.
The sandbox is for payment integration and test transactions and does not collect production account-verification details. Do not use it for load testing, and do not put real customer names, emails, or card numbers into it. Test data cannot be used as production data.
Test card
4242 4242 4242 4242, any 3-digit CVC, any future expiry. It works in the sandbox only.
Next
Quickstart
Follow along and see a successful order in about fifteen minutes.
Choose an integration
Redirect to checkout, or embed it in a merchant-owned page.