Place one order for the prints of one item
const url = 'https://api.pixonaut.app/v1/orders';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"externalRef":"WEB-10482-1","prints":[{"printId":"c4d5e6f7-a8b9-4c0d-9e1f-2a3b4c5d6e7f"},{"printId":"d5e6f7a8-b9c0-4d1e-8f2a-3b4c5d6e7f80"}],"quantity":1,"recipient":{"email":"[email protected]","name":"Alexandra Lind"},"shippingAddress":{"city":"London","company":"Lind Design AB","country":"GB","line1":"12 High Street","postalCode":"SW1A 1AA"}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.pixonaut.app/v1/orders \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "externalRef": "WEB-10482-1", "prints": [ { "printId": "c4d5e6f7-a8b9-4c0d-9e1f-2a3b4c5d6e7f" }, { "printId": "d5e6f7a8-b9c0-4d1e-8f2a-3b4c5d6e7f80" } ], "quantity": 1, "recipient": { "email": "[email protected]", "name": "Alexandra Lind" }, "shippingAddress": { "city": "London", "company": "Lind Design AB", "country": "GB", "line1": "12 High Street", "postalCode": "SW1A 1AA" } }'Operation ID: orders.create
A secret key, an integration key, or a studio member holding orders:create. Places ONE order for every print in prints: the prints of one physical item, a front and a back of one shirt, made by one printshop as one item. The prints must be prints of designs committed on the same blank, each in a placement of its own, or all on no blank, completed or still rendering. An order of prints still rendering is written awaiting_prints and answered 201 at once; it goes to its printshop on its own once every print is complete, checked then against what needs the files (technique_not_offered, the sizes, the printshop’s required keys), and a refusal then leaves it failed with failureKind naming it. A print of it that fails fails it print_failed, and prints not complete within three hours of placing fail it prints_timed_out. A print that failed is refused 409 print_not_completed. designs names approved designs in place of their prints: the order makes a new print of each, as POST /v1/prints would, and waits for them, except that a standing design’s order reuses the print of its current revision, completed or still rendering, and makes one only when there is none or it failed; an unknown design is 404 design_not_found, one not approved 409 design_not_approved, and nothing is written. Naming both prints and designs, or neither, is 400. Every check that needs no files runs at placement: 422 print_without_placement names a print committed before its placement was recorded, 422 mixed_blanks answers prints on different blanks or some on a blank and some on none, and 422 duplicate_placement two in one placement. Prints on a blank go to their blank’s printshop, set when the blank was created; every print is checked against that printshop. printshopId naming another printshop is refused 422 printshop_differs_from_blank, and naming the blank’s own as an unknown field. Prints on no blank, such as a sign’s front and back, go to the printshop the first print’s design was committed with, else printshopId, else the workspace default, else are refused 409 print_needs_printshop, except in a sandbox, where the order is placed with no printshop (printshopConnectionId null, adapter none); a print whose design was committed with another printshop is refused 422 print_committed_elsewhere, naming it. A printshop that cannot make several prints as one item answers 422 printshop_cannot_combine, and prints whose designs disagree on what the printshop makes one item from answer 422 prints_disagree naming the key: nothing is written either way. One print places exactly the order POST /v1/prints/{id}/orders would. quantity, externalRef, recipient, shippingAddress and the Idempotency-Key header are as there; the first print’s design’s captured delivery is the one the order takes when the body names neither a recipient nor an address. A partner refusing the order is still a 201: the order is recorded as failed. A printshop the merchant paused takes no order: one going there is refused 409 printshop_paused, naming it, and nothing is written. A print made by a method its printshop does not print with, where the printshop states what it prints with, is refused 422 technique_not_offered, naming the placement, the method and the printshop’s, and nothing is written. A placement its blank says an order must print, left without a print, is refused 422 placement_unfilled, naming it, and nothing is written. A design has one live order, in any status but failed and cancelled, whoever placed it: an order of prints of a design that has one, or naming such a design, is refused 409 design_already_ordered, naming the design and its newest live order, and nothing is written; two sent at once place one. reorder: true orders it again on purpose. A standing design is never refused design_already_ordered: it is ordered on every sale. A repeat with the first request’s Idempotency-Key is answered with the first order before this is asked.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”Your own key for this request. A repeat with the same key and body within 24 hours is answered with what the first one made, marked Idempotent-Replayed: true, and makes nothing; the same key with another body is refused idempotency_key_reused, and a repeat while the first is still being answered idempotency_key_in_use. A request that is refused makes nothing, so its key may be sent again.
Your own key for this request. A repeat with the same key and body within 24 hours is answered with what the first one made, marked Idempotent-Replayed: true, and makes nothing; the same key with another body is refused idempotency_key_reused, and a repeat while the first is still being answered idempotency_key_in_use. A request that is refused makes nothing, so its key may be sent again.
Request Bodyrequired
Section titled “Request Bodyrequired”object
The designs of one item in place of its prints, each an approved design of one side, committed on the same blank in a placement of its own; the first is the order’s lead. The order makes a new print of each, as POST /v1/prints would, and waits for them; a standing design’s order reuses the print of its current revision, completed or still rendering, and makes one only when there is none or it failed. Name prints or designs, not both.
object
One approved design of the item, by the id GET /v1/designs answers.
The caller’s own reference for this order, such as its order id in the shop. Kept exactly as sent and handed to the printshop.
The prints of one item, each a print of a design committed on the same blank in a placement of its own, completed or still rendering; the first is the order’s lead, which printId names on the order. One print places the order POST /v1/prints/{id}/orders would. Name prints or designs, not both.
object
One print of the item, by the id GET /v1/prints answers.
The printshop to make this order, for a print with no blank whose design named none when it was committed. A print on a blank is made by the blank’s printshop: naming another is refused with printshop_differs_from_blank, and naming the blank’s own as an unknown field. Absent or null, a print with no blank goes to the printshop its design was committed with, else the tenant’s default.
How many copies to order. A whole number of 1 or more; 1 when left out.
Who the order is for. Left out, the first order of a design takes what its customer gave.
object
The recipient’s email address, for the carrier’s notices.
The recipient’s name as a parcel label carries it, a person’s or a company’s. Up to 200 characters.
The recipient’s phone number as the customer gave it, with the country code when it has one.
Order the design again on purpose. A design has one live order (in any status but failed and cancelled): absent or false, an order of a design that has one is refused 409 design_already_ordered, naming the design and its newest live order, and nothing is written. True places the order whatever orders the design has.
A saved address to ship to; the customer stays the recipient. null: the customer’s. Left out: the workspace’s setting.
Where the order ships. Left out, the first order of a design takes what its customer gave.
object
The city or town.
The company of a business address, which the parcel goes to; the recipient is who receives it.
The country as a two-letter ISO 3166-1 code in capitals, such as SE or US.
The first line of the street address: street and number.
The second line of the address: an apartment, floor or c/o.
The postal code as the country writes it, such as 111 22 or SW1A 1AA. Left out where the country has none; a printshop that needs one refuses the order postal_code_required.
The state, province or county, where the country uses one.
The variant of the print’s blank the order is for, by ref (v_…). Left out, a blank with exactly one variant orders that one, and one with several is refused variant_required. A ref of another blank is refused variant_not_of_blank, and a retired one variant_retired. The order keeps a copy of the variant as it was: its options and the printshop fields it was sent.
Examples
Example
{ "externalRef": "WEB-10482-1", "prints": [ { "printId": "c4d5e6f7-a8b9-4c0d-9e1f-2a3b4c5d6e7f" }, { "printId": "d5e6f7a8-b9c0-4d1e-8f2a-3b4c5d6e7f80" } ], "quantity": 1, "recipient": { "name": "Alexandra Lind" }, "shippingAddress": { "city": "London", "company": "Lind Design AB", "country": "GB", "line1": "12 High Street", "postalCode": "SW1A 1AA" }}Front and back on one item: 2. Order the prints as one item
{ "externalRef": "WEB-10482-1", "prints": [ { "printId": "c4d5e6f7-a8b9-4c0d-9e1f-2a3b4c5d6e7f" }, { "printId": "d5e6f7a8-b9c0-4d1e-8f2a-3b4c5d6e7f80" } ], "quantity": 1, "recipient": { "name": "Alexandra Lind" }, "shippingAddress": { "city": "London", "company": "Lind Design AB", "country": "GB", "line1": "12 High Street", "postalCode": "SW1A 1AA" }}Responses
Section titled “Responses”The placed order
object
The blank blankId names, as it reads now; null as blankId is.
object
Its option axes, in order: how a variant’s options read, such as Color then Size.
How many variants it has, retired ones included.
The blank the order’s prints are on; null for prints on no blank, or an order placed before it was recorded.
The order’s latest address change, made with PATCH /v1/orders/{id}/delivery after the order was sent; null for an order whose address never changed.
object
When the change was made.
What the printshop made of the change: sending while it is being told, accepted, refused (the order keeps the address the printshop has), or carried when what the printshop had not been sent yet carries the new address, so nothing extra was sent.
The printshop’s own answer to a refused change; null otherwise.
The design the lead print was made from.
Why Pixonaut failed the order rather than its printshop, as a refusal code: print_failed (a print of it could not be made; lastError names it), prints_timed_out (its prints were not finished within three hours of placing it), or the refusal an order waiting for its prints met when it was handed on, such as technique_not_offered. null for an order its printshop refused, or one not failed.
Why the order is held, while it is; null for an order not held. A held order is accepted and not handed to its printshop until the month resets with room for it or the workspace upgrades.
object
The plan’s monthly order limit the order met.
When the month resets (ISO 8601, UTC): the latest the order is released, if the new month has room for it.
Why it is held: monthly_order_limit, the workspace has placed the orders its plan includes this month. Show a reason you do not know as held without one, never as a failure.
The order’s lead print: the first of printIds, and the only one of an order of one print.
Every print the order holds, the lead first: the prints of one item, each in its own placement on its blank.
printIds with each print’s design, placement and file.
object
The revision of the design the print was made from: GET /v1/designs/{id}/revisions/{revision}/image draws it.
The placement fields the printshop was sent for this print, from its position there; null for an order placed before they were recorded.
object
Where the value came from: the variant’s (or position’s) own, the field’s default, or nothing, sent empty.
The placement on its blank the print’s design was committed for; null for a design with no blank, or one committed before placements were recorded.
Where on the item the print goes, by the name the order’s printshop knows it by (its Printed as), recorded when the order was placed; null for a print on no blank, or an order placed before it was recorded.
Which of this print’s files the printshop was sent; null while the order waits for its prints (awaiting_prints).
Where the print has got to: created while it renders, which an order in awaiting_prints waits for, then completed, or failed.
object
A fill print is made from no design.
A fill print: an optional placement of the blank the order left undesigned, printed flat in this colour (#rrggbb), its fill colour, at the placement’s whole area.
The placement fields the printshop was sent for this print, from its position there; null for an order placed before they were recorded.
object
Where the value came from: the variant’s (or position’s) own, the field’s default, or nothing, sent empty.
The placement on its blank the print’s design was committed for; null for a design with no blank, or one committed before placements were recorded.
Where on the item the print goes, by the name the order’s printshop knows it by (its Printed as), recorded when the order was placed; null for a print on no blank, or an order placed before it was recorded.
Which of this print’s files the printshop was sent; null while the order waits for its prints (awaiting_prints).
Where the print has got to: created while it renders, which an order in awaiting_prints waits for, then completed, or failed.
The printshop as it was when the order was placed: its name and kind (adapter). null for an order placed before it was recorded.
object
Who the order is for: its customer. When shipTo is set, the order ships there and the customer is who it is finally for.
object
The recipient’s email address, for the carrier’s notices.
The recipient’s name as a parcel label carries it, a person’s or a company’s. Up to 200 characters.
The recipient’s phone number as the customer gave it, with the country code when it has one.
The order submitted to replace this one, which names it as replacesOrderId; null for none.
The failed order this one was submitted to replace; null for an order that replaces none.
The workspace’s saved address the order ships to, as it was when the order was placed; null for an order that ships to its customer’s address. Its printshop is handed this address, and erasing the order’s personal data leaves it.
object
object
The city or town.
The company of a business address, which the parcel goes to; the recipient is who receives it.
The country as a two-letter ISO 3166-1 code in capitals, such as SE or US.
The first line of the street address: street and number.
The second line of the address: an apartment, floor or c/o.
The postal code as the country writes it, such as 111 22 or SW1A 1AA. Left out where the country has none; a printshop that needs one refuses the order postal_code_required.
The state, province or county, where the country uses one.
What the address is called in the workspace, such as Warehouse: unique there, case aside, and the name a parcel sent there is addressed to. Up to 200 characters.
The saved address the order ships to, by id. It may have been changed or removed since; name and address are what the order was placed with.
The customer’s address. Where the order ships, unless shipTo is set.
object
The city or town.
The company of a business address, which the parcel goes to; the recipient is who receives it.
The country as a two-letter ISO 3166-1 code in capitals, such as SE or US.
The first line of the street address: street and number.
The second line of the address: an apartment, floor or c/o.
The postal code as the country writes it, such as 111 22 or SW1A 1AA. Left out where the country has none; a printshop that needs one refuses the order postal_code_required.
The state, province or county, where the country uses one.
object
Who carries it, such as DHL.
The shipment’s tracking number.
Where the shipment is followed: an https address.
The variant as it was when the order was placed: its options and the variant fields its printshop was sent. A later edit of the variant does not change it.
object
Each declared field, in the printshop’s order, as it was sent.
object
Where the value came from: the variant’s (or position’s) own, the field’s default, or nothing, sent empty.
object
The variant the order names; null as blankId is.
Examples
Example
{ "adapter": "printful", "blank": { "name": "Classic tee", "optionAxes": [ "Color", "Size" ], "variants": 12 }, "blankId": "blank_classic_tee", "delivery": null, "designId": "6f1c8a2b-3d4e-4f5a-8b6c-7d8e9f0a1b2c", "externalOrderRef": "PF-889123", "externalRef": "WEB-10482-1", "failureKind": null, "hold": null, "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b", "lastCheckedAt": null, "lastError": null, "personalDataErasedAt": null, "printId": "c4d5e6f7-a8b9-4c0d-9e1f-2a3b4c5d6e7f", "printIds": [ "c4d5e6f7-a8b9-4c0d-9e1f-2a3b4c5d6e7f", "d5e6f7a8-b9c0-4d1e-8f2a-3b4c5d6e7f80" ], "prints": [ { "designId": "6f1c8a2b-3d4e-4f5a-8b6c-7d8e9f0a1b2c", "designRevision": 1, "placementFields": [], "placementId": "front", "printId": "c4d5e6f7-a8b9-4c0d-9e1f-2a3b4c5d6e7f", "printedAs": "Front", "spotOutput": "process", "status": "completed" }, { "designId": "7a2d9b3c-4e5f-4a6b-9c7d-8e9f0a1b2c3d", "designRevision": 1, "placementFields": [], "placementId": "back", "printId": "d5e6f7a8-b9c0-4d1e-8f2a-3b4c5d6e7f80", "printedAs": "Back", "spotOutput": "process", "status": "completed" } ], "printshopAsPlaced": { "adapter": "printful", "name": "Printful" }, "printshopConnectionId": "0b1c2d3e-4f5a-4b6c-8d7e-9f0a1b2c3d4e", "printshopName": "Printful", "quantity": 1, "recipient": { "name": "Alexandra Lind" }, "replacedByOrderId": null, "replacesOrderId": null, "shipTo": null, "shippingAddress": { "city": "London", "company": "Lind Design AB", "country": "GB", "line1": "12 High Street", "postalCode": "SW1A 1AA" }, "spotOutput": "process", "status": "queued", "submittedAt": 1791886447000, "tenantId": "acme", "tracking": null, "updatedAt": 1791886448000, "variant": { "fields": [ { "name": "catalogVariantId", "source": "own", "value": "4012" } ], "options": { "Color": "White", "Size": "M" }, "ref": "v_3f9a1c2b7d4e8a01" }, "variantRef": "v_3f9a1c2b7d4e8a01"}Front and back on one item: 2. Order the prints as one item
{ "adapter": "printful", "blank": { "name": "Classic tee", "optionAxes": [ "Color", "Size" ], "variants": 12 }, "blankId": "blank_classic_tee", "delivery": null, "designId": "6f1c8a2b-3d4e-4f5a-8b6c-7d8e9f0a1b2c", "externalOrderRef": "PF-889123", "externalRef": "WEB-10482-1", "failureKind": null, "hold": null, "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b", "lastCheckedAt": null, "lastError": null, "personalDataErasedAt": null, "printId": "c4d5e6f7-a8b9-4c0d-9e1f-2a3b4c5d6e7f", "printIds": [ "c4d5e6f7-a8b9-4c0d-9e1f-2a3b4c5d6e7f", "d5e6f7a8-b9c0-4d1e-8f2a-3b4c5d6e7f80" ], "prints": [ { "designId": "6f1c8a2b-3d4e-4f5a-8b6c-7d8e9f0a1b2c", "designRevision": 1, "placementFields": [], "placementId": "front", "printId": "c4d5e6f7-a8b9-4c0d-9e1f-2a3b4c5d6e7f", "printedAs": "Front", "spotOutput": "process", "status": "completed" }, { "designId": "7a2d9b3c-4e5f-4a6b-9c7d-8e9f0a1b2c3d", "designRevision": 1, "placementFields": [], "placementId": "back", "printId": "d5e6f7a8-b9c0-4d1e-8f2a-3b4c5d6e7f80", "printedAs": "Back", "spotOutput": "process", "status": "completed" } ], "printshopAsPlaced": { "adapter": "printful", "name": "Printful" }, "printshopConnectionId": "0b1c2d3e-4f5a-4b6c-8d7e-9f0a1b2c3d4e", "printshopName": "Printful", "quantity": 1, "recipient": { "name": "Alexandra Lind" }, "replacedByOrderId": null, "replacesOrderId": null, "shipTo": null, "shippingAddress": { "city": "London", "company": "Lind Design AB", "country": "GB", "line1": "12 High Street", "postalCode": "SW1A 1AA" }, "spotOutput": "process", "status": "queued", "submittedAt": 1791886447000, "tenantId": "acme", "tracking": null, "updatedAt": 1791886448000, "variant": { "fields": [ { "name": "catalogVariantId", "source": "own", "value": "4012" } ], "options": { "Color": "White", "Size": "M" }, "ref": "v_3f9a1c2b7d4e8a01" }, "variantRef": "v_3f9a1c2b7d4e8a01"}Headers
Section titled “Headers”Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.
Refused: bad_request
object
Examples
bad_request
{ "error": "bad_request"}Headers
Section titled “Headers”Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.
Refused: unauthorized
object
Examples
unauthorized
{ "error": "unauthorized"}Headers
Section titled “Headers”Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.
Refused: plan_limit_reached, origin_forbidden, forbidden, feature_disabled, workspace_suspended
object
The feature the tenant does not have. Always sent with feature_disabled.
The limit the tenant is at: templates, connectedStores, apiKeys, shareLinks, customDomains, printsMadePerMonth (prints made without an order this month), members, orders (this month’s orders, which getting a print’s files without an order counts as), or a sandbox’s own caps: sandboxPrintsPerDay, sandboxPrintsPerMonth, sandboxOrdersPerMonth. A sandbox shares every other limit with its live workspace. Always sent with plan_limit_reached.
How many the plan allows. Always sent with plan_limit_reached.
The plan whose limit it is. Always sent with plan_limit_reached.
Examples
feature_disabled
{ "error": "feature_disabled", "feature": "api"}forbidden
{ "error": "forbidden"}origin_forbidden
{ "error": "origin_forbidden"}plan_limit_reached
{ "error": "plan_limit_reached", "limit": "templates", "max": 0, "plan": "free"}workspace_suspended
{ "error": "workspace_suspended"}Headers
Section titled “Headers”Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.
Refused: print_not_found, design_not_found, not_found
object
Examples
design_not_found
{ "error": "design_not_found"}not_found
{ "error": "not_found"}print_not_found
{ "error": "print_not_found"}Headers
Section titled “Headers”Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.
Refused: print_not_completed, print_needs_printshop, print_ticket_stale, print_superseded, print_files_deleted, design_erased, stale_update, design_already_ordered, printshop_paused, design_not_approved, idempotency_key_in_use
object
Always sent with stale_update.
Always sent with design_already_ordered.
Always sent with print_ticket_stale.
Always sent with design_already_ordered.
Always sent with printshop_paused.
Always sent with print_not_completed.
Examples
design_already_ordered
{ "designId": "string", "error": "design_already_ordered", "orderId": "string"}design_erased
{ "error": "design_erased"}design_not_approved
{ "error": "design_not_approved"}idempotency_key_in_use
{ "error": "idempotency_key_in_use"}Placing an order safely: Another caller's order of the same design
{ "designId": "6f1c8a2b-3d4e-4f5a-8b6c-7d8e9f0a1b2c", "error": "design_already_ordered", "orderId": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"}print_files_deleted
{ "error": "print_files_deleted"}print_needs_printshop
{ "error": "print_needs_printshop"}print_not_completed
{ "error": "print_not_completed", "status": "string"}print_superseded
{ "error": "print_superseded"}print_ticket_stale
{ "detail": "string", "error": "print_ticket_stale"}printshop_paused
{ "error": "printshop_paused", "reason": "string"}stale_update
{ "current": 0, "error": "stale_update"}Headers
Section titled “Headers”Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.
Refused: unknown_printshop, printshop_disconnected, printshop_unavailable, printshop_differs_from_blank, missing_fulfilment_keys, postal_code_required, saved_address_not_found, spot_plate_required, print_profile_unavailable, print_exceeds_position, print_not_position_size, print_exceeds_machine, print_raster_too_large, technique_not_offered, placement_unfilled, variant_not_of_blank, variant_retired, variant_required, field_value_missing, variant_not_of_design_row, print_without_placement, mixed_blanks, duplicate_placement, print_committed_elsewhere, printshop_cannot_combine, prints_disagree, idempotency_key_reused, invalid_idempotency_key, payload_too_large
object
Sent with payload_too_large.
Always sent with spot_plate_required.
Always sent with variant_not_of_design_row.
Always sent with print_profile_unavailable.
Always sent with field_value_missing.
Always sent with field_value_missing.
Always sent with prints_disagree.
Always sent with print_exceeds_position.
object
Always sent with print_exceeds_machine, print_raster_too_large.
Always sent with payload_too_large.
Always sent with print_exceeds_machine.
object
Always sent with technique_not_offered.
Always sent with missing_fulfilment_keys.
Always sent with print_profile_unavailable.
Always sent with print_exceeds_position, print_not_position_size, technique_not_offered, placement_unfilled, and may be sent with print_exceeds_machine, print_raster_too_large.
Always sent with duplicate_placement.
Always sent with print_exceeds_position, print_not_position_size, and may be sent with field_value_missing.
Always sent with print_profile_unavailable, print_without_placement, print_committed_elsewhere.
Always sent with technique_not_offered.
Always sent with print_exceeds_position, print_not_position_size, print_exceeds_machine.
object
Always sent with print_exceeds_machine, print_raster_too_large.
Always sent with unknown_printshop, printshop_disconnected, printshop_unavailable, printshop_differs_from_blank, print_exceeds_position, print_not_position_size, print_exceeds_machine, print_raster_too_large, technique_not_offered, placement_unfilled, variant_not_of_blank, variant_retired, variant_required, field_value_missing, variant_not_of_design_row.
Always sent with spot_plate_required.
Always sent with variant_not_of_design_row.
object
Always sent with print_not_position_size.
object
Always sent with print_raster_too_large.
object
Always sent with variant_not_of_blank, variant_retired, variant_not_of_design_row.
Always sent with variant_required.
Examples
duplicate_placement
{ "error": "duplicate_placement", "placementId": "string"}field_value_missing
{ "error": "field_value_missing", "field": "string", "fieldKind": "variant", "reason": "string"}idempotency_key_reused
{ "error": "idempotency_key_reused"}invalid_idempotency_key
{ "error": "invalid_idempotency_key"}missing_fulfilment_keys
{ "error": "missing_fulfilment_keys", "missing": [ "string" ]}mixed_blanks
{ "error": "mixed_blanks"}payload_too_large
{ "error": "payload_too_large", "maxBytes": 0}placement_unfilled
{ "error": "placement_unfilled", "placement": "string", "reason": "string"}postal_code_required
{ "error": "postal_code_required"}print_committed_elsewhere
{ "error": "print_committed_elsewhere", "printId": "string"}print_exceeds_machine
{ "error": "print_exceeds_machine", "machine": "string", "mediaMm": { "heightMm": 0, "widthMm": 0 }, "printMm": { "heightMm": 0, "widthMm": 0 }, "printshop": "string", "reason": "string"}print_exceeds_position
{ "error": "print_exceeds_position", "largestMm": { "heightMm": 0, "widthMm": 0 }, "placement": "string", "position": "string", "printMm": { "heightMm": 0, "widthMm": 0 }, "reason": "string"}print_not_position_size
{ "error": "print_not_position_size", "placement": "string", "position": "string", "printMm": { "heightMm": 0, "widthMm": 0 }, "reason": "string", "sizeMm": { "heightMm": 0, "widthMm": 0 }}print_profile_unavailable
{ "detail": "string", "error": "print_profile_unavailable", "outputProfile": "string", "printId": "string"}print_raster_too_large
{ "error": "print_raster_too_large", "machine": "string", "printshop": "string", "reason": "string", "sizePx": { "heightPx": 0, "widthPx": 0 }}print_without_placement
{ "error": "print_without_placement", "printId": "string"}prints_disagree
{ "error": "prints_disagree", "key": "string"}printshop_cannot_combine
{ "error": "printshop_cannot_combine"}printshop_differs_from_blank
{ "error": "printshop_differs_from_blank", "reason": "string"}printshop_disconnected
{ "error": "printshop_disconnected", "reason": "string"}printshop_unavailable
{ "error": "printshop_unavailable", "reason": "string"}saved_address_not_found
{ "error": "saved_address_not_found"}spot_plate_required
{ "cause": "printshop_takes_no_plates", "error": "spot_plate_required", "references": [ "string" ]}technique_not_offered
{ "error": "technique_not_offered", "method": "string", "placement": "string", "printMethods": [ "string" ], "reason": "string"}unknown_printshop
{ "error": "unknown_printshop", "reason": "string"}variant_not_of_blank
{ "error": "variant_not_of_blank", "reason": "string", "variant": "string"}variant_not_of_design_row
{ "designId": "string", "error": "variant_not_of_design_row", "reason": "string", "row": {}, "variant": "string"}variant_required
{ "error": "variant_required", "reason": "string", "variants": 0}variant_retired
{ "error": "variant_retired", "reason": "string", "variant": "string"}Headers
Section titled “Headers”Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.
Refused: db_error. A request that failed unexpectedly answers as text instead.
object
Examples
db_error
{ "error": "db_error"}Headers
Section titled “Headers”Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.
Refused: lock_timeout
object
Examples
lock_timeout
{ "error": "lock_timeout"}Headers
Section titled “Headers”Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.
Questions? Write to [email protected].