{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/itsacheckmate/refs/heads/main/json-schema/marketplace-api-order-schema.json", "title": "Order", "description": "An order to submit into the POS.", "type": "object", "required": [ "external_id", "items" ], "properties": { "external_id": { "type": "string", "description": "Identifier of the order in the originating ordering platform." }, "order_source": { "type": "string", "description": "Ordering platform the order originated from." }, "group_order": { "type": "boolean", "description": "Whether this is a group order placed by multiple individuals together.", "default": false }, "customer": { "title": "Customer", "type": "object", "description": "Customer who placed the order.", "properties": { "name": { "type": "string", "description": "Customer name." }, "phone": { "type": "string", "description": "Customer phone number in E.164 format." } } }, "items": { "type": "array", "description": "Line items in the order.", "items": { "title": "OrderItem", "type": "object", "description": "A single line item in an order.", "properties": { "id": { "type": "string", "description": "Menu item identifier." }, "name": { "type": "string", "description": "Item name." }, "quantity": { "type": "integer", "description": "Quantity ordered." }, "price": { "type": "integer", "description": "Unit price in the smallest currency unit (cents)." } } } }, "totals": { "title": "OrderTotals", "type": "object", "description": "Monetary totals for an order, in the smallest currency unit (cents).", "properties": { "subtotal": { "type": "integer", "description": "Sum of line items before tax." }, "tax": { "type": "integer", "description": "Tax amount." }, "total": { "type": "integer", "description": "Grand total charged." } } }, "payment_status": { "type": "string", "description": "Payment status of the order.", "enum": [ "paid", "unpaid", "refunded" ] } } }