Going Live
The checklist between a green sandbox and production traffic.
Before you flip the switch
Finish the sandbox checklist
All five sections of the
sandbox test checklist
pass: onboarding including the request-for-information loop, money
movement including the 666.00 and 777.00 failure paths, wallets
including one expired operation, idempotent webhook processing, and
retry hygiene.
Complete your own onboarding
Live access requires your organization to be fully onboarded: partner
terms executed, and your own business verification approved. Until both
are done, live calls return 403 partner_tos_required or
403 partner_kyb_required. Your Rasto contact drives this with you,
and it does not depend on your code, so start it early.
Register live webhook endpoints
Endpoints are per environment, and sandbox registrations do not carry over. Register the production URL and store its signing secret in your production secret store.
Register and activate live wallet keys
If you use wallets: register both public halves in the live
environment, and complete the Recovery Key activation ceremony. Until
it finishes, creating a send returns 400 activation_required, while
wallet creation and deposits work normally.
Your live Recovery Key should not be the key you used in sandbox.
Swap key and base URL
- BASE=https://sandbox.rasto.co KEY=sk_test_...
+ BASE=https://api.rasto.co KEY=sk_live_...
That is the entire code change. Endpoints and shapes are identical, and
keys must match their host (401 environment_mismatch otherwise).
Run one real end-to-end
Onboard one real customer, create their virtual account, and send a
small real payment before opening the gates. Verify the delivered
amount, the tx_hash, your fee line, and every webhook.
Operational habits worth setting up on day one
- Log the
request-idfrom every response header. It is the fastest path through support. - Reconcile from
GET /api/transactionsandGET /api/balances, not from your own event replay. See Reconciliation. - Alert on
deposit.on_hold. A held deposit needs human attention. - Alert on any verifier refusal. A signing service that refuses to sign is doing its job, and it is also the highest-signal alert in your integration: something did not match.
- Restrict live keys. Use
read_onlykeys anywhere you do not strictly need mutations, and rotate any key that may have leaked. Rotation gives the old key a grace window. - Guard the virtual-account PATCH. Whoever can repoint a destination controls where all future deposits are delivered.
Keep your sandbox integration running in CI after launch. It is the cheapest regression net for API-facing code, and sandbox behavior always matches live.