Skip to main content

Quote Dropship Label Rates

POST 

/api/purchase-orders/:purchase_order/dropship-labels/quote

Returns live carrier rates for shipping the purchase order from the supplier's dropship warehouse to the customer, for the given packages and ship date. Nothing is purchased. Use a returned service_token with Create Dropship Label to pin a service; omit it to buy the cheapest allowed rate.

Required scope: purchase-orders:write

Grant this scope to your token under Settings → Developer → Personal Access Tokens.

Body fields:

  • ship_date (string, optional, Y-m-d): today or later in the supplier's timezone, at most 90 days ahead. Defaults to today. Package fields (packages, 1–10 entries, required):
  • packages.*.weight (number, required, > 0)
  • packages.*.weight_unit (string, required): lb, oz, kg, g
  • packages.*.length / width / height (number, required, > 0)
  • packages.*.dimension_unit (string, required): in, cm

Rates are filtered to the supplier's allowed services when the supplier restricts them. Rate limited to 60 requests per minute.

Domain failures return 422 with {message, reason} where reason is one of: no_provider (no label-capable shipping integration is assigned to the supplier or set as the default), not_eligible (the purchase order cannot get a label — e.g. not a dropship order, closed, or the supplier uses their own labels), purchase_failed (the carrier/provider refused the purchase), already_in_progress, relabel_limit_reached, invalid_state (the label's status does not allow the action) or provider_unavailable (the shipping provider could not be reached).

Authentication: Requires Bearer token.

Requires permission: purchase_orders.update

Request​

Responses​

OK

Response Headers
    Content-Type