Flipdish

Welcome to the Flipdish developer hub. You'll find comprehensive guides and documentation to help you start working with Flipdish as quickly as possible, as well as support if you get stuck. Let's jump right in!

> POS integration quick start guide
> Driver dispatch integration quick start guide

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": "john@doe.com",
    "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"
  }

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

Driver dispatch integration


Start here if you want to learn how to get notified of Flipdish delivery orders

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.