Skip to content

Sample payloads

Copy-paste material for building and testing. Every payload here is complete — no elided fields — and consistent: the ids in the menu push are the ids that come back on the order. Monetary amounts are integers in the currency’s minor unit (1699 = $16.99).

The exact request Quiqqy makes to your webhook endpoint for a new delivery order, headers included. Verification and retry rules: Webhooks.

POST /webhooks/quiqqy HTTP/1.1
Host: pos.example.com
Content-Type: application/json
X-Quiqqy-Event: order.created
X-Quiqqy-Delivery-Id: 9b3e6a1c-4f2d-4e8a-b1c9-7d5e2f8a0c4b
X-Quiqqy-Signature: 3f9c1e7a8b2d4c6e0f1a3b5d7c9e2f4a6b8d0c2e4f6a8b0d1c3e5f7a9b2d4c6e
X-Quiqqy-Location-Id: LOC-001
{
"event_type": "order.created",
"event_id": "9b3e6a1c-4f2d-4e8a-b1c9-7d5e2f8a0c4b",
"store_id": "st_8fk2c1p9",
"location_id": "LOC-001",
"timestamp": "2026-07-30T12:34:56.000Z",
"data": {
"id": "ord_9d31f2",
"order_number": "ORD-20260730-0042",
"order_type": "delivery",
"status": "pending",
"payment_status": "paid",
"customer_id": "cus_1a2b3c",
"currency": "USD",
"subtotal": 3548,
"tax": 319,
"delivery_fee": 200,
"discount": 0,
"tip": 300,
"total_amount": 4367,
"prices_include_tax": false,
"tax_breakdown": [
{ "name": "Sales tax", "rate": 9.0, "amount": 319 }
],
"special_instructions": "Ring the bell twice",
"created_at": "2026-07-30T12:34:56.000Z",
"items": [
{
"product_id": "prd_aa11e8",
"product_variant_id": "prv_bb22f9",
"product_name": "Margherita Pizza (Large)",
"quantity": 1,
"unit_price": 1699,
"subtotal": 1849,
"tax_amount": 166,
"external_id": "SKU-MARG",
"variant_external_id": "SKU-MARG-LG",
"options": [
{
"product_id": "prd_cc33a0",
"product_name": "Extra basil",
"quantity": 1,
"unit_price": 150,
"external_id": "ADD-BASIL"
}
]
},
{
"product_id": "prd_dd44b1",
"product_variant_id": null,
"product_name": "Tiramisu",
"quantity": 2,
"unit_price": 750,
"subtotal": 1500,
"tax_amount": 135,
"external_id": "SKU-TIRAMISU",
"variant_external_id": null,
"options": []
},
{
"product_id": "prd_ee55c2",
"product_variant_id": null,
"product_name": "Sparkling water",
"quantity": 1,
"unit_price": 199,
"subtotal": 199,
"tax_amount": 18,
"external_id": null,
"variant_external_id": null,
"options": []
}
]
}
}

POST /pos/stores/st_8fk2c1p9/menus — a complete small menu: one named menu, two categories, three items (one with variants and a modifier group), one add-on. This body is under the ~100-item threshold, so it applies synchronously with a 200. Field semantics: Menu sync.

{
"menus": [
{
"name": "Main Menu",
"external_id": "menu-main",
"description": "All day",
"categories": [
{ "external_id": "cat-pizza", "name": "Pizza" },
{ "external_id": "cat-dessert", "name": "Dessert" }
],
"items": [
{
"external_id": "SKU-MARG",
"name": "Margherita Pizza",
"description": "Tomato, mozzarella, basil",
"price": 1299,
"image_url": "https://cdn.pos.example.com/img/marg.jpg",
"available": true,
"categories": ["cat-pizza"],
"addon_groups": ["grp-toppings"],
"variant_type": "stand_alone",
"variants": [
{ "external_id": "SKU-MARG-SM", "variant_name": "Small", "price": 1299, "available": true },
{ "external_id": "SKU-MARG-LG", "variant_name": "Large", "price": 1699, "available": true }
]
},
{
"external_id": "SKU-BURRATA",
"name": "Burrata",
"description": "With heirloom tomatoes",
"price": 1150,
"available": true,
"categories": ["cat-pizza"]
},
{
"external_id": "SKU-TIRAMISU",
"name": "Tiramisu",
"price": 750,
"available": true,
"categories": ["cat-dessert"]
}
]
}
],
"add_ons": [
{ "external_id": "ADD-BASIL", "name": "Extra basil", "price": 150 }
],
"addon_groups": [
{
"external_id": "grp-toppings",
"name": "Toppings",
"min_select": 0,
"max_select": 3,
"required": false,
"add_ons": ["ADD-BASIL"]
}
]
}
200 OK
{ "status": "success", "message": "Menu pushed to Quiqqy" }

POST /pos/stores/st_8fk2c1p9/items/availability — 86 the burrata until tomorrow’s opening, 86 the large Margherita indefinitely, restore the tiramisu. Semantics: Item availability.

{
"items": [
{ "external_id": "SKU-BURRATA", "available": false, "snooze_until": "2026-07-31T04:00:00Z" },
{ "external_id": "SKU-MARG-LG", "available": false },
{ "external_id": "SKU-TIRAMISU", "available": true }
]
}
200 OK
{ "status": "success", "message": "Availability updated" }

POST /pos/orders/ord_9d31f2/cancel — the kitchen is out of an item. The free-text reason is what the customer sees; the structured reason_code drives automatic remediation. Reason codes: Errors.

{
"reason": "Burrata is finished for the day",
"reason_code": "ITEM_OUT_OF_STOCK"
}
200 OK
{
"status": "success",
"order_id": "ord_9d31f2",
"order_status": "cancelled",
"reason": "Burrata is finished for the day",
"reason_code": "ITEM_OUT_OF_STOCK"
}