HomeTutorialsAPI ReferenceChangelog
Log In
Tutorials

2027-01

2027-01 Release Notes

Fulfillments

New Endpoints

  • GET /api/2027-01/fulfillments/{fulfillment_id}/packages: Lists packages, their shipping information, state, timestamps, and contents. Requires sales:read scope.
  • POST /api/2027-01/fulfillments/{fulfillment_id}/packages/fulfill: Fulfills existing PACKED packages by ID. Requires sales:write scope.
  • PATCH /api/2027-01/fulfillments/{fulfillment_id}/packages/{package_id}: Updates package shipping information, contents, or delivery state. Requires sales:write scope.
  • DELETE /api/2027-01/fulfillments/{fulfillment_id}/packages/{package_id}: Deletes a PACKED package and reverses its packed quantities. Requires sales:write scope and a JSON body containing the current fulfillment version.

Behavior changes

Packages group fulfillment items with optional carrier, service, tracking, label, and weight information.

  • POST /api/2027-01/fulfillments/{fulfillment_id}/pack creates a PACKED package even without the optional package shipping block, and returns data.package_id. Each successful pack request using the current fulfillment version creates a new package; retrying with the previous version returns 409 Conflict. Negative packing corrections are no longer supported; update or delete the package instead.
  • POST /api/2027-01/fulfillments/{fulfillment_id}/fulfill fulfills unpacked quantities into a new FULFILLED package with optional shipping information. source_breakdown no longer accepts quantity_from_packed; it now requires only quantity_from_picked and quantity_from_not_started. When omitted, quantities come from picked-but-unpacked items first, then not-started items. Fulfill packed quantities using packages/fulfill.
  • POST /api/2027-01/fulfillments/fulfill accepts an optional package block only for a sale with exactly one eligible fulfillment and no existing packages. Without a block, it fulfills existing PACKED packages and creates a package for each fulfillment's unpacked remainder.
  • GET /api/2027-01/fulfillments includes packages in each summary. Filters and pagination are unchanged.

Package mutations use the fulfillment version for optimistic locking. PATCH line_items replaces the complete contents and must be non-empty; use DELETE to remove a package. Null clears a shipping field. Contents and non-tracking shipping information are editable only while the resulting state is PACKED; tracking information remains editable afterward.

For request examples, shipping-field rules, and migration guidance, see Fulfillments.


Did this page help you?