Skip to main content
POST
Announces an inbound shipment and its declared contents. There are three ways to handle shipping, and the response varies accordingly:

Buy a label with the shipment

Quote rates with Get Label Rates, then pass the chosen rateId here. The label is purchased, tracking is attached, the shipment starts in in_transit, and the response includes the label plus a printable packing slip with the label merged into it.

Ship with your own label

Pass carrier and trackingNumber. The shipment starts in in_transit and is tracked, but no label is purchased.

Decide shipping later

Pass neither. The shipment is created in pending.
Permission: inbound_shipments:create

Request body

string
required
ID of the FBO account the shipment belongs to.
array
required
Declared contents of the shipment. At least one line is required.
string
Free-form notes about the shipment. Included on the packing slip.
string
The id of a rate returned by Get Label Rates, to buy that label with the shipment. The insured value and pricing come from the quote, so there’s nothing to echo back. The rate must have been quoted for the same fboAccountId, and quotes stay valid for 15 minutes. Cannot be combined with carrier/trackingNumber.
string
Carrier name, when shipping with your own label. Must be provided together with trackingNumber, and cannot be combined with rateId.
string
Tracking number, when shipping with your own label. Must be provided together with carrier.

Response

When a rateId was provided, label and packingSlipUrl are included. packingSlipUrl is a printable PDF containing the packing slip followed by the shipping label — print it, include the slip in the box, and affix the label.
Without a rateId, only shipment is returned:
If the label purchase fails, the shipment is cancelled and a VALIDATION_ERROR is returned, so no half-shipped record is left behind. Request rates again and retry the whole call.