> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.rendr.delivery/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.rendr.delivery/_mcp/server.

# Create a Location

The Location Management API lets you configure and maintain your network of stores and warehouses inside Rendr. Use it to create a location for each store or warehouse that fulfils orders for your brand.

In Rendr, each brand can have multiple stores (locations). Locations are the backbone of delivery orchestration, and they hold the configuration needed for successful order fulfilment and driver routing. A location record contains much more than an address:

* **Operating hours** – When the store is open to customers.
* **Pickup hours** – When couriers can collect orders. These are often earlier than store close times, to allow for returns and same-day cut-off windows.
* **Special hours** – Overrides for holidays or exceptional events.
* **Geographic data** – Latitude and longitude coordinates for routing accuracy.
* **Contact details** – Store-level email and phone for operational communication.
* **Delivery settings** – Such as pickup instructions and optional store-specific rules.

By managing locations through the API, you can:

* Onboard new stores quickly, and at scale
* Standardise configuration across large store networks
* Ensure consistent delivery rules and experiences across all brands
* Integrate directly with eCommerce platforms, OMS or ERP systems

---

## Location Lifecycle

Every location moves from `pending` to `active`:

1. **Pending** – A newly created location starts in a pending state while Rendr's operations team validates its configuration.
2. **Active** – Once approved, the location can be used for store allocation, delivery scheduling and tracking.

> **Note**
>
> A location can't be used until it is active. Create locations ahead of time so that Rendr has time to validate them. You can also view and manage locations in the Delivery Dashboard — see [Manage Locations](/help-centre/delivery-dashboard/locations-manifests/manage-locations).

---

## Endpoint

```
POST {{domain}}/{{tenant_id}}/locations
```

**Authentication:** Bearer token required via the `Authorization` header.

---

## Request Payload

**`POST /{{tenant_id}}/locations`**

```json title="POST /{{tenant_id}}/locations"
{
    "currency": "AUD",
    "country": "AU",
    "name": "Richmond Store",
    "reference": "0001",
    "timezone": "Australia/Melbourne",
    "contact": {
        "name": "My Store Contact",
        "email": "contact@example.com",
        "phone": "+61400000000",
        "country": "AU"
    },
    "settings": {
        "pickup_instructions": "Pickup from Level 3"
    },
    "address": {
        "address": "7 Howard St",
        "address2": "Level 3",
        "city": "Richmond",
        "state": "VIC",
        "post_code": "3121",
        "country": "AU"
    },
    "geo_data": {
        "long": 144.9972,
        "lat": -37.83274
    },
    "pickup_hours": [
        { "day": 0, "from": "09:00", "to": "15:00" },
        { "day": 1, "from": "09:00", "to": "15:00" },
        { "day": 2, "from": "09:00", "to": "15:00" },
        { "day": 3, "from": "09:00", "to": "15:00" },
        { "day": 4, "from": "09:00", "to": "15:00" },
        { "day": 5, "from": "09:00", "to": "15:00" },
        { "day": 6, "from": "09:00", "to": "15:00" }
    ],
    "opening_hours": [
        { "day": 0, "from": "09:00", "to": "17:00", "buffer_minutes": 10 },
        { "day": 1, "from": "09:00", "to": "17:00", "buffer_minutes": 10 },
        { "day": 2, "from": "09:00", "to": "17:00", "buffer_minutes": 10 },
        { "day": 3, "from": "09:00", "to": "17:00", "buffer_minutes": 10 },
        { "day": 4, "from": "09:00", "to": "17:00", "buffer_minutes": 10 },
        { "day": 5, "from": "09:00", "to": "17:00", "buffer_minutes": 10 },
        { "day": 6, "from": "09:00", "to": "17:00", "buffer_minutes": 10 }
    ],
    "special_hours": []
}
```

---

## Parameters

### Top-Level Fields

| Field           | Type   | Description                                                                            |
| --------------- | ------ | -------------------------------------------------------------------------------------- |
| `name`          | String | The display name of the store.                                                         |
| `reference`     | String | Your unique reference for the store.                                                   |
| `currency`      | String | The currency code (ISO 4217) — e.g. `AUD`.                                             |
| `country`       | String | The country code (ISO 3166-1 alpha-2) — e.g. `AU`.                                     |
| `timezone`      | String | The IANA timezone identifier for the store — e.g. `Australia/Melbourne`.               |
| `contact`       | Object | Store contact details. See [Contact](#contact).                                        |
| `address`       | Object | The physical address of the store. See [Address](#address).                            |
| `settings`      | Object | Store-level configuration. See [Settings](#settings).                                  |
| `geo_data`      | Object | Optional. The geographic coordinates of the store. See [Geo Data](#geo-data).          |
| `pickup_hours`  | Array  | Optional. When couriers can collect orders, by day. See [Pickup Hours](#pickup-hours). |
| `opening_hours` | Array  | When the store is open to customers, by day. See [Opening Hours](#opening-hours).      |
| `special_hours` | Array  | Override hours for specific dates, such as public holidays.                            |

### Contact

| Field             | Type   | Description                                                      |
| ----------------- | ------ | ---------------------------------------------------------------- |
| `contact.name`    | String | The contact person or team name.                                 |
| `contact.email`   | String | The contact email address.                                       |
| `contact.phone`   | String | The contact phone number, in E.164 format — e.g. `+61400000000`. |
| `contact.country` | String | The country code (ISO 3166-1 alpha-2).                           |

### Address

| Field               | Type   | Description                                    |
| ------------------- | ------ | ---------------------------------------------- |
| `address.address`   | String | Street address line 1.                         |
| `address.address2`  | String | Street address line 2 — e.g. a suite or level. |
| `address.city`      | String | The suburb or city.                            |
| `address.state`     | String | The state or territory code — e.g. `VIC`.      |
| `address.post_code` | String | The postcode.                                  |
| `address.country`   | String | The country code (ISO 3166-1 alpha-2).         |

### Settings

| Field                          | Type   | Description                                    |
| ------------------------------ | ------ | ---------------------------------------------- |
| `settings.pickup_instructions` | String | Instructions displayed to carriers for pickup. |

### Geo Data

| Field           | Type   | Description               |
| --------------- | ------ | ------------------------- |
| `geo_data.long` | Number | The longitude coordinate. |
| `geo_data.lat`  | Number | The latitude coordinate.  |

### Pickup Hours

The `pickup_hours` array is optional. It sets when couriers can collect orders, with one entry per day.

| Field                 | Type    | Description                                         |
| --------------------- | ------- | --------------------------------------------------- |
| `pickup_hours[].day`  | Integer | The day of the week — `0` = Sunday, `6` = Saturday. |
| `pickup_hours[].from` | String  | The start time in `HH:mm` (24-hour) format.         |
| `pickup_hours[].to`   | String  | The end time in `HH:mm` (24-hour) format.           |

### Opening Hours

The `opening_hours` array sets when the store is open to customers, with one entry per day.

| Field                            | Type    | Description                                                   |
| -------------------------------- | ------- | ------------------------------------------------------------- |
| `opening_hours[].day`            | Integer | The day of the week — `0` = Sunday, `6` = Saturday.           |
| `opening_hours[].from`           | String  | The opening time in `HH:mm` (24-hour) format.                 |
| `opening_hours[].to`             | String  | The closing time in `HH:mm` (24-hour) format.                 |
| `opening_hours[].buffer_minutes` | Integer | The number of minutes before closing that orders are cut off. |

> **Tip**
>
> Set pickup hours to finish earlier than your closing time if you need time for returns and same-day cut-off windows. The same-day cut-off time is covered in [Configure Order Cut-Off Times](/help-centre/merchant-onboarding-enablement/configure-order-cut-off-times).