Create a new package on an order
Creates a new shipment package for an order, optionally seeding it with line items from the
order. Specify the order_id, box dimensions and weight, and carrier preferences. The package
starts in status: draft; call POST /packages/{id}/print-label to purchase a shipping label.
Requires fulfillment:write scope.
Revision acknowledgment gate (HTTP 409 revision_unacknowledged).
If the parent order was revised after the customer received their copy and the customer has
not yet acknowledged the new total, this endpoint returns HTTP 409 with
code: revision_unacknowledged. Lift the gate via
POST /v1/orders/{id}/customer-acknowledge-revision, or bypass with
?override=true / {"skip_revision_ack": true} in the body (requires
orders.revision_override permission).
Authorizations
API key issued per entity via Settings > Developers > API Keys.
Each key carries scopes (e.g. orders:read, products:write).
Bearer token format: Authorization: Bearer ark_live_ent_
Test keys use ark_test_ent_. Both are issued per entity
via Settings > Developers > API Keys.
Headers
Client-generated unique key for idempotent POST/PATCH/DELETE operations. Alias for the Idempotency parameter. Max 255 chars. On retry with the same key, the original response is returned without re-executing the operation. Keys expire after 24 hours.
255Body
Required. Parent sales order UUID. Must be a confirmed sales order.
Product record for the box. Drives dimensions + PackPilot category matching.
Length in inches.
Width in inches.
Height in inches.
Weight in lbs.
Compound carrier+service string (e.g. 'ups_ground', 'fedex_priority_overnight'). Mapped to carrier+service fields automatically. Alternative to passing carrier+service separately.
"ups_ground"
Carrier code (e.g. 'ups', 'fedex', 'usps'). Use carrier_service for combined form.
Service level (e.g. 'ground', 'priority_overnight'). Use carrier_service for combined form.
Inline line items to add to the package. Added atomically with the package creation.
If true, purchase a Shippo label immediately after package creation. Requires rate_object_id. If label purchase fails, the package is still created and returned in the error body.
Required with buy_label=true. Shippo rate object ID from GET /v1/packages/:id/rates.
If true, fulfill the package immediately after label purchase. Posts GL fulfillment entries (DR COGS/CR Inventory, DR AR/CR Revenue), decrements inventory, queues shipment notification. Only fires when buy_label=true AND label purchase succeeds.
Label format for Shippo. PDF is the default.
PDF, PNG, ZPLII Response
Created package (hydrated with items, and label/fulfillment data if inline operations ran)
A shipment / box created during fulfillment. One package contains many package items (line item splits) and at most one shipment label.
package Sequential per entity.
packing, packed, labeled, shipped, delivered, returned, void e.g. ups, usps, fedex, dhl.
e.g. ground, priority, 2day.
Cost billed to customer (vs purchased cost).
Manual override of the auto-computed Shippo-insurance declared value. When set, overrides the value derived from products flagged apply_freight_insurance.
Auto-insurance summary. null when no package item opts in and there is no override / entity threshold. bought: true after a label has been purchased (amount = the value actually insured at Shippo); bought: false projects what the next label purchase will insure.

