Driver dispatch integration
Start here if you want to learn how to get notified of Flipdish delivery orders
Introduction
This guide is intended for last-mile delivery companies who wish to get notified when their restaurants receive delivery orders.
This guide presumes that you have
- read https://developers.flipdish.com/v1.0/docs/getting-started and have gained API access.
Receiving notification of orders
We recommend that you subscribe to the order.accepted
webhook to get notified of new orders that have been accepted by the store.
You can receive full information about an order using the GET Order API endpoint described at
https://developers.flipdish.com/reference#getorderbyid
If you cannot rely on webhooks to receive order notifications, you can poll our API for orders using the API endpoint described at
https://developers.flipdish.com/v1.0/reference#getorders
We recommend that you poll for new orders at most every 20 seconds and at least every 60 seconds.
You should set the state
filter to AcceptedByRestaurant
curl --request GET \
--url 'https://api.flipdish.co/api/v1.0/orders?state=AcceptedByRestaurant'
Customer
Every order will contain a Customer
property, which looks like this:
"Customer": {
"Id": 1234,
"Name": "John Doe",
"EmailAddress": "[email protected]",
"PhoneNumberLocalFormat": "0818204488",
"PhoneNumber": "+353818204488"
}
Store
Every order will contain a Store
property, which looks like this.
"Store": {
"Id": 123,
"Name": "Restaurant",
"MenuId": 123,
"Metadata": {
"foo": "bar"
},
"Currency": "EUR"
}
If you are receiving orders for multiple stores then you will probably want to check the Store.Id
value and route the order accordingly.
Key properties to monitor:
OrderId
: this is the unique identifier for the order.
DeliveryType
: this can have value Pickup
or Delivery
. You most likely will want to only action Delivery
orders.
PaymentAccountType
: this can have multiple values, including Cash
, Card
, Ideal
etc. All results other than Cash
will mean that the order is pre-paid online.
RequestedForTime
: this is the time that the customer has requested the order for. If the customer requested ASAP then this will be the current time.
Other order properties
DeliveryLocation
Delivery orders will have a value for this property. It will contain the customer address and coordinates.
Please note that the Coordinates
will not match the user address if the user has manually typed in an address different to the one found using a geo-lookup.
As the customer can enter address details manually (freehand), the address data may be placed in incorrect fields (eg. street name in the Building
field.
"DeliveryLocation": {
"Coordinates": {
"Latitude": 54.258113861084,
"Longitude": -5.94074773788452
},
"Building": "38",
"Street": "Pearse Street",
"Town": "Dublin",
"PostCode": "xx xxx",
"DeliveryInstructions": "building is on the right",
"PrettyAddressString": "38 Parse Street, Dublin, xx xxx"
}
Delivery Status Updates
You can also send Flipdish information about the delivery order and status updates as the orders goes through the delivery steps. This will help inform Flipdish clients about the latest status of their delivery order from both the Flipdish Portal and their Flipdish Terminal device.
https://developers.flipdish.com/reference/updatedeliveryinformation
By including a tracking URL with this request, we can embed and expose this tracking URL within the Flipdish Portal.
You may find more useful information about the various data returned by the API in the definitions section: https://developers.flipdish.com/v1.0/docs/definitions
Updated about 3 years ago