/v1/orders
Create a new order
Create an order, optionally with a customer and line items, in one call. Use it to bring orders from a storefront or system Printago has no built-in integration for.
Send Authorization: ApiKey <your-api-key>. Orders require a commercial account; other stores get 403.
Line items and SKUs
Each item needs a quantity and a way to find its Printago SKU:
skuId: the SKU's ID. Used as given.sku: a SKU code. Printago first looks for a SKU with exactly that code. If none matches, it tries to read the code as a base SKU followed by variant suffixes (for exampleBENCHY+-RED), using theskuSuffixesconfigured on your variant values, and fillsskuConfig.selectedOptionswith the matched values.
An item whose code matches nothing is still saved, with skuId: null and the code in externalSku, so you can map it later. Items with none of skuId, sku or externalSku are dropped.
Customers
If you include customer, Printago reuses an existing customer with the same externalId (or, when there is no externalId, the same email) and creates one otherwise.
Printing
Creating an order does not queue anything. To print it, call POST /v1/orders/print with the order's ID in orderIds and the SKUs to print in skuIds. That creates SKU builds linked to the order, and the resulting print jobs carry its orderId.
processedAt defaults to the time of the request. Items are created with processedStatus: "unprocessed".
Request Body
Order details including optional customer and items
Customer to attach. Matched to an existing customer by externalId, or by email when there is no externalId; created otherwise.
Line items. Each needs quantity (at least 1) and one of skuId, sku or externalSku.
A SKU code to resolve to a Printago SKU, either an exact SKU code or a base code followed by variant value suffixes.
Per-item build settings: selectedOptions (variant option ID to value ID or value name, or free text for an option without predefined values) and linkedPartConfigs (overrides keyed by linked part ID, the same shape as in POST /v2/builds). Used when the order is printed.
Date the order is due.
Your system's ID for the order. When source is set, each externalId can be used only once per source within your store.
Your order number, shown throughout Printago.
Where the order came from. Leave it unset for orders you create yourself; the values other than manual are used by Printago's marketplace integrations.
Example Request
{
"order": {
"externalId": "string",
"source": "etsy",
"integrationId": "string",
"customMetadata": {},
"orderNumber": "string",
"customerId": "string",
"shippedAt": "2025-01-15T12:00:00.000Z",
"priceBucket": 1,
"price": 1,
"currency": "string",
"externalUrl": "string",
"note": "string",
"deadline": "2025-01-15T12:00:00.000Z",
"processedAt": "2025-01-15T12:00:00.000Z",
"sourceRef": "string"
},
"customer": {
"name": "string",
"externalId": "string",
"source": "etsy",
"customMetadata": {},
"email": "string",
"phone": "string",
"countryCode": "string",
"provinceCode": "string",
"zipCode": "string"
},
"items": [
{
"skuId": "string",
"sku": "string",
"externalId": "string",
"source": "etsy",
"customMetadata": {},
"status": "string",
"processedAt": "2025-01-15T12:00:00.000Z",
"quantity": 1,
"inputs": {},
"externalOrderId": "string",
"externalProductId": "string",
"externalSku": "string",
"originalSku": "string",
"processedStatus": "unprocessed",
"ignored": true,
"skuConfig": {
"linkedPartConfigs": {},
"selectedOptions": {},
"freeTextOptionIds": [
"string"
],
"personalizationAnswerKeys": [
"string"
]
},
"resolutionNote": {
"type": "variant_enrichment_failed",
"message": "string",
"retriable": true,
"occurredAt": 1
}
}
]
}
Examples
Create an order with a customer and two items
The first item is identified by a variant SKU code, the second by SKU ID.
{
"order": {
"orderNumber": "1042",
"externalId": "sq-ord-88214",
"price": 34.5,
"currency": "USD",
"note": "Gift wrap, please",
"deadline": "2026-09-30T00:00:00.000Z"
},
"customer": {
"name": "Jordan Lee",
"email": "jordan.lee@example.com"
},
"items": [
{
"sku": "BENCHY-RED",
"quantity": 2
},
{
"skuId": "s8k2u6c0o4a7s1t5e9r3f2g6",
"quantity": 1
}
]
}
{
"order": {
"id": "o4r8d2e6r0x3c7v1b5n9m2q6",
"storeId": "k3m9x2p7q8r4t6v1w5y0z3a2",
"orderNumber": "1042",
"status": "open",
"source": null,
"customerId": "c3u7s1t5o9m2e6r0q4w8e1r5",
"externalId": "sq-ord-88214",
"price": 34.5,
"currency": "USD",
"note": "Gift wrap, please",
"deadline": "2026-09-30T00:00:00.000Z",
"processedAt": "2026-09-23T15:20:44.103Z",
"syncDisabled": false,
"createdAt": "2026-09-23T15:20:44.180Z",
"updatedAt": "2026-09-23T15:20:44.180Z"
},
"customer": {
"id": "c3u7s1t5o9m2e6r0q4w8e1r5",
"storeId": "k3m9x2p7q8r4t6v1w5y0z3a2",
"name": "Jordan Lee",
"email": "jordan.lee@example.com",
"createdAt": "2026-09-23T15:20:44.151Z",
"updatedAt": "2026-09-23T15:20:44.151Z"
},
"items": [
{
"id": "i9t3e7m1q5w2r6t0y4u8i3o5",
"orderId": "o4r8d2e6r0x3c7v1b5n9m2q6",
"skuId": "s5h1j7k3l9a2s6d0f4g8h2j5",
"source": "manual",
"quantity": 2,
"externalSku": "BENCHY-RED",
"originalSku": "BENCHY-RED",
"processedStatus": "unprocessed",
"ignored": false,
"skuConfig": {
"selectedOptions": {
"v2a6r0i4a8n1t5c9o3l7o2r6": "r3e7d1v5a9l2u6e0q4w8e3r7"
}
},
"createdAt": "2026-09-23T15:20:44.214Z",
"updatedAt": "2026-09-23T15:20:44.214Z"
},
{
"id": "i2w6e0r4t8y1u5i9o3p7a2s6",
"orderId": "o4r8d2e6r0x3c7v1b5n9m2q6",
"skuId": "s8k2u6c0o4a7s1t5e9r3f2g6",
"source": "manual",
"quantity": 1,
"externalSku": null,
"originalSku": null,
"processedStatus": "unprocessed",
"ignored": false,
"skuConfig": {
"selectedOptions": {}
},
"createdAt": "2026-09-23T15:20:44.214Z",
"updatedAt": "2026-09-23T15:20:44.214Z"
}
]
}
Create an order with a personalized item
Pass variant and personalization choices in skuConfig.selectedOptions, keyed by the ID of a variant option bound to the SKU. Values can be a value ID or a value name, or free text for an option that has no predefined values (such as a name to engrave).
{
"order": {
"orderNumber": "1043"
},
"items": [
{
"skuId": "s5h1j7k3l9a2s6d0f4g8h2j5",
"quantity": 1,
"skuConfig": {
"selectedOptions": {
"v2a6r0i4a8n1t5c9o3l7o2r6": "Red",
"n7a1m3e5t9x2o4q6w8e0r2t4": "Ada"
}
}
}
]
}
{
"order": {
"id": "o7p1q5r9s3t6u0v4w8x2y5z9",
"storeId": "k3m9x2p7q8r4t6v1w5y0z3a2",
"orderNumber": "1043",
"status": "open",
"customerId": null,
"processedAt": "2026-09-23T15:31:02.667Z",
"syncDisabled": false,
"createdAt": "2026-09-23T15:31:02.702Z",
"updatedAt": "2026-09-23T15:31:02.702Z"
},
"customer": null,
"items": [
{
"id": "i5o9p3a7s1d4f8g2h6j0k3l7",
"orderId": "o7p1q5r9s3t6u0v4w8x2y5z9",
"skuId": "s5h1j7k3l9a2s6d0f4g8h2j5",
"source": "manual",
"quantity": 1,
"originalSku": null,
"processedStatus": "unprocessed",
"skuConfig": {
"selectedOptions": {
"v2a6r0i4a8n1t5c9o3l7o2r6": "Red",
"n7a1m3e5t9x2o4q6w8e0r2t4": "Ada"
}
}
}
]
}
Response Schema
Customer to attach. Matched to an existing customer by externalId, or by email when there is no externalId; created otherwise.
Line items. Each needs quantity (at least 1) and one of skuId, sku or externalSku.
Per-item build settings: selectedOptions (variant option ID to value ID or value name, or free text for an option without predefined values) and linkedPartConfigs (overrides keyed by linked part ID, the same shape as in POST /v2/builds). Used when the order is printed.
Date the order is due.
Your system's ID for the order. When source is set, each externalId can be used only once per source within your store.
Your order number, shown throughout Printago.
Where the order came from. Leave it unset for orders you create yourself; the values other than manual are used by Printago's marketplace integrations.
Example Response
{
"order": {
"orderNumber": "string",
"source": "etsy",
"status": "open",
"cancelledAt": "2025-01-15T12:00:00.000Z",
"shippedAt": "2025-01-15T12:00:00.000Z",
"customerId": "string",
"integrationId": "string",
"priceBucket": 1,
"price": 1,
"currency": "string",
"externalId": "string",
"externalUrl": "string",
"sourceRef": "string",
"note": "string",
"deadline": "2025-01-15T12:00:00.000Z",
"processedAt": "2025-01-15T12:00:00.000Z",
"syncDisabled": true,
"customMetadata": {},
"id": "string",
"storeId": "string",
"createdAt": "2025-01-15T12:00:00.000Z",
"updatedAt": "2025-01-15T12:00:00.000Z"
},
"customer": {
"name": "string",
"email": "string",
"phone": "string",
"countryCode": "string",
"provinceCode": "string",
"zipCode": "string",
"externalId": "string",
"source": "etsy",
"customMetadata": {},
"id": "string",
"storeId": "string",
"createdAt": "2025-01-15T12:00:00.000Z",
"updatedAt": "2025-01-15T12:00:00.000Z"
},
"items": [
{
"orderId": "string",
"skuId": "string",
"source": "etsy",
"quantity": 1,
"inputs": {},
"status": "string",
"externalId": "string",
"externalOrderId": "string",
"externalProductId": "string",
"externalSku": "string",
"originalSku": "string",
"processedAt": "2025-01-15T12:00:00.000Z",
"ignored": true,
"processedStatus": "unprocessed",
"skuConfig": {
"linkedPartConfigs": {},
"selectedOptions": {},
"freeTextOptionIds": [
"string"
],
"personalizationAnswerKeys": [
"string"
]
},
"resolutionNote": {
"type": "variant_enrichment_failed",
"message": "string",
"retriable": true,
"occurredAt": 1
},
"customMetadata": {},
"id": "string",
"storeId": "string",
"createdAt": "2025-01-15T12:00:00.000Z",
"updatedAt": "2025-01-15T12:00:00.000Z"
}
]
}