Skip to content

Go-live checklist

Review is what gets your app listed in the merchant app catalogue, where merchants browse and install. It is not what unlocks the API: your credentials work from the moment you create them, and a draft app already runs the full production flow for any merchant you send a consent URL to — see Testing your integration.

The review is not a formality, but it is not a mystery either: everything it checks is listed here, and everything is verifiable by you before you submit.

These are the standards production integrations are held to, at review time and continuously afterwards:

MetricRequirement
Order injection success≥ 99% of order.created deliveries acknowledged with 2xx on the first or second attempt
Time to acceptOrders accepted or denied within 5 minutes of order.created
Webhook acknowledgement2xx returned within the 10-second delivery timeout
Menu accuracyMenu on Quiqqy matches the POS; availability changes reflected within 60 seconds
Denial hygieneDenials use structured reasons; OTHER is the exception, not the norm
    • HTTPS with a valid, non-self-signed TLS certificate; no redirects.
    • X-Quiqqy-Signature verified against the raw body with a constant-time compare; requests with a bad signature rejected — demonstrated with the console’s test-delivery button.
    • Deliveries deduped on X-Quiqqy-Delivery-Id.
    • Responds 2xx in under 10 seconds with processing done asynchronously.
    • Full signup_url → consent → token → integrate-store flow completed against a store you own.
    • state parameter used and verified on the OAuth callback.
    • webhook_secret from the integrate-store response stored server-side.
    • Token refresh working; auth.consent_revoked handled by stopping sync and prompting for re-consent, not by retrying in a loop.
    • Full menu pushed with stable external_ids on every item, variant, category and modifier group.
    • The 202 async path handled: job polled to completion, failures surfaced.
    • action_required with action: "menu_push" answered with a fresh full push.
    • Item availability updates wired to the POS’s 86 flow.
    • Test orders of each type (delivery, pickup, with modifiers and variants) accepted and driven through confirmed → preparing → ready to completion.
    • Order lines mapped by external_id, with a product_name fallback for lines your app did not sync.
    • Denials sent with each structured reason at least once, including ITEM_OUT_OF_STOCK with items[].
    • Prep time set via estimated_prep_time_minutes where the POS knows it.
    • Retries with backoff and jitter on 429/5xx; Retry-After honoured.
    • 4xx responses not retried blindly.
    • POS-offline behaviour defined: orders are denied with POS_OFFLINE or the store is paused — they do not silently vanish.

Submit from the console: Apps → your app → Submit for review. The submission asks for a support contact (email reachable by Quiqqy operations), a short demo video or a store the reviewer can inspect, and confirmation of each checklist section.

A reviewer replays the critical paths against your integration — signature rejection, order accept, a denial, a menu push. Reviews are typically answered within five business days. If changes are requested, the notes appear on the app’s overview page; fix and resubmit.

Approval moves the app to beta, where you can install it for a chosen set of merchants (optionally restricted to an allow-list) before opening it up. From there you publish it yourself — published lists it in the catalogue for every merchant of the matching audience. Approval is spent once: after it, you move freely between beta, published and unpublished with no re-review, so unpublishing stays an instant self-service switch.

Unpublishing only delists. It does not cut off merchants who already installed your app, and it does not change anything about the API calls your integration makes.