---
updatedAt: 2026-08-24T07:33:48.000Z
agentTools:
  projectIndex: https://developers.shipup.co/llms.txt
---

# File configuration

Explains the expected format of file when uploading pickup point information

To provide Shipup with your pickup point information, you need to send a CSV file containing all your stores and their details. You can upload this file either directly from the Shipup back office or via the API. Regardless of the upload method, the same CSV structure, required fields, formatting requirements, and validation rules apply.

## Prepare your pickup point file

Your CSV file must contain **one row per pickup point**. Some fields are mandatory, while others are optional and can be used to provide additional information such as GPS coordinates and opening hours.

We recommend starting from the CSV template available in the **In-store collection** section of your Shipup settings to ensure that you use the expected columns and format.

> **Important:** Do not rename or remove columns from the template. Your file must be a **UTF-8 encoded CSV** using commas (`,`) as separators.

### Mandatory fields

The following fields must be provided for **every pickup point**:

| Field          | Description                                                                                                                                   | Validation                                                                            |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| `merchant_id`  | Your unique identifier for the pickup point. This is also the identifier you send as `pickup_point_merchant_id` on the corresponding tracker. | **Required.** Must be unique within your pickup point file.                           |
| `name`         | Name of the store or pickup point displayed to the customer.                                                                                  | **Required.**                                                                         |
| `address1`     | Main street address of the pickup point.                                                                                                      | **Required.**                                                                         |
| `postal_code`  | Postal or ZIP code of the pickup point.                                                                                                       | **Required.**                                                                         |
| `city`         | City where the pickup point is located.                                                                                                       | **Required.**                                                                         |
| `country_code` | Country where the pickup point is located.                                                                                                    | **Required.** Must be a valid ISO 3166-1 country code, such as `FR`, `IT` or `DE`.    |
| `phone`        | Phone number of the pickup point.                                                                                                             | **Required.** Can contain numbers and `+`. Other special characters are not accepted. |

### Optional fields

You can provide additional information to enrich the pickup point details displayed to your customers.

| Field              | Description                                                | Validation                                     |
| ------------------ | ---------------------------------------------------------- | ---------------------------------------------- |
| `merchant_id_2`    | Additional identifier for the pickup point, if applicable. | Optional.                                      |
| `address2`         | Additional address information.                            | Optional.                                      |
| `state_code`       | State or region code, when applicable.                     | Optional.                                      |
| `gps_lat`          | Latitude of the pickup point.                              | Optional. Must be a valid numeric coordinate.  |
| `gps_long`         | Longitude of the pickup point.                             | Optional. Must be a valid numeric coordinate.  |
| `[day]_am_opening` | Morning opening time.                                      | Optional. Must use the 24-hour `HH:MM` format. |
| `[day]_am_closing` | Morning closing time.                                      | Optional. Must use the 24-hour `HH:MM` format. |
| `[day]_pm_opening` | Afternoon opening time.                                    | Optional. Must use the 24-hour `HH:MM` format. |
| `[day]_pm_closing` | Afternoon closing time.                                    | Optional. Must use the 24-hour `HH:MM` format. |

The four opening-hour fields are available for each day from `monday` to `sunday`.

For example:

`monday_am_opening`, `monday_am_closing`, `monday_pm_opening`, `monday_pm_closing`

## File validation

When your file is uploaded, Shipup validates its structure and content before the pickup point information can be used.

The following checks are performed:

* The uploaded file is a valid **CSV file**.
* The file is encoded in **UTF-8**.
* Commas (`,`) are used as separators.
* The expected columns are present.
* Every mandatory field contains a value.
* Each `merchant_id` is unique.
* `country_code` contains a valid ISO 3166-1 country code.
* `phone` contains only numbers and, where applicable, `+`.
* Opening hours follow the `HH:MM` 24-hour format.
* Opening and closing hours form a valid daily schedule.

If one of these validations fails, the file cannot be successfully processed, and you will need to correct it before uploading it again.

### Opening hours validation

Opening hours are optional. For each day, Shipup accepts the following configurations:

**Store closed**

Leave all four fields empty:

```text
am_opening: empty
am_closing: empty
pm_opening: empty
pm_closing: empty
```

**Store open continuously**

Provide the opening time in `am_opening` and the closing time in `pm_closing`, leaving the two other fields empty.

For example, for a store open from 10:00 to 21:00:

```text
am_opening: 10:00
am_closing: empty
pm_opening: empty
pm_closing: 21:00
```

**Store open with a break**

Provide all four fields. For example, for a store open from 09:00–12:00 and 14:00–18:00:

```text
am_opening: 09:00
am_closing: 12:00
pm_opening: 14:00
pm_closing: 18:00
```

When all four values are provided, the times must follow this order:

`am_opening < am_closing < pm_opening < pm_closing`

### GPS coordinates validation

`gps_lat` and `gps_long` are optional. When provided, they must contain valid numeric GPS coordinates. Alphabetic characters and special characters other than the decimal point are not accepted.

GPS coordinates undergo an additional asynchronous validation after the file is uploaded. As a result, an issue with the coordinates may only be detected after the initial upload.

If the coordinates cannot be validated, the pickup point information can still be available, but **the map may not be displayed**.

## Example CSV file

The following example contains two pickup points:

* `PP1` — Pickup Point A in Paris
* `PP2` — Pickup Point B in Paris

Both stores are open **09:00–12:00 and 14:00–18:00 from Monday to Friday**, **10:00–21:00 continuously on Saturday**, and **closed on Sunday**.

```csv
merchant_id,merchant_id_2,name,address1,address2,city,postal_code,state_code,country_code,gps_lat,gps_long,phone,monday_am_opening,monday_am_closing,monday_pm_opening,monday_pm_closing,tuesday_am_opening,tuesday_am_closing,tuesday_pm_opening,tuesday_pm_closing,wednesday_am_opening,wednesday_am_closing,wednesday_pm_opening,wednesday_pm_closing,thursday_am_opening,thursday_am_closing,thursday_pm_opening,thursday_pm_closing,friday_am_opening,friday_am_closing,friday_pm_opening,friday_pm_closing,saturday_am_opening,saturday_am_closing,saturday_pm_opening,saturday_pm_closing,sunday_am_opening,sunday_am_closing,sunday_pm_opening,sunday_pm_closing
PP1,PP1.1,Pickup Point A,51 rue de Chabrol,,Paris,75010,,FR,47.224281311035156,-1.6251312494277954,+33123456789,09:00,12:00,14:00,18:00,09:00,12:00,14:00,18:00,09:00,12:00,14:00,18:00,09:00,12:00,14:00,18:00,09:00,12:00,14:00,18:00,10:00,,,21:00,,,,
PP2,,Pickup Point B,36 rue du Sentier,,Paris,75002,,FR,47.224281311035156,-1.6251312494277954,+33123456789,09:00,12:00,14:00,18:00,09:00,12:00,14:00,18:00,09:00,12:00,14:00,18:00,09:00,12:00,14:00,18:00,09:00,12:00,14:00,18:00,10:00,,,21:00,,,,
```

> **Tip:** We recommend downloading and editing the template provided by Shipup rather than creating the CSV structure manually. This helps ensure all expected columns are present and in the correct format.

## How updates work

Each upload adds new pickup points or updates existing ones based on their merchant\_id. It does not delete pickup points that are missing from the new file.

For example, if Shipup already has pickup points A and B, and your next upload only contains an updated version of A:

* A is updated with the new information.
* B remains unchanged.

You therefore don't need to send your entire list of pickup points with every update. You can send only the pickup points you want to add or update.

## Next: Upload your pickup point information

Once your file is ready, you can upload your pickup point information using either the Shipup back office or the API. The same file structure and validation rules apply to both methods.

Choose the method that best fits how frequently your pickup point information changes:

Back office — Recommended if your pickup point information changes infrequently. You can manually upload a new CSV file whenever you need to add or update stores.
API — Recommended if your pickup point information changes regularly or if you manage a large number of stores. It allows you to automate recurring updates without manually uploading a file.