Skip to main content
POST
Record a package's PRO number

Authorizations

Authorization
string
header
required

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

Idempotency-Key
string

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. A second request with the same key sent while the first is still running waits for it and returns its answer; if the first is still running after 20 seconds the second answers 409 idempotency_key_in_use (retryable, nothing done). An answer carrying retryable: true is not cached. Reusing a key with a different request body answers 409 idempotency_key_collision (nothing done; send the new request with a fresh key). The replay, the wait and these two 409 codes come from the idempotency layer, so they apply to the operations that run it, each of which can answer the two codes whether or not its own 409 response lists them. The handlers of these operations take the header but do not run the layer, so on them the key neither replays nor answers either code: createPaymentPlan, chargePaymentPlanInstallment, setProductLocations, updateOrder, emailOrder, updateOrderItem, confirmPickup, markOrderNoShow, applyExistingPaymentToInvoices, updatePackage, movePackageItem, changePackageBox, changePackageCarrier, voidPackageLabel, printPackageLabel, emailPackage, setProNumberV1, setPackageProNumber, sendPurchaseOrderToVendorV1, notifyRevisionPurchaseOrderV1, addMaintenanceLog, generateBOLV1, createReportJobV1 and customerAcknowledgeRevision; recordVendorPrepaymentV1 and recordCustomerDepositV1 hand the key to their own write instead.

Maximum string length: 255

Path Parameters

id
string<uuid>
required

Body

application/json
pro_number
string
required

Response

Package with updated PRO number

A shipment / box created during fulfillment. One package contains many package items (line item splits) and at most one shipment label.

id
string<uuid>
object
enum<string>
Available options:
package
entity_id
string<uuid>
read-only
order_id
string<uuid>
package_number
string
read-only

Sequential per entity.

status
enum<string>
read-only
Available options:
packing,
packed,
labeled,
shipped,
delivered,
returned,
void
weight_lb
number | null
length_in
number | null
width_in
number | null
height_in
number | null
carrier
string | null

e.g. ups, usps, fedex, dhl.

service_level
string | null

e.g. ground, priority, 2day.

tracking_number
string | null
tracking_url
string | null
ship_cost
number | null
billed_ship_cost
number | null

Cost billed to customer (vs purchased cost).

location_id
string<uuid> | null
insurance_amount_override
number | null

Manual override of the auto-computed Shippo-insurance declared value. When set, overrides the value derived from products flagged apply_freight_insurance.

insurance
object | null
read-only

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.

shipped_at
string<date-time> | null
read-only
delivered_at
string<date-time> | null
read-only
metadata
object | null
created_at
string<date-time>
read-only
updated_at
string<date-time>
read-only