Fulfilment
Shipments
Retrieve shipments and update shipment status for customer fulfilment
Overview
The Shipments endpoints allow you to view customer shipments and update fulfilment status as orders move through your dispatch workflow.
Authentication
All endpoints require authentication. Include your API token in the Authorization header. For more information on obtaining a token, see the Authentication guide.
List Shipments
Retrieve a list of shipments.
Endpoint: GET https://curosa.com/api/v1/shipments
Request
curl --location 'https://curosa.com/api/v1/shipments?status=pending' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
Query Parameters
| Parameter | Type | Description |
|---|---|---|
status |
string | Optional shipment status filter (example: pending) |
List Ready-to-Ship Shipments
Retrieve shipments that are ready to ship today and have not yet been marked as shipped or collected.
Endpoint: GET https://curosa.com/api/v1/shipments/ready-to-ship
Request
curl --location 'https://curosa.com/api/v1/shipments/ready-to-ship' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
Response Behavior
This endpoint returns shipments that:
- are due to be shipped on the current day
- are not currently marked as shipped
- are not currently marked as collected
Get Shipment
Retrieve a specific shipment by order number.
Endpoint: GET https://curosa.com/api/v1/shipments/{order_number}
Request
curl --location 'https://curosa.com/api/v1/shipments/OSN-01260312-002001' \
--header 'Authorization: Bearer YOUR_API_TOKEN'
Path Parameters
| Parameter | Type | Description |
|---|---|---|
order_number |
string | Shipment order number |
Mark Shipment as Shipped
Mark a shipment as shipped and provide carrier/tracking information.
Endpoint: POST https://curosa.com/api/v1/shipments/{order_number}/shipped
Request
curl --location 'https://curosa.com/api/v1/shipments/OSN-01260312-002001/shipped' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"carrier": "DHL",
"tracking_number": "DHL-123456789",
"is_collected": false
}'
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
carrier |
string | Yes | Shipping carrier name |
tracking_number |
string | Yes | Carrier tracking number |
is_collected |
boolean | No | Set true if shipment has already been collected |
Mark Shipment as Collected
Mark a shipment as collected by the carrier.
Endpoint: POST https://curosa.com/api/v1/shipments/{order_number}/collected
Request
curl --location 'https://curosa.com/api/v1/shipments/OSN-01260312-002001/collected' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"carrier": "DHL",
"tracking_number": "DHL-123456789"
}'
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
carrier |
string | Yes | Shipping carrier name |
tracking_number |
string | Yes | Carrier tracking number |
Rate Limiting
Shipment endpoints are rate limited to 3,600 requests per hour. The current limit and remaining requests are returned in the response headers as x-ratelimit-limit and x-ratelimit-remaining.