AvrixDocumentation
API referenceStatusAvrix.ioConsole
Seller API

Welcome

  • Home
  • Getting started
  • Topic index
  • Glossary

Get started

  • Overview
  • How Avrix works
  • Architecture patterns
  • Quickstart
  • Integration tutorial
  • Authentication
  • OAuth tokens
  • Environments
  • Sandbox

Connect a partner

  • Partner onboarding
  • Sellable SKU readiness
  • Territory enforcement
  • AI assistants (MCP)
  • Connect your AI client
  • Sign-in and permissions

Catalog

  • Catalog & allocations
  • Product field matrix
  • Pricing authority
  • Currency and FX
  • Promotions
  • Caching & fairness

Sell an order

  • Store integration profiles
  • Order preview
  • Creating orders
  • Idempotency
  • Order context
  • Checkout holds
  • Hot drop
  • Fulfillment & keys
  • Keyless fulfilment
  • Order lifecycle
  • Refunds & returns

Stay in sync

  • Webhooks
  • Event reference
  • Polling & reconciliation
  • Reconciliation
  • Finance & settlement

Operate

  • Error reference
  • Troubleshooting
  • Key recovery
  • Rate limits
  • Security
  • Secrets & config
  • API key management
  • IP allowlist
  • Monitoring & support
  • Data handling
  • Partner runbook

Go live

  • Testing
  • Certification
  • Integration checklist
  • Sandbox to production
  • Go-live
  • Deployment targets

Reference

  • Integration recipes
  • Scope matrix
  • Commerce platforms
  • API clients
  • Client & helpers
  • Versioning
  • Changelog
  • FAQ
  • API reference

Search docs

Search documentation…

  1. Home
  2. /Go live
  3. /Sandbox to production

Sandbox to production

Readiness checklist and cutover steps before your first live order.

TopicsGo live

Everything that differs between the two environments, the test cases Avrix requires before granting production access, and the cutover procedure.

Sandbox to production promotion#

Diagram
gapsyesSandbox + magic SKUsCertifyReady?Fix gapsProduction keyLive + BMA
gapsyesSandbox + magic SKUsCertifyReady?Fix gapsProduction keyLive + BMA

Read this before you finish building, not after. Production enforces requirements that sandbox does not, and discovering them at cutover means rework at the worst possible time.

The environments#

Both use the same host. Your API key determines the environment, not the URL.

SandboxProduction
Base URLhttps://api.avrix.iohttps://api.avrix.io
Key environmentsandboxproduction
CatalogShared fixture catalogYour real agreements and allocations
VendorsFixture vendorYour actual vendor relationships
Key materialTest keys, no valueReal keys, real cost
Magic SKUsAcceptedRejected — SANDBOX_MAGIC_VALUE_REJECTED
Commercial evidenceMinimalFull set enforced
Consumer geo enforcementNever enabledEnabled where the deployment enables it
WebhooksIsolated per API keyPer registered endpoint
Financial impactNoneReal settlement obligations

Sandbox is a shared catalog#

Every integrator's sandbox key routes to the same fixture catalog. You see the same products, allocations, and availability as everyone else.

Practical consequences: use unique orderReference values, since the namespace is shared; expect availability counts to move for reasons unrelated to your testing; and prefer SANDBOX-ALWAYS-001, whose pool is continuously replenished, over pools that can be exhausted by other integrators' load tests.

Your orders and webhooks remain isolated per API key. Nobody can read your orders.

Commercial evidence#

The most common cause of a sandbox-passing integration failing in production.

Every order carries an integrationOrderContext describing the retail transaction. Sandbox accepts a minimal set so you can iterate quickly. Production enforces the full set.

The authoritative field matrix — including all eleven fields required on production keys — is in Order context. Treat that page as the contract; do not rely on a shortened summary here.

Implement the production set from day one, even in sandbox. Sending complete evidence in sandbox costs nothing and removes an entire class of cutover failure.

Headline production gotchas:

  • paymentProcessorReference — Required on production keys. Use the real reference from your PSP; fixture values like sandbox_pay_* fail with SANDBOX_MAGIC_VALUE_REJECTED.
  • consumerIp — Required on production keys. Behind a load balancer or CDN, the immediate peer address is your own infrastructure. You must extract the real client address from proxy headers. Private and reserved ranges are rejected (CONSUMER_IP_REQUIRED / CONSUMER_IP_INVALID).
  • checkoutSessionId — Required on production keys (not optional / recommended).

Also: SANDBOX_MAGIC_VALUE_REJECTED. Any fixture value left in your code — a magic SKU, a sandbox_pay_* reference — fails on a production key. Audit for hardcoded test values before cutover.

Certification#

Avrix requires evidence that your integration handles the failure paths, not just the happy path. Failure paths are where money is lost, and they are what production access is granted against.

The full 29-case suite, evidence format, and fixture mapping live in Certification — run that list in sandbox and keep requestIds. This page keeps only the cutover narrative below.

Before cutover, confirm especially: allocation merge into your sellable set, unknown-outcome replay with a stable Idempotency-Key, invalid webhook signature rejection, and post-charge NO_AVAILABLE_KEYS refund at your PSP.

Production readiness checklist#

Credentials#

  • Production key created with least-privilege scopes — not a copy of your sandbox scope set
  • Separate keys per service
  • Secrets in a managed secret store, never in source control
  • Rotation scheduled and the procedure rehearsed
  • IP allowlist configured, verified with GET /whoami-ip from production infrastructure
  • No key in client-side code, mobile apps, or logs

Implementation#

  • All fixture values removed — no magic SKUs, no sandbox_* references
  • Full commercial evidence set implemented, including consumerIp from real proxy headers
  • Catalog sync includes the allocations merge
  • All paths versioned /api/seller/v1/...
  • Idempotency-Key on every write, stable per logical order
  • expectedUnitPriceCents echoed from preview on every order
  • Entitlements persisted before the buyer response
  • Webhook signatures verified with the raw body and constant-time comparison

Operations#

  • Alerting on error rate by code
  • Alerting on webhook delivery failure
  • requestId captured in structured logs
  • Reconciliation job scheduled
  • Runbook written for: sold out after payment, unknown order outcome, webhook endpoint down, key rotation, price mismatch spike
  • Escalation path documented, including who is on call

Commercial#

  • BMA active with each vendor — confirm hasActiveBma on GET /whoami
  • Allocations granted for every SKU you intend to sell
  • Territory pricing confirmed for every market you sell into
  • Buyer-facing refund policy published and consistent with your PSP setup
  • Settlement and invoicing understood by your finance team

Cutover#

  1. Request production access with your certification evidence.
  2. Create the production key with least-privilege scopes. Do not reuse the sandbox key's scope set without review.
  3. Configure the allowlist if you use one, verified from production infrastructure.
  4. Register production webhooks. Sandbox endpoint registrations do not carry over. Store the new secret.
  5. Cold-start the catalog against production. Your sandbox mirror is fixture data and must be discarded.
  6. Verify with GET /whoami — environment must be production and hasActiveBma true.
  7. Run one controlled live order. A single unit of a low-value SKU, ideally an internal purchase. Confirm the key delivers, the webhook arrives and verifies, and the order reconciles.
  8. Enable buyer traffic gradually. A percentage rollout or a single market first, so a defect affects few buyers.
  9. Watch for 24 hours — error rates by code, webhook delivery success, reconciliation drift.

Rollback#

If something is wrong after cutover:

Immediate. Disable the affected SKUs or halt checkout at your storefront. This stops new exposure without touching Avrix.

If credentials are implicated. Revoke the production key in the Console. All requests stop within about 60 seconds. Availability is recoverable; leaked inventory is not.

If the webhook endpoint is failing. Disable it in the Console rather than letting it fail repeatedly into auto-disable, fix it, then replay the missed deliveries.

What you cannot roll back. Fulfilled orders. Keys are drawn from real inventory and delivered. Use the refund and key return path — see Order lifecycle.

Reconcile before resuming: compare your order records against GET /orders for the affected window and resolve every discrepancy before taking new orders.

After launch#

Monitor: error rate by code (a spike in CATALOG_PRICE_MISMATCH means stale catalog data), webhook delivery success, reconciliation drift, allocation depletion, and rate-limit headroom.

Maintain: rotate keys on schedule, keep catalog sync current, review new webhook events as they are introduced, and re-run the certification suite after significant changes to your checkout.

Related#

  • Certification — required test cases and evidence format
  • Authentication — keys, scopes, rotation
  • Monitoring and support
  • Order lifecycle — failure modes
  • Webhook guide — verification and reconciliation
  • Error reference — every code

What links here

Published guides that link to this page.

  • AuthenticationAPI keys, scopes, environments, rotation, and IP allowlists.
  • CertificationRequired sandbox test cases and evidence format before production access.
  • EnvironmentsSandbox and production share api.avrix.io; key prefixes, fixtures, and behavioral differences.
  • Error referenceHTTP statuses, canonical error codes, and recovery actions.
  • GlossaryCanonical terms for sellers, SKUs, allocations, orders, and fulfillment.
  • Go-liveProduction prerequisites, cutover procedure, and rollback.
  • Integration checklistPhase-by-phase tracker from evaluation through post-launch.
  • Order contextintegrationOrderContext field matrix, production evidence, and validation layers.
PreviousIntegration checklistNextGo-live

Need help with this page?

Contact support

AI tools

  • Ask ChatGPT
  • Ask Claude

On this page

  • Sandbox to production promotion
  • The environments
  • Sandbox is a shared catalog
  • Commercial evidence
  • Certification
  • Production readiness checklist
  • Credentials
  • Implementation
  • Operations
  • Commercial
  • Cutover
  • Rollback
  • After launch
  • Related

Related pages

  • SandboxTest environments, magic SKUs, and auth triage.
  • EnvironmentsSandbox and production share api.avrix.io; key prefixes, fixtures, and behavioral differences.
  • AuthenticationAPI keys, scopes, environments, rotation, and IP allowlists.
  • CertificationRequired sandbox test cases and evidence format before production access.
  • Go-liveProduction prerequisites, cutover procedure, and rollback.