Webhooks allow you to automate custom backend actions in response to the transitions that happen in a order & payment flows.
Events are our way of letting you know when something interesting happens in your account. When an event occurs, we create a new Event object. If you registered a webhook endpoint to receive that event, we send it to your endpoint as part of a POST request.
The following event shows an order cancellation. To generate a similar event, you can use action list on your Popina Order dashboard or via our API.
{
"object": "order",
"created": "2023-06-06T14:36:37.000000+00:00",
"event": "late", //new, pending, rejected, accepted, paid, late, ready, cancelled, failed, delivered, refunded or require_action
"parameters": {
"period": 16,
"newDate": "2023-06-06 16:46"
},
"data": {
"id": 2170,
"createdAt": "2023-06-06T14:36:37.000000+00:00",
"date": "2023-06-06T16:30:21.000000+00:00",
"asap": false,
"preparationNumber": 4,
"tableNumber": 23,
"notes": null,
"state": "in_progress", //new, in_progress, rejected, cancelled, failed, fulfilled or expired
"paymentState": "paid", //new, requires_action, awaiting_payment, failed, processing, partially_paid, cancelled, paid, refunded, expired or partially_refunded
"itemsTotal": 2400,
"discountsTotal": 0,
"managementFees": 0,
"shippingCost": 0,
"fees": 0,
"total": 2400,
"source": "popina",
"createdByGuest": false,
"deliveryAddress": {
"name": "Boulot",
"phone": "0987898789",
"phone2": null,
"street": "3 rue théodore blanc",
"street2": null,
"buildingType": "résidence",
"building": null,
"floor": "12",
"elevator": true,
"intercom": null,
"postalCode": "33520",
"fax": null,
"city": "Bruges",
"country": "France",
"description": null,
"longitude": -0.612747,
"latitude": 44.881793
},
"externalId": null,
"promotion": {
"id": 33,
"name": "Black friday",
"type": "value",
"value": 1000,
"code": "black-friday",
"imageUrl": null
},
"customer": {
"id": 927,
"email": "test@email.com",
"firstName": "firstName",
"lastName": "lastName",
"phone": "0987898789",
"anonymous": false
},
"shop": {
"id": 34,
"name": "shop"
},
"shopMode": {
"id": 25,
"mode": {
"code": "take-out", //delivery, on-site or take-out
"name": "Emporter"
}
},
"payment": [
{
"id": 1888,
"paymentAmount": 2400,
"state": "paid",
"createdAt": "2024-02-06 15:46:53",
"updatedAt": "2024-02-06 15:47:08",
"paymentMethodCode": "paygreen",
"paymentMethodName": "Paygreen"
}
],
"setting": {
"customerIdentifier": "beeper", //table_easel, beeper or name
"value": "4",
"cutlery": true
},
"loyalty": {
"customer": {
"id": "2b630af8-d94f-4db9-a203-795338461ce8",
"firstName": "John",
"lastName": "Doe",
"phone": "+33652187094",
"email": "john@doe.com"
},
"rewards": [
{
"id": "rew_52431421b6",
"name": "5€ off your next order",
"description": "Get 5€ off your next order with this reward.",
"type": "AMOUNT", //FREE_PRODUCT, AMOUNT or PERCENT
"image": null,
"value": 500,
"couponCode": null,
"productSku": null,
"productId": null,
}
]
},
"orderItems": [
{
"id": 2630,
"note": "Pas d'oignion",
"quantity": 1,
"unitPrice": 1000,
"unitsTotal": 1000,
"discountsTotal": 0,
"taxesTotal": 58.54,
"total": 1000,
"free": false,
"serveLater": false,
"product": {
"id": 515,
"externalId": null,
"name": "BURGER",
"price": "100",
"tax": {
"rate": 0.025
},
"options": [
{
"id": 456,
"externalId": null,
"sideComponent": false,
"name": "Huile d'olive épicée",
"optionVariant": [
{
"id": 3809,
"externalId": null,
"sideComponent": null,
"name": "Huile d'olive épicée",
"price": 200,
"quantity": 0
}
],
"position": 2,
}
],
"sku": "FOX_6735EF3F27F22",
"imageUrl": "uploads\/images\/products\/\/banniere-65af9d0ba203e645672473.jpeg",
"categories": [
{
"id": 91,
"externalId": null,
"sideComponent": null,
"name": "BURGER SEMAINE"
}
]
},
"stepList": [
{
"id": 2,
"name": "Choix du Burger ? 🍔",
"stepItem": {
"id": 52,
"products": [
{
"id": 1876,
"calory": null,
"withAlcool": false,
"serveLater": false,
"new": false,
"blockedBySlot": false,
"restricted": false,
"options": [],
"aliments": [
{
"id": 33,
"code": "ONION",
"logoUrl": "uploads/images/aliments//oignon-667c269ca64a2533576624.png",
"logoSvgFile": null,
"logoSvgUrl": null,
"enabled": true,
"svg": null,
"translations": [
{
"locale": "fr_FR",
"name": "Oignon",
"description": null
},
{
"locale": "es_ES",
"name": "Cebolla",
"description": null
},
{
"locale": "en_US",
"name": "Onion",
"description": null
}
]
}
],
"upSellingProducts": [],
"crossSellingProducts": [],
"outOfStock": false,
"preparationTime": 0,
"sku": "FOX_669E5187E5510",
"displayNotes": true,
"type": "product",
"steps": [],
"enabled": true,
"externalId": null,
"imageUrl": null,
"modes": [
{
"id": 5043,
"code": "on-site",
"anonymous": true,
"price": 400,
"tax": {
"rate": 0.21
},
"enabled": true
},
{
"id": 5044,
"code": "take-out",
"anonymous": true,
"price": 400,
"tax": {
"rate": 0.21
},
"enabled": true
},
{
"id": 5045,
"code": "delivery",
"anonymous": true,
"price": 400,
"tax": {
"rate": 0.21
},
"enabled": true
}
],
"translations": [
{
"locale": "fr_FR",
"id": 4440,
"name": "T GIANT",
"description": "L'icône de toutes les générations, rendue célèbre grâce à sa sauce Giant inimitable. (Origine viande bovine possible : France / Espagne / Pologne)"
},
{
"locale": "es_ES",
"id": 5881,
"name": "T GIGANTE",
"description": "El icono de todas las generaciones, que se hizo famoso gracias a su inimitable salsa Giant. (Posible origen vacuno: Francia / España / Polonia)"
},
{
"locale": "en_US",
"id": 6077,
"name": "T GIANT",
"description": "The icon of all generations, made famous thanks to its inimitable Giant sauce. (Possible beef origin: France / Spain / Poland)"
}
],
"name": "T GIANT",
"tax": {
"rate": 0.21
}
}
],
"price": 0
},
"stepTotalPrice": 0
}
]
}
]
}
}
The concerned object with this event. Up to now we manage only order. But you should take it into consideration so there can be no mistaking with other objects in the future.
The date and time when this event occured.
Additional parameters, used to highlight special data by event:
The new data for this object.
{
"object": "order",
"created": "2024-05-10T14:51:26.000000+02:00",
"event": "new",
"param": [],
"data": {
"id": 3182,
"createdAt": "2024-05-10T14:51:26.000000+02:00",
"date": "2024-05-10T15:00:00+02:00",
"asap": false,
"preparationNumber": 66,
"tableNumber": 11,
"notes": "test insrecution",
"state": "in_progress",
"paymentState": "awaiting_payment",
"itemsTotal": 6700,
"discountsTotal": 1000,
"managementFees": 100,
"shippingCost": 0,
"fees": 0,
"total": 5800,
"source": "foxorders-front",
"createdByGuest": false,
"deliveryAddress": null,
"externalId": null,
"promotion": {
"id": 33,
"name": "Black friday",
"type": "value",
"value": 1000,
"code": "black-friday",
"imageUrl": null
},
"customer": {
"id": 48305,
"email": "john.doe@foxorders.com",
"firstName": "John",
"lastName": "Doe",
"phone": "0987898789",
"anonymous": false
},
"shop": {
"id": 81,
"name": "Mts restaurant"
},
"shopMode": {
"id": 168,
"mode": {
"code": "on-site",
"name": "Sur place"
}
},
"payment": [],
"setting": {
"customerIdentifier": "table_easel",
"value": "10",
"cutlery": false
},
"loyalty": null,
"orderItems": [
{
"id": 3858,
"note": "",
"quantity": 3,
"unitPrice": 2200,
"unitsTotal": 2200,
"discountsTotal": 0,
"taxesTotal": 1145.45,
"total": 2200,
"free": false,
"serveLater": false,
"product": {
"id": 773,
"externalId": null,
"name": "Salade césar",
"price": 100,
"tax": {
"rate": 0.21
},
"options": [],
"sku": "FOX_6735EF3F27F22",
"imageUrl": null,
"categories": [
{
"id": 190,
"externalId": null,
"name": "Entrée"
}
]
}
},
{
"id": 3859,
"note": "",
"quantity": 1,
"unitPrice": 100,
"unitsTotal": 100,
"discountsTotal": 0,
"taxesTotal": 17.36,
"total": 100,
"free": false,
"serveLater": true,
"product": {
"id": 772,
"externalId": null,
"name": "Tomates mozzarella",
"price": 100,
"tax": {
"rate": 0.21
},
"options": [],
"sku": "FOX_6735EF3F27F22",
"imageUrl": null,
"categories": [
{
"id": 190,
"externalId": null,
"name": "Entrée"
}
]
}
}
]
}
}
{
"object": "order",
"created": "2024-05-10T14:46:50.000000+02:00",
"event": "new",
"param": [],
"data": {
"id": 3181,
"createdAt": "2024-05-10T14:46:50.000000+02:00",
"date": "2024-05-11T10:25:00+02:00",
"asap": false,
"preparationNumber": 65,
"tableNumber": null,
"notes": null,
"state": "in_progress",
"paymentState": "awaiting_payment",
"itemsTotal": 1000,
"discountsTotal": 0,
"managementFees": 100,
"shippingCost": 0,
"fees": 0,
"total": 1100,
"source": "foxorders-front",
"createdByGuest": false,
"deliveryAddress": null,
"externalId": null,
"promotion": null,
"customer": {
"id": 48305,
"email": "john.doe@foxorders.com",
"firstName": "John",
"lastName": "Doe",
"phone": "0987898789",
"anonymous": false
},
"shop": {
"id": 81,
"name": "Mts restaurant"
},
"shopMode": {
"id": 167,
"mode": {
"code": "take-out",
"name": "Emporter"
}
},
"payment": [],
"setting": {
"customerIdentifier": "table_easel",
"value": "10",
"cutlery": false
},
"loyalty": null,
"orderItems": [
{
"id": 3857,
"note": "",
"quantity": 2,
"unitPrice": 100,
"unitsTotal": 100,
"discountsTotal": 0,
"taxesTotal": 173.55,
"total": 100,
"free": false,
"serveLater": false,
"product": {
"id": 1512,
"externalId": null,
"name": "pizza Tajin",
"price": 100,
"tax": {
"rate": 0.21
},
"options": [
{
"id": 495,
"externalId": null,
"name": "Limonade",
"optionVariant": [
{
"id": "Over 9 levels deep, aborting normalization",
"externalId": "Over 9 levels deep, aborting normalization",
"name": "Over 9 levels deep, aborting normalization",
"price": "Over 9 levels deep, aborting normalization",
"quantity": "Over 9 levels deep, aborting normalization"
}
]
}
],
"sku": "FOX_6735EF3F27F22",
"imageUrl": null,
"categories": [
{
"id": 190,
"externalId": null,
"name": "Entrée"
},
{
"id": 191,
"externalId": null,
"name": "Pizza"
},
{
"id": 192,
"externalId": null,
"name": "Poisson"
}
]
}
}
]
}
}
{
"object": "order",
"created": "2024-05-10T15:48:24.000000+02:00",
"event": "sending",
"param": [],
"data": {
"id": 3190,
"createdAt": "2024-05-10T15:48:21.000000+02:00",
"date": "2024-05-11T10:20:00+02:00",
"asap": false,
"preparationNumber": 74,
"tableNumber": null,
"notes": null,
"state": "in_progress",
"paymentState": "paid",
"itemsTotal": 2000,
"discountsTotal": 0,
"managementFees": 100,
"shippingCost": 0,
"fees": 0,
"total": 2100,
"source": "foxorders-front",
"createdByGuest": false,
"deliveryAddress": null,
"externalId": null,
"promotion": null,
"customer": {
"id": 48305,
"email": "john.doe@foxorders.com",
"firstName": "John",
"lastName": "Doe",
"phone": "0987898789",
"anonymous": false
},
"shop": {
"id": 81,
"name": "Mts restaurant"
},
"shopMode": {
"id": 167,
"mode": {
"code": "take-out",
"name": "Emporter"
}
},
"payment": [
{
"id": 2639,
"paymentAmount": 2100,
"state": "paid",
"createdAt": "2024-05-10 15:48:22",
"updatedAt": "2024-05-10 15:48:24",
"paymentMethodCode": "cashback",
"paymentMethodName": "Utiliser Votre Cashback"
}
],
"setting": {
"customerIdentifier": "beeper",
"value": "10",
"cutlery": false
},
"loyalty": null,
"orderItems": [
{
"id": 3876,
"note": "",
"quantity": 1,
"unitPrice": 2000,
"unitsTotal": 2000,
"discountsTotal": 0,
"taxesTotal": 347.11,
"total": 2000,
"free": false,
"serveLater": false,
"product": {
"id": 773,
"externalId": null,
"name": "Salade césar",
"price": 100,
"tax": {
"rate": 0.21
},
"options": [],
"sku": "FOX_6735EF3F27F22",
"imageUrl": null,
"categories": [
{
"id": 190,
"externalId": null,
"name": "Entrée"
}
]
}
}
]
}
}
{
"object": "order",
"created": "2024-05-13T13:30:07.000000+02:00",
"event": "sending",
"param": [],
"data": {
"id": 3206,
"createdAt": "2024-05-13T13:29:32.000000+02:00",
"date": "2024-05-14T08:30:00+02:00",
"asap": false,
"preparationNumber": 14,
"tableNumber": null,
"notes": null,
"state": "in_progress",
"paymentState": "paid",
"itemsTotal": 14000,
"discountsTotal": 0,
"managementFees": 100,
"shippingCost": 0,
"fees": 0,
"total": 14100,
"source": "foxorders-front",
"createdByGuest": false,
"deliveryAddress": null,
"externalId": null,
"promotion": null,
"customer": {
"id": 48305,
"email": "john.doe@foxorders.com",
"firstName": "John",
"lastName": "Doe",
"phone": "0987898789",
"anonymous": false
},
"shop": {
"id": 81,
"name": "Mts restaurant"
},
"shopMode": {
"id": 167,
"mode": {
"code": "take-out",
"name": "Emporter"
}
},
"payment": [
{
"id": 2657,
"paymentAmount": 3500,
"state": "paid",
"createdAt": "2024-05-13 13:29:33",
"updatedAt": "2024-05-13 13:29:34",
"paymentMethodCode": "cashback",
"paymentMethodName": "Utiliser Votre Cashback"
},
{
"id": 2658,
"paymentAmount": 10600,
"state": "paid",
"createdAt": "2024-05-13 13:29:39",
"updatedAt": "2024-05-13 13:30:06",
"paymentMethodCode": "stripe",
"paymentMethodName": "Stripe"
}
],
"setting": {
"customerIdentifier": "name",
"value": "Christophe Dupont",
"cutlery": false
},
"loyalty": null,
"orderItems": [
{
"id": 3896,
"note": "",
"quantity": 1,
"unitPrice": 14000,
"unitsTotal": 14000,
"discountsTotal": 0,
"taxesTotal": 2430,
"total": 14000,
"free": false,
"serveLater": false,
"product": {
"id": 777,
"externalId": null,
"name": "Risotto Crevettes",
"price": 100,
"tax": {
"rate": 0.21
},
"options": [],
"sku": "FOX_6735EF3F27F22",
"imageUrl": null,
"categories": [
{
"id": 192,
"externalId": null,
"name": "Poisson"
},
{
"id": 190,
"externalId": null,
"name": "Entrée"
},
{
"id": 191,
"externalId": null,
"name": "Pizza"
}
]
}
}
]
}
}
{
"object": "order",
"created": "2024-05-15T07:49:27.000000+00:00",
"event": "new",
"param": [],
"data": {
"id": 3253,
"createdAt": "2024-05-15T07:49:27.000000+00:00",
"date": "2024-05-15T09:50:00+00:00",
"asap": false,
"preparationNumber": 2,
"tableNumber": 22,
"notes": "instruction",
"state": "new",
"paymentState": "awaiting_payment",
"itemsTotal": 2200,
"discountsTotal": 0,
"managementFees": 100,
"shippingCost": 0,
"fees": 0,
"total": 2300,
"source": "popina",
"createdByGuest": true,
"deliveryAddress": null,
"externalId": null,
"promotion": null,
"customer": {
"id": null,
"email": "arnaud.led@gmail.fr",
"firstName": null,
"lastName": null,
"phone": null,
"anonymous": true
},
"shop": {
"id": 81,
"name": "Mts restaurant"
},
"shopMode": {
"id": 168,
"mode": {
"code": "on-site",
"name": "Sur place"
}
},
"payment": [],
"setting": {
"customerIdentifier": "table_easel",
"value": "10",
"cutlery": false
},
"loyalty": {
"customer": {
"id": "b023906e-401d-4081-9948-fad3f43d092b",
"firstName": "NONIER",
"lastName": "Jerome",
"phone": "+33652187094",
"email": "jerome.nonier@jdc.fr"
},
"rewards": [
{
"id": "rew_52431421b6",
"name": "5€ off your next order",
"description": "Get 5€ off your next order with this reward.",
"type": "AMOUNT",
"image": "https://sandbox-static.heypongo.com/rewards/542_1749815802.png",
"value": 500,
"couponCode": null,
"productSku": null,
"productId": null
}
]
},
"orderItems": [
{
"id": 3948,
"note": "",
"quantity": 1,
"unitPrice": 2200,
"unitsTotal": 2200,
"discountsTotal": 0,
"taxesTotal": 382,
"total": 2200,
"free": false,
"serveLater": false,
"product": {
"id": 773,
"externalId": null,
"name": "Salade césar",
"price": 100,
"tax": {
"rate": 0.21
},
"options": [],
"sku": "FOX_6735EF3F27F22",
"imageUrl": null,
"categories": [
{
"id": 190,
"externalId": null,
"name": "Entrée"
}
]
}
}
]
}
}
{
"object": "order",
"created": "2024-05-13T15:50:28.000000+02:00",
"event": "new",
"param": [],
"data": {
"id": 3211,
"createdAt": "2024-05-13T15:50:28.000000+02:00",
"date": "2024-05-14T15:20:00+02:00",
"asap": false,
"preparationNumber": 16,
"tableNumber": null,
"notes": null,
"state": "in_progress",
"paymentState": "awaiting_payment",
"itemsTotal": 4100,
"discountsTotal": 0,
"managementFees": 100,
"shippingCost": 500,
"fees": 0,
"total": 4700,
"source": "foxorders-front",
"createdByGuest": false,
"deliveryAddress": {
"name": "Boulot",
"phone": "0987898789",
"phone2": null,
"street": "3 rue théodore blanc",
"street2": null,
"buildingType": "résidence",
"building": null,
"floor": 12,
"elevator": true,
"intercom": null,
"postalCode": "33520",
"fax": null,
"city": "Bruges",
"country": "France",
"description": null,
"longitude": -0.612747,
"latitude": 44.881793
},
"externalId": null,
"promotion": null,
"customer": {
"id": 48305,
"email": "john.doe@foxorders.com",
"firstName": "John",
"lastName": "Doe",
"phone": "0987898789",
"anonymous": false
},
"shop": {
"id": 81,
"name": "Mts restaurant"
},
"shopMode": {
"id": 166,
"mode": {
"code": "delivery",
"name": "Livraison"
}
},
"payment": [],
"setting": {
"customerIdentifier": null,
"value": null,
"cutlery": false
},
"loyalty": null,
"orderItems": [
{
"id": 3902,
"note": "",
"quantity": 1,
"unitPrice": 100,
"unitsTotal": 100,
"discountsTotal": 0,
"taxesTotal": 17,
"total": 100,
"free": false,
"serveLater": false,
"product": {
"id": 772,
"externalId": null,
"name": "Tomates mozzarella",
"price": 100,
"tax": {
"rate": 0.21
},
"options": [],
"sku": "FOX_6735EF3F27F22",
"imageUrl": null,
"categories": [
{
"id": 190,
"externalId": null,
"name": "Entrée"
}
]
}
},
{
"id": 3903,
"note": "",
"quantity": 1,
"unitPrice": 2000,
"unitsTotal": 2000,
"discountsTotal": 0,
"taxesTotal": 347,
"total": 2000,
"free": false,
"serveLater": true,
"product": {
"id": 773,
"externalId": null,
"name": "Salade césar",
"price": 100,
"tax": {
"rate": 0.21
},
"options": [],
"sku": "FOX_3245EF3F27F34",
"imageUrl": null,
"categories": [
{
"id": 190,
"externalId": null,
"name": "Entrée"
}
]
}
},
{
"id": 3904,
"note": "",
"quantity": 1,
"unitPrice": 2000,
"unitsTotal": 2000,
"discountsTotal": 0,
"taxesTotal": 347,
"total": 2000,
"free": false,
"serveLater": false,
"product": {
"id": 1511,
"externalId": null,
"name": "Escalope de Veau aux Champignons 1",
"tax": {
"rate": 0.21
},
"options": [],
"sku": "FOX_4235EF3F27C87",
"imageUrl": null,
"categories": [
{
"id": 190,
"externalId": null,
"name": "Entrée"
},
{
"id": 191,
"externalId": null,
"name": "Pizza"
},
{
"id": 192,
"externalId": null,
"name": "Poisson"
}
]
}
}
]
}
}