Delete a package (auto-voids active label)
Permanently deletes a package. Packed items are released back to the unfulfilled pool on the originating order.
Label auto-void (cascade-with-confirm policy): if the package has one or more active
(non-voided) Shippo labels, the backend automatically voids each label via the carrier
API and requests a refund before deleting the package. Callers do not need to void the
label first. The activity log records the void with reason: package_deleted.
Hard block: fulfilled packages (fulfillment_status = fulfilled) cannot be deleted.
Returns 422 cannot_delete_fulfilled_package. Use the Unpack endpoint first
(POST /orders/:id/unpack) to reopen a fulfilled order for editing.
Requires fulfillment:write scope.
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.
Path Parameters
Response
Package deleted. Response body summarizes the cascade: deletion confirmation, the order's re-derived fulfillment_status after the package was removed, and any per-label void errors from Shippo (null when all label voids succeeded or no labels existed).

