Sandbox vs Production

OneFinOps runs sandbox and production as fully isolated stacks. Tokens issued for one will not work against the other; the auth layer rejects cross-environment audiences. Plan early which environment your integration targets.

At a glance

SandboxProduction
Base URLhttps://api-sandbox.in.onefinops.comhttps://api.in.onefinops.com
OAuth client-id prefixofin_test_*ofin_live_*
Upstream IRP / EWBNIC sandboxesLive NIC
DataResettable, no legal weightPersistent, legally binding
Rate limitsSame defaults (60 rpm / 10 rpm credentials)Same defaults; raise via support

Where they differ behaviourally

  • Signed invoice in sandbox is signed by NIC's sandbox certificate — do not present these in production accounting systems.
  • EWB validity periods in sandbox follow NIC sandbox rules and may be shorter than production.
  • Cancellation windows (24h IRN, 24h EWB cancel, 72h EWB reject) are honoured in both environments. Sandbox does not extend them.
  • Webhook deliveries in sandbox post to whatever URL you registered against your sandbox subscription — keep them separate from production endpoints.

What they share

  • Identical request/response shape, identical status enums, identical error codes.
  • Same OAuth scopes and same scope-policy enforcement.
  • Same idempotency rules and the same 24-hour replay window.

Promotion checklist

Before you flip your integration to api.in.onefinops.com:

  1. Provision a production OAuth client with the minimum scope set you actually need.
  2. Upload production GSP credentials for every GSTIN you plan to file under.
  3. Move secrets out of build artefacts into a real secrets manager (we recommend short-lived, rotated tokens cached by your client — never the client_secret in a frontend).
  4. Update webhook URLs to your production handler.
  5. Set up alerting on failed_terminal IRNs and on webhook delivery dead-letters.