01must proveProposed | Label purchase records its attempt before contacting the carrier and stores tracking, cost and label afterward, returning a purchased result on repetition. | lifecycle | service, database | test |
02must proveProposed | An uncertain purchase is recovered by querying its existing key and, if needed, resending that key; unresolved purchases remain in flight and never use a new purchase key. origin: D-P8S-08 (build decision, not a product ruling): services-commerce:docs/migrations/shipping/README.md#D-P8S-08 | invariant | service | test |
03must proveProposed | Staff can resolve an in-flight label purchase using the result visible in the carrier's console. | lifecycle | api, service | observed |
04must proveProposed | An unavailable carrier reached before any operation executes produces a failed attempt, allowing the next purchase to use a new attempt. | lifecycle | service | test |
05must proveProposed | The manual carrier requires staff-supplied tracking and whole nonnegative cost, provides no quotes, accepts label voids and records delivery only from staff input. | validation | service | test |
06must proveProposed | UPS calls use Commerce's Integration Platform connection and invocation grant; missing connection or grant yields carrier-unavailable without sending a request. origin: UPS through the Integration Platform, Andrew 2026-10-18 21:10 UTC ("move it now"): services-commerce:docs/migrations/shipping/README.md#D-P8S-15 | policy | service | test |
07must proveProposed | UPS timeouts and rate limits are retryable, invalid requests are permanent failures, unanswered purchases are uncertain and disconnected connections are unavailable. | policy | service | test |
08Proposed | Label requests use the connection's default format unless a supported format is selected, including thermal output, and unsupported formats are rejected before contacting a carrier. | validation | api | test |
09must proveProposed | Voiding records a distinct keyed attempt, returns the parcel to packing or pulls it, retains cost and a finding after refusal, and retries an unknown void outcome with the next void-attempt key. | lifecycle | service | test |
10must proveProposed | Requested tracking updates parcels from carrier history to in transit, delivered, exception or returned to sender, and marks the shipment delivered after all parcels are delivered. | lifecycle | service | test |
11must proveProposed | Pickup shipments reject label purchase, void, tracking, manifest and carrier handoff as unsupported operations. origin: Decision L, Andrew 2026-10-18 ("add it now"): services-commerce:docs/migrations/shipping/README.md#D-P8S-14 | validation | service | test |
12Proposed | Tracking is requested explicitly without a scheduled sweep or carrier notification, and carrier charges are not posted to Accounting. | policy | service | observed |