Skip to main content
All CollectionsIntegrations
Create New Order (API)
Create New Order (API)

Use the Parcelizer API to create new orders (without CSV import)

Afian Anwar avatar
Written by Afian Anwar
Updated over a week ago

If you want to send customer orders directly to Parcelizer without uploading a CSV file or spreadsheet, you can use Parcelizer's Create New Order endpoint. Here's how it works.

First, retrieve your Parcelizer API key by logging into Parcelizer and clicking your username on the top right of your screen. Go to Settings > General Settings (https://dashboard.parcelizer.com/settings) and copy the API token shown there. Each account in Parcelizer has a unique token, which is used to correctly send orders created with the API to your account.

After that, make an API request to the Create New Order endpoint:

Create New Order

Method: POST

Headers

api_key: YOUR_API_KEY

Content-Type: application/json

Body

[
{
"orderRef": "qwe1235",
"email": "test@parcelizer.com",
"load": 3,
"deliveryDate": "2023-07-01",
"pickupName": "Warehouse",
"pickupAddress": "605 Expo Blvd, Vancouver, BC V6B 1V4, Canada",
"pickupPhone": "+84362856329",
"deliveryName": "Brian David Wilkie",
"deliveryAddress": "55 Dunlevy Ave, Vancouver, BC V6A 1G7, Canada",
"deliveryPhone": "+84362856329",
"notes": "Please leave on porch",
"status": "DRAFT",
"timeStart": "09:00",
"timeEnd": "12:00",
"deliveryTimeStart": "09:00",
"deliveryTimeEnd": "16:00",
"labelNames": ["paid", "unpaid"],
"fields": {
"custom-1": "This is a custom field",
"custom-2": "This is a custom field"
},
"requiredSkills": [
"skill-1",
"skill-2"
]
}
]

The body is an array of order objects. Each order object contains all the information needed to enable a successful pickup and delivery. Once the request successfully goes through, you'll see the new order in your order listing page (https://dashboard.parcelizer.com/orders).

Order Object Attributes

orderRef* (string)

A (hopefully) unique reference number (typically an invoice number) that you use to identify the order. If you leave it blank, Parcelizer will automatically generate one for you.


email (string)

The email address of the customer (used for customer notifications).


load (number)

An integer representing the size or weight of the package.


deliveryDate* (string)

The date the order (e.g. package) will be routed and delivered to the customer in YYYY-MM-DD format e.g. 2023-02-24.


pickupName* (string)

Name of the customer you are picking up the order from. If you are picking up this order from a warehouse, use "Warehouse" as the pickup name.


pickupAddress* (string)

The address of the customer you are picking up the order from. Make sure to use a full address that includes a zip code e.g. "111 E 2nd Ave, Vancouver, BC V5T 1B4, Canada". Do not put the unit number or any other information in this field (you can put this in the notes field).


pickupPhone (string)

Phone number of the customer you are picking up this order from. Remember to include the country code and plus sign e.g. +17789123456 for US/Canada numbers or +6593456789 for Singapore numbers.


deliveryName* (string)

Name of the customer you are delivering the order to e.g. "Helen Mckenzie".


deliveryAddress* (string)

The address of the customer you are delivering this order to. Make sure to use a full address that includes a zip code e.g. "198 W 18th Ave, Vancouver, BC V5Y 2A5, Canada". Do not put the unit number or any other information in this field (you can put this in the notes field).


deliveryPhone (string)

Phone number of the customer you are delivering this order to. Remember to include the country code and plus sign e.g. +17789123456 for US/Canada numbers or +6593456789 for Singapore numbers.


notes (string)

Extra information that might be helpful to the driver e.g. apartment address, customer preference etc go here. Shows up on the driver app.


status* (string)

The status of the order. All orders sent via API should use status "draft" so that it can be added to a route plan later on.


timeStart (string)

The earliest time in hh:mm format you need to pick up this order. For example, if you are picking up an item from a store and it only opens at 9 am, put "09:00" in this field.


timeEnd (string)

The latest time in hh:mm format you need to pick up this order. For example, if you are picking up an item from a store and it closes at 5 pm, put "17:00" in this field.


deliveryTimeStart (string)

The earliest time in hh:mm format you need to deliver this order. For example, if the customer specified that he wanted his package delivered between 3 pm and 5 pm, put "15:00" in this field.


deliveryTimeEnd (string)

The latest time in hh:mm format you need to deliver this order by. For example, if the customer specified that he wanted his package delivered between 3 pm and 5 pm, put "17:00" in this field.


labelNames (array)

An array of strings with the names of the labels you want to add to your order. If you specify a label that does not exist on your Parcelizer account, the API will create one and add it to the order.


fields (object)

A hash of custom fields and their attributes e.g. "company_name": "pantagonia" that you'd like to associate with this order.


requiredSkills (array)

An array of driver skills (fields that let you match specific orders with drivers that are equipped to do those orders e.g. a driver with the "VIP" skill can pickup and deliver "VIP" orders) that you'd like to add to this order.

Did this answer your question?