> ## Documentation Index
> Fetch the complete documentation index at: https://storekit.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# First Delivery dispatch aggregation

> Connect First Delivery to storekit to dispatch orders to First's network of couriers (DoorDash, Uber, Relay and own-fleet), with automatic dispatch, live tracking, and merchant-location provisioning.

export const props_0 = undefined

export const provider_0 = "First Delivery"

First Delivery ([firstdelivery.com](https://firstdelivery.com/)) is a delivery aggregator: a single account dispatches your orders across its network of courier providers (such as DoorDash, Uber and Relay, plus own-fleet couriers) according to First's routing for the area. The storekit integration automatically sends accepted delivery orders to First for dispatch and receives live status updates back onto the customer's order page.

## Overview

* **Aggregated dispatch**: One connection reaches First's whole courier network
* **Auto-dispatch**: Orders are sent to First automatically when you accept them
* **Live tracking**: Courier status updates flow back to the storekit order page
* **Coverage by location**: Which couriers a venue can use depends on the First merchant location (its address and territory), not on anything storekit sends

<Note>
  First Delivery decides which courier network fulfils each job based on the merchant location you connect. storekit does not choose the courier — it dispatches the order and relays the status First reports.
</Note>

## Before You Start

You need:

* A First Delivery account with an **API key** (from your First account)
* A complete venue address in storekit (used to match or create your First merchant location)
* Delivery enabled on the store (see [Enabling Delivery](/docs/guides/fulfillment/delivery/enabling-delivery))

## Setup

1. In storekit, go to **Stores** → your store → **Settings** → **Integrations**
2. Select **First Delivery**
3. On the **First Delivery Settings** page, paste your key into **API key** and click **Load merchants**

   Loading merchants also validates the key — if First rejects it, you'll be asked to check the key and try again.
4. Under **Merchant location**, choose the merchant that matches this venue. If no locations are found for your key, use **Create this venue as a new First location** (see below).
5. Set **Integration status** to enabled — the toggle reads *"Enabled - dispatching orders to First Delivery"* when on.
6. Click **Save**.

<Warning>
  You must select a **Merchant location** before saving. Saving without one shows *"Select a merchant location first"* and the settings are not stored.
</Warning>

<Note>
  Make sure your {props_0.provider_0} account has valid billing / payment details before you start taking delivery orders. If billing details are missing or a payment fails, {props_0.provider_0} can refuse to create delivery jobs even though storekit accepts and charges the order — check this in your {props_0.provider_0} account first if an order is paid but no delivery appears, then [contact support](/docs/getting-started/contact-support) with the order so we can look into it and, where possible, arrange the delivery manually.
</Note>

### Creating a First Location From Your Venue

If your API key has no existing merchant location for this venue, click **Create this venue as a new First location** under **Merchant location**. storekit creates a live location record at First from this venue's details and selects it for you.

<Warning>
  Creating a First location is live and **can't be undone** — storekit asks you to confirm first. First assigns the location to the delivery zone (cohort) that covers the venue's address.
</Warning>

If First can't create the location, storekit shows the reason:

| Message                                                                                             | What it means                                                                                                      |
| --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| *"This venue doesn't have a usable address in storekit. Add one before creating a First location."* | The venue has no address First can use — add one under **Stores** → your store → **Settings** → **General** first. |
| *"First has no delivery zone covering this venue. Please contact First to extend coverage."*        | The venue falls outside every First delivery zone. First must extend coverage before you can provision here.       |
| *"First couldn't locate this venue's address. Please check the venue address and try again."*       | First could not geocode the address — correct the venue address and retry.                                         |

<Note>
  If the merchant you pick looks like it's in a different place from your venue, storekit warns that the selected merchant's address doesn't appear to match — picking the wrong location sends couriers to the wrong site, so double-check before saving.
</Note>

### Replacing the API Key

Once a key is saved, the **API key** field shows *"API key saved ●●●●"* with a **Replace key** button. Click **Replace key** to enter a new key, then **Load merchants** to validate it and refresh the merchant list.

## How It Works

1. A customer places a delivery order on your storekit store
2. When you accept the order, storekit dispatches it to First Delivery
3. First routes the job to a courier in its network for the merchant location's area
4. Courier status updates arrive back at storekit and show on the customer's order page
5. If the order is cancelled in storekit, storekit cancels the First delivery too

### Pickup Timing

First's pickup time is when the courier collects from your venue, so storekit works it back from the customer's estimated delivery time by the delivery leg. Scheduled orders need a pickup more than about 20 minutes out; anything sooner is dispatched as ASAP.

### Delivery Status Updates

storekit maps First's courier statuses onto the tracking states customers see, including:

| First status        | Customer-facing state |
| ------------------- | --------------------- |
| Runner assigned     | Driver assigned       |
| En route to pickup  | Heading to the store  |
| Picked up           | Collected             |
| En route to dropoff | Out for delivery      |
| Arrived at dropoff  | Arriving              |
| Completed           | Delivered             |
| Cancelled           | Delivery cancelled    |

## Related

* [Enabling Delivery](/docs/guides/fulfillment/delivery/enabling-delivery) — turn on delivery orders for your store
* [Integrations Overview](/docs/guides/integrations/overview) — all available integrations
* [Managing Live Orders](/docs/guides/orders/managing-live-orders) — handle incoming delivery orders


## Related topics

- [Shipday dispatch and route optimisation](/docs/guides/integrations/delivery/shipday.md)
- [Orkestro fleet and on-demand courier delivery integration](/docs/guides/integrations/delivery/orkestro.md)
- [Uber Direct white-label courier delivery integration](/docs/guides/integrations/delivery/uber-direct.md)
- [Cyclone Couriers delivery integration for Ireland](/docs/guides/integrations/delivery/cyclone.md)
- [PedalMe cargo bike delivery integration for London](/docs/guides/integrations/delivery/pedalme.md)
