Skip to content

Sandbox

The sandbox is a complete, isolated copy of the platform at:

https://sandbox.quiqqy.ai/api/v2

Same endpoints, same payloads, same webhook signing, same error envelope — but every store is a test store, every order is fake, and no payment ever moves. Sandbox credentials are issued the moment you create an app; nothing you do there requires review.

Every credential belongs to exactly one environment. A sandbox credential presented to a production host — or the reverse — fails with auth.invalid_token. Keep two configuration sets and never mix them:

SandboxProduction
Hostsandbox.quiqqy.aiauth.quiqqy.ai / hub-api.quiqqy.ai / api.quiqqy.ai
Secret prefixqk_sb_…qk_pk_…
IssuedWith the app, immediatelyAfter go-live review
StoresTest stores you createLive merchants who authorized your app
PaymentsSimulated — always succeedReal
Emails to merchantsSuppressedSent

Create test stores two ways:

  • From the consoleSandbox → New test store creates a provisioned store and a merchant login you can use to see the storefront and back office exactly as a merchant would.
  • From the API — run the real store onboarding flow: POST /pos/signup_url against the sandbox host, open the returned URL yourself, and play the merchant through consent. This is the flow you should certify, so exercising it early pays off.

Once a test store is integrated and has a menu, generate orders without a storefront:

  1. In the console, open Sandbox → Test orders, pick the store, and compose an order from the menu you pushed — or use a preset (delivery, pickup, multi-item with modifiers, order that will be cancelled).

  2. The order is injected exactly like a customer order: your webhook receives a signed order.created within seconds.

  3. Drive it through the lifecycle from your side — accept, preparing, ready — and watch the status reflect in the console and the test storefront.

  4. Practice failure too: deny an order with each structured reason, let a delivery time out to see the retry ladder, send a test event from the webhook page.

The sandbox aims for fidelity, but a few things are intentionally different:

  • Payments are simulated. payment_status behaves realistically but no gateway is involved and refunds are instant.
  • Timing is compressed. Courier/delivery progression on test orders is minutes, not tens of minutes.
  • Data is disposable. Sandbox data may be reset periodically; do not treat it as durable storage.
  • Rate limits are the same as production defaults, so load behaviour you observe in sandbox carries over.