General
Webhooks can be used to send order information to 3rd parties for custom integrations. All order related information is sent to the webhook immediately after an order is placed online.
Adding a Webhook
- Visit the Menufy Manager website
- Go to "Notifications"
- Choose a Webhook using the input boxes.
- Add any name.
- Enter URL to send order information.
- Click "Add Notification"
Securing a Webhook
- URL endpoint should be secure (https).
- The webhook will contain a 25 digit key with every order that should be validated to ensure the request originated from Menufy.
API Details
- Menufy will make 3 attempts to send every order before failing.
- After 5 failed orders the webhook will be disabled.
- All requests will be POST and will expect any HTTP success response back.
Payload
{
"key": "[NOTIFICATION KEY]",
"order": {
"id": [ORDER ID],
"location_id": [LOCATION ID],
"create_time": [UTC date when order was placed],
"delivery_pickup_time": [UTC delivery driver pickup time],
"fulfill_time": [UTC pickup/delivery time for future orders],
"order_type": "[Carryout, Delivery, or DineIn]",
"payment_type": "[Credit, Cash, Bitcoin, PayPal, ApplePay, Venmo, GooglePay]",
"service_fee": [$ Customer paid service charges],
"convenience_fee": [$ Customer paid convenience fee],
"discount": [$ discount],
"discount_type": "[Gift Card, Tasty Reward, or Coupon]",
"tip": [$ tip],
"subtotal": [$ subtotal],
"tax": [$ tax],
"total": [$ total],
"order_notes": "[order notes]",
"delivery_notes": "[delivery notes]",
"line_items": [
{
"id": [LINE ITEM ID],
"item_id": [ITEM ID],
"item_name": "[Item name]",
"category_id": [CATEGORY ID],
"category_name": "[Category name]",
"size_id": [SIZE ID],
"size_name": "[Size name]",
"quantity": [Quantity],
"price": [$ price including modifiers],
"note": "[Line item note]",
"modifiers": [
{
"modifier_id": [MODIFIER ID],
"modifier_name": "[Modifier name]",
"modifier_price": [$ modifier price],
"modifier_group_id": [MODIFIER GROUP ID],
"modifier_group_name": "[Modifier group name]"
}],
"added_full_toppings": [
{
"topping_id": [TOPPING ID],
"name": "[Topping name]",
"price": [$ topping price]
}],
"added_first_half_toppings": [
{
"topping_id": [TOPPING ID],
"name": "[Topping name]",
"half_price": [$ topping half price]
}],
"added_second_half_toppings": []
"removed_full_toppings": [],
"removed_first_half_toppings": [],
"removed_second_half_toppings": []
],
"customer": {
"first_name": "[Customer first name]",
"last_name": "[Customer last name]",
"email_address": "[Customer email]",
"phone_number": "[Customer phone number]",
"address": {
"address_line_1": "[Delivery address line 1]",
"address_line_2": "[Delivery address line 2]",
"city": "[Delivery address city]",
"state": "[Delivery address 2 digit state code]",
"postal_code": "[Delivery address postal code]",
"latitude": "[Delivery address latitude]",
"longitude": "[Delivery address longitude]"
}
},
"confirm_url": "[URL (POST or GET) unique to the request to confirm the restaurant has received the order.]"
}