Skip to content

Examples

The examples below are real payloads with personal data replaced. Use them as fixtures in your tests — especially the ones with attributes and discounts, which are the usual source of totalling mistakes.

The customer is not disclosed to you: delivery_address is null, the phone is N/A, and from the name you only get the first name and an initial.

A simple order, with a discount
{
"order_id": "616624880",
"store_id": "gi20__aaa12321",
"order_code": "TMRXMGYXV",
"order_time": "2026-05-09 22:42:42",
"order_type": "pickup",
"estimated_pickup_time": "2026-05-09 22:55:14",
"payment_method": "DELAYED",
"currency": "RON",
"allergy_info": "",
"pick_up_code": "964",
"is_picked_up_by_customer": false,
"cutlery_requested": false,
"special_requirements": null,
"loyalty_card": null,
"payment_total": 3075,
"customer_cash_payment_amount": null,
"courier": {
"name": "Andrei T.",
"phone_number": "+40700000000"
},
"customer": {
"name": "Maria I.",
"phone_number": "N/A",
"hash": "740c4544-3d69-3187-b564-80eecfa83e77",
"invoicing_details": null
},
"fees": [],
"discounts": [
{
"code": "Discount",
"description": "Discount based on customer order for glovo delivery order",
"value": 1025
}
],
"products": [
{
"id": "shaorma-mare-meniu",
"purchased_product_id": "MTgzMjYyMjA4MA==",
"quantity": 1,
"price": 4100,
"name": "Shaorma mare pui + cartofi + răcoritoare",
"attributes": []
}
],
"delivery_address": null,
"bundled_orders": []
}

The product costs 41.00 RON, the discount is 10.25 RON, and payment_total is 30.75 RON. Do not recalculate it — you collect what payment_total says.

Several products, with allergy information
{
"order_id": "616609143",
"store_id": "gi20__22222",
"order_code": "TMB9H29JC",
"order_time": "2026-05-09 22:25:02",
"order_type": "pickup",
"estimated_pickup_time": "2026-05-09 22:38:30",
"payment_method": "DELAYED",
"currency": "RON",
"allergy_info": "NU DORESC SALATĂ ÎN SHAORMA ȘI NICI SOS DE MĂSLINE!!!!",
"pick_up_code": "496",
"is_picked_up_by_customer": false,
"cutlery_requested": false,
"payment_total": 6762,
"customer_cash_payment_amount": null,
"courier": { "name": "Ionuț P.", "phone_number": "+40700000001" },
"customer": {
"name": "Andrei S.",
"phone_number": "N/A",
"hash": "11ad3b6a-e2ff-39ab-ad7b-d216aee26e82",
"invoicing_details": null
},
"fees": [],
"discounts": [
{
"code": "Discount",
"description": "Discount based on customer order for glovo delivery order",
"value": 1988
}
],
"products": [
{
"id": "cola",
"purchased_product_id": "MTgzMjU4MDQyOQ==",
"quantity": 1,
"price": 800,
"name": "Cola",
"attributes": []
},
{
"id": "shaorma-mare-meniu",
"purchased_product_id": "MTgzMjU4MDQyOA==",
"quantity": 1,
"price": 4100,
"name": "Shaorma mare pui + cartofi + răcoritoare",
"attributes": []
},
{
"id": "gyros-vatra-meniu",
"purchased_product_id": "MTgzMjU4MDQyNw==",
"quantity": 1,
"price": 3850,
"name": "Gyros pe vatră pui + cartofi + răcoritoare",
"attributes": []
}
],
"delivery_address": null,
"bundled_orders": []
}

allergy_info is free text written by the customer. Print it on the receipt as-is; do not try to interpret it and do not truncate it.

You do the delivery, so you receive the address and the customer’s real contact details.

Card payment
{
"order_id": "616615673",
"store_id": "gi20__12345",
"order_code": "BU8GXCCHK",
"order_time": "2026-05-09 22:32:01",
"order_type": "delivery",
"estimated_pickup_time": "2026-05-09 22:41:39",
"payment_method": "DELAYED",
"currency": "RON",
"pick_up_code": "242",
"is_picked_up_by_customer": false,
"cutlery_requested": false,
"payment_total": 6400,
"customer_cash_payment_amount": null,
"courier": { "name": null, "phone_number": null },
"customer": {
"name": "Elena Marinescu",
"phone_number": "+40700000002",
"hash": "211fc636-3e8a-3de0-99ab-e39c389bad4f",
"invoicing_details": null
},
"fees": [{ "code": "DeliveryFee", "description": null, "value": 699 }],
"discounts": [
{ "code": "Voucher", "description": "Calculated voucher from order", "value": 699 }
],
"products": [
{
"id": "235",
"purchased_product_id": "MTgzMjU5Nzk0Mw==",
"quantity": 1,
"price": 5000,
"name": "Ciolan afumat cu fasole",
"attributes": []
},
{
"id": "557",
"purchased_product_id": "MTgzMjU5Nzk0Mg==",
"quantity": 1,
"price": 1400,
"name": "Salată de gogoșari",
"attributes": []
}
],
"delivery_address": {
"label": "Strada Exemplu 12, București",
"latitude": 44.3935971,
"longitude": 26.1297343
},
"bundled_orders": []
}

The 6.99 RON delivery fee is fully covered by the voucher, so payment_total stays at the product total.

Cash payment — prepare the change
{
"order_id": "616610156",
"store_id": "gi20__22222",
"order_code": "CJTN7YT3E",
"order_time": "2026-05-09 22:26:03",
"order_type": "delivery",
"payment_method": "CASH",
"currency": "RON",
"payment_total": 6796,
"customer_cash_payment_amount": 10000,
"courier": { "name": null, "phone_number": null },
"customer": {
"name": "Radu Ionescu",
"phone_number": "+40700000003",
"hash": "c8a5baf3-e630-33ce-b6e6-48ea4b17ca71",
"invoicing_details": null
},
"fees": [{ "code": "DeliveryFee", "description": null, "value": 599 }],
"discounts": [
{ "code": "Voucher", "description": "Calculated voucher from order", "value": 900 },
{
"code": "Discount",
"description": "Discount based on customer order for restaurant delivery order",
"value": 900
}
],
"products": [
{ "id": "15710361", "purchased_product_id": "MTgzMjU4MzE1Mg==", "quantity": 1, "price": 999, "name": "Inele de ceapă", "attributes": [] },
{ "id": "19194151", "purchased_product_id": "MTgzMjU4MzE1MA==", "quantity": 1, "price": 4499, "name": "Pizza Anghinare", "attributes": [] },
{ "id": "15914095", "purchased_product_id": "MTgzMjU4MzE1MQ==", "quantity": 1, "price": 2499, "name": "Papanași", "attributes": [] }
],
"delivery_address": {
"label": "Strada Exemplu 8, Cluj-Napoca",
"latitude": 46.771634,
"longitude": 23.6301196
},
"bundled_orders": []
}

The customer pays with 100.00 RON (customer_cash_payment_amount) for a 67.96 RON order (payment_total). The change to prepare is the difference: 32.04 RON.

Products with paid attributes
{
"order_id": "616604244",
"store_id": "gi20__1111",
"order_code": "CJWCL11UW",
"order_time": "2026-05-09 22:19:59",
"order_type": "delivery",
"payment_method": "DELAYED",
"currency": "RON",
"payment_total": 13994,
"customer_cash_payment_amount": null,
"courier": { "name": null, "phone_number": null },
"customer": {
"name": "Ana Popescu",
"phone_number": "+40700000004",
"hash": "016e3838-d5cd-3981-8cc3-8601a2a115a7",
"invoicing_details": null
},
"fees": [{ "code": "DeliveryFee", "description": null, "value": 599 }],
"discounts": [],
"products": [
{
"id": "15914065",
"quantity": 1,
"price": 500,
"name": "Chilli Mayo",
"attributes": []
},
{
"id": "15710352",
"quantity": 1,
"price": 3599,
"name": "Chicken Burger",
"attributes": [
{ "id": "cf-15710352-17038868", "quantity": 1, "price": 999, "name": "Cartofi Fry n Dip" }
]
},
{
"id": "15710355",
"quantity": 1,
"price": 2999,
"name": "Tenders",
"attributes": [
{ "id": "cf-15710355-17147846", "quantity": 1, "price": 999, "name": "Cartofi Fry n Dip" }
]
},
{
"id": "15914058",
"quantity": 1,
"price": 3799,
"name": "Paste Quattro Formaggi",
"attributes": [
{ "id": "extra-15914058-16336474", "quantity": 1, "price": 500, "name": "Extra Parmezan" }
]
}
],
"delivery_address": {
"label": "Strada Exemplu 3, Cluj-Napoca",
"latitude": 46.75185968139803,
"longitude": 23.58961270255769
},
"bundled_orders": []
}

Attributes have a price of their own, on top of the product. The “Chicken Burger” line costs 35.99 + 9.99 RON. If you build the receipt from product price alone, you will print less than you collect.

  • An order with allergy_info filled in, including diacritics and exclamation marks.
  • An order with cutlery_requested: true.
  • A product with several paid attributes.
  • The same product twice, with different attributes.
  • A cash order where customer_cash_payment_amount exceeds the total.
  • An order with payment_total: 0, fully covered by a promotion.