Shipments
Shipments are the core records in Evership — they represent the packages being prepared for delivery, including the sender and recipient information, parcel dimensions, and selected shipping service. On this page, we'll explore the endpoints available for managing shipments programmatically. You can create, retrieve, update, purchase, cancel, and delete shipments through the API.
Introduction
The shipment model stores all the details needed to fulfill and track a shipment. Each shipment must have a collection and delivery address, at least one parcel, and can optionally include metadata like order number or customer contact information. Shipments can be created in a pending state or immediately purchased if a rate is available.
Create Shipment
The "Create shipment" API will allow you to create a single shipment record on your account in either a pending or purchased state with a single call. If the shipment is not purchased when the record is created you can purchase the shipment later using the Purchase shipments API
Request fields
- Name
sender
- Type
- object
- Description
Object containing information about the sender.
- Name
sender.name
- Type
- string
- Description
Name of the sender.
- Name
sender.contact
- Type
- string
- Description
Contact number of the sender. Format 0812345678, must contain at least 10 digits.
- Name
sender.email
- Type
- string
- Description
Email address of the sender.
- Name
sender.collection_address
- Type
- object
- Description
Object containing the collection address details for the sender.
- Name
sender.collection_address.address1
- Type
- string
- Description
First line of the address, typically including the unit or apartment number.
- Name
sender.collection_address.address2
- Type
- string
- Description
Second line of the address, typically including the street name and number.
- Name
sender.collection_address.suburb
- Type
- string
- Description
Suburb of the collection address.
- Name
sender.collection_address.city
- Type
- string
- Description
City of the collection address.
- Name
sender.collection_address.province
- Type
- string
- Description
Province of the collection address.
- Name
sender.collection_address.postal_code
- Type
- string
- Description
Postal code of the collection address.
- Name
sender.collection_address.country
- Type
- string
- Description
Country of the collection address.
- Name
sender.collection_address.full_address
- Type
- string
- Description
Full formatted address of the collection location.
- Name
sender.collection_address.latitude
- Type
- float
- Description
Latitude coordinate of the collection address. If not passed the address will be geocoded.
- Name
sender.collection_address.longitude
- Type
- float
- Description
Longitude coordinate of the collection address. If not passed the address will be geocoded.
- Name
sender.pickup_instructions
- Type
- string
- Description
Special instructions for pickup at the sender's location.
- Name
receiver
- Type
- object
- Description
Object containing information about the receiver.
- Name
receiver.name
- Type
- string
- Description
Name of the receiver.
- Name
receiver.contact
- Type
- string
- Description
Contact number of the receiver.
- Name
receiver.email
- Type
- string
- Description
Email address of the receiver.
- Name
receiver.delivery_address
- Type
- object
- Description
Object containing the delivery address details for the receiver.
- Name
receiver.delivery_address.address1
- Type
- string
- Description
First line of the address, typically including the unit or apartment number.
- Name
receiver.delivery_address.address2
- Type
- string
- Description
Second line of the address, typically including the street name and number.
- Name
receiver.delivery_address.suburb
- Type
- string
- Description
Suburb of the delivery address.
- Name
receiver.delivery_address.city
- Type
- string
- Description
City of the delivery address.
- Name
receiver.delivery_address.province
- Type
- string
- Description
Province of the delivery address.
- Name
receiver.delivery_address.postal_code
- Type
- string
- Description
Postal code of the delivery address.
- Name
receiver.delivery_address.country
- Type
- string
- Description
Country of the delivery address.
- Name
receiver.delivery_address.full_address
- Type
- string
- Description
Full formatted address of the delivery address, if the address is passed as a single string.
- Name
receiver.delivery_address.latitude
- Type
- float
- Description
Latitude coordinate of the delivery address. If empty the delivery address will be geocoded.
- Name
receiver.delivery_address.longitude
- Type
- float
- Description
Longitude coordinate of the delivery address. If empty the delivery address will be geocoded.
- Name
receiver.drop_off_instructions
- Type
- string
- Description
Special instructions for delivery at the receiver's location.
- Name
parcels
- Type
- array
- Description
Array of objects, each containing details about a parcel to be shipped.
- Name
parcels.reference
- Type
- string
- Description
Reference identifier for the parcel.
- Name
parcels.description
- Type
- string
- Description
Description of the parcel contents.
- Name
parcels.dimensions
- Type
- object
- Description
Object containing the dimensions of the parcel.
- Name
parcels.dimensions.length
- Type
- float
- Description
Length of the parcel in centimeters.
- Name
parcels.dimensions.width
- Type
- float
- Description
Width of the parcel in centimeters.
- Name
parcels.dimensions.height
- Type
- float
- Description
Height of the parcel in centimeters.
- Name
parcels.weight
- Type
- float
- Description
Weight of the parcel in kilograms.
- Name
shipment_title
- Type
- string
- Description
Title or identifier for the shipment. If left empty the title "Untitled shipment" will be appended.
- Name
shipment_type
- Type
- string
- Description
Type of shipment (outbound, inbound, transfer, or return).
- Name
carrier_service
- Type
- string
- Description
Carrier service to be used for the shipment. If left empty, the cheapest service is selected.
- Name
purchase_label
- Type
- boolean
- Description
Boolean indicating whether to purchase a shipping label.
- true = Shipment will be purchased and shipment label will be returned in the response
- false = Shipment will not be purchased, but the shipment record will be created in a pending state
- Name
collection_date
- Type
- string
- Description
Date for collection of the shipment. Leave empty if purchase_label is false.
- Name
collection_time
- Type
- string
- Description
Time for collection of the shipment. Leave empty if purchase_label is false.
Response Fields
- Name
id
- Type
- integer
- Description
Unique identifier for the shipment.
- Name
waybill_number
- Type
- string
- Description
Waybill number associated with the shipment.
- Name
created_at
- Type
- string
- Description
Timestamp of when the shipment was created.
- Name
last_updated_at
- Type
- string
- Description
Timestamp of the last update to the shipment.
- Name
shipment_title
- Type
- string
- Description
Title or identifier for the shipment.
- Name
shipment_type
- Type
- string
- Description
Type of shipment (
outbound
,inbound
,transfer
,return
).
- Name
label_purchased
- Type
- boolean
- Description
Boolean indicating whether a shipping label has been purchased.
- Name
collection_date
- Type
- string
- Description
Date and time scheduled for collection of the shipment.
- Name
billing
- Type
- array
- Description
Array containing billing details related to the shipment.
- Name
billing[].transaction_id
- Type
- integer
- Description
Unique identifier for the billing transaction.
- Name
billing[].timestamp
- Type
- string
- Description
Timestamp of when the transaction occurred.
- Name
billing[].type
- Type
- string
- Description
Type of billing transaction (
invoice
orcredit
).
- Name
billing[].description
- Type
- string
- Description
Description of the billing transaction.
- Name
billing[].transaction_ex_vat
- Type
- float
- Description
Transaction amount excluding VAT.
- Name
billing[].transaction_vat
- Type
- float
- Description
VAT amount for the transaction.
- Name
billing[].transaction_inc_vat
- Type
- float
- Description
Transaction amount including VAT.
- Name
billing[].transaction_status
- Type
- string
- Description
Status of the transaction.
- invoice =
wallet_debited
- credit =
wallet_credited
- invoice =
- Name
sender
- Type
- object
- Description
Object containing information about the sender.
- Name
sender.name
- Type
- string
- Description
Name of the sender.
- Name
sender.contact
- Type
- string
- Description
Contact number of the sender.
- Name
sender.email
- Type
- string
- Description
Email address of the sender.
- Name
sender.collection_address
- Type
- array
- Description
Array containing the collection address details for the sender.
- Name
sender.collection_address[].address1
- Type
- string
- Description
First line of the collection address, typically including the unit, apartment name/number or business name.
- Name
sender.collection_address[].address2
- Type
- string
- Description
Second line of the collection address, typically including the street name and number.
- Name
sender.collection_address[].suburb
- Type
- string
- Description
Suburb of the collection address.
- Name
sender.collection_address[].city
- Type
- string
- Description
City of the collection address.
- Name
sender.collection_address[].province
- Type
- string
- Description
Province of the collection address.
- Name
sender.collection_address[].postal_code
- Type
- string
- Description
Postal code of the collection address.
- Name
sender.collection_address[].country
- Type
- string
- Description
Country of the collection address.
- Name
sender.collection_address[].full_address
- Type
- string
- Description
Full formatted address of the collection location.
- Name
sender.collection_address[].latitude
- Type
- float
- Description
Latitude coordinate of the collection address.
- Name
sender.collection_address[].longitude
- Type
- float
- Description
Longitude coordinate of the collection address.
- Name
sender.collection_address[].geocode_status
- Type
- string
- Description
Status of the geocoding process for the collection address.
- Name
sender.pickup_instructions
- Type
- string
- Description
Special instructions for pickup at the sender's location.
- Name
receiver
- Type
- object
- Description
Object containing information about the receiver.
- Name
receiver.name
- Type
- string
- Description
Name of the receiver.
- Name
receiver.contact
- Type
- string
- Description
Contact number of the receiver.
- Name
receiver.email
- Type
- string
- Description
Email address of the receiver.
- Name
receiver.delivery_address
- Type
- object
- Description
Object containing the delivery address details for the receiver.
- Name
receiver.delivery_address.address1
- Type
- string
- Description
First line of the delivery address, typically including the unit, apartment name/number or business name.
- Name
receiver.delivery_address.address2
- Type
- string
- Description
Second line of the delivery address, typically including the street name and number.
- Name
receiver.delivery_address.suburb
- Type
- string
- Description
Suburb of the delivery address.
- Name
receiver.delivery_address.city
- Type
- string
- Description
City of the delivery address.
- Name
receiver.delivery_address.province
- Type
- string
- Description
Province of the delivery address.
- Name
receiver.delivery_address.postal_code
- Type
- string
- Description
Postal code of the delivery address.
- Name
receiver.delivery_address.country
- Type
- string
- Description
Country of the delivery address.
- Name
receiver.delivery_address.full_address
- Type
- string
- Description
Full formatted address of the delivery location.
- Name
receiver.delivery_address.latitude
- Type
- float
- Description
Latitude coordinate of the delivery address.
- Name
receiver.delivery_address.longitude
- Type
- float
- Description
Longitude coordinate of the delivery address.
- Name
receiver.delivery_address.geocode_status
- Type
- string
- Description
Status of the geocoding process for the delivery address.
- Name
receiver.drop_off_instructions
- Type
- string
- Description
Special instructions for delivery at the receiver's location.
- Name
latest_status
- Type
- object
- Description
Object containing the latest status of the shipment.
- Name
latest_status.primary_status
- Type
- object
- Description
Object containing the primary status of the shipment.
- Name
latest_status.primary_status.status
- Type
- string
- Description
Current primary status of the shipment.
- Name
latest_status.primary_status.slug
- Type
- string
- Description
Slug identifier for the primary status.
- Name
latest_status.primary_status.code
- Type
- integer
- Description
Code representing the primary status.
- Name
latest_status.secondary_status
- Type
- object
- Description
Object containing the secondary status of the shipment (if applicable).
- Name
services
- Type
- array
- Description
Array of objects detailing the services used for the shipment.
- Name
services[].carrier_slug
- Type
- string
- Description
Slug identifier for the carrier.
- Name
services[].carrier_id
- Type
- integer
- Description
Unique identifier for the carrier.
- Name
services[].carrier_name
- Type
- string
- Description
Name of the carrier.
- Name
services[].carrier_contact_number
- Type
- string
- Description
Contact number for the carrier.
- Name
services[].service_id
- Type
- integer
- Description
Unique identifier for the service.
- Name
services[].service_name
- Type
- string
- Description
Name of the service.
- Name
services[].service_slug
- Type
- string
- Description
Slug identifier for the service.
- Name
services[].service_full_name
- Type
- string
- Description
Full name of the service.
- Name
services[].service_sla_text
- Type
- string
- Description
Service level agreement text (Same day, Next day, Economy etc).
- Name
services[].service_transit_days
- Type
- integer
- Description
Number of transit days for the service.
- Name
services[].collection_cutoff_time
- Type
- string
- Description
Cutoff time for collection for the service.
- Name
services[].latest_delivery_time
- Type
- string
- Description
Latest time by which the delivery is expected to be completed.
- Name
parcels
- Type
- array
- Description
Array of objects, each containing details about a parcel in the shipment.
- Name
parcels[].id
- Type
- string
- Description
Unique identifier for the parcel.
- Name
parcels[].parcel_number
- Type
- string
- Description
Unique number assigned to the parcel.
- Name
parcels[].reference
- Type
- string
- Description
Reference identifier for the parcel.
- Name
parcels[].description
- Type
- string
- Description
Description of the parcel contents.
- Name
parcels[].dimensions
- Type
- object
- Description
Object containing the dimensions of the parcel.
- Name
parcels[].dimensions.length
- Type
- float
- Description
Length of the parcel in centimeters.
- Name
parcels[].dimensions.width
- Type
- float
- Description
Width of the parcel in centimeters.
- Name
parcels[].dimensions.height
- Type
- float
- Description
Height of the parcel in centimeters.
- Name
parcels[].weight
- Type
- float
- Description
Weight of the parcel in kilograms.
- Name
tracking_log
- Type
- array
- Description
Array of objects containing tracking log entries for the shipment.
- Name
tracking_log[].timestamp
- Type
- string
- Description
Timestamp of the tracking log entry.
- Name
tracking_log[].primary_status
- Type
- object
- Description
Object containing the primary status of the tracking log entry.
- Name
tracking_log[].primary_status.status
- Type
- string
- Description
Primary status of the shipment at the time of the log entry.
- Name
tracking_log[].primary_status.slug
- Type
- string
- Description
Slug identifier for the primary status.
- Name
tracking_log[].primary_status.code
- Type
- integer
- Description
Code representing the primary status.
- Name
tracking_log[].secondary_status
- Type
- object
- Description
Object containing the secondary status of the tracking log entry (if applicable).
- Name
tracking_log[].comments
- Type
- string
- Description
Comments or additional information related to the tracking log entry.
- Name
tracking_log[].location
- Type
- string
- Description
Location associated with the tracking log entry.
- Name
est_delivery
- Type
- object
- Description
Object containing estimated delivery details.
- Name
est_delivery.est_delivery_date
- Type
- string
- Description
Estimated delivery date.
- Name
est_delivery.est_delivery_time
- Type
- string
- Description
Estimated delivery time.
- Name
est_delivery.est_delivery_text
- Type
- string
- Description
Formatted string describing the estimated delivery date and time.
- Name
labels
- Type
- object
- Description
Object containing URLs for different label formats.
- Name
labels.a4_page
- Type
- string
- Description
URL for the A4 page label format.
- Name
labels.10_by_10
- Type
- string
- Description
URL for the 10x10cm label format.
- Name
labels.10_by_15
- Type
- string
- Description
URL for the 10x15cm label format.
- Name
tracking_link
- Type
- object
- Description
Object containing tracking links for the shipment.
- Name
tracking_link.receiver
- Type
- string
- Description
URL for the receiver's tracking link.
- Name
tracking_link.sender
- Type
- string
- Description
URL for the sender's tracking link.
Request
{
"sender": {
"name": "Ishmael Evans",
"contact": "0817553597",
"email": "ishmael@usecarter.com",
"collection_address": {
"address1": "Unit 22",
"address2": "26 Washington Rd",
"suburb": "Claremont",
"city": "Cape Town",
"province": "Western Cape",
"postal_code": "7780",
"country": "South Africa",
"full_address": "Unit 22, 26 Washington Rd, Claremont, Cape Town, 7780, South Africa",
"latitude": -33.9706,
"longitude": 18.4649
},
"pickup_instructions": "Call when arrived"
},
"receiver": {
"name": "Jane Smith",
"contact": "0787654321",
"email": "janesmith@example.com",
"delivery_address": {
"address1": "Tech Solutions Inc., Tech Park, Suite 500",
"address2": "12 Clyde Road",
"suburb": "Green Point",
"city": "Cape Town",
"province": "Western Cape",
"postal_code": "8005",
"country": "South Africa",
"full_address": "Tech Solutions Inc., Tech Park, Suite 500, 12 Clyde Road, Green Point, Cape Town, 8005, South Africa",
"latitude": -33.9095,
"longitude": 18.4155
},
"drop_off_instructions": "Please ring the bell twice"
},
"parcels": [
{
"reference": "Parcel-REF-1",
"description": "Books",
"dimensions": {
"length": 30,
"width": 20,
"height": 10
},
"weight": 5
},
{
"reference": "Parcel-REF-2",
"description": "Clothes",
"dimensions": {
"length": 40,
"width": 25,
"height": 15
},
"weight": 7
}
],
"shipment_title": "Order #1234",
"shipment_type": "outbound",
"carrier_service": "dpd-econ",
"purchase_label": true,
"collection_date": "2025-02-14",
"collection_time": "12:30:00"
}
Response
{
"id": 1339657,
"waybill_number": "",
"created_at": "2025-02-14T06:20:26Z",
"last_updated_at": "",
"shipment_title": "Order #1234",
"shipment_type": "outbound",
"label_purchased": false,
"collection_date": "",
"billing": [],
"sender": {
"name": "Ishmael Evans",
"contact": "0817553597",
"email": "ishmael@usecarter.com",
"collection_address": {
"address1": "26 Washington Rd",
"address2": "",
"suburb": "Claremont",
"city": "Cape Town",
"province": "Western Cape",
"postal_code": "7780",
"country": "South Africa",
"full_address": "26 Washington Rd, Claremont, Cape Town, 7780, South Africa",
"latitude": 40.7128,
"longitude": -74.0060,
"geocode_status": "partially_matched"
},
"pickup_instructions": "Call when arrived"
},
"receiver": {
"name": "Jane Smith",
"contact": "0787654321",
"email": "janesmith@example.com",
"delivery_address": {
"address1": "12 Clyde Road",
"address2": "",
"suburb": "Green Point",
"city": "Cape Town",
"province": "Western Cape",
"postal_code": "8005",
"country": "South Africa",
"full_address": "12 Clyde Road, Green Point, Cape Town, 8005, South Africa",
"latitude": 34.0522,
"longitude": -118.2437,
"geocode_status": "matched"
},
"drop_off_instructions": "Ring the doorbell twice"
},
"latest_status": {
"primary_status": {
"status": "pending",
"slug": "pending",
"code": 1
},
"secondary_status": null
},
"services": [
{
"service_type": "shipment",
"carrier_slug": "fw",
"carrier_id": 4,
"carrier_name": "Fastway",
"service_id": 18,
"service_name": "BROWN",
"service_slug": "fw-brown",
"service_full_name": "Local Parcel",
"service_sla_text": "Same day",
"service_transit_days": 0,
"collection_cutoff_time": "14:00",
"latest_delivery_time": "18:00"
}
],
"parcels": [
{
"id": "12345_1",
"parcel_number": "",
"reference": "Parcel-REF-1",
"description": "Books",
"dimensions": {
"length": 30,
"width": 20,
"height": 10
},
"weight": 5
},
{
"id": "12345_2",
"parcel_number": "",
"reference": "Parcel-REF-2",
"description": "Clothes",
"dimensions": {
"length": 40,
"width": 25,
"height": 15
},
"weight": 7
}
],
"tracking_log": [],
"labels": {},
"tracking_link": {}
}
Response
{
"id": 1339657,
"waybill_number": "CTR492459759",
"created_at": "2025-02-14T06:20:26Z",
"last_updated_at": "2025-04-08T10:00:00Z",
"shipment_title": "Order #1234",
"shipment_type": "outbound",
"label_purchased": true,
"collection_date": "2025-02-14T10:00:00Z",
"billing": [
{
"transaction_id": 123456,
"timestamp": "2025-02-14T06:20:26Z",
"type": "invoice",
"description": "Shipment purchased",
"transaction_ex_vat": 55,
"transaction_vat": 8.25,
"transaction_inc_vat": 63.25,
"transaction_status": "wallet_debited"
}
],
"sender": {
"name": "Ishmael Evans",
"contact": "0817553597",
"email": "ishmael@usecarter.com",
"collection_address": [
{
"address1": "Unit 12",
"address2": "26 Washington Rd",
"suburb": "Claremont",
"city": "Cape Town",
"province": "Western Cape",
"postal_code": "7780",
"country": "South Africa",
"full_address": "Unit 12, 26 Washington Rd, Claremont, Cape Town, 7780, South Africa",
"latitude": -33.9706,
"longitude": 18.4649,
"geocode_status": "partially_matched"
}
],
"pickup_instructions": "Call when arrived"
},
"receiver": {
"name": "Jane Smith",
"contact": "0787654321",
"email": "janesmith@example.com",
"delivery_address": {
"address1": "Tech Solutions Inc., Tech Park, Suite 500",
"address2": "12 Clyde Road",
"suburb": "Green Point",
"city": "Cape Town",
"province": "Western Cape",
"postal_code": "8005",
"country": "South Africa",
"full_address": "Tech Solutions Inc., Tech Park, Suite 500, 12 Clyde Road, Green Point, Cape Town, 8005, South Africa",
"latitude": -33.9095,
"longitude": 18.4155,
"geocode_status": "fully_matched"
},
"drop_off_instructions": "Ring the doorbell twice"
},
"latest_status": {
"primary_status": {
"status": "Collection approved",
"slug": "collection_approved",
"code": 3
},
"secondary_status": null
},
"services": [
{
"service_type": "shipment",
"carrier_slug": "fw",
"carrier_id": 4,
"carrier_name": "Fastway",
"carrier_contact_number": "0812345678",
"service_id": 18,
"service_name": "BROWN",
"service_slug": "fw-brown",
"service_full_name": "Local Parcel",
"service_sla_text": "Same day",
"service_transit_days": 0,
"collection_cutoff_time": "12:30",
"latest_delivery_time": "17:30"
}
],
"parcels": [
{
"id": 40329,
"parcel_number": "CTR492459759_1",
"reference": "Parcel-REF-1",
"description": "Books",
"dimensions": {
"length": 30,
"width": 20,
"height": 10
},
"weight": 5
},
{
"id": 40330,
"parcel_number": "CTR492459759_2",
"reference": "Parcel-REF-2",
"description": "Clothes",
"dimensions": {
"length": 40,
"width": 25,
"height": 15
},
"weight": 7
}
],
"tracking_log": [
{
"timestamp": "2025-04-06T22:48:00Z",
"primary_status": {
"status": "Pending",
"slug": "pending",
"code": 1
},
"secondary_status": null,
"comments": "Created by admin user",
"location": ""
},
{
"timestamp": "2025-04-06T22:51:00Z",
"primary_status": {
"status": "Collection requested",
"slug": "collection_requested",
"code": 2
},
"secondary_status": null,
"comments": "For collection on Mon, 07 Apr",
"location": ""
},
{
"timestamp": "2025-04-06T22:51:00Z",
"primary_status": {
"status": "Collection approved",
"slug": "collection_approved",
"code": 3
},
"secondary_status": null,
"comments": "Carrier collecting on Mon, 07 Apr",
"location": ""
}
],
"est_delivery": {
"est_delivery_date": "2025-04-07",
"est_delivery_time": "17:30:00",
"est_delivery_text": "Monday, 7th April before 5:30 PM"
},
"labels": {
"a4_page": "https://evership.app/label/a4/CTR492459759",
"10_by_10": "https://evership.app/label/10x10/CTR492459759",
"10_by_15": "https://evership.app/label/10x15/CTR492459759"
},
"tracking_link": {
"receiver": "https://ship.evership.app/gs7fh7",
"sender": "https://ship.evership.app/5rlyg6"
}
}
Purchase Shipment
Use this endpoint to purchase an existing shipment (or batch of shipments) that was previously created. The shipment must already have a valid rate associated with it. Once purchased, a label and tracking number will be returned.
Request fields
- Name
shipment_ids
- Type
- array
- Description
List of shipment IDs to purchase.
- Name
shipment_ids[]
- Type
- string
- Description
Must be a valid Evership shipment ID (e.g.,
shp_xxxx
) in a pending state.
- Name
metadata
- Type
- object
- Description
Optional object to append metadata to all shipments.
Response Fields
- Name
status
- Type
- string
- Description
Response status:
success
orerror
.
- Name
purchased_shipments
- Type
- array
- Description
Array of successfully purchased shipment objects.
- Name
purchased_shipments[].id
- Type
- string
- Description
Unique ID of the purchased shipment.
- Name
purchased_shipments[].state
- Type
- string
- Description
Shipment state, should be
purchased
.
- Name
purchased_shipments[].label_url
- Type
- string
- Description
URL to download the shipping label.
- Name
purchased_shipments[].tracking_number
- Type
- string
- Description
Carrier-provided tracking number.
- Name
purchased_shipments[].provider
- Type
- string
- Description
Shipping carrier used (e.g. The Courier Guy, Aramex).
- Name
purchased_shipments[].service
- Type
- string
- Description
Shipping service used (e.g. Express, Overnight).
- Name
purchased_shipments[].rate.amount
- Type
- float
- Description
Cost of the shipment.
- Name
purchased_shipments[].rate.currency
- Type
- string
- Description
Currency code for the amount, e.g.
ZAR
.
Request
{
"shipment_ids": [
"shp_01HF5TC8X63C3MFX3D0WTTVRHN",
"shp_01HF5TD2PRJ5R3T0E0KXJQ0T9X"
]
}
Response
{
"status": "success",
"purchased_shipments": [
{
"id": "shp_01HF5TC8X63C3MFX3D0WTTVRHN",
"state": "purchased",
"label_url": "https://labels.evership.app/label_01.pdf",
"tracking_number": "TGC123456789",
"provider": "The Courier Guy",
"service": "Express",
"rate": {
"amount": 89.99,
"currency": "ZAR"
}
},
{
"id": "shp_01HF5TD2PRJ5R3T0E0KXJQ0T9X",
"state": "purchased",
"label_url": "https://labels.evership.app/label_02.pdf",
"tracking_number": "RMX987654321",
"provider": "Aramex",
"service": "Overnight",
"rate": {
"amount": 109.99,
"currency": "ZAR"
}
}
]
}
Edit Shipment
Use this endpoint to update an existing shipment that is still in a pending state.
You can update the collection address, delivery address, parcel dimensions/quantities, and metadata fields. This is useful if your customer updated their delivery information or you need to fix a mistake before purchasing the shipment.
Once a shipment is purchased via /purchase-shipment, it can no longer be updated and will return a 409 Conflict error.
Request fields
- Name
collection_address.line1
- Type
- string
- Description
Street line 1 of collection address
- Name
collection_address.line2
- Type
- string
- Description
Street line 2
- Name
collection_address.city
- Type
- string
- Description
City
- Name
collection_address.postal_code
- Type
- string
- Description
Postal code
- Name
collection_address.state
- Type
- string
- Description
Province or state
- Name
collection_address.country
- Type
- string
- Description
ISO 3166-1 alpha-2 country code
- Name
delivery_address.line1
- Type
- string
- Description
Street line 1 of delivery address
- Name
delivery_address.line2
- Type
- string
- Description
Street line 2
- Name
delivery_address.city
- Type
- string
- Description
City
- Name
delivery_address.postal_code
- Type
- string
- Description
Postal code
- Name
delivery_address.state
- Type
- string
- Description
Province or state
- Name
delivery_address.country
- Type
- string
- Description
ISO 3166-1 alpha-2 country code
- Name
parcels[].quantity
- Type
- integer
- Description
Number of identical parcels
- Name
parcels[].weight
- Type
- float
- Description
Weight in kg
- Name
parcels[].length
- Type
- float
- Description
Length in cm
- Name
parcels[].width
- Type
- float
- Description
Width in cm
- Name
parcels[].height
- Type
- float
- Description
Height in cm
- Name
metadata.order_number
- Type
- string
- Description
Order number reference
- Name
metadata.customer_name
- Type
- string
- Description
Customer name
- Name
metadata.customer_phone
- Type
- string
- Description
Phone number
- Name
metadata.customer_email
- Type
- string
- Description
Email address
Response Fields
- Name
status
- Type
- string
- Description
Response status, e.g. success or error
- Name
shipment.id
- Type
- string
- Description
Unique ID of the shipment
- Name
shipment.state
- Type
- string
- Description
Should be pending
- Name
shipment.collection_address
- Type
- object
- Description
Updated collection address object
- Name
shipment.delivery_address
- Type
- object
- Description
Updated delivery address object
- Name
shipment.parcels
- Type
- array
- Description
Updated parcel list
- Name
shipment.metadata
- Type
- object
- Description
Updated metadata object
- Name
shipment.metadata.order_number
- Type
- string
- Description
Order reference number
- Name
shipment.metadata.customer_name
- Type
- string
- Description
Customer full name
- Name
shipment.metadata.customer_email
- Type
- string
- Description
Customer email address
Request
{
"collection_address": {
"line1": "Unit 3",
"line2": "Brickfield Park",
"city": "Cape Town",
"postal_code": "7925",
"state": "Western Cape",
"country": "ZA"
},
"delivery_address": {
"line1": "75 Harrington Street",
"line2": "",
"city": "Cape Town",
"postal_code": "8001",
"state": "Western Cape",
"country": "ZA"
},
"parcels": [
{
"quantity": 1,
"weight": 2,
"length": 12,
"width": 12,
"height": 12
}
],
"metadata": {
"order_number": "EV-555",
"customer_name": "James Smith",
"customer_email": "james@example.com"
}
}
Response
{
"status": "success",
"shipment": {
"id": "shp_01HF5TC8X63C3MFX3D0WTTVRHN",
"state": "pending",
"collection_address": {
"line1": "Unit 3",
"line2": "Brickfield Park",
"city": "Cape Town",
"postal_code": "7925",
"state": "Western Cape",
"country": "ZA"
},
"delivery_address": {
"line1": "75 Harrington Street",
"line2": "",
"city": "Cape Town",
"postal_code": "8001",
"state": "Western Cape",
"country": "ZA"
},
"parcels": [
{
"quantity": 1,
"weight": 2,
"length": 12,
"width": 12,
"height": 12
}
],
"metadata": {
"order_number": "EV-555",
"customer_name": "James Smith",
"customer_email": "james@example.com"
}
}
}
List Shipments
Use this endpoint to return a paginated list of shipments associated with your account. You can filter by state, a date range (created_from and created_to), or search by order_number or tracking_number.
By default, 25 shipments are returned per page. You can override the limit parameter and paginate using cursor.
Request fields
- Name
state
- Type
- string
- Description
Filter shipments by state (pending, purchased, cancelled)
- Name
created_from
- Type
- string
- Description
Filter shipments created after this ISO 8601 timestamp
- Name
created_to
- Type
- string
- Description
Filter shipments created before this ISO 8601 timestamp
- Name
order_number
- Type
- string
- Description
Search by metadata.order_number
- Name
tracking_number
- Type
- string
- Description
Search by tracking_number
- Name
limit
- Type
- integer
- Description
Number of shipments per page (default 25, max 100)
- Name
cursor
- Type
- string
- Description
Used to paginate to the next page
Response Fields
- Name
status
- Type
- string
- Description
Status of the response, e.g. success
- Name
shipments
- Type
- array
- Description
Array of shipment records matching the query
- Name
shipments[].id
- Type
- string
- Description
Unique ID of the shipment
- Name
shipments[].state
- Type
- string
- Description
Shipment state (pending, purchased, cancelled)
- Name
shipments[].tracking_number
- Type
- string
- Description
Carrier tracking number (if purchased)
- Name
shipments[].label_url
- Type
- string
- Description
Label download URL (if purchased)
- Name
shipments[].collection_address
- Type
- object
- Description
Address object where the parcel is collected
- Name
shipments[].delivery_address
- Type
- object
- Description
Address object where the parcel is delivered
- Name
shipments[].parcels
- Type
- array
- Description
Array of parcel data (quantity, size, weight)
- Name
shipments[].metadata.order_number
- Type
- string
- Description
Order number from metadata
- Name
shipments[].metadata.customer_name
- Type
- string
- Description
Name of the customer
- Name
shipments[].metadata.customer_email
- Type
- string
- Description
Email of the customer
- Name
pagination.limit
- Type
- integer
- Description
Limit set in the request
- Name
pagination.cursor
- Type
- string
- Description
Cursor token used for pagination (send as query param in next request)
Request
GET https://api.example.com/list-shipments?page=1&results_per_page=25&status=pending&payment_status=paid&shipment_type=outbound&carrier=fw&collection_region=Western%20Cape&delivery_region=Eastern%20Cape&created_date_range_start=2025-02-01&created_date_range_end=2025-02-14&collection_date_range_start=2025-02-10&collection_date_range_end=2025-02-15&last_updated_range_start=2025-02-12&last_updated_range_end=2025-02-16&geo_coded_status=unmatched
Response
{
"status": "success",
"shipments": [
{
"id": "shp_01HF5TC8X63C3MFX3D0WTTVRHN",
"state": "purchased",
"tracking_number": "TGC123456789",
"label_url": "https://labels.evership.app/label_01.pdf",
"collection_address": {
"line1": "Unit 3",
"line2": "Black River Park",
"city": "Cape Town",
"postal_code": "7925",
"state": "Western Cape",
"country": "ZA"
},
"delivery_address": {
"line1": "113 Loop St",
"line2": "",
"city": "Cape Town City Centre",
"city": "Cape Town",
"province": "Western Cape",
"postal_code": "8000",
"country": "South Africa",
"full_address": "113 Loop St, Cape Town City Centre, Cape Town, Western Cape, 8000, South Africa",
"latitude": -33.9242692,
"longitude": 18.4187029,
"geocode_status": "partially_matched"
},
"parcels": [
{
"quantity": 1,
"weight": 1,
"height": 10,
"width": 10,
"length": 10
}
],
"metadata": {
"order_number": "EV123456",
"customer_name": "Sarah Smith",
"customer_email": "sarah@example.com"
}
},
{
"id": "shp_01HF5TD2PRJ5R3T0E0KXJQ0T9X",
"state": "pending",
"tracking_number": null,
"label_url": null,
"collection_address": {
"line1": "Unit 12",
"line2": "Brickfield Park",
"city": "Cape Town",
"postal_code": "7925",
"state": "Western Cape",
"country": "ZA"
},
"delivery_address": {
"line1": "14 Long Street",
"line2": "",
"city": "Cape Town",
"postal_code": "8001",
"state": "Western Cape",
"country": "ZA"
},
"parcels": [
{
"quantity": 1,
"weight": 2,
"height": 12,
"width": 12,
"length": 12
}
],
"metadata": {
"order_number": "EV555",
"customer_name": "James Smith",
"customer_email": "james@example.com"
}
}
],
"pagination": {
"limit": 25,
"cursor": "eyJpZCI6InNocl8wMUhGNT..."
}
}
Retrieve Shipments
This API is different from List shipments API, here you can only fetch the details of a single shipment and not multiple shipments in a list.
Using this "Retrieve shipment" API you can retrieve a single shipment record by passing the shipment's shipment_id
and the response will return full details of the shipment, including the tracking log and shipping labels.
Both purchased and un-purchased shipments can be retrieved using this "Retrieve shipment" API
Request fields
- Name
shipment_id
- Type
- string
- Description
Unique ID for the shipment record that is being retrieved
Response Fields
- Name
status
- Type
- string
- Description
Status of the response, e.g. success
- Name
shipments
- Type
- array
- Description
Array of shipment records matching the query
- Name
shipments[].id
- Type
- string
- Description
Unique ID of the shipment
- Name
shipments[].state
- Type
- string
- Description
Shipment state (pending, purchased, cancelled)
- Name
shipments[].tracking_number
- Type
- string
- Description
Carrier tracking number (if purchased)
- Name
shipments[].label_url
- Type
- string
- Description
Label download URL (if purchased)
- Name
shipments[].collection_address
- Type
- object
- Description
Address object where the parcel is collected
- Name
shipments[].delivery_address
- Type
- object
- Description
Address object where the parcel is delivered
- Name
shipments[].parcels
- Type
- array
- Description
Array of parcel data (quantity, size, weight)
- Name
shipments[].metadata.order_number
- Type
- string
- Description
Order number from metadata
- Name
shipments[].metadata.customer_name
- Type
- string
- Description
Name of the customer
- Name
shipments[].metadata.customer_email
- Type
- string
- Description
Email of the customer
- Name
pagination.limit
- Type
- integer
- Description
Limit set in the request
- Name
pagination.cursor
- Type
- string
- Description
Cursor token used for pagination (send as query param in next request)
Request
GET https://api.evership.app/shipments/{shipment_id}
Response
{
"shipment_id": "4rUA2",
"waybill_number": "",
"created_at": "2025-06-20T17:29:27Z",
"last_updated_at": "2025-06-20T17:29:28Z",
"shipment_title": "Create title",
"shipment_type": "outbound",
"payment_status": "pending",
"label_purchased": false,
"collection_date": null,
"billing": [],
"sender": {
"name": "Create Sender",
"contact": "081 000 0001",
"email": null,
"collection_address": {
"address_1": "101 Florida Road",
"address_2": "Apartment 4B",
"suburb": "Morningside",
"city": "Durban",
"province": "KwaZulu-Natal",
"postal_code": "4001",
"country": "South Africa",
"full_address": "101 Florida Road, Apartment 4B, Morningside, Durban, KwaZulu-Natal, 4001, South Africa",
"latitude": -33.9373392,
"longitude": 18.4330704,
"geocode_status": "fully_matched"
},
"pickup_instructions": "Create sender instructions"
},
"receiver": {
"name": "Create Receiver",
"contact": "070 000 0001",
"email": null,
"delivery_address": {
"address_1": "113 Loop St",
"address_2": "Unit 12",
"suburb": "Cape Town City Centre",
"city": "Cape Town",
"province": "Western Cape",
"postal_code": "8000",
"country": "South Africa",
"full_address": "113 Loop St, Unit 12, Cape Town City Centre, Cape Town, Western Cape, 8000, South Africa",
"latitude": -33.9242692,
"longitude": 18.4187029,
"geocode_status": "fully_matched"
},
"drop_off_instructions": "Create receiver instructions"
},
"latest_status": {
"primary_status": {
"status": "pending",
"slug": "pending",
"code": 1
},
"secondary_status": null
},
"services": [
{
"service_type": "shipment",
"carrier_slug": "dpdl",
"carrier_id": 3,
"carrier_name": "DPD Laser",
"service_id": 15,
"service_name": "ECON",
"service_slug": "dpd-econ",
"service_full_name": "ECONOMY",
"service_sla_text": "2 - 3 day",
"service_transit_days": 3,
"collection_cutoff_time": "14:00",
"latest_delivery_time": "17:30"
}
],
"parcels": [
{
"id": "4rUwD",
"parcel_number": null,
"reference": "CREATE-REF",
"description": "Create description",
"dimensions": {
"length": 1,
"width": 1,
"height": 1
},
"weight": 1
}
],
"tracking_log": [],
"est_delivery": {},
"labels": {},
"tracking_link": {}
}
Cancel Shipments
This "Cancel shipment" API allows you to cancel a single shipment that has been purchased but not yet collected by the carrier (status = requested
or approved
) by passing the shipment_id
of the shipment you want to cancel.
If you try to cancel a shipment with status = pending
, an error message will be returned because the shipment has not been purchased yet.
If you try to cancel a shipment where the status is not requested
or approved
, an error message will be returned because the shipment has already been collected by the carrier.
Request Fields
- Name
shipment_id
- Type
- string
- Description
The unique shipment_id of the shipment to cancel.
Response Fields
- Name
status
- Type
- string
- Description
Status of the response, e.g. "success" or "error".
- Name
shipment
- Type
- object
- Description
The cancelled shipment record.
- Name
shipment.id
- Type
- string
- Description
Unique ID of the shipment.
- Name
shipment.state
- Type
- string
- Description
Shipment state (pending, purchased, cancelled).
- Name
shipment.tracking_number
- Type
- string
- Description
Carrier tracking number (if purchased).
- Name
shipment.label_url
- Type
- string
- Description
Label download URL (if purchased).
- Name
shipment.collection_address
- Type
- object
- Description
Address object where the parcel is collected.
- Name
shipment.delivery_address
- Type
- object
- Description
Address object where the parcel is delivered.
- Name
shipment.parcels
- Type
- array
- Description
Array of parcel data (quantity, size, weight).
- Name
shipment.metadata.order_number
- Type
- string
- Description
Order number from metadata.
- Name
shipment.metadata.customer_name
- Type
- string
- Description
Name of the customer.
- Name
shipment.metadata.customer_email
- Type
- string
- Description
Email of the customer.
Request
POST https://www.api.evership.app/v1/cancel-shipment/{shipment_id}
Response
{
"id": 1339657,
"cancellation_status": "success",
"status": {
"primary": {
"status": "cancelled",
"code": "12"
},
"secondary": {
"status": "cancelled_user",
"code": "12A"
}
},
"cancellation_timestamp": "2025-03-09T12:00:00+10:30",
"message": "The shipment has been cancelled successfully."
}
Delete Shipments
This "Delete shipments" API will allow you to delete either a single shipment or batch of shipments that have the pending status, and have not been purchased yet or have not been cancelled. If the shipment has been purchased or cancelled, it cannot be deleted and we will return an error response.
Request Fields
- Name
shipment_ids
- Type
- string
- Description
Comma-separated list of shipment IDs to be deleted. Each ID uniquely identifies a shipment to be deleted from the system.
Response Fields
- Name
status
- Type
- string
- Description
Status of the response, e.g. "success" or "error".
- Name
shipment
- Type
- object
- Description
The cancelled shipment record.
- Name
shipment.id
- Type
- string
- Description
Unique ID of the shipment.
- Name
shipment.state
- Type
- string
- Description
Shipment state (pending, purchased, cancelled).
- Name
shipment.tracking_number
- Type
- string
- Description
Carrier tracking number (if purchased).
- Name
shipment.label_url
- Type
- string
- Description
Label download URL (if purchased).
- Name
shipment.collection_address
- Type
- object
- Description
Address object where the parcel is collected.
- Name
shipment.delivery_address
- Type
- object
- Description
Address object where the parcel is delivered.
- Name
shipment.parcels
- Type
- array
- Description
Array of parcel data (quantity, size, weight).
- Name
shipment.metadata.order_number
- Type
- string
- Description
Order number from metadata.
- Name
shipment.metadata.customer_name
- Type
- string
- Description
Name of the customer.
- Name
shipment.metadata.customer_email
- Type
- string
- Description
Email of the customer.
Request
DELETE https://www.api.evership.app/v1/shipments?shipment_ids=12345,12346,12347
Response
{
"summary": {
"total": 4,
"deleted": 1,
"failed": 3
},
"results": [
{
"shipment_id": "12345",
"status": "deleted"
},
{
"shipment_id": "12346",
"status": "not_found",
"error_message": "This shipment was not found"
},
{
"shipment_id": "12348",
"status": "cannot_delete_purchased",
"error_message": "This shipment cannot be deleted as it has been purchased"
},
{
"shipment_id": "12349",
"status": "cannot_delete_cancelled",
"error_message": "This shipment cannot be deleted as it has been cancelled"
}
]
}