orders

Attach the packing photo

The photo taken at packing is what closes production. Attaching it marks every order in the parcel FULFILLED, stamps fulfilled_at, and sends each seller's order_status webhook — the same act, through the same code, as the camera button on the fulfillment station. This is the call a warehouse's packing step makes when it works OpCreative orders from its own system.

The body is multipart/form-data, not JSON — like POST /products/{id}/images, it takes a file. file must be a PNG, JPG or WEBP of 50 MB or less; the 2 MB JSON limit does not apply here.

The order id in the path identifies the whole parcel: every order sharing its tracking number receives the photo and moves together. Orders already FULFILLED or SHIPPED keep their status — the photo is replaced, the parcel does not move backwards.

A parcel that already has a photo, or is already fulfilled, answers 409 with requires_overwrite: true and changes nothing. Re-send with overwrite=true to replace it. A second photo is either a correction or a mis-scan, and the API cannot tell which, so it asks.

The key's owner needs the WAREHOUSE role; a seller key gets 403. The photo lands in proof_image_url. The design in image_url is a different field and is not touched.

post/orders/{id}/proof

Request

  • Base URL: https://0.0.0.0:3000/api/v1
  • URL: https://0.0.0.0:3000/api/v1/orders/{id}/proof
  • Auth: API key in header x-api-key

Path parameters

idinteger required

Any order in the parcel.

Headers

Idempotency-Keystring

Optional. Reuse the same value on every retry of the same photo, so a retry after a timeout gets the first answer instead of a 409; see Idempotency.

Response

The order in full, with proof_image_url set. meta.fulfilled lists every order id in the parcel the photo now covers.

Changes

No recorded changes to this operation across all 1 revision of this API.