Pickups
post
/{connectorId}/pickupscreatePickupBookingBook a pickup
Books a pickup — either derived from an existing consignment (`shipmentId`, address/items locked to that consignment) or standalone (`collection`, `items`, and `receiver` supplied directly, all three required together). A partial standalone submission (e.g. `collection` without `items`/`receiver`) is rejected with a 400.
Parameters
| Name | In | Required | Description |
|---|---|---|---|
| connectorId | path | ✓ | Database ID of the carrier connector account (from `GET /connectors`) |
Request body
PickupBookingRequest
Responses
201Pickup booked successfully (or recorded as failed — check `status`)PickupBookingResponse
400Invalid request — validation failed or carrier rejected inputError
401Missing or invalid API keyError
403Freight access is not active for this tenantError
404Connector not found or not active for this tenantError
429Too many requests for this API key — see Retry-After headerError
500The carrier accepted the pickup booking, but DataShift failed to record it locally — the pickup is real at the carrier and must not be retried (a retry would book a second real pickup). Reconcile manually using the returned `orderNumber` (the carrier's own pickup reference).{
message?: string
orderNumber?: string
}502Carrier API returned an error or is unavailableError
get
/pickups/{id}getPickupBookingRetrieve a pickup booking
Parameters
| Name | In | Required | Description |
|---|---|---|---|
| id | path | ✓ |
Responses
200Pickup booking detailPickupBookingDetailResponse
401Missing or invalid API keyError
403Freight access is not active for this tenantError
404Connector not found or not active for this tenantError
429Too many requests for this API key — see Retry-After headerError
