API reference

Shipping API

Manage individual shipments: create, confirm, cancel, and track parcels from booking through delivery. Covers the full shipment lifecycle including label and document retrieval, status overrides, consolidated (master) shipments, manifests, and bulk operations.

Shipment booking is asynchronous. Creating or confirming a shipment returns pending; the carrier-confirmed outcome (tracking number, label, or booking error) arrives by webhook.

Errors

Every request is authenticated with x-api-key and tenant-id, and answers 401 when the key is missing or invalid. Every shipment-scoped endpoint resolves the path value as a shipment_id first and then as a partner_shipment_reference, and answers 404 when neither matches. An API key is scoped to one or more merchants; a shipment belonging to a merchant outside that scope, or to another tenant, answers 403. A malformed body, or an unreadable enum value inside it, answers 400. Causes specific to one operation are listed on that operation's response for the status code they produce.

Idempotency

Write endpoints accept an optional Idempotency-Key request header for safe request replay when your integration retries after uncertain network outcomes. Replayed responses include Idempotent-Replayed: true. See https://carriyo.com/docs/api/idempotency/ for the full contract.

Serverhttps://api.carriyo.comAuthOAuth 2.0 + API KeySpecshipping.yaml

Shipments

The shipment object is the backbone of the Shipping API. It represents a grouping of items that are transported together from a starting point to a final destination, in one or more parcels.

The type of shipment can be classified as either FORWARD or REVERSE. A forward shipment moves items from a merchant to a customer; a reverse shipment is the opposite, returning items from a customer to a merchant.

Each shipment is given two identifiers: a shipment_id generated by Carriyo, and a partner_shipment_reference supplied by the merchant.

25 operations · 1 object

Object

The Shipment object

The Shipment object is the central entity of the Shipping API. It carries everything Carriyo needs to book a shipment with a carrier and track it through delivery — origin and destination addresses, items being shipped, parcels and their dimensions, payment information, customs data for cross-border, and the shipment's lifecycle status.

A shipment can be created in draft state (held in Carriyo until your team confirms) or confirmed directly (booked with a carrier immediately). Reverse shipments — returns from a customer back to your warehouse — use the same object with entity_type: REVERSE.

For the conceptual relationship between shipments, orders, and fulfillment orders, see the Domain model.

Properties

  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
post/shipments

Create shipment

Create a shipment. Returns a unique shipment_id. Either name a carrier_account explicitly or let Carriyo's shipping rules pick one.

Forward vs reverse. Set entity_type to either:

  • FORWARD: a normal outbound shipment from the merchant to the customer. Omit entity_type and this is what you get.
  • REVERSE: a return shipment, where the customer sends items back to the merchant.

Draft, confirmed, prebooked. Three creation modes, each with different behavior against the carrier:

  • Draft (?draft=true): the shipment is saved in Carriyo for visibility but is not sent to the carrier. Use this when parcel details aren't final yet. The shipment stays in draft until you call Confirm shipment.

  • Confirmed (default, no ?draft query parameter): Carriyo validates the payload, assigns a carrier, and immediately submits the booking request to that carrier. The API responds with status pending straight away, without waiting for the carrier's response. The carrier's outcome (acceptance, rejection, label) arrives via webhook. If Carriyo's own validations fail, the shipment is still created, in error status with the validation errors in the response body, and the call returns 200 rather than a client error.

  • Prebooked (pre_booked: true): register a shipment that was booked outside Carriyo so Carriyo can track it. Once registered, the shipment shows up alongside the rest of your shipments in operational monitoring, reporting, and the branded customer tracking experience. Carriyo does not call the carrier's booking endpoint in this mode, but it does take ownership of tracking the shipment with the carrier from this point on. Supply the existing carrier and tracking number in pre_booking_info:

    {
      "pre_booked": true,
      "pre_booking_info": {
        "input_carrier": "DHL",
        "carrier_tracking_no": "1234567890"
      }
    }
    

After booking. Once the carrier accepts the booking, the shipment status moves to booked and the carrier's tracking number is attached. A label is generated. From that point, all subsequent status changes and label updates are pushed to your webhooks; the response from this endpoint represents only the moment of submission, not the carrier's final decision.

Query parameters

NameTypeRequiredDescription
draftbooleanNoSet to `true` to create the shipment as a draft. The shipment is saved and validated but no carrier is contacted, so nothing is booked until you call **Confirm shipment**. Omit it and the shipment is submitted to the carrier immediately.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonSchema: shipment-requestrequired
  • entity_typestring
    Direction of the shipment. FORWARD moves goods to the customer, REVERSE collects them back. Determines which address is the customer's and which lifecycle the shipment follows.
    Values:FORWARDREVERSE
  • merchantstringrequired
    The merchant this shipment belongs to. Must be an active merchant in the tenant.
  • referencesreferences-requestrequired
    References the merchant supplies for a shipment. partner_order_reference is usually the customer-facing order number; it need not be unique, so every shipment of one order carries the same value. partner_shipment_reference must be unique across the tenant. Both are required on create — neither is derived from the other, and an empty value is rejected.
  • carrier_accountcarrier-account-request
    Carrier account chosen for the shipment. Should contain either the carrier account id or carrier account name. Carrier account id takes precedence if both fields are passed.
  • paymentpayment-request
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • collectioncollection-request
    When the shipment is to be collected. Give scheduled_from with scheduled_to for a window, or scheduled_date for a whole day.
  • deliverydelivery-request
    The delivery chosen for the shipment: its delivery_type, and when it is expected. Give scheduled_from with scheduled_to for a window, or scheduled_date for a whole day.
  • pickuplocation-request | free-form-request
    Pickup address. Either name a predefined location, by Carriyo's partner_location_id or your own partner_location_code, and Carriyo copies its contact and address fields, or pass a free-form address. Forward shipments must name a predefined location; reverse shipments may use either, since the pickup is the customer's own address.
  • dropofffree-form-request | location-request
    Dropoff address. Either name a predefined location, by Carriyo's partner_location_id or your own partner_location_code, and Carriyo copies its contact and address fields, or pass a free-form address. Reverse shipments must name a predefined location; forward shipments may use either, since the dropoff is the customer's own address.
  • itemsitem-request[]
    List of individual items or SKUs in a shipment.
  • parcelsparcel-request[]
    List of parcels in a B2C shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • custom_attributescustom-attributes
    Custom attributes in the form of a map: {"attribute1" : ["value1", "value2"], "attribute2" : ["value1", "value2"]} Please Note: You can only use custom attributes if you are subscribed to this feature.
  • order_datestringformat: date-time
    Date-time in ISO 8601 format. Example: 2020-09-03T17:07:05.000+01:00, or 2020-09-03T17:07:05.000Z for UTC.
  • input_promised_delivery_datestringformat: date-time
    Optional. The promised delivery date to the end customer, in ISO 8601 format. If present, Carriyo will not calculate promise date from service level configuration. Example: 2020-09-03T17:07:05.000+01:00, or 2020-09-03T17:07:05.000Z for UTC.
  • order_typestring
    Pass one of the order types you have predefined in Carriyo
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • taxes_includedboolean
    Indicating whether taxes are included in the item's price
  • duties_includedboolean
    Indicating whether duties are included in the item's price
  • consolidatedboolean
    Set to true to create this shipment as a consolidated parent. Requires consolidated_child_shipments to be supplied. This is a deferred validation: if consolidated_child_shipments is missing when Carriyo books the shipment with the carrier, the shipment is set to status error. It is not rejected at create time.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments to consolidate under this one. Only used when consolidated is true.
  • estimated_shipping_costestimated-shipping-cost
    Optionally pre-populate the estimated shipping cost. Carriyo will recompute this where possible.
  • fulfillment_order_idstring
    ID of the fulfillment order this shipment fulfills (when creating a shipment for an order managed by the Carriyo Orders API).
  • order_idstring
    ID of the parent order (when creating a shipment for an order managed by the Carriyo Orders API).
  • return_request_idstring
    ID of the return request that triggered this (reverse) shipment.
  • insuranceinsurance-object
    Insurance details for the shipment.
  • pre_bookedboolean
    Set to true when registering a shipment that has already been booked with a carrier outside Carriyo. Requires pre_booking_info. This is a deferred validation: if pre_booking_info is missing when Carriyo books the shipment, the shipment is set to status error. It is not rejected at create time.
  • pre_booking_infopre-booking-info
    Carrier tracking details for a pre-booked shipment. Required when pre_booked is true.

Responses

200Shipment created.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • references is missing, or partner_order_reference or partner_shipment_reference is empty.
  • partner_shipment_reference already exists for the tenant.
  • merchant is missing from the body, or names a merchant that does not exist or is deactivated.
  • both parcels and freight.packages are supplied.
  • the tenant's monthly shipment limit is reached.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.
403The API key's merchant scope does not cover the merchant named in the body.Schema: error-response
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

get/shipments

List shipments

Return a paginated list of shipments matching the search and filter parameters. The search_string parameter matches from the start of a word across carrier tracking number, order reference, shipment reference, customer name, email, and similar fields, so acme finds Acme Trading while cme finds nothing. An all-digit search_string is the exception: it also matches the end of the pickup or dropoff contact phone number, so the last few digits are enough to find a shipment. Combine it with the other filters, sort, and pagination parameters as needed.

Each request through the API counts one against the account's monthly shipment-list quota, a separate allowance from the shipment quota. The counter resets each calendar month. A request is refunded only when the search itself fails with a server error; a timeout still counts. An exhausted quota returns 429 with the limit in the message.

Query parameters

NameTypeRequiredDescription
search_stringstringNoThe search string to find shipments using shipment data such as carrier tracking number, order reference, shipment reference, customer name, email etc.
order_refstringNoThe string to be used to fetch shipments for a given order reference.
merchantstringNoThe merchant parameter filters shipments for a given merchant. This parameter can be used multiple times to filter results for multiple merchants.
shipment_typestringNoThe shipment type can either be `forward` or `reverse`. If not passed, then both types of shipments will be included in the results.
creation_date_fromstringNoThe start date in ISO 8601 format to filter the results using shipment creation date.
creation_date_tostringNoThe end date in ISO 8601 format to filter the results using shipment creation date.
update_date_fromstringNoThe start date in ISO 8601 format to filter results by shipment update date. Creation date is filtered separately with `creation_date_from`.
update_date_tostringNoThe end date in ISO 8601 format to filter results by shipment update date. Creation date is filtered separately with `creation_date_to`.
pagestringNoThe page number of the result set, starting from 0. Defaults to the first page (page 0).
page_sizestringNoThe number of results in the response, at most 100. Defaults to 10. A value above 100 is rejected with `400`, as is a request whose `page_size * (page + 1)` exceeds 10,000.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200A page of matching shipments.Schema: shipment-list
  • shipmentsshipment-object[]
  • paginationobject
    Position of this page in the result set.
400Schema: middleware-error-response

The request was rejected. One of:

  • page or page_size is not a number, page_size is above 100, or page_size * (page + 1) exceeds 10,000.
  • search_string runs to more than 100 words.
  • errorstring
    A human-readable message describing why the request failed.
  • errorCodestring
    A short machine-readable name for the failure, such as BadRequest, Forbidden, NotFound or TooManyRequests.
403The tenant is not in the token's scope, or the requested merchants are entirely outside the caller's.Schema: middleware-error-response
  • errorstring
    A human-readable message describing why the request failed.
  • errorCodestring
    A short machine-readable name for the failure, such as BadRequest, Forbidden, NotFound or TooManyRequests.
404The tenant has no subscription record.Schema: middleware-error-response
  • errorstring
    A human-readable message describing why the request failed.
  • errorCodestring
    A short machine-readable name for the failure, such as BadRequest, Forbidden, NotFound or TooManyRequests.
429The monthly shipment-list quota is exhausted.Schema: middleware-error-response
  • errorstring
    A human-readable message describing why the request failed.
  • errorCodestring
    A short machine-readable name for the failure, such as BadRequest, Forbidden, NotFound or TooManyRequests.

Need the full machine-readable spec? Download the OpenAPI document →

get/shipments/{shipment_id}

Get shipment

Return the latest shipment object, including the most up-to-date status and tracking information.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Returns the requested shipment.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
404Shipment not found.Schema: error-response
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

patch/shipments/{shipment_id}

Update shipment

Partially update an existing shipment. Allowed when the shipment is in draft, error, or cancelled; any other status returns 400. (Cancelled shipments are editable so you can correct them before reprocessing.)

The body merges into the stored shipment as follows:

  • Top-level fields you include are replaced wholesale. A top-level field you leave out keeps its current value, but one you send overwrites the stored value entirely — the merge does not reach inside it. To change a single pickup postcode you must still send the whole pickup object; any field you omit inside it is reset.
  • An explicit null clears a field. carrier_account: null unassigns the carrier.
  • custom_attributes and carriyo_metadata are the exceptions and merge entry by entry: add or change one without supplying the others, and set a value to null to remove it. carriyo_metadata entries are matched on name.

Every PATCH resets post_shipping_info to its draft state, keeping documents you uploaded. Changing references.partner_shipment_reference is allowed here, and is rejected when the new value already belongs to another shipment.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonSchema: shipment-requestrequired
  • entity_typestring
    Direction of the shipment. FORWARD moves goods to the customer, REVERSE collects them back. Determines which address is the customer's and which lifecycle the shipment follows.
    Values:FORWARDREVERSE
  • merchantstringrequired
    The merchant this shipment belongs to. Must be an active merchant in the tenant.
  • referencesreferences-requestrequired
    References the merchant supplies for a shipment. partner_order_reference is usually the customer-facing order number; it need not be unique, so every shipment of one order carries the same value. partner_shipment_reference must be unique across the tenant. Both are required on create — neither is derived from the other, and an empty value is rejected.
  • carrier_accountcarrier-account-request
    Carrier account chosen for the shipment. Should contain either the carrier account id or carrier account name. Carrier account id takes precedence if both fields are passed.
  • paymentpayment-request
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • collectioncollection-request
    When the shipment is to be collected. Give scheduled_from with scheduled_to for a window, or scheduled_date for a whole day.
  • deliverydelivery-request
    The delivery chosen for the shipment: its delivery_type, and when it is expected. Give scheduled_from with scheduled_to for a window, or scheduled_date for a whole day.
  • pickuplocation-request | free-form-request
    Pickup address. Either name a predefined location, by Carriyo's partner_location_id or your own partner_location_code, and Carriyo copies its contact and address fields, or pass a free-form address. Forward shipments must name a predefined location; reverse shipments may use either, since the pickup is the customer's own address.
  • dropofffree-form-request | location-request
    Dropoff address. Either name a predefined location, by Carriyo's partner_location_id or your own partner_location_code, and Carriyo copies its contact and address fields, or pass a free-form address. Reverse shipments must name a predefined location; forward shipments may use either, since the dropoff is the customer's own address.
  • itemsitem-request[]
    List of individual items or SKUs in a shipment.
  • parcelsparcel-request[]
    List of parcels in a B2C shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • custom_attributescustom-attributes
    Custom attributes in the form of a map: {"attribute1" : ["value1", "value2"], "attribute2" : ["value1", "value2"]} Please Note: You can only use custom attributes if you are subscribed to this feature.
  • order_datestringformat: date-time
    Date-time in ISO 8601 format. Example: 2020-09-03T17:07:05.000+01:00, or 2020-09-03T17:07:05.000Z for UTC.
  • input_promised_delivery_datestringformat: date-time
    Optional. The promised delivery date to the end customer, in ISO 8601 format. If present, Carriyo will not calculate promise date from service level configuration. Example: 2020-09-03T17:07:05.000+01:00, or 2020-09-03T17:07:05.000Z for UTC.
  • order_typestring
    Pass one of the order types you have predefined in Carriyo
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • taxes_includedboolean
    Indicating whether taxes are included in the item's price
  • duties_includedboolean
    Indicating whether duties are included in the item's price
  • consolidatedboolean
    Set to true to create this shipment as a consolidated parent. Requires consolidated_child_shipments to be supplied. This is a deferred validation: if consolidated_child_shipments is missing when Carriyo books the shipment with the carrier, the shipment is set to status error. It is not rejected at create time.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments to consolidate under this one. Only used when consolidated is true.
  • estimated_shipping_costestimated-shipping-cost
    Optionally pre-populate the estimated shipping cost. Carriyo will recompute this where possible.
  • fulfillment_order_idstring
    ID of the fulfillment order this shipment fulfills (when creating a shipment for an order managed by the Carriyo Orders API).
  • order_idstring
    ID of the parent order (when creating a shipment for an order managed by the Carriyo Orders API).
  • return_request_idstring
    ID of the return request that triggered this (reverse) shipment.
  • insuranceinsurance-object
    Insurance details for the shipment.
  • pre_bookedboolean
    Set to true when registering a shipment that has already been booked with a carrier outside Carriyo. Requires pre_booking_info. This is a deferred validation: if pre_booking_info is missing when Carriyo books the shipment, the shipment is set to status error. It is not rejected at create time.
  • pre_booking_infopre-booking-info
    Carrier tracking details for a pre-booked shipment. Required when pre_booked is true.

Responses

200Shipment updated.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • the shipment is not draft, error or cancelled.
  • the new partner_shipment_reference already belongs to another shipment.
  • the carrier account named in the body does not resolve.
  • a field is longer than its configured maximum.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

put/shipments/{shipment_id}

Replace shipment

Fully replace a shipment. The request body overwrites the stored shipment: any field you omit is reset, including nested objects like pickup, dropoff, parcels and items. To change a few fields and leave the rest intact, use Update shipment (PATCH) instead.

Some fields survive the replacement whatever you send: tenant, merchant, entity_type, creation_date, manifest_id, version, return_request_id, fulfillment_order_id, original_promised_delivery_date, source, creation_source, update_source and the retry metadata.

Allowed in draft, error and cancelled, the same statuses as PATCH; any other status returns 400. Unlike PATCH, the body is required, and references.partner_shipment_reference cannot be changed.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonSchema: shipment-requestrequired
  • entity_typestring
    Direction of the shipment. FORWARD moves goods to the customer, REVERSE collects them back. Determines which address is the customer's and which lifecycle the shipment follows.
    Values:FORWARDREVERSE
  • merchantstringrequired
    The merchant this shipment belongs to. Must be an active merchant in the tenant.
  • referencesreferences-requestrequired
    References the merchant supplies for a shipment. partner_order_reference is usually the customer-facing order number; it need not be unique, so every shipment of one order carries the same value. partner_shipment_reference must be unique across the tenant. Both are required on create — neither is derived from the other, and an empty value is rejected.
  • carrier_accountcarrier-account-request
    Carrier account chosen for the shipment. Should contain either the carrier account id or carrier account name. Carrier account id takes precedence if both fields are passed.
  • paymentpayment-request
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • collectioncollection-request
    When the shipment is to be collected. Give scheduled_from with scheduled_to for a window, or scheduled_date for a whole day.
  • deliverydelivery-request
    The delivery chosen for the shipment: its delivery_type, and when it is expected. Give scheduled_from with scheduled_to for a window, or scheduled_date for a whole day.
  • pickuplocation-request | free-form-request
    Pickup address. Either name a predefined location, by Carriyo's partner_location_id or your own partner_location_code, and Carriyo copies its contact and address fields, or pass a free-form address. Forward shipments must name a predefined location; reverse shipments may use either, since the pickup is the customer's own address.
  • dropofffree-form-request | location-request
    Dropoff address. Either name a predefined location, by Carriyo's partner_location_id or your own partner_location_code, and Carriyo copies its contact and address fields, or pass a free-form address. Reverse shipments must name a predefined location; forward shipments may use either, since the dropoff is the customer's own address.
  • itemsitem-request[]
    List of individual items or SKUs in a shipment.
  • parcelsparcel-request[]
    List of parcels in a B2C shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • custom_attributescustom-attributes
    Custom attributes in the form of a map: {"attribute1" : ["value1", "value2"], "attribute2" : ["value1", "value2"]} Please Note: You can only use custom attributes if you are subscribed to this feature.
  • order_datestringformat: date-time
    Date-time in ISO 8601 format. Example: 2020-09-03T17:07:05.000+01:00, or 2020-09-03T17:07:05.000Z for UTC.
  • input_promised_delivery_datestringformat: date-time
    Optional. The promised delivery date to the end customer, in ISO 8601 format. If present, Carriyo will not calculate promise date from service level configuration. Example: 2020-09-03T17:07:05.000+01:00, or 2020-09-03T17:07:05.000Z for UTC.
  • order_typestring
    Pass one of the order types you have predefined in Carriyo
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • taxes_includedboolean
    Indicating whether taxes are included in the item's price
  • duties_includedboolean
    Indicating whether duties are included in the item's price
  • consolidatedboolean
    Set to true to create this shipment as a consolidated parent. Requires consolidated_child_shipments to be supplied. This is a deferred validation: if consolidated_child_shipments is missing when Carriyo books the shipment with the carrier, the shipment is set to status error. It is not rejected at create time.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments to consolidate under this one. Only used when consolidated is true.
  • estimated_shipping_costestimated-shipping-cost
    Optionally pre-populate the estimated shipping cost. Carriyo will recompute this where possible.
  • fulfillment_order_idstring
    ID of the fulfillment order this shipment fulfills (when creating a shipment for an order managed by the Carriyo Orders API).
  • order_idstring
    ID of the parent order (when creating a shipment for an order managed by the Carriyo Orders API).
  • return_request_idstring
    ID of the return request that triggered this (reverse) shipment.
  • insuranceinsurance-object
    Insurance details for the shipment.
  • pre_bookedboolean
    Set to true when registering a shipment that has already been booked with a carrier outside Carriyo. Requires pre_booking_info. This is a deferred validation: if pre_booking_info is missing when Carriyo books the shipment, the shipment is set to status error. It is not rejected at create time.
  • pre_booking_infopre-booking-info
    Carrier tracking details for a pre-booked shipment. Required when pre_booked is true.

Responses

200Shipment replaced.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • the body is missing.
  • the shipment is not draft, error or cancelled.
  • references.partner_shipment_reference differs from the stored value.
  • a field is longer than its configured maximum.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/{shipment_id}/confirm

Confirm shipment

Book a draft shipment for the first time, or retry booking a shipment that's currently in error status.

Eligible statuses: draft, error. For any other status that still allows re-booking (e.g. booked, cancelled, returned), use Reprocess shipment (POST /shipments/{shipment_id}/reprocess) instead.

Optional updates. The request body is optional. Supply it if you want to amend the shipment as part of confirming. Merge rules match Update shipment (PATCH):

  • A top-level field you leave out keeps its value; one you send replaces the stored value wholesale, so send nested objects like pickup complete. An explicit null clears a field.
  • custom_attributes and carriyo_metadata merge entry by entry. Pass null to remove one.

Booking flow. Carriyo moves the shipment to pending, assigns a carrier, and submits the booking request to that carrier. The API responds immediately with status pending, without waiting for the carrier's reply. If the carrier accepts, the status becomes booked and the tracking number is attached. If the carrier rejects, the status becomes error with the carrier's reason in post_shipping_info.error_details.

Booking outcomes and label generation are delivered via webhooks, not in the response to this call.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonSchema: shipment-patch-request
  • order_typestring
    Pass one of the order types you have predefined in Carriyo
  • carrier_accountcarrier-account-request
    Carrier account chosen for the shipment. Should contain either the carrier account id or carrier account name. Carrier account id takes precedence if both fields are passed.
  • paymentpayment-request
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • collectioncollection-request
    When the shipment is to be collected. Give scheduled_from with scheduled_to for a window, or scheduled_date for a whole day.
  • deliverydelivery-request
    The delivery chosen for the shipment: its delivery_type, and when it is expected. Give scheduled_from with scheduled_to for a window, or scheduled_date for a whole day.
  • pickuplocation-request | free-form-request
    Pickup address. Either name a predefined location, by Carriyo's partner_location_id or your own partner_location_code, and Carriyo copies its contact and address fields, or pass a free-form address. Forward shipments must name a predefined location; reverse shipments may use either, since the pickup is the customer's own address.
  • dropofffree-form-request | location-request
    Dropoff address. Either name a predefined location, by Carriyo's partner_location_id or your own partner_location_code, and Carriyo copies its contact and address fields, or pass a free-form address. Reverse shipments must name a predefined location; forward shipments may use either, since the dropoff is the customer's own address.
  • itemsitem-request[]
    List of individual items or SKUs in a shipment.
  • parcelsparcel-request[]
    List of parcels in a B2C shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • custom_attributescustom-attributes
    Custom attributes in the form of a map: {"attribute1" : ["value1", "value2"], "attribute2" : ["value1", "value2"]} Please Note: You can only use custom attributes if you are subscribed to this feature.
  • order_datestringformat: date-time
  • input_promised_delivery_datestringformat: date-time
    Optional. The promised delivery date to the end customer, in ISO 8601 format. If omitted, Carriyo will set the promised delivery date from the scheduled delivery window when present, or otherwise from service level configuration. Example: 2020-09-03T17:07:05.000+01:00, or 2020-09-03T17:07:05.000Z for UTC.
  • consolidatedboolean
    Mark this shipment as a consolidated parent. Requires consolidated_child_shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments to consolidate under this one. Only used when consolidated is true.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • estimated_shipping_costestimated-shipping-cost
    Override the estimated shipping cost. Carriyo will recompute where possible.
  • insuranceinsurance-object
    Insurance details for the shipment.
  • languagestring
    Two-letter ISO 639-1 language code for customer-facing communications.
  • pre_bookedboolean
    Mark as true for a shipment already booked with a carrier outside Carriyo. Requires pre_booking_info.
  • pre_booking_infopre-booking-info
    Carrier tracking details for a pre-booked shipment. Required when pre_booked is true.
  • referencesreferences-request
    Merchant-supplied references (order reference, partner reference, etc.).
  • skip_validationsstring[]
    Names of validation groups to skip on this request. Used in advanced flows where the caller wants to bypass specific validation rules, for example accepting a shipment without a confirmed pickup window.

Responses

200Shipment confirmed.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • the shipment is not draft or error.
  • the shipment is a consolidated parent still awaiting its booking confirmation.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/{shipment_id}/reprocess

Reprocess shipment

Re-book a shipment that's no longer in draft. Confirm shipment only handles draft and error; this endpoint covers the wider list of statuses below. For error, either endpoint works.

Eligible statuses: booked, ready_to_ship, error, cancelled, cancelled_by_carrier, out_for_collection, failed_collection_attempt, ready_for_return, return_in_transit, returned.

Typical uses:

  • Retry after a transient carrier error.
  • Switch carrier or routing after the original carrier cancelled or rejected the booking.
  • Correct addresses, parcels, or other shipment data and re-submit.
  • Re-book during a return or reverse-logistics flow.

Optional updates. The request body is optional. Supply it to amend shipment data as part of reprocessing. Merge rules match Update shipment (PATCH):

  • A top-level field you leave out keeps its value; one you send replaces the stored value wholesale, so send nested objects like pickup complete. An explicit null clears a field.
  • custom_attributes and carriyo_metadata merge entry by entry. Pass null to remove one.

Booking flow. Carriyo moves the shipment to pending, re-assigns a carrier (or keeps the one specified in the body), and submits the booking request. The API responds immediately as pending, without waiting for the carrier. If the carrier accepts, status becomes booked with the tracking number attached; if rejected, status becomes error with details in post_shipping_info.error_details. Subsequent booking outcomes and label updates flow through webhooks.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonSchema: shipment-patch-request
  • order_typestring
    Pass one of the order types you have predefined in Carriyo
  • carrier_accountcarrier-account-request
    Carrier account chosen for the shipment. Should contain either the carrier account id or carrier account name. Carrier account id takes precedence if both fields are passed.
  • paymentpayment-request
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • collectioncollection-request
    When the shipment is to be collected. Give scheduled_from with scheduled_to for a window, or scheduled_date for a whole day.
  • deliverydelivery-request
    The delivery chosen for the shipment: its delivery_type, and when it is expected. Give scheduled_from with scheduled_to for a window, or scheduled_date for a whole day.
  • pickuplocation-request | free-form-request
    Pickup address. Either name a predefined location, by Carriyo's partner_location_id or your own partner_location_code, and Carriyo copies its contact and address fields, or pass a free-form address. Forward shipments must name a predefined location; reverse shipments may use either, since the pickup is the customer's own address.
  • dropofffree-form-request | location-request
    Dropoff address. Either name a predefined location, by Carriyo's partner_location_id or your own partner_location_code, and Carriyo copies its contact and address fields, or pass a free-form address. Reverse shipments must name a predefined location; forward shipments may use either, since the dropoff is the customer's own address.
  • itemsitem-request[]
    List of individual items or SKUs in a shipment.
  • parcelsparcel-request[]
    List of parcels in a B2C shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • custom_attributescustom-attributes
    Custom attributes in the form of a map: {"attribute1" : ["value1", "value2"], "attribute2" : ["value1", "value2"]} Please Note: You can only use custom attributes if you are subscribed to this feature.
  • order_datestringformat: date-time
  • input_promised_delivery_datestringformat: date-time
    Optional. The promised delivery date to the end customer, in ISO 8601 format. If omitted, Carriyo will set the promised delivery date from the scheduled delivery window when present, or otherwise from service level configuration. Example: 2020-09-03T17:07:05.000+01:00, or 2020-09-03T17:07:05.000Z for UTC.
  • consolidatedboolean
    Mark this shipment as a consolidated parent. Requires consolidated_child_shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments to consolidate under this one. Only used when consolidated is true.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • estimated_shipping_costestimated-shipping-cost
    Override the estimated shipping cost. Carriyo will recompute where possible.
  • insuranceinsurance-object
    Insurance details for the shipment.
  • languagestring
    Two-letter ISO 639-1 language code for customer-facing communications.
  • pre_bookedboolean
    Mark as true for a shipment already booked with a carrier outside Carriyo. Requires pre_booking_info.
  • pre_booking_infopre-booking-info
    Carrier tracking details for a pre-booked shipment. Required when pre_booked is true.
  • referencesreferences-request
    Merchant-supplied references (order reference, partner reference, etc.).
  • skip_validationsstring[]
    Names of validation groups to skip on this request. Used in advanced flows where the caller wants to bypass specific validation rules, for example accepting a shipment without a confirmed pickup window.

Responses

200Shipment reprocessed.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • the shipment is not booked, ready_to_ship, error, cancelled, cancelled_by_carrier, out_for_collection, failed_collection_attempt, ready_for_return, return_in_transit or returned.
  • the shipment is a consolidated parent still awaiting its booking confirmation.
  • re-booking with the same carrier from a status that does not allow it.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/{shipment_id}/ready-to-ship

Ready to ship

Mark a shipment as ready to ship. Allowed from booked, out_for_collection and failed_collection_attempt; any other status is rejected with 400.

The carrier is asked to arrange a pickup only when the body carries a full collection window (scheduled_from with scheduled_to) or sets schedule_pickup, and no pickup is already pending or arranged. Otherwise the status is set and the carrier is not contacted.

Where a pickup is requested, or the carrier has its own ready-to-ship API, the change is asynchronous: the response still carries the previous status, and ready_to_ship lands when the carrier confirms. Watch post_shipping_info.async_statuses.ready_to_ship.

Use with care. For carriers that operate pre-agreed line hauls or fixed daily pickup routes, sending an ad-hoc ready-to-ship notification can interfere with the carrier's own scheduling. Only call this endpoint for carriers and accounts configured to expect it.

The body is optional. Include it to update parcel information (weight, dimensions, count) at the same time, which is often when the final parcel details become known, or to set schedule_pickup and suppress_communication. ready_to_ship_date defaults to now.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonSchema: ready-to-ship-request
  • parcelsparcel-request[]
    Final parcel details, when they are only known at this point.
  • collectionschedule-request
    The collection window to record. Sending it also schedules the collection with the carrier, the same as schedule_pickup: true.
  • schedule_pickupboolean
    Whether to also schedule the collection with the carrier. Ignored, not rejected, for carriers that do not collect. Follow post_shipping_info.async_statuses.schedule_pickup for the outcome.
  • ready_to_ship_datestringformat: date-time
    When the shipment became ready to ship. Defaults to the time of the call.
  • suppress_communicationboolean
    When true, Carriyo sends no customer-facing communications for this shipment. Stored on the shipment.

Responses

200Shipment marked ready to ship.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • the shipment is not booked, out_for_collection or failed_collection_attempt.
  • a ready-to-ship request is already pending for this shipment.
  • a collection window is in the past, or starts before the order date.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.
404No carrier account resolves for the shipment.Schema: error-response
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/{shipment_id}/cancel

Cancel shipment

Cancel a shipment before it ships. Allowed from draft, pending, error, booked, ready_to_ship, out_for_collection, failed_collection_attempt and cancelled_by_carrier. Any other status returns 400, delivered and returned among them. Cancelling an already cancelled shipment changes nothing and returns 200.

Whether the carrier is called depends on how far the shipment had got, not on what the carrier supports: the booking is cancelled with the carrier from booked, ready_to_ship, out_for_collection, failed_collection_attempt and cancelled_by_carrier, unless the shipment was pre-booked. In that case carrier_status becomes Pending Cancellation immediately.

The response does not show the cancellation. The status change is queued and applied asynchronously, so the shipment returned here still carries its previous status. Read the shipment again, or wait for the webhook, to see cancelled.

The body is optional. Include update_reason_code to record why; the value can be one of Carriyo's standard reason codes or a custom code configured for your merchant.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/json

Responses

200Shipment cancelled.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • the current status does not allow cancellation.
  • update_reason_code does not exist for the tenant, or is not allowed for cancelled.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/{shipment_id}/update-status

Update status

Set the shipment status manually. Use this when:

  1. Recording a merchant-controlled status such as shipped, delivery_confirmed, or return_confirmed, which the carrier doesn't emit.
  2. Overriding an incorrect carrier status. For example, if the carrier reported delivered but the parcel actually came back to the warehouse, set the status to returned.
  3. Filling in a status the carrier failed to report. For example, if you know the parcel was delivered but no delivered event came through, set it manually here.

The response does not show the new status. The change is queued and applied asynchronously, so the shipment returned here still carries its previous status. Read the shipment again, or wait for the webhook, to see the change.

Include update_reason_code to record why the status was set; the value can be one of Carriyo's standard reason codes or a custom code configured for your merchant. Set suppress_communication to true to make the change without sending the customer notifications the new status would normally trigger.

Allowed transitions. The full transition matrix below shows every current → new_status change permitted by the platform. Any transition not listed returns 400.

new_status Allowed current status
shipped booked, cancelled_by_carrier, failed_collection_attempt, ready_to_ship, out_for_collection
out_for_delivery awaiting_customer_collection, delayed, failed_delivery_attempt, in_transit, missing, ready_for_return, return_in_transit, shipped, suspended
delivered awaiting_customer_collection, cancelled, delayed, delivery_confirmed, failed_delivery_attempt, in_transit, missing, out_for_delivery, ready_for_return, return_in_transit, returned, shipped, suspended
delivery_confirmed delivered
return_in_transit awaiting_customer_collection, delayed, failed_delivery_attempt, in_transit, missing, out_for_delivery, ready_for_return, shipped, suspended, out_for_collection
returned awaiting_customer_collection, cancelled, delayed, delivered, failed_delivery_attempt, in_transit, missing, out_for_delivery, ready_for_return, return_confirmed, return_in_transit, shipped, suspended
return_confirmed returned

Most integrations only ever set the merchant-controlled statuses (shipped, delivery_confirmed, return_confirmed). The wider matrix exists for override and correction scenarios.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonrequired
  • new_statusstringrequired
    Values:pendingerrorbookedready_to_shipshippedout_for_deliverydeliveredcancelledcancelled_by_carrierfailed_collection_attemptin_transitawaiting_customer_collectiondelivery_confirmedfailed_delivery_attemptready_for_returnreturn_in_transitreturnedreturn_confirmedsuspendedmissingdelayed
  • update_reason_codestring
    Reason for the status change. One of Carriyo's standard reason codes, or a custom code configured for the merchant; an unknown code, or one not allowed for new_status, is rejected with 400.
  • suppress_communicationboolean
    Set to true to apply the status change without sending the customer notifications it would normally trigger.
  • update_datestring
    When the status change occurred. Defaults to now, and must not be earlier than the date already recorded for the current status.

Responses

200Status update accepted. The shipment in the response still carries its previous status.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • the transition from the current status to new_status is not allowed, including when new_status is missing.
  • update_date is earlier than the date already recorded for the current status.
  • update_reason_code does not exist for the tenant, or is not allowed for the requested status.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/{shipment_id}/label/refresh

Refresh label

Re-request the default shipping label from the carrier when the label is missing on a booked shipment. Use this if the label URL is absent or returned a download error and you need Carriyo to fetch a fresh one.

A shipment with no carrier assigned is a no-op: the call returns 200 having done nothing.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Responses

200Label refresh requested. The response body is empty; the refreshed label arrives on the shipment and through the shipment webhooks.
400The shipment is draft, pending or error.Schema: error-response
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/{shipment_id}/commercial-invoice/refresh

Refresh commercial invoice

Re-fetch or regenerate the commercial invoice for a cross-border shipment from the carrier.

Use this when customs data was corrected after the original booking and you need the carrier to issue a new commercial invoice that reflects the corrected information. Typical triggers include:

  • Item descriptions or quantities updated post-booking.
  • HS code added or corrected.
  • A registration number (VAT, IOSS, EOR, etc.) added on the seller, importer, or exporter.
  • Incoterms changed mid-flight, for example flipping DAP to DDP.

It fetches a first invoice; it does not replace one. Where the shipment already carries a carrier-issued commercial invoice, the call returns having done nothing. Reprocess the shipment when you need the carrier to reissue.

The shipment must be cross-border and must not be in draft, pending or error. A refresh already in flight is rejected with 400.

Only meaningful for carriers that produce commercial invoices through their API. Carriers that do not will reject the request asynchronously, so the refusal arrives later rather than in this response.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Responses

200Invoice fetch requested. The response body is empty; the invoice is attached to the shipment asynchronously.
400Schema: error-response

The request was rejected. One of:

  • the shipment is draft, pending or error, or is not cross-border.
  • an invoice fetch is already in flight for this shipment.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/{shipment_id}/estimate-shipping-cost

Estimate shipping cost

Get a cost estimate for a shipment. The estimate is sourced from the configured costing profile or, where available, from the carrier's live rating API, and is both returned on the shipment and saved to it as estimated_shipping_cost.

There is no status rule: it works before or after booking. The shipment must already have a carrier_account that resolves, otherwise the call is rejected with 400. The rating call is made while you wait, so this is slower than the other shipment reads.

Useful for rate-shopping or for surfacing shipping cost on a checkout page before committing to the booking.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Responses

200Shipping cost estimated.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • the shipment has no carrier_account assigned.
  • the assigned carrier account does not resolve.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/{shipment_id}/update-delivery-promise

Update delivery promise

Update the promised delivery date displayed to the customer on the branded tracking page and used in your own SLA tracking. Rejected once the shipment reaches delivered, delivery_confirmed, returned, return_confirmed, ready_for_return, return_in_transit or cancelled. The new date must be at least a minute in the future.

The first change stamps original_promised_delivery_date, so the original commitment stays visible. A shipment webhook fires, and the customer is notified.

This only updates the promise in Carriyo. It does not change the carrier's actual delivery commitment.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonSchema: promised-delivery-date-requestrequired
  • revised_promised_delivery_datestringformat: date-time
    Revised promised delivery date in ISO 8601 format. Example: 2020-09-03T17:07:05.000+01:00, or 2020-09-03T17:07:05.000Z for UTC.

Responses

200Delivery promise updated.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • revised_promised_delivery_date is not at least a minute in the future.
  • the shipment is delivered, delivery_confirmed, returned, return_confirmed, ready_for_return, return_in_transit or cancelled.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/{shipment_id}/schedule-delivery

Schedule delivery

Update the scheduled delivery date for a shipment. Rejected once the shipment reaches delivered, delivery_confirmed, returned, return_confirmed, cancelled or error.

Note: most carriers don't accept schedule updates after the original booking, so this change is recorded in Carriyo (and reflected on the branded tracking page) but is not propagated to the carrier post-booking.

Two shapes are supported:

  • Time window, using scheduled_from and scheduled_to:

    { "scheduled_from": "2022-01-01T10:00:00.000Z", "scheduled_to": "2022-01-01T12:00:00.000Z" }
    
  • A named slot on a day, using scheduled_date with scheduled_time_slot_id:

    { "scheduled_date": "2022-01-01", "scheduled_time_slot_id": "SLOT_AM" }
    

Send scheduled_date together with scheduled_time_slot_id. On its own it does not name a window and no delivery window is recorded.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonSchema: schedule-requestrequired
  • scheduled_datestringformat: date
    A whole day, when no specific window applies.
  • scheduled_fromstringformat: date-time
    Start of the window. Send with scheduled_to.
  • scheduled_tostringformat: date-time
    End of the window. Must be after scheduled_from.
  • scheduled_time_slot_idstring
    A time slot configured on the carrier account, used instead of an explicit window. An id that does not exist is rejected.

Responses

200Delivery schedule updated.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • the shipment is delivered, delivery_confirmed, returned, return_confirmed, cancelled or error.
  • a scheduled date is in the past, or scheduled_from is not before scheduled_to.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/{shipment_id}/schedule-collection

Schedule collection

Schedule the collection of a shipment. The collection window is recorded in Carriyo, and where the carrier offers collection, a pickup is booked with them. For carriers that do not, the window is recorded and no request is sent.

Allowed from draft, pending, error, booked, ready_to_ship, out_for_collection, failed_collection_attempt, cancelled and cancelled_by_carrier; any other status is rejected. This does not change the shipment status; call Ready to ship separately for that.

Sending no body, or no window, is meaningful: Carriyo derives the window from the carrier account's configured pickup hours. Where that yields nothing the call is rejected with 400 asking for a window. A scheduled_date without scheduled_time_slot_id is not a window.

A shipment webhook is sent once the window is recorded.

The carrier is asked once per shipment. If a collection is already booked, a later call updates the recorded window without contacting the carrier again. If an earlier request failed, calling again retries it.

Check post_shipping_info.async_statuses.schedule_pickup for the result. When a request fails, the carrier's reason is recorded in post_shipping_info.error_details with trigger: SCHEDULING.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonSchema: schedule-request
  • scheduled_datestringformat: date
    A whole day, when no specific window applies.
  • scheduled_fromstringformat: date-time
    Start of the window. Send with scheduled_to.
  • scheduled_tostringformat: date-time
    End of the window. Must be after scheduled_from.
  • scheduled_time_slot_idstring
    A time slot configured on the carrier account, used instead of an explicit window. An id that does not exist is rejected.

Responses

200Collection window recorded; the carrier is asked where it offers collection.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • the shipment has already shipped; only draft, pending, error, booked, ready_to_ship, out_for_collection, failed_collection_attempt, cancelled and cancelled_by_carrier are allowed.
  • a scheduled date is in the past, or scheduled_from is not before scheduled_to.
  • scheduled_time_slot_id does not exist.
  • no window was supplied and none can be derived from the carrier account's pickup hours.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.
404No carrier account resolves for the shipment.Schema: error-response
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/{shipment_id}/update-collection-schedule

Update collection schedule

Deprecated. Use Schedule collection instead. It takes the same body, so migrating is a path change only, and it also schedules the collection with the carrier. Responses here carry a Deprecation header and a Link header naming the successor.

Update the scheduled collection date for a shipment. The date is recorded in Carriyo; the carrier is not contacted, so no collection is arranged. Allowed while the shipment has not yet shipped — draft, pending, error, booked, ready_to_ship, out_for_collection, failed_collection_attempt, cancelled and cancelled_by_carrier; any other status is rejected.

Note: most carriers don't accept schedule updates after the original booking, so this change is recorded in Carriyo but is not propagated to the carrier post-booking.

Two shapes are supported:

  • Time window, using scheduled_from and scheduled_to:

    { "scheduled_from": "2022-01-01T10:00:00.000Z", "scheduled_to": "2022-01-01T12:00:00.000Z" }
    
  • A named slot on a day, using scheduled_date with scheduled_time_slot_id:

    { "scheduled_date": "2022-01-01", "scheduled_time_slot_id": "SLOT_AM" }
    

Send scheduled_date together with scheduled_time_slot_id. On its own it does not name a window and no collection window is recorded.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonSchema: schedule-requestrequired
  • scheduled_datestringformat: date
    A whole day, when no specific window applies.
  • scheduled_fromstringformat: date-time
    Start of the window. Send with scheduled_to.
  • scheduled_tostringformat: date-time
    End of the window. Must be after scheduled_from.
  • scheduled_time_slot_idstring
    A time slot configured on the carrier account, used instead of an explicit window. An id that does not exist is rejected.

Responses

200Collection schedule updated.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • the shipment has already shipped; only draft, pending, error, booked, ready_to_ship, out_for_collection, failed_collection_attempt, cancelled and cancelled_by_carrier are allowed.
  • a scheduled date is in the past, or scheduled_from is not before scheduled_to.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

patch/shipments/{shipment_id}/custom-attributes

Update custom attributes

Update the tenant-defined custom attribute values on an existing shipment, without touching the rest of the shipment data — the alternative to re-sending the whole shipment through PUT /shipments/{shipment_id}.

Only attributes registered for your tenant with the SHIPMENT scope are accepted.

Attributes merge key by key: a key you send is set or replaced, a key you leave out keeps its value, and a null value removes the attribute from the shipment.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonrequired
  • custom_attributescustom-attributesrequired
    Custom attributes in the form of a map: {"attribute1" : ["value1", "value2"], "attribute2" : ["value1", "value2"]} Please Note: You can only use custom attributes if you are subscribed to this feature.

Responses

200Updated shipment with the new attribute values.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • an attribute name is not registered for the SHIPMENT scope (custom_attribute_invalid).
  • for ENUM attributes, a supplied value is not in the attribute's allowed_values (custom_attribute_value_invalid).
  • a STRING value is longer than the configured maximum.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/{shipment_id}/documents

Upload document

Attach a document to a shipment, such as a commercial invoice, packing list, or certificate. The document is stored against the shipment in Carriyo and, when the carrier-upload prerequisites are met, also pushed to the carrier asynchronously.

What to send. Identify the target document setting by either document_id or document_name; one is required. When both are supplied, document_id takes precedence. content_base64 is required and must be a valid PDF (the only currently supported format).

Carrier sync. After Carriyo stores the document, it is pushed to the carrier asynchronously only when all of the following are true:

  • The document setting is configured to be uploaded to the carrier.
  • A carrier account is assigned to the shipment.
  • The shipment has progressed past the pre-booking statuses (i.e. its status is not draft, pending, or error).
  • The assigned carrier supports document upload. Today, that's DHL, FedEx, and UPS.
  • The carrier account has a document-type mapping configured for the matched document setting.

If any of those conditions is not met, the document is still stored in Carriyo and the carrier upload simply does not run. You can call Retry document upload later once the missing condition is in place.

Sync runs asynchronously. The carrier_upload_status field on the document reflects progress: pending while in flight, complete once the carrier accepts it, or error if the carrier rejects it (the document's message field then carries the carrier's reason).

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonSchema: document-upload-requestrequired
  • document_idstring
    The ID of the document setting to use for this upload. The document setting must be pre-configured in your Carriyo account. Either document_id or document_name must be provided.
  • document_namestring
    The name of the document setting to use for this upload. If multiple document settings have the same name, the first match will be used. Either document_id or document_name must be provided.
  • content_base64stringrequired
    The document content encoded as a Base64 string. Currently only PDF format is supported.

Responses

200Document uploaded. Returns the updated shipment.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • neither document_id nor document_name is supplied.
  • content_base64 is missing.
  • no document setting matches the document_id or document_name.
  • a document for that setting is already attached to the shipment.
  • the content does not match the format the setting declares.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.
404Shipment not found.Schema: error-response
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

put/shipments/{shipment_id}/documents/{document_identifier}

Update document

Replace the content of a document that already exists on a shipment. Useful when a commercial invoice, packing list, or certificate has been amended after upload.

  • The document must already exist on the shipment; otherwise the call returns 400.
  • Content is supplied as a Base64-encoded string. Only PDF is supported, and the content is security-validated against the declared format.
  • The new content fully replaces the existing content in storage; the previous version is not retained.

Carrier sync. The same carrier-upload prerequisites as Upload document apply: the document setting is configured for carrier upload, a carrier account is assigned, the shipment is past the pre-booking statuses, the carrier supports document upload, and the carrier account has a document-type mapping for the matched setting. When all are met, the updated content is re-pushed to the carrier asynchronously.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.
document_identifierstringYesThe document ID or document name (URL-encoded) to identify the document to update.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonSchema: document-update-requestrequired
  • content_base64stringrequired
    The new document content encoded as a Base64 string. This will replace the existing document content.

Responses

200Document updated. Returns the updated shipment.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • content_base64 is missing.
  • the shipment carries no documents.
  • no document on the shipment matches the identifier.
  • the content does not match the format the document declares.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.
404Shipment not found.Schema: error-response
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

delete/shipments/{shipment_id}/documents/{document_identifier}

Delete document

Remove a document from a shipment.

  • The document must exist on the shipment; otherwise the call returns 400.
  • The content is deleted from Carriyo storage. This operation cannot be undone.
  • If the document was already uploaded to a carrier, deleting it from Carriyo does not remove it from the carrier's system.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.
document_identifierstringYesThe document ID or document name (URL-encoded) to identify the document to delete.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Responses

200Document deleted. Returns the updated shipment.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • the shipment carries no documents.
  • no document on the shipment matches the identifier.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.
404Shipment not found.Schema: error-response
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/{shipment_id}/documents/{document_identifier}/retry

Retry document upload to carrier

Re-attempt the upload of an existing document to the carrier after a previous carrier upload failed.

Prerequisites. All of the following must hold; any missing one returns 400 with the specific reason:

  • A carrier account is assigned to the shipment.
  • The document exists on the shipment.
  • The document has a stored URL (i.e. it was previously uploaded successfully to Carriyo).
  • The assigned carrier supports document upload. Today, that's DHL, FedEx, and UPS.
  • The carrier account has a document-type mapping configured for this document.

Behavior. The retry runs asynchronously. The document's carrier_upload_status is set to pending immediately, then transitions to complete or error once the carrier processes the upload. Watch the shipment via webhooks or polling to observe the final state.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.
document_identifierstringYesThe document ID or document name (URL-encoded) to identify the document.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Responses

200Retry accepted. Returns the updated shipment with carrier_upload_status set to pending.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • the shipment has no carrier account assigned.
  • the shipment carries no documents, or none matches the identifier.
  • the document has no stored URL to send.
  • the assigned carrier does not accept document upload.
  • the carrier account has no document-type mapping for this document.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.
404Shipment not found.Schema: error-response
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/{shipment_id}/documents/bulk

Bulk upload documents

Upload or update multiple documents on a shipment in a single request. Unlike single Upload document, which rejects duplicates, this endpoint upserts: existing documents are replaced and missing ones are created.

How it works. Each entry in the array is validated individually, then processed. For each entry, if a document for that setting already exists on the shipment, its content is replaced. Otherwise a new document is created. After all entries are persisted in one save, carrier sync is triggered per document following the same rules as Upload document.

Prerequisites. A document setting must exist for every entry in the request, matched by document_id or document_name. If any entry fails to match, the entire request is rejected with 400; there is no partial success. content_base64 is required on each entry, and is validated against the matching document setting's format (currently PDF only).

Carrier sync. Per-document carrier sync is asynchronous and follows the same prerequisites as Upload document. Track each document's carrier_upload_status to observe progress.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonrequired

An array of document-upload-request. Each item has the following fields:

  • document_idstring
    The ID of the document setting to use for this upload. The document setting must be pre-configured in your Carriyo account. Either document_id or document_name must be provided.
  • document_namestring
    The name of the document setting to use for this upload. If multiple document settings have the same name, the first match will be used. Either document_id or document_name must be provided.
  • content_base64stringrequired
    The document content encoded as a Base64 string. Currently only PDF format is supported.

Responses

200Documents uploaded or updated. Returns the updated shipment.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • an entry supplies neither document_id nor document_name.
  • an entry is missing content_base64.
  • an entry matches no document setting.
  • an entry's content does not match the format its setting declares.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.
404Shipment not found.Schema: error-response
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

get/shipments/{shipment_id}/live-tracking

Get live tracking

Fetch real-time driver location and ETA for a shipment that is currently being collected or delivered. Designed for same-day, hyper-local carriers whose drivers move continuously through the day; the response is a snapshot of where the driver is right now, not a list of past events.

Carrier support. Only supported by carriers whose handlers integrate with the carrier's live driver-tracking API. Today that means Careem Express, Quiqup and noon. On any other carrier the call succeeds with an empty payload rather than failing, so treat an empty response as "this carrier does not offer live tracking", not as an error.

Status requirements. The shipment must be in a live-trackable status: out_for_collection or out_for_delivery. Calling on a shipment in any other status returns 400 with "Shipment is not in a live trackable status.".

Caching. Results are cached for 15 seconds per tenant, carrier account and shipment, to protect the carrier's API. Repeated calls within that window return the cached payload.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Driver location and ETA for the in-flight shipment.Schema: live-tracking-info
  • driver_locationobject
    Current geographic position of the driver, as reported by the carrier.
  • driver_namestring
    Driver's name, where the carrier exposes it.
  • driver_phonestring
    Driver's contact phone, where the carrier exposes it.
  • estimated_timestringformat: date-time
    Carrier-reported estimated arrival time for the next stop.
400The shipment is not out_for_collection or out_for_delivery.Schema: error-response
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/{shipment_id}/redact

Redact shipment PII

Replace the customer's contact details on a shipment with a keyed one-way hash, for privacy and data-protection compliance. The shipment itself is kept.

Use this when a customer exercises a right of erasure under GDPR, CCPA, or similar regulation, or when your data retention policy reaches its scrub window. Call the endpoint on each affected shipment.

After redaction:

  • Three contact fields are replaced with a keyed one-way hash: contact_name, contact_phone and contact_email. The phone keeps its country code and the email keeps an address-like shape, so both stay usable as data without identifying anyone.
  • Only the customer's side is touched: the dropoff of a forward shipment, the pickup of a reverse one. The counterparty's contact details are left as they are.
  • The address is not redacted. address1, address2, coords and any notes keep their stored values. Where your obligation covers the street address, clear it yourself with Update shipment.
  • Everything operational is kept: status, tracking number, carrier, dates, weights and dimensions, so the shipment stays usable for analytics, audit and tracking statistics.
  • Redacting a second time changes nothing and returns 200.

This action is irreversible. The hash is one-way and keyed with a secret Carriyo holds, so the original values cannot be recovered from the shipment. Webhooks that fired before the redaction are not retroactively scrubbed, so you remain responsible for redacting any copies of shipment data held in your own systems.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/json
  • reasonstring
    Free-text reason captured in the audit log (e.g. "GDPR Article 17 request, ticket #4421").

Responses

200Shipment object with PII fields cleared.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.

Need the full machine-readable spec? Download the OpenAPI document →

Shipment Audit

The activity timeline for a shipment: field-level changes, carrier calls, notifications, and customer feedback in one paginated list.

1 operation · 0 objects

get/shipments/{shipment_id}/activity

List shipment activity

Returns a paginated timeline of everything that has happened to a shipment.

Each entry comes from one of four sources:

  • Change logs: field-level edits, in changes, diffed from the shipment snapshot taken after each write.
  • System logs: carrier API calls and internal events, with timing, response code, and the carrier account involved.
  • Notifications: customer notifications, in notification, with request_type NOTIFICATION.
  • Customer feedback: delivery feedback, in feedback, with request_type FEEDBACK.

A change log and the system log that caused it merge into one entry. A system log with no change log appears on its own, without changes.

Housekeeping fields that change on every write, such as update_date and update_source, are left out of changes. So are high-churn tracking fields such as scan_count and last_status_refresh_date, so a carrier poll only produces an entry when something meaningful changed.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesCarriyo `shipment_id` or your own `partner_shipment_reference`. The value is matched against `shipment_id` first, then `partner_shipment_reference`.

Query parameters

NameTypeRequiredDescription
page_numintegerNoPage of the timeline to return. Values below 1 fall back to 1.
rows_per_pageintegerNoEntries per page. Values above 100 are capped at 100.
sortstringNoOrders entries by timestamp. Defaults to newest first.
sourcearrayNoFilters entries by what triggered them. Comma-separated, any match: `source=user,api`. - `all`: no filtering (default) - `user`: Dashboard and Fulfillment App activity - `api`: direct API calls - `webhook`: webhook deliveries and retries - `system`: everything else, such as carrier callbacks, tracking polls, and internal services Unrecognized values are ignored.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200A page of the shipment's activity timeline.Schema: activity-response
  • itemsactivity-entry[]
    The activity entries for the requested page.
  • totalinteger
    Total entries in the timeline after filtering, across all pages.
  • page_numinteger
    The page returned.
  • rows_per_pageinteger
    Entries per page used for this response.
  • truncatedboolean
    True when the filtered timeline reaches 1000 entries. Each source is read up to its own limit before merging, so one source can be missing older entries while another is complete.
404Shipment not found.Schema: error-response
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

Manifests

A manifest is a collection of shipments shipped together from the same location with the same carrier. It acts as an instruction to schedule the collection of the shipments with your carrier.

7 operations · 0 objects

post/manifests

Create manifest

Creates a new manifest. The request body lists the shipments to include and the planned pickup details (location, schedule, and carrier).

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: manifest-request
  • merchantstringrequired
  • shipment_idsstring[]required
  • carrier_accountstringrequired
  • pickupobjectrequired
  • pickup_schedule_fromstringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX
  • pickup_schedule_tostringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX
  • ship_manifest_datestringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX

Responses

201Manifest created.Schema: manifest-response
  • manifest_idstringrequired
  • merchantstringrequired
  • shipment_idsstring[]required
  • carrier_accountstringrequired
  • pickupobjectrequired
  • pickup_schedule_fromstringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX
  • pickup_schedule_tostringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX
  • ship_manifest_datestringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX

Need the full machine-readable spec? Download the OpenAPI document →

patch/manifests/{manifest-id}

Update manifest

Update a draft manifest. Once a manifest has been moved to ready-to-ship or shipped, it can no longer be edited.

Path parameters

NameTypeRequiredDescription
manifest-idstringYes—

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: manifest-requestrequired
  • merchantstringrequired
  • shipment_idsstring[]required
  • carrier_accountstringrequired
  • pickupobjectrequired
  • pickup_schedule_fromstringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX
  • pickup_schedule_tostringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX
  • ship_manifest_datestringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX

Responses

200Manifest updated.Schema: manifest-response
  • manifest_idstringrequired
  • merchantstringrequired
  • shipment_idsstring[]required
  • carrier_accountstringrequired
  • pickupobjectrequired
  • pickup_schedule_fromstringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX
  • pickup_schedule_tostringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX
  • ship_manifest_datestringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX

Need the full machine-readable spec? Download the OpenAPI document →

get/manifests/{manifest-id}

Get manifest

Returns the specified manifest by ID, including its list of shipments and current status.

Path parameters

NameTypeRequiredDescription
manifest-idstringYes—

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Returns the requested manifest.Schema: manifest-response
  • manifest_idstringrequired
  • merchantstringrequired
  • shipment_idsstring[]required
  • carrier_accountstringrequired
  • pickupobjectrequired
  • pickup_schedule_fromstringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX
  • pickup_schedule_tostringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX
  • ship_manifest_datestringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX

Need the full machine-readable spec? Download the OpenAPI document →

post/manifests/{manifest-id}/ready-to-ship

Mark manifest ready to ship

Lock the contents of a draft manifest. After this call, no more shipments can be added or removed. The manifest must be in draft when called. Once locked, ship the manifest with POST /manifests/{manifest-id}/ship to dispatch it to the carrier.

Path parameters

NameTypeRequiredDescription
manifest-idstringYes—

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Manifest marked ready to ship.Schema: manifest-response
  • manifest_idstringrequired
  • merchantstringrequired
  • shipment_idsstring[]required
  • carrier_accountstringrequired
  • pickupobjectrequired
  • pickup_schedule_fromstringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX
  • pickup_schedule_tostringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX
  • ship_manifest_datestringrequiredformat: yyyy-MM-dd'T'HH:mm:ss.SSSXXX

Need the full machine-readable spec? Download the OpenAPI document →

post/manifests/{manifest-id}/cancel

Cancel manifest

Cancel the manifest. The constituent shipments are not cancelled; they are released from the manifest and can be added to another one.

Path parameters

NameTypeRequiredDescription
manifest-idstringYes—

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Manifest cancellation requested.

Need the full machine-readable spec? Download the OpenAPI document →

post/manifests/{manifest-id}/retry

Retry manifest

Retries a manifest that failed at the carrier. Used when the carrier rejected the initial manifest submission and a transient cause has been resolved.

Path parameters

NameTypeRequiredDescription
manifest-idstringYes—

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Manifest retry triggered.

Need the full machine-readable spec? Download the OpenAPI document →

post/manifests/{manifest-id}/ship

Ship manifest

Marks the manifest as shipped and submits it to the carrier. Triggers carrier-side processing and finalises the pickup arrangement.

Path parameters

NameTypeRequiredDescription
manifest-idstringYes—

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Manifest ship request submitted to the carrier.

Need the full machine-readable spec? Download the OpenAPI document →

Consolidated Shipments

Consolidated (master) shipments group multiple child shipments under a single parent. Useful for multi-parcel consignments and freight where one master tracking number aggregates several physical movements.

2 operations · 0 objects

post/shipments/{shipment_id}/add-child-shipments

Link child shipments

Adds one or more existing shipments as children of a consolidated (master) shipment.

The parent must already be marked as consolidated and be in draft or error status. A child is checked only for being neither a consolidated parent itself nor already linked to another parent; its own status is not inspected.

Linking is best-effort. Where a child cannot be written after several attempts the call still returns 200 with the parent's child list updated, so read the children back if it matters.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesThe consolidated parent shipment, by Carriyo `shipment_id` or your own `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonrequired
  • shipment_idsstring[]required
    Carriyo shipment IDs to link as children.

Responses

200Updated consolidated parent shipment, including the new child references.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • shipment_ids is empty or absent, or carries the same id twice.
  • one or more ids do not resolve. This is a 400 here, not a 404.
  • the target shipment is not a consolidated parent, or is not draft or error.
  • a child is itself a consolidated parent, or already belongs to another parent.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/{shipment_id}/remove-child-shipments

Unlink child shipments

Remove one or more child shipments from a consolidated parent. The unlinked children become independent shipments again; they are not deleted, just disassociated from the parent.

Every id in shipment_ids must be a child of the parent named in the path.

Path parameters

NameTypeRequiredDescription
shipment_idstringYesThe consolidated parent shipment, by Carriyo `shipment_id` or your own `partner_shipment_reference`.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonrequired
  • shipment_idsstring[]required
    Carriyo shipment IDs to unlink.

Responses

200Updated consolidated parent shipment, with the listed children removed.Schema: shipment-object
  • shipment_idstring
    Unique identifier for the shipment
  • tenantstring
    Identifier of the Carriyo tenant that owns this shipment. Derived from the authenticated credentials at create time; you cannot set it directly.
  • entity_typestring
    The type of the shipment is either FORWARD or REVERSE
    Values:FORWARDREVERSE
  • merchantstring
    ID of the merchant that created this shipment
  • referencesreferences-object
    References for a shipment, provided by the merchant.
  • carrier_accountcarrier-account-object
    Carrier account chosen for the shipment.
  • paymentpayment-object
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • insuranceinsurance-object
    Insurance details including the total insured value of the shipment.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-object
    Either a free-form address or a predefined location.
  • dropofflocation-object
    Either a free-form address or a predefined location.
  • itemsitem-object[]
    List of individual items or SKUs in a shipment.
  • freightobject
    Freight detail for a B2B shipment, carrying the pallets or cartons in packages.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • chargescharge-request[]
    List of individual charge components applied to the shipment.
  • parcelsparcel-object[]
    List of parcels in a B2C shipment.
  • post_shipping_infopost-shipping-info
    Booking details such as tracking number, labels etc.
  • custom_attributesobject
    Additional custom attributes provided by the merchant.
  • order_datestringformat: date-time
    The date the customer order was received by the merchant
  • order_typestring
    The type of the order. The possible values can be one of the order types predefined by the merchant.
  • creation_datestringformat: date-time
    The date the shipment was created in Carriyo
  • update_datestringformat: date-time
    The date the shipment was last updated in Carriyo
  • confirmation_datestringformat: date-time
    The date the shipment was confirmed for booking
  • estimated_process_datestringformat: date-time
    The date the shipment is expected to be processed in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • promised_delivery_datestringformat: date-time
    The promised delivery date for the shipment in ISO 8601 format. Example: 2022-03-01T17:07:05.000Z
  • original_promised_delivery_datestringformat: date-time
    The original promised delivery date for the shipment in ISO 8601 format (if the promise is updated). Example: 2022-03-01T17:07:05.000Z
  • estimated_shipping_costestimated-shipping-cost
    The estimated cost of the shipping based either on the costing profile you have configured for the carrier or carrier costing API response
  • languagestring
    Two letter ISO 639-1 code. Example: en
  • return_request_idstring
    ID of the Return request that initiated the reverse shipment
  • consolidatedboolean
    True when this shipment is a consolidated parent containing other shipments.
  • consolidated_child_shipmentsstring[]
    Shipment IDs of the child shipments. Populated when consolidated is true.
  • consolidated_parent_shipmentstring
    Shipment ID of the consolidated parent. Populated when this shipment is a child of a consolidated parent.
  • creation_sourcerequest-source
    Identifies the system or actor that created the shipment.
  • update_sourcerequest-source
    Identifies the system or actor that last updated the shipment.
  • customer_keystring
    Derived stable identifier for the customer on this shipment, used for repeat-customer matching. Derived from contact details on the dropoff/pickup; you cannot set it directly.
  • duties_includedboolean
    Whether duties are already included in the item prices.
  • taxes_includedboolean
    Whether taxes are already included in the item prices.
  • fulfillment_order_idstring
    ID of the fulfillment order that this shipment fulfills (if created via the Orders API).
  • order_idstring
    ID of the order this shipment belongs to (if created via the Orders API).
  • manifest_idstring
    ID of the manifest this shipment has been added to (if any).
  • input_promised_delivery_datestringformat: date-time
    The originally-requested promised delivery date as supplied on create, before any rule-based or carrier-driven adjustment. Carriyo uses this to detect customer-visible changes.
  • pre_bookedboolean
    True when the shipment was already booked with a carrier outside Carriyo and ingested into Carriyo for tracking only.
  • pre_booking_infopre-booking-info
    Pre-booking details. Required when pre_booked is true.
  • suppress_communicationboolean
    When true, Carriyo will not send customer-facing communications (tracking emails, SMS) for this shipment.
  • translatedtranslated
    Translated pickup and dropoff details. Populated when the language field requested a translation that Carriyo has generated.
400Schema: error-response

The request was rejected. One of:

  • shipment_ids is empty or absent.
  • the target shipment is not a consolidated parent, or is not draft or error.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

Bulk Operations

Do-X-to-many-shipments operations: kick off a batch, poll for status, validate before booking, retry, force a status refresh.

Unlike Consolidated shipments, which represents a master shipment containing child shipments, these endpoints operate over arbitrary sets of independent shipments in a single call. Useful for high-volume booking flows and back-office bulk corrections.

5 operations · 0 objects

get/shipments/bulk/status

Get bulk status

This endpoint is designed to provide user with the statuses of requested shipments. Parameter shipment_id can be specified multiple times. The result of this operation is the list of shipments' current statuses and all milestones.

Query parameters

NameTypeRequiredDescription
shipment_idarrayNoCarriyo shipment ids, repeated once per shipment. Unlike the shipment-scoped paths, this parameter does not fall back to `partner_shipment_reference`. A value that is not a `shipment_id` matches nothing and the shipment is simply absent from the response, with no error. Pass your own references in `partner_shipment_reference` instead.
partner_shipment_referencearrayNoYour own shipment references, repeated once per shipment. Combine with `shipment_id` to look up a batch by either identifier.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Responses

200Status of a bulk operation.

An array of bulk-shipment-status-response. Each item has the following fields:

  • shipmentIdstring
  • statusstring
    Values:pendingerrorbookedready_to_shipshippedout_for_deliverydeliveredcancelledcancelled_by_carrierfailed_collection_attemptin_transitawaiting_customer_collectiondelivery_confirmedfailed_delivery_attemptready_for_returnreturn_in_transitreturnedreturn_confirmedsuspendedmissingdelayed
  • milestonesobject[]
    The list of all shipment statuses
400Rejected because the request names more than 100 identifiers. This error is returned as plain text, not as the JSON error envelope.
403A matched shipment is outside the caller's merchant or tenant scope.Schema: error-response
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/bulk/import

Bulk import shipments

Creates or updates a batch of draft shipments from a single request.

Each row is matched by partner_shipment_reference. A shipment already in draft or error is updated; anything else creates a new draft shipment, and a row matching an already-confirmed shipment is rejected.

  • At most 20 rows per request. A larger batch is rejected with 400 before any row is processed.
  • confirm books every shipment in the batch with the carrier. Without it, rows are created in the same state a single POST /shipments would produce.
  • Rows run concurrently, so their side effects are not ordered.

Duplicates within a batch. Where two or more rows share the same partner_shipment_reference, the first is processed normally and the rest are rejected with Duplicate Partner Shipment Reference.

What you get back. One entry per accepted row. A row with no partner_shipment_reference is dropped silently and produces no entry at all, so match on the reference rather than on position. Each entry carries:

  • result: created when a new shipment was created, updated when an existing draft shipment was updated, rejected on failure.
  • reason: human-readable detail, e.g. an error message for rejections, or a note when the shipment was saved as draft but auto-confirm failed.
  • shipment: the saved shipment when result is not rejected.

Everything other than the batch-size limit is reported per row inside a 200, as result: rejected with a reason.

Query parameters

NameTypeRequiredDescription
confirmbooleanNoIf `true`, every imported shipment is auto-confirmed (booked with the carrier).

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonrequired
  • shipment_requestsshipment-request[]required
    Shipment requests to create. Each follows the same shape as the body of POST /shipments.

Responses

200Per-shipment import outcomes.

An array of bulk-shipment-import-response. Each item has the following fields:

  • partner_shipment_referencestring
    The partner reference from the request, for correlation.
  • resultstring
    created when a new shipment was created, updated when an existing draft shipment was updated, rejected on failure.
    Values:createdupdatedrejected
  • shipmentshipment-object
    The saved shipment. Present when result is not rejected.
  • reasonstring
    Human-readable detail, e.g. an error message for rejections, or a note when the shipment was saved as draft but auto-confirm failed.
400Rejected because the batch carries more than 20 entries. This error is returned as plain text, not as the JSON error envelope.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/bulk/validate

Validate shipment batch

Pre-validate a batch of shipment payloads without creating them. Applies the same request-time validations as POST /shipments (required fields and schema shape) and returns per-shipment validation errors so you can fix issues before calling POST /shipments/bulk/import. Rows are validated independently: duplicates within the batch are not detected, only clashes with shipments that already exist.

At most 20 rows per request. Everything other than the batch-size limit is reported per row inside a 200.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonrequired
  • shipment_requestsshipment-request[]required
    Shipment requests to validate.

Responses

200Per-shipment validation results.
  • resultsobject[]
    One result per input shipment, in the same order as the request.
400Rejected because the batch carries more than 20 entries. This error is returned as plain text, not as the JSON error envelope.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/bulk/reprocess

Reprocess shipment batch

Retries booking for a list of shipment IDs. Useful when many shipments errored on a transient carrier issue and need re-booking together.

The shipments are processed one after another while you wait, and the first failure aborts the run: shipments already handled keep their new booking, the rest are untouched, and the response carries no per-shipment result. Re-send the remainder rather than the whole list.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Request body

Content type: application/jsonrequired
  • shipment_idsstring[]required
    Carriyo shipment IDs to reprocess.

Responses

200Every shipment in the batch was reprocessed. The response body is empty.
400Schema: error-response

The request was rejected. One of:

  • shipment_ids is empty or absent.
  • a shipment's status does not allow reprocessing, which aborts the run.
  • a shipment is a consolidated parent still awaiting its booking confirmation.
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.
404A shipment id does not resolve, which aborts the run.Schema: error-response
  • errorsstring[]
    Human-readable messages describing why the request failed.
  • error_detailserror-detail[]
    Structured detail for each error, when available.
  • statusstring
    The HTTP status code as a string, such as 400 or 404. Validation and retry failures send error instead.
  • timestampstringformat: date-time
    When the error was produced, as yyyy-MM-dd'T'HH:mm:ss.SSSXXX.

Need the full machine-readable spec? Download the OpenAPI document →

post/shipments/bulk/status/refresh

Refresh status batch

Triggers a carrier status refresh for a list of shipments. The latest carrier-reported status is fetched and persisted; webhook events fire on any state change. Subject to per-tenant batch size limits.

Query parameters

NameTypeRequiredDescription
shipment_idarrayNoCarriyo shipment ids, repeated once per shipment. This parameter accepts `shipment_id` only — there is no `partner_shipment_reference` fallback and no reference parameter on this operation, so a value that is not a `shipment_id` is skipped without an error.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.

Header parameters

NameTypeRequiredDescription
Idempotency-KeystringNoOptional client-generated key that identifies one logical operation. Reuse the same key when retrying with the same payload. Replays the stored response. See https://carriyo.com/docs/api/idempotency/.

Responses

200Refresh requested for each shipment. The response body is empty.
400Rejected because the request names more than 100 shipment_id values. This error is returned as plain text, not as the JSON error envelope.

Need the full machine-readable spec? Download the OpenAPI document →