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

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.

600

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