Sandbox testing & going live
What to prove in sandbox before switching a v1 integration to production
The hosts, the API key prefixes and the card numbers are the same whichever version you integrate — they live in Test cards. What follows is the v1-specific part: the endpoint-by-endpoint checklist, and the cutover.
Typical testing checklist
Before switching to production, confirm the following all succeed in sandbox:
- Auth + capture without 3DS —
POST /v1/payment/directwith4111111111111111returnsStatus: capturedandCode: 0. - 3DS challenge —
POST /v1/payment/directwith4000000000003220and3DS: "yes"returns3DSecureUrl; after redirect,/v1/statusreportscaptured. - Webhook signature — a webhook reaches your configured sandbox endpoint, signature verifies successfully with your
whsec_...sandbox secret (see Webhooks). - Refund —
/v1/refundon the captured transaction returnsStatus: captured,OperationType: refund. - Status lookup by
Tid—/v1/statuswith your ownTidreturns the same transaction as when queried byReference. - Error handling — a malformed request produces the expected numeric
Code(e.g.206for an invalid card number). See Error codes.
A mismatch between the host and the key prefix — a test key sent to the
production host, say — is rejected with Code: 3 (Invalid API key).
Going live
Once the checklist passes, the cutover is simple:
- Switch the base URL from
https://api.sandbox.settleflow.iotohttps://api.settleflow.ioand replace thepk_test_key with yourpk_live_key. - Replace the sandbox
whsec_secret with the production one. - Point your
ReturnUrland your dashboard webhook endpoint at production URLs (HTTPS required). - Run a single low-value transaction on a real card and reconcile it in the merchant dashboard.
- Monitor the first production webhook deliveries to confirm signatures verify with the live secret.