Skip to Content
Client API 2026-09List, Label & Cancel

Shipments — List, Label & Cancel

Every shipment is identified by its tracking number (LDV), returned as trackingNumber when you create it.

List shipments

GET /shipments — paginated

Query parameterTypeDescription
from, todateCreation date range. Default: the last 30 days
statusstringStatus key or code, or a comma-separated list (delivered,held_at_depot or 5,6) — see statuses
carrierCodestringe.g. brt
serviceTypestringContract code
trackingNumberstringExact LDV
referencestringYour order reference (exact match)
citystringPartial, case-insensitive
countryCodestring (2)Destination country
hasCod, hasInsurancebooleanShipments with (or without) cash on delivery / insurance
storeIdintegerShipments created from the orders of a store
per_page, pageintegerPagination

The recipientName and postalCode filters are reserved to the Spedisci.online apps and answer 422 validation_failed — see Recipient personal data.

curl "https://<subdomain>.spedisci.online/api/2026-09/shipments?from=2026-09-01&status=in_transit,out_for_delivery&per_page=100" \ -H "Authorization: Bearer <access_token>" \ -H "Accept: application/json"

The response is a paginated list of Shipment objects (without label).

Shipment detail

GET /shipments/{ldv}

Returns the Shipment object. 404 not_found when the LDV does not exist or belongs to another client.

Shipment object

FieldTypeDescription
idintegerInternal shipment id (used by POST /manifests as shipmentIds)
trackingNumberstringLDV / carrier tracking number
returnTrackingNumberstring|nullLDV of the Poste return issued with or booked on the shipment — see Poste Returns
shipmentKeystring|nullPublic key of the shipment (tracking page)
referencestring|nullYour order reference
bdastring|nullBDA
statusStatus{ code, key, label }
carrierCarrier{ code, name, contractCode, contractName }
warehouseIdinteger|nullPickup point the shipment left from (Settings → Pickup points)
shipperPartySender address as stored — your own address, returned in full
recipientDestinationWhere the shipment goes: { "address": { "city", "province", "countryCode" } } only — see Recipient personal data
packages[]object[]One entry per package: number, trackingNumber (per-package LDV), incrementId (carrier parcel id), reference, weight, dimensions
parcelsintegerNumber of packages
weight, volumetricWeight, billableWeightWeightReal, volumetric and billed weight
codobject|null{ amount, currency, type, status } — status: 0 pending, 1 processing, 2 paid out
insuranceMoney|null
costobject{ total, currency, breakdown: { weight, insurance, cod, services, extra } }
accessoryServicesinteger[]Service ids applied
contentDescriptionstring|null
customsDetailobject|nullThe customs declaration as stored, without the importer block
deliveryPointobject|nullThe Poste / BRT point the shipment is delivered to — see Delivery Points
labelFormatstringNative label format
deliveryDepotstring|nullDestination depot (BRT)
manifestIdinteger|nullId of the manifest the shipment was closed in
hasWarningbooleanThe carrier raised a warning when the shipment was created
createdAt, shippedAt, collectedAt, deliveredAt, trackingUpdatedAtdatetime|nullLifecycle timestamps

Get the label

GET /shipments/{ldv}/label?format=pdf|zpl&returnLabel=merged|separate

Returns the label of an existing shipment in base64. Without format both formats are returned where available. A Poste return label issued with the shipment follows the outbound label in the same file (returnLabel=merged, default) or comes apart in returnLabel with returnLabel=separate — see Poste Returns.

curl "https://<subdomain>.spedisci.online/api/2026-09/shipments/DEMO05407027/label?format=pdf" \ -H "Authorization: Bearer <access_token>" \ -H "Accept: application/json"
FieldTypeDescription
format"PDF" | "ZPL"Native format of the stored label
pdfstring|nullBase64 PDF (null when format=zpl)
zplstring|nullBase64 ZPL (null when format=pdf or the carrier cannot provide ZPL)
returnLabelobject|nullOnly with returnLabel=separate: { trackingNumber, pdf, zpl, code } of the return label, null when there is none

Cancel a shipment

DELETE /shipments/{ldv}

Cancels the shipment with the carrier and refunds the cost to the account credit. Possible only while the shipment is not yet in a manifest or in transit.

curl -X DELETE https://<subdomain>.spedisci.online/api/2026-09/shipments/DEMO05407027 \ -H "Authorization: Bearer <access_token>" \ -H "Accept: application/json"
HTTPcodeWhen
404not_foundUnknown LDV or shipment of another client
409invalid_stateThe shipment is already in a manifest or in transit
502carrier_errorThe carrier did not accept the cancellation

Cancelling is final: to ship again create a new shipment. The label of a cancelled shipment must not be used.

Last updated on