Events reference
Every event type, when it fires, what data.object contains, and a complete example payload for each.
Events are delivered to your webhook endpoints and listed by GET /events (last 30 days). Every event has the same envelope:
| Field | Description |
|---|---|
id |
Event id (evt_…). Also the webhook-id header — deduplicate on it. |
object |
Always event. |
type |
Event type, below. |
api_version |
API version the payload was rendered with (2026-10-01). |
created_at |
When it happened (ISO-8601, UTC). |
livemode |
true for live events, false for test events. |
data.object |
The resource as of the event — the same shape the API returns. |
data.previous_attributes |
Old values of changed fields (status changes and *.updated events; absent otherwise). |
Subscribe to ["*"] to receive every type, including types added in the future (ignore the ones you do not handle). Order-status events are sent for every status change, and also include the full order with its shipments.
Every lifecycle step, exactly once
Each step of an order's life — order.in_production, order.partially_shipped, order.shipped, order.delivered — and of each parcel — shipment.created, shipment.delivered, and shipment.updated per tracking change — is sent exactly once, also when production moves faster than our status updates and one update covers several steps. The steps are then created together, in lifecycle order (for example order.in_production, shipment.created, order.shipped, shipment.delivered, order.delivered), and:
data.objectis the order or shipment as of the end of that update — a back-filledorder.shippedmay already show"status": "delivered";data.previous_attributes.statusis the previous step (processing→in_production→shipped), not the status the order had before the update;- the order events among them share one
data.object.updated_at, which is later than that of any earlier event about the order.
Re-sent or repeated status updates never produce a step twice (only an order that our team reopens to produce missing items again is announced as order.delivered once more when those arrive). See Webhooks for delivery order and examples.
All event types
| Event | When it fires | data.object |
|---|---|---|
order.created |
An order was created through the API or the dashboard — as a draft (confirm: false) or confirmed. A confirmed order also sends order.processing or order.on_hold. |
order |
order.updated |
A draft's details changed (recipient, items, shipping method, metadata, external id), or something about the order changed that has no more specific event. | order |
order.confirmed |
A draft order was confirmed (POST /orders/{id}/confirm). Followed by order.processing or order.on_hold. |
order |
order.on_hold |
The order is waiting: not enough credits (hold_reason: insufficient_funds), or held for review, artwork, address or a production issue. |
order |
order.processing |
Credits were reserved and the order was sent to production — right after confirmation, or when a held order is released (e.g. after you added credits). | order |
order.in_production |
Production started. From now on the order can no longer be canceled. | order |
order.partially_shipped |
Some items shipped; more parcels follow. | order |
order.shipped |
Every item shipped. shipments has the carrier, tracking number and tracking URL of each parcel. |
order |
order.delivered |
Every shipment was delivered. | order |
order.canceled |
The order was canceled (by you or by support). Reserved credits were released and spent credits refunded to your wallet. | order |
order.failed |
The order could not be produced. Reserved credits were released; no further events follow. | order |
order.refunded |
Credits were refunded to your wallet for this order (full or partial), for example when support accepts a claim for a damaged or misprinted item. | order |
shipment.created |
A parcel was handed to the carrier and has tracking information. Sent together with order.partially_shipped or order.shipped. |
shipment |
shipment.updated |
A parcel's tracking status changed (e.g. in_transit → out_for_delivery, exception, returned). |
shipment |
shipment.delivered |
A parcel was delivered. | shipment |
product.created |
A product was created (API or designer). Mockups are rendered afterwards and announced with product.updated. |
product |
product.updated |
A product changed: details, designs, variants, or its mockups finished rendering. | product |
product.deleted |
A product was archived (DELETE /products/{id}). Its SKUs stay reserved; restoring it sends product.updated. |
product |
catalog.price_changed |
The wholesale price of catalog variants used by your products changed (our costs or your price list changed). Re-fetch prices and adjust your store if needed. | catalog_price_change |
wallet.credited |
Credits were added to the wallet: a top-up and its bonus (one event each), a refund for an order, an adjustment by support, or test credits. | transaction |
wallet.low_balance |
Available credits fell below your low-balance threshold (sent once until the balance recovers). | wallet |
topup.succeeded |
A credit purchase was paid and the credits (plus any bonus) were added. | topup |
topup.failed |
A credit purchase failed (e.g. the card was declined or a bank debit was returned). | topup |
file.processed |
An uploaded file finished processing (status is ready, or failed). url is null in the event — fetch the file for a download URL. |
file |
webhook_endpoint.test |
Sent on request with POST /webhook_endpoints/{id}/test (or the dashboard) to that endpoint only. Use it to check your signature verification. Not listed by GET /events unless you filter for it. |
webhook_endpoint |
Orders
order.created
An order was created through the API or the dashboard — as a draft (confirm: false) or confirmed. A confirmed order also sends order.processing or order.on_hold.
data.object: order
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "order.created",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "order",
"id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"number": 1042,
"external_id": "1042",
"livemode": true,
"status": "processing",
"hold_reason": null,
"funds_status": "held",
"source": "api",
"recipient": {
"name": "Jane Doe",
"company": null,
"address1": "123 Market St",
"address2": "Apt 4",
"city": "San Francisco",
"state_code": "CA",
"postal_code": "94107",
"country_code": "US",
"phone": null,
"email": "jane@example.com"
},
"shipping_method": "standard",
"currency": "usd",
"subtotal": 2598,
"shipping": 700,
"tax": 0,
"discount": 0,
"total": 3298,
"refunded": 0,
"items": [
{
"object": "order_item",
"id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"product_id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"product_variant_id": "pvar_01k8x3z7r4f6g8h0j2k4l6z8x0",
"catalog_product_id": "cp_01k8w1a2s3d4f5g6h7j8k9m0n1",
"catalog_variant_id": "cv_01k8w1a2s7d9f1g3h5j7k9m1n3",
"sku": "CA-TEE-BLK-M",
"title": "Company A Logo Tee",
"variant_title": "Black / M",
"quantity": 2,
"shipped_quantity": 0,
"unit_price": 1299,
"total_price": 2598,
"retail_price": 2500,
"status": "pending",
"designs": [
{
"placement": "front",
"layers": [
{
"file_id": "file_01k8x3y1q3w5e7r9t1y3u5i7o9",
"transform": {
"x": 0.1,
"y": 0.05,
"width": 0.8,
"height": 0.6,
"rotation": 0
},
"opacity": 1
}
]
}
],
"mockup_url": null,
"external_line_id": "line-1",
"metadata": {}
}
],
"shipments": [],
"tracking_page_url": "https://swaglists.com/track/Zx81kLm2pQ",
"packing_slip": {
"message": "Thanks for shopping with Company A!",
"brand_name": null,
"logo_file_id": null,
"customer_order_number": "#1042"
},
"gift_message": null,
"customer_note": null,
"metadata": {},
"created_at": "2026-10-21T14:32:05.000Z",
"updated_at": "2026-10-23T09:12:44.000Z",
"placed_at": "2026-10-21T14:32:05.000Z",
"in_production_at": null,
"shipped_at": null,
"delivered_at": null,
"canceled_at": null,
"cancel_reason": null,
"failed_at": null,
"failure_reason": null
}
}
}order.updated
A draft's details changed (recipient, items, shipping method, metadata, external id), or something about the order changed that has no more specific event.
data.object: order · data.previous_attributes: Changed fields with their old values (e.g. shipping_method, recipient, metadata).
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "order.updated",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "order",
"id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"number": 1042,
"external_id": "1042",
"livemode": true,
"status": "draft",
"hold_reason": null,
"funds_status": "none",
"source": "api",
"recipient": {
"name": "Jane Doe",
"company": null,
"address1": "123 Market St",
"address2": "Apt 4",
"city": "San Francisco",
"state_code": "CA",
"postal_code": "94107",
"country_code": "US",
"phone": null,
"email": "jane@example.com"
},
"shipping_method": "express",
"currency": "usd",
"subtotal": 2598,
"shipping": 700,
"tax": 0,
"discount": 0,
"total": 3298,
"refunded": 0,
"items": [
{
"object": "order_item",
"id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"product_id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"product_variant_id": "pvar_01k8x3z7r4f6g8h0j2k4l6z8x0",
"catalog_product_id": "cp_01k8w1a2s3d4f5g6h7j8k9m0n1",
"catalog_variant_id": "cv_01k8w1a2s7d9f1g3h5j7k9m1n3",
"sku": "CA-TEE-BLK-M",
"title": "Company A Logo Tee",
"variant_title": "Black / M",
"quantity": 2,
"shipped_quantity": 0,
"unit_price": 1299,
"total_price": 2598,
"retail_price": 2500,
"status": "draft",
"designs": [
{
"placement": "front",
"layers": [
{
"file_id": "file_01k8x3y1q3w5e7r9t1y3u5i7o9",
"transform": {
"x": 0.1,
"y": 0.05,
"width": 0.8,
"height": 0.6,
"rotation": 0
},
"opacity": 1
}
]
}
],
"mockup_url": null,
"external_line_id": "line-1",
"metadata": {}
}
],
"shipments": [],
"tracking_page_url": "https://swaglists.com/track/Zx81kLm2pQ",
"packing_slip": {
"message": "Thanks for shopping with Company A!",
"brand_name": null,
"logo_file_id": null,
"customer_order_number": "#1042"
},
"gift_message": null,
"customer_note": null,
"metadata": {},
"created_at": "2026-10-21T14:32:05.000Z",
"updated_at": "2026-10-23T09:12:44.000Z",
"placed_at": null,
"in_production_at": null,
"shipped_at": null,
"delivered_at": null,
"canceled_at": null,
"cancel_reason": null,
"failed_at": null,
"failure_reason": null
},
"previous_attributes": {
"shipping_method": "standard"
}
}
}order.confirmed
A draft order was confirmed (POST /orders/{id}/confirm). Followed by order.processing or order.on_hold.
data.object: order
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "order.confirmed",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "order",
"id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"number": 1042,
"external_id": "1042",
"livemode": true,
"status": "processing",
"hold_reason": null,
"funds_status": "held",
"source": "api",
"recipient": {
"name": "Jane Doe",
"company": null,
"address1": "123 Market St",
"address2": "Apt 4",
"city": "San Francisco",
"state_code": "CA",
"postal_code": "94107",
"country_code": "US",
"phone": null,
"email": "jane@example.com"
},
"shipping_method": "standard",
"currency": "usd",
"subtotal": 2598,
"shipping": 700,
"tax": 0,
"discount": 0,
"total": 3298,
"refunded": 0,
"items": [
{
"object": "order_item",
"id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"product_id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"product_variant_id": "pvar_01k8x3z7r4f6g8h0j2k4l6z8x0",
"catalog_product_id": "cp_01k8w1a2s3d4f5g6h7j8k9m0n1",
"catalog_variant_id": "cv_01k8w1a2s7d9f1g3h5j7k9m1n3",
"sku": "CA-TEE-BLK-M",
"title": "Company A Logo Tee",
"variant_title": "Black / M",
"quantity": 2,
"shipped_quantity": 0,
"unit_price": 1299,
"total_price": 2598,
"retail_price": 2500,
"status": "pending",
"designs": [
{
"placement": "front",
"layers": [
{
"file_id": "file_01k8x3y1q3w5e7r9t1y3u5i7o9",
"transform": {
"x": 0.1,
"y": 0.05,
"width": 0.8,
"height": 0.6,
"rotation": 0
},
"opacity": 1
}
]
}
],
"mockup_url": null,
"external_line_id": "line-1",
"metadata": {}
}
],
"shipments": [],
"tracking_page_url": "https://swaglists.com/track/Zx81kLm2pQ",
"packing_slip": {
"message": "Thanks for shopping with Company A!",
"brand_name": null,
"logo_file_id": null,
"customer_order_number": "#1042"
},
"gift_message": null,
"customer_note": null,
"metadata": {},
"created_at": "2026-10-21T14:32:05.000Z",
"updated_at": "2026-10-23T09:12:44.000Z",
"placed_at": "2026-10-21T14:32:05.000Z",
"in_production_at": null,
"shipped_at": null,
"delivered_at": null,
"canceled_at": null,
"cancel_reason": null,
"failed_at": null,
"failure_reason": null
}
}
}order.on_hold
The order is waiting: not enough credits (hold_reason: insufficient_funds), or held for review, artwork, address or a production issue.
data.object: order · data.previous_attributes: status when the order was already confirmed before.
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "order.on_hold",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "order",
"id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"number": 1042,
"external_id": "1042",
"livemode": true,
"status": "on_hold",
"hold_reason": "insufficient_funds",
"funds_status": "awaiting",
"source": "api",
"recipient": {
"name": "Jane Doe",
"company": null,
"address1": "123 Market St",
"address2": "Apt 4",
"city": "San Francisco",
"state_code": "CA",
"postal_code": "94107",
"country_code": "US",
"phone": null,
"email": "jane@example.com"
},
"shipping_method": "standard",
"currency": "usd",
"subtotal": 2598,
"shipping": 700,
"tax": 0,
"discount": 0,
"total": 3298,
"refunded": 0,
"items": [
{
"object": "order_item",
"id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"product_id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"product_variant_id": "pvar_01k8x3z7r4f6g8h0j2k4l6z8x0",
"catalog_product_id": "cp_01k8w1a2s3d4f5g6h7j8k9m0n1",
"catalog_variant_id": "cv_01k8w1a2s7d9f1g3h5j7k9m1n3",
"sku": "CA-TEE-BLK-M",
"title": "Company A Logo Tee",
"variant_title": "Black / M",
"quantity": 2,
"shipped_quantity": 0,
"unit_price": 1299,
"total_price": 2598,
"retail_price": 2500,
"status": "pending",
"designs": [
{
"placement": "front",
"layers": [
{
"file_id": "file_01k8x3y1q3w5e7r9t1y3u5i7o9",
"transform": {
"x": 0.1,
"y": 0.05,
"width": 0.8,
"height": 0.6,
"rotation": 0
},
"opacity": 1
}
]
}
],
"mockup_url": null,
"external_line_id": "line-1",
"metadata": {}
}
],
"shipments": [],
"tracking_page_url": "https://swaglists.com/track/Zx81kLm2pQ",
"packing_slip": {
"message": "Thanks for shopping with Company A!",
"brand_name": null,
"logo_file_id": null,
"customer_order_number": "#1042"
},
"gift_message": null,
"customer_note": null,
"metadata": {},
"created_at": "2026-10-21T14:32:05.000Z",
"updated_at": "2026-10-23T09:12:44.000Z",
"placed_at": "2026-10-21T14:32:05.000Z",
"in_production_at": null,
"shipped_at": null,
"delivered_at": null,
"canceled_at": null,
"cancel_reason": null,
"failed_at": null,
"failure_reason": null
}
}
}order.processing
Credits were reserved and the order was sent to production — right after confirmation, or when a held order is released (e.g. after you added credits).
data.object: order · data.previous_attributes: status (on_hold) when the order was released from a hold.
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "order.processing",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "order",
"id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"number": 1042,
"external_id": "1042",
"livemode": true,
"status": "processing",
"hold_reason": null,
"funds_status": "held",
"source": "api",
"recipient": {
"name": "Jane Doe",
"company": null,
"address1": "123 Market St",
"address2": "Apt 4",
"city": "San Francisco",
"state_code": "CA",
"postal_code": "94107",
"country_code": "US",
"phone": null,
"email": "jane@example.com"
},
"shipping_method": "standard",
"currency": "usd",
"subtotal": 2598,
"shipping": 700,
"tax": 0,
"discount": 0,
"total": 3298,
"refunded": 0,
"items": [
{
"object": "order_item",
"id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"product_id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"product_variant_id": "pvar_01k8x3z7r4f6g8h0j2k4l6z8x0",
"catalog_product_id": "cp_01k8w1a2s3d4f5g6h7j8k9m0n1",
"catalog_variant_id": "cv_01k8w1a2s7d9f1g3h5j7k9m1n3",
"sku": "CA-TEE-BLK-M",
"title": "Company A Logo Tee",
"variant_title": "Black / M",
"quantity": 2,
"shipped_quantity": 0,
"unit_price": 1299,
"total_price": 2598,
"retail_price": 2500,
"status": "pending",
"designs": [
{
"placement": "front",
"layers": [
{
"file_id": "file_01k8x3y1q3w5e7r9t1y3u5i7o9",
"transform": {
"x": 0.1,
"y": 0.05,
"width": 0.8,
"height": 0.6,
"rotation": 0
},
"opacity": 1
}
]
}
],
"mockup_url": null,
"external_line_id": "line-1",
"metadata": {}
}
],
"shipments": [],
"tracking_page_url": "https://swaglists.com/track/Zx81kLm2pQ",
"packing_slip": {
"message": "Thanks for shopping with Company A!",
"brand_name": null,
"logo_file_id": null,
"customer_order_number": "#1042"
},
"gift_message": null,
"customer_note": null,
"metadata": {},
"created_at": "2026-10-21T14:32:05.000Z",
"updated_at": "2026-10-23T09:12:44.000Z",
"placed_at": "2026-10-21T14:32:05.000Z",
"in_production_at": null,
"shipped_at": null,
"delivered_at": null,
"canceled_at": null,
"cancel_reason": null,
"failed_at": null,
"failure_reason": null
},
"previous_attributes": {
"status": "on_hold"
}
}
}order.in_production
Production started. From now on the order can no longer be canceled.
data.object: order · data.previous_attributes: status before the change.
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "order.in_production",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "order",
"id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"number": 1042,
"external_id": "1042",
"livemode": true,
"status": "in_production",
"hold_reason": null,
"funds_status": "captured",
"source": "api",
"recipient": {
"name": "Jane Doe",
"company": null,
"address1": "123 Market St",
"address2": "Apt 4",
"city": "San Francisco",
"state_code": "CA",
"postal_code": "94107",
"country_code": "US",
"phone": null,
"email": "jane@example.com"
},
"shipping_method": "standard",
"currency": "usd",
"subtotal": 2598,
"shipping": 700,
"tax": 0,
"discount": 0,
"total": 3298,
"refunded": 0,
"items": [
{
"object": "order_item",
"id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"product_id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"product_variant_id": "pvar_01k8x3z7r4f6g8h0j2k4l6z8x0",
"catalog_product_id": "cp_01k8w1a2s3d4f5g6h7j8k9m0n1",
"catalog_variant_id": "cv_01k8w1a2s7d9f1g3h5j7k9m1n3",
"sku": "CA-TEE-BLK-M",
"title": "Company A Logo Tee",
"variant_title": "Black / M",
"quantity": 2,
"shipped_quantity": 0,
"unit_price": 1299,
"total_price": 2598,
"retail_price": 2500,
"status": "in_production",
"designs": [
{
"placement": "front",
"layers": [
{
"file_id": "file_01k8x3y1q3w5e7r9t1y3u5i7o9",
"transform": {
"x": 0.1,
"y": 0.05,
"width": 0.8,
"height": 0.6,
"rotation": 0
},
"opacity": 1
}
]
}
],
"mockup_url": null,
"external_line_id": "line-1",
"metadata": {}
}
],
"shipments": [],
"tracking_page_url": "https://swaglists.com/track/Zx81kLm2pQ",
"packing_slip": {
"message": "Thanks for shopping with Company A!",
"brand_name": null,
"logo_file_id": null,
"customer_order_number": "#1042"
},
"gift_message": null,
"customer_note": null,
"metadata": {},
"created_at": "2026-10-21T14:32:05.000Z",
"updated_at": "2026-10-23T09:12:44.000Z",
"placed_at": "2026-10-21T14:32:05.000Z",
"in_production_at": "2026-10-21T14:32:05.000Z",
"shipped_at": null,
"delivered_at": null,
"canceled_at": null,
"cancel_reason": null,
"failed_at": null,
"failure_reason": null
},
"previous_attributes": {
"status": "processing"
}
}
}order.partially_shipped
Some items shipped; more parcels follow.
data.object: order · data.previous_attributes: status before the change.
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "order.partially_shipped",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "order",
"id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"number": 1042,
"external_id": "1042",
"livemode": true,
"status": "partially_shipped",
"hold_reason": null,
"funds_status": "captured",
"source": "api",
"recipient": {
"name": "Jane Doe",
"company": null,
"address1": "123 Market St",
"address2": "Apt 4",
"city": "San Francisco",
"state_code": "CA",
"postal_code": "94107",
"country_code": "US",
"phone": null,
"email": "jane@example.com"
},
"shipping_method": "standard",
"currency": "usd",
"subtotal": 2598,
"shipping": 700,
"tax": 0,
"discount": 0,
"total": 3298,
"refunded": 0,
"items": [
{
"object": "order_item",
"id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"product_id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"product_variant_id": "pvar_01k8x3z7r4f6g8h0j2k4l6z8x0",
"catalog_product_id": "cp_01k8w1a2s3d4f5g6h7j8k9m0n1",
"catalog_variant_id": "cv_01k8w1a2s7d9f1g3h5j7k9m1n3",
"sku": "CA-TEE-BLK-M",
"title": "Company A Logo Tee",
"variant_title": "Black / M",
"quantity": 2,
"shipped_quantity": 2,
"unit_price": 1299,
"total_price": 2598,
"retail_price": 2500,
"status": "shipped",
"designs": [
{
"placement": "front",
"layers": [
{
"file_id": "file_01k8x3y1q3w5e7r9t1y3u5i7o9",
"transform": {
"x": 0.1,
"y": 0.05,
"width": 0.8,
"height": 0.6,
"rotation": 0
},
"opacity": 1
}
]
}
],
"mockup_url": null,
"external_line_id": "line-1",
"metadata": {}
}
],
"shipments": [
{
"object": "shipment",
"id": "shp_01k8x9z1m3n5b7v9c1x3z5a7s9",
"order_id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"status": "in_transit",
"carrier": "usps",
"service": "USPS Ground Advantage",
"tracking_number": "9400111899223197428490",
"tracking_url": "https://tools.usps.com/go/TrackConfirmAction?tLabels=9400111899223197428490",
"items": [
{
"order_item_id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"quantity": 2
}
],
"shipped_at": "2026-10-23T09:12:44.000Z",
"estimated_delivery_at": null,
"delivered_at": null,
"created_at": "2026-10-23T09:12:44.000Z"
}
],
"tracking_page_url": "https://swaglists.com/track/Zx81kLm2pQ",
"packing_slip": {
"message": "Thanks for shopping with Company A!",
"brand_name": null,
"logo_file_id": null,
"customer_order_number": "#1042"
},
"gift_message": null,
"customer_note": null,
"metadata": {},
"created_at": "2026-10-21T14:32:05.000Z",
"updated_at": "2026-10-23T09:12:44.000Z",
"placed_at": "2026-10-21T14:32:05.000Z",
"in_production_at": "2026-10-21T14:32:05.000Z",
"shipped_at": "2026-10-23T09:12:44.000Z",
"delivered_at": null,
"canceled_at": null,
"cancel_reason": null,
"failed_at": null,
"failure_reason": null
},
"previous_attributes": {
"status": "in_production"
}
}
}order.shipped
Every item shipped. shipments has the carrier, tracking number and tracking URL of each parcel.
data.object: order · data.previous_attributes: status before the change.
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "order.shipped",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "order",
"id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"number": 1042,
"external_id": "1042",
"livemode": true,
"status": "shipped",
"hold_reason": null,
"funds_status": "captured",
"source": "api",
"recipient": {
"name": "Jane Doe",
"company": null,
"address1": "123 Market St",
"address2": "Apt 4",
"city": "San Francisco",
"state_code": "CA",
"postal_code": "94107",
"country_code": "US",
"phone": null,
"email": "jane@example.com"
},
"shipping_method": "standard",
"currency": "usd",
"subtotal": 2598,
"shipping": 700,
"tax": 0,
"discount": 0,
"total": 3298,
"refunded": 0,
"items": [
{
"object": "order_item",
"id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"product_id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"product_variant_id": "pvar_01k8x3z7r4f6g8h0j2k4l6z8x0",
"catalog_product_id": "cp_01k8w1a2s3d4f5g6h7j8k9m0n1",
"catalog_variant_id": "cv_01k8w1a2s7d9f1g3h5j7k9m1n3",
"sku": "CA-TEE-BLK-M",
"title": "Company A Logo Tee",
"variant_title": "Black / M",
"quantity": 2,
"shipped_quantity": 2,
"unit_price": 1299,
"total_price": 2598,
"retail_price": 2500,
"status": "shipped",
"designs": [
{
"placement": "front",
"layers": [
{
"file_id": "file_01k8x3y1q3w5e7r9t1y3u5i7o9",
"transform": {
"x": 0.1,
"y": 0.05,
"width": 0.8,
"height": 0.6,
"rotation": 0
},
"opacity": 1
}
]
}
],
"mockup_url": null,
"external_line_id": "line-1",
"metadata": {}
}
],
"shipments": [
{
"object": "shipment",
"id": "shp_01k8x9z1m3n5b7v9c1x3z5a7s9",
"order_id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"status": "in_transit",
"carrier": "usps",
"service": "USPS Ground Advantage",
"tracking_number": "9400111899223197428490",
"tracking_url": "https://tools.usps.com/go/TrackConfirmAction?tLabels=9400111899223197428490",
"items": [
{
"order_item_id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"quantity": 2
}
],
"shipped_at": "2026-10-23T09:12:44.000Z",
"estimated_delivery_at": null,
"delivered_at": null,
"created_at": "2026-10-23T09:12:44.000Z"
}
],
"tracking_page_url": "https://swaglists.com/track/Zx81kLm2pQ",
"packing_slip": {
"message": "Thanks for shopping with Company A!",
"brand_name": null,
"logo_file_id": null,
"customer_order_number": "#1042"
},
"gift_message": null,
"customer_note": null,
"metadata": {},
"created_at": "2026-10-21T14:32:05.000Z",
"updated_at": "2026-10-23T09:12:44.000Z",
"placed_at": "2026-10-21T14:32:05.000Z",
"in_production_at": "2026-10-21T14:32:05.000Z",
"shipped_at": "2026-10-23T09:12:44.000Z",
"delivered_at": null,
"canceled_at": null,
"cancel_reason": null,
"failed_at": null,
"failure_reason": null
},
"previous_attributes": {
"status": "in_production"
}
}
}order.delivered
Every shipment was delivered.
data.object: order · data.previous_attributes: status before the change.
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "order.delivered",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "order",
"id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"number": 1042,
"external_id": "1042",
"livemode": true,
"status": "delivered",
"hold_reason": null,
"funds_status": "captured",
"source": "api",
"recipient": {
"name": "Jane Doe",
"company": null,
"address1": "123 Market St",
"address2": "Apt 4",
"city": "San Francisco",
"state_code": "CA",
"postal_code": "94107",
"country_code": "US",
"phone": null,
"email": "jane@example.com"
},
"shipping_method": "standard",
"currency": "usd",
"subtotal": 2598,
"shipping": 700,
"tax": 0,
"discount": 0,
"total": 3298,
"refunded": 0,
"items": [
{
"object": "order_item",
"id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"product_id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"product_variant_id": "pvar_01k8x3z7r4f6g8h0j2k4l6z8x0",
"catalog_product_id": "cp_01k8w1a2s3d4f5g6h7j8k9m0n1",
"catalog_variant_id": "cv_01k8w1a2s7d9f1g3h5j7k9m1n3",
"sku": "CA-TEE-BLK-M",
"title": "Company A Logo Tee",
"variant_title": "Black / M",
"quantity": 2,
"shipped_quantity": 2,
"unit_price": 1299,
"total_price": 2598,
"retail_price": 2500,
"status": "delivered",
"designs": [
{
"placement": "front",
"layers": [
{
"file_id": "file_01k8x3y1q3w5e7r9t1y3u5i7o9",
"transform": {
"x": 0.1,
"y": 0.05,
"width": 0.8,
"height": 0.6,
"rotation": 0
},
"opacity": 1
}
]
}
],
"mockup_url": null,
"external_line_id": "line-1",
"metadata": {}
}
],
"shipments": [
{
"object": "shipment",
"id": "shp_01k8x9z1m3n5b7v9c1x3z5a7s9",
"order_id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"status": "in_transit",
"carrier": "usps",
"service": "USPS Ground Advantage",
"tracking_number": "9400111899223197428490",
"tracking_url": "https://tools.usps.com/go/TrackConfirmAction?tLabels=9400111899223197428490",
"items": [
{
"order_item_id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"quantity": 2
}
],
"shipped_at": "2026-10-23T09:12:44.000Z",
"estimated_delivery_at": null,
"delivered_at": null,
"created_at": "2026-10-23T09:12:44.000Z"
}
],
"tracking_page_url": "https://swaglists.com/track/Zx81kLm2pQ",
"packing_slip": {
"message": "Thanks for shopping with Company A!",
"brand_name": null,
"logo_file_id": null,
"customer_order_number": "#1042"
},
"gift_message": null,
"customer_note": null,
"metadata": {},
"created_at": "2026-10-21T14:32:05.000Z",
"updated_at": "2026-10-23T09:12:44.000Z",
"placed_at": "2026-10-21T14:32:05.000Z",
"in_production_at": "2026-10-21T14:32:05.000Z",
"shipped_at": "2026-10-23T09:12:44.000Z",
"delivered_at": "2026-10-26T15:20:00.000Z",
"canceled_at": null,
"cancel_reason": null,
"failed_at": null,
"failure_reason": null
},
"previous_attributes": {
"status": "shipped"
}
}
}order.canceled
The order was canceled (by you or by support). Reserved credits were released and spent credits refunded to your wallet.
data.object: order · data.previous_attributes: status before the cancellation.
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "order.canceled",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "order",
"id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"number": 1042,
"external_id": "1042",
"livemode": true,
"status": "canceled",
"hold_reason": null,
"funds_status": "released",
"source": "api",
"recipient": {
"name": "Jane Doe",
"company": null,
"address1": "123 Market St",
"address2": "Apt 4",
"city": "San Francisco",
"state_code": "CA",
"postal_code": "94107",
"country_code": "US",
"phone": null,
"email": "jane@example.com"
},
"shipping_method": "standard",
"currency": "usd",
"subtotal": 2598,
"shipping": 700,
"tax": 0,
"discount": 0,
"total": 3298,
"refunded": 0,
"items": [
{
"object": "order_item",
"id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"product_id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"product_variant_id": "pvar_01k8x3z7r4f6g8h0j2k4l6z8x0",
"catalog_product_id": "cp_01k8w1a2s3d4f5g6h7j8k9m0n1",
"catalog_variant_id": "cv_01k8w1a2s7d9f1g3h5j7k9m1n3",
"sku": "CA-TEE-BLK-M",
"title": "Company A Logo Tee",
"variant_title": "Black / M",
"quantity": 2,
"shipped_quantity": 0,
"unit_price": 1299,
"total_price": 2598,
"retail_price": 2500,
"status": "canceled",
"designs": [
{
"placement": "front",
"layers": [
{
"file_id": "file_01k8x3y1q3w5e7r9t1y3u5i7o9",
"transform": {
"x": 0.1,
"y": 0.05,
"width": 0.8,
"height": 0.6,
"rotation": 0
},
"opacity": 1
}
]
}
],
"mockup_url": null,
"external_line_id": "line-1",
"metadata": {}
}
],
"shipments": [],
"tracking_page_url": "https://swaglists.com/track/Zx81kLm2pQ",
"packing_slip": {
"message": "Thanks for shopping with Company A!",
"brand_name": null,
"logo_file_id": null,
"customer_order_number": "#1042"
},
"gift_message": null,
"customer_note": null,
"metadata": {},
"created_at": "2026-10-21T14:32:05.000Z",
"updated_at": "2026-10-23T09:12:44.000Z",
"placed_at": "2026-10-21T14:32:05.000Z",
"in_production_at": null,
"shipped_at": null,
"delivered_at": null,
"canceled_at": "2026-10-21T15:01:12.000Z",
"cancel_reason": "Customer changed their mind",
"failed_at": null,
"failure_reason": null
},
"previous_attributes": {
"status": "processing"
}
}
}order.failed
The order could not be produced. Reserved credits were released; no further events follow.
data.object: order · data.previous_attributes: status before the change.
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "order.failed",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "order",
"id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"number": 1042,
"external_id": "1042",
"livemode": true,
"status": "failed",
"hold_reason": null,
"funds_status": "released",
"source": "api",
"recipient": {
"name": "Jane Doe",
"company": null,
"address1": "123 Market St",
"address2": "Apt 4",
"city": "San Francisco",
"state_code": "CA",
"postal_code": "94107",
"country_code": "US",
"phone": null,
"email": "jane@example.com"
},
"shipping_method": "standard",
"currency": "usd",
"subtotal": 2598,
"shipping": 700,
"tax": 0,
"discount": 0,
"total": 3298,
"refunded": 0,
"items": [
{
"object": "order_item",
"id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"product_id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"product_variant_id": "pvar_01k8x3z7r4f6g8h0j2k4l6z8x0",
"catalog_product_id": "cp_01k8w1a2s3d4f5g6h7j8k9m0n1",
"catalog_variant_id": "cv_01k8w1a2s7d9f1g3h5j7k9m1n3",
"sku": "CA-TEE-BLK-M",
"title": "Company A Logo Tee",
"variant_title": "Black / M",
"quantity": 2,
"shipped_quantity": 0,
"unit_price": 1299,
"total_price": 2598,
"retail_price": 2500,
"status": "failed",
"designs": [
{
"placement": "front",
"layers": [
{
"file_id": "file_01k8x3y1q3w5e7r9t1y3u5i7o9",
"transform": {
"x": 0.1,
"y": 0.05,
"width": 0.8,
"height": 0.6,
"rotation": 0
},
"opacity": 1
}
]
}
],
"mockup_url": null,
"external_line_id": "line-1",
"metadata": {}
}
],
"shipments": [],
"tracking_page_url": "https://swaglists.com/track/Zx81kLm2pQ",
"packing_slip": {
"message": "Thanks for shopping with Company A!",
"brand_name": null,
"logo_file_id": null,
"customer_order_number": "#1042"
},
"gift_message": null,
"customer_note": null,
"metadata": {},
"created_at": "2026-10-21T14:32:05.000Z",
"updated_at": "2026-10-23T09:12:44.000Z",
"placed_at": "2026-10-21T14:32:05.000Z",
"in_production_at": null,
"shipped_at": null,
"delivered_at": null,
"canceled_at": null,
"cancel_reason": null,
"failed_at": "2026-10-21T15:40:00.000Z",
"failure_reason": "This order could not be produced. Reserved credits were released."
},
"previous_attributes": {
"status": "processing"
}
}
}order.refunded
Credits were refunded to your wallet for this order (full or partial), for example when support accepts a claim for a damaged or misprinted item.
data.object: order · data.previous_attributes: refunded before the refund.
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "order.refunded",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "order",
"id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"number": 1042,
"external_id": "1042",
"livemode": true,
"status": "delivered",
"hold_reason": null,
"funds_status": "partially_refunded",
"source": "api",
"recipient": {
"name": "Jane Doe",
"company": null,
"address1": "123 Market St",
"address2": "Apt 4",
"city": "San Francisco",
"state_code": "CA",
"postal_code": "94107",
"country_code": "US",
"phone": null,
"email": "jane@example.com"
},
"shipping_method": "standard",
"currency": "usd",
"subtotal": 2598,
"shipping": 700,
"tax": 0,
"discount": 0,
"total": 3298,
"refunded": 1299,
"items": [
{
"object": "order_item",
"id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"product_id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"product_variant_id": "pvar_01k8x3z7r4f6g8h0j2k4l6z8x0",
"catalog_product_id": "cp_01k8w1a2s3d4f5g6h7j8k9m0n1",
"catalog_variant_id": "cv_01k8w1a2s7d9f1g3h5j7k9m1n3",
"sku": "CA-TEE-BLK-M",
"title": "Company A Logo Tee",
"variant_title": "Black / M",
"quantity": 2,
"shipped_quantity": 2,
"unit_price": 1299,
"total_price": 2598,
"retail_price": 2500,
"status": "delivered",
"designs": [
{
"placement": "front",
"layers": [
{
"file_id": "file_01k8x3y1q3w5e7r9t1y3u5i7o9",
"transform": {
"x": 0.1,
"y": 0.05,
"width": 0.8,
"height": 0.6,
"rotation": 0
},
"opacity": 1
}
]
}
],
"mockup_url": null,
"external_line_id": "line-1",
"metadata": {}
}
],
"shipments": [
{
"object": "shipment",
"id": "shp_01k8x9z1m3n5b7v9c1x3z5a7s9",
"order_id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"status": "in_transit",
"carrier": "usps",
"service": "USPS Ground Advantage",
"tracking_number": "9400111899223197428490",
"tracking_url": "https://tools.usps.com/go/TrackConfirmAction?tLabels=9400111899223197428490",
"items": [
{
"order_item_id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"quantity": 2
}
],
"shipped_at": "2026-10-23T09:12:44.000Z",
"estimated_delivery_at": null,
"delivered_at": null,
"created_at": "2026-10-23T09:12:44.000Z"
}
],
"tracking_page_url": "https://swaglists.com/track/Zx81kLm2pQ",
"packing_slip": {
"message": "Thanks for shopping with Company A!",
"brand_name": null,
"logo_file_id": null,
"customer_order_number": "#1042"
},
"gift_message": null,
"customer_note": null,
"metadata": {},
"created_at": "2026-10-21T14:32:05.000Z",
"updated_at": "2026-10-23T09:12:44.000Z",
"placed_at": "2026-10-21T14:32:05.000Z",
"in_production_at": "2026-10-21T14:32:05.000Z",
"shipped_at": "2026-10-23T09:12:44.000Z",
"delivered_at": "2026-10-26T15:20:00.000Z",
"canceled_at": null,
"cancel_reason": null,
"failed_at": null,
"failure_reason": null
},
"previous_attributes": {
"refunded": 0
}
}
}Shipments
shipment.created
A parcel was handed to the carrier and has tracking information. Sent together with order.partially_shipped or order.shipped.
data.object: shipment
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "shipment.created",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "shipment",
"id": "shp_01k8x9z1m3n5b7v9c1x3z5a7s9",
"order_id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"status": "in_transit",
"carrier": "usps",
"service": "USPS Ground Advantage",
"tracking_number": "9400111899223197428490",
"tracking_url": "https://tools.usps.com/go/TrackConfirmAction?tLabels=9400111899223197428490",
"items": [
{
"order_item_id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"quantity": 2
}
],
"shipped_at": "2026-10-23T09:12:44.000Z",
"estimated_delivery_at": null,
"delivered_at": null,
"created_at": "2026-10-23T09:12:44.000Z"
}
}
}shipment.updated
A parcel's tracking status changed (e.g. in_transit → out_for_delivery, exception, returned).
data.object: shipment
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "shipment.updated",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "shipment",
"id": "shp_01k8x9z1m3n5b7v9c1x3z5a7s9",
"order_id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"status": "out_for_delivery",
"carrier": "usps",
"service": "USPS Ground Advantage",
"tracking_number": "9400111899223197428490",
"tracking_url": "https://tools.usps.com/go/TrackConfirmAction?tLabels=9400111899223197428490",
"items": [
{
"order_item_id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"quantity": 2
}
],
"shipped_at": "2026-10-23T09:12:44.000Z",
"estimated_delivery_at": null,
"delivered_at": null,
"created_at": "2026-10-23T09:12:44.000Z"
}
}
}shipment.delivered
A parcel was delivered.
data.object: shipment
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "shipment.delivered",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "shipment",
"id": "shp_01k8x9z1m3n5b7v9c1x3z5a7s9",
"order_id": "ord_01k8x4b2q9w7e3r5t1y8u6i0pa",
"status": "delivered",
"carrier": "usps",
"service": "USPS Ground Advantage",
"tracking_number": "9400111899223197428490",
"tracking_url": "https://tools.usps.com/go/TrackConfirmAction?tLabels=9400111899223197428490",
"items": [
{
"order_item_id": "oi_01k8x4b2qa3s5d7f9g1h3j5k7l",
"quantity": 2
}
],
"shipped_at": "2026-10-23T09:12:44.000Z",
"estimated_delivery_at": null,
"delivered_at": "2026-10-26T15:20:00.000Z",
"created_at": "2026-10-23T09:12:44.000Z"
}
}
}Products
product.created
A product was created (API or designer). Mockups are rendered afterwards and announced with product.updated.
data.object: product
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "product.created",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "product",
"id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"title": "Company A Logo Tee",
"description": "Our classic logo on a soft tee.",
"status": "active",
"catalog_product_id": "cp_01k8w1a2s3d4f5g6h7j8k9m0n1",
"external_id": "shopify-product-9921",
"tags": [
"logo"
],
"metadata": {},
"retail_price": 2900,
"currency": "usd",
"designs": [
{
"placement": "front",
"layers": [
{
"file_id": "file_01k8x3y1q3w5e7r9t1y3u5i7o9",
"transform": {
"x": 0.1,
"y": 0.05,
"width": 0.8,
"height": 0.6,
"rotation": 0
},
"opacity": 1
}
]
}
],
"variants": [
{
"object": "product_variant",
"id": "pvar_01k8x3z7r4f6g8h0j2k4l6z8x0",
"product_id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"sku": "CA-TEE-BLK-M",
"catalog_variant_id": "cv_01k8w1a2s7d9f1g3h5j7k9m1n3",
"title": "Black / M",
"options": {
"Color": "Black",
"Size": "M"
},
"retail_price": 2900,
"price": 1299,
"currency": "usd",
"external_id": "shopify-variant-4410",
"enabled": true,
"available": true
}
],
"mockups": [],
"created_at": "2026-10-21T14:32:05.000Z",
"updated_at": "2026-10-21T14:32:05.000Z"
}
}
}product.updated
A product changed: details, designs, variants, or its mockups finished rendering.
data.object: product · data.previous_attributes: Changed fields with their old values, when known (e.g. title, designs).
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "product.updated",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "product",
"id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"title": "Company A Logo Tee",
"description": "Our classic logo on a soft tee.",
"status": "active",
"catalog_product_id": "cp_01k8w1a2s3d4f5g6h7j8k9m0n1",
"external_id": "shopify-product-9921",
"tags": [
"logo"
],
"metadata": {},
"retail_price": 2900,
"currency": "usd",
"designs": [
{
"placement": "front",
"layers": [
{
"file_id": "file_01k8x3y1q3w5e7r9t1y3u5i7o9",
"transform": {
"x": 0.1,
"y": 0.05,
"width": 0.8,
"height": 0.6,
"rotation": 0
},
"opacity": 1
}
]
}
],
"variants": [
{
"object": "product_variant",
"id": "pvar_01k8x3z7r4f6g8h0j2k4l6z8x0",
"product_id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"sku": "CA-TEE-BLK-M",
"catalog_variant_id": "cv_01k8w1a2s7d9f1g3h5j7k9m1n3",
"title": "Black / M",
"options": {
"Color": "Black",
"Size": "M"
},
"retail_price": 2900,
"price": 1299,
"currency": "usd",
"external_id": "shopify-variant-4410",
"enabled": true,
"available": true
}
],
"mockups": [
{
"url": "https://swaglists.com/f/file_01k8x3y9a1s3d5f7g9h1j3k5l7/1782777600.c0ffee/mockup-front.png",
"placement": "front",
"color": "Black",
"is_primary": true
}
],
"created_at": "2026-10-21T14:32:05.000Z",
"updated_at": "2026-10-21T14:32:05.000Z"
},
"previous_attributes": {
"title": "Company A Tee"
}
}
}product.deleted
A product was archived (DELETE /products/{id}). Its SKUs stay reserved; restoring it sends product.updated.
data.object: product
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "product.deleted",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "product",
"id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"title": "Company A Logo Tee",
"description": "Our classic logo on a soft tee.",
"status": "archived",
"catalog_product_id": "cp_01k8w1a2s3d4f5g6h7j8k9m0n1",
"external_id": "shopify-product-9921",
"tags": [
"logo"
],
"metadata": {},
"retail_price": 2900,
"currency": "usd",
"designs": [
{
"placement": "front",
"layers": [
{
"file_id": "file_01k8x3y1q3w5e7r9t1y3u5i7o9",
"transform": {
"x": 0.1,
"y": 0.05,
"width": 0.8,
"height": 0.6,
"rotation": 0
},
"opacity": 1
}
]
}
],
"variants": [
{
"object": "product_variant",
"id": "pvar_01k8x3z7r4f6g8h0j2k4l6z8x0",
"product_id": "prod_01k8x3z7r1t3y5u7i9o1p3a5s7",
"sku": "CA-TEE-BLK-M",
"catalog_variant_id": "cv_01k8w1a2s7d9f1g3h5j7k9m1n3",
"title": "Black / M",
"options": {
"Color": "Black",
"Size": "M"
},
"retail_price": 2900,
"price": 1299,
"currency": "usd",
"external_id": "shopify-variant-4410",
"enabled": true,
"available": true
}
],
"mockups": [
{
"url": "https://swaglists.com/f/file_01k8x3y9a1s3d5f7g9h1j3k5l7/1782777600.c0ffee/mockup-front.png",
"placement": "front",
"color": "Black",
"is_primary": true
}
],
"created_at": "2026-10-21T14:32:05.000Z",
"updated_at": "2026-10-21T14:32:05.000Z"
}
}
}Catalog prices
catalog.price_changed
The wholesale price of catalog variants used by your products changed (our costs or your price list changed). Re-fetch prices and adjust your store if needed.
data.object: catalog_price_change
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "catalog.price_changed",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "catalog_price_change",
"catalog_product_id": "cp_01k8w1a2s3d4f5g6h7j8k9m0n1",
"catalog_variant_ids": [
"cv_01k8w1a2s7d9f1g3h5j7k9m1n3"
],
"reason": "cost_increase"
}
}
}Wallet
wallet.credited
Credits were added to the wallet: a top-up and its bonus (one event each), a refund for an order, an adjustment by support, or test credits.
data.object: transaction
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "wallet.credited",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "transaction",
"id": "txn_01k8x4b2q8w0e2r4t6y8u0i2o4",
"type": "topup",
"amount": 500000,
"held_delta": 0,
"balance_after": 982550,
"currency": "usd",
"description": "Credit purchase",
"order_id": null,
"topup_id": "top_01k8x1q3w5e7r9t1y3u5i7o9p1",
"created_at": "2026-10-21T14:32:05.000Z"
}
}
}wallet.low_balance
Available credits fell below your low-balance threshold (sent once until the balance recovers).
data.object: wallet
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "wallet.low_balance",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "wallet",
"mode": "live",
"livemode": true,
"currency": "usd",
"available": 8200,
"held": 12480,
"total": 20680,
"low_balance_threshold": 10000
}
}
}Top-ups
topup.succeeded
A credit purchase was paid and the credits (plus any bonus) were added.
data.object: topup
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "topup.succeeded",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "topup",
"id": "top_01k8x1q3w5e7r9t1y3u5i7o9p1",
"status": "succeeded",
"amount": 500000,
"bonus": 25000,
"bonus_percent": 5,
"credits": 525000,
"currency": "usd",
"payment_method_type": "us_bank_account",
"receipt_url": null,
"created_at": "2026-10-21T14:32:05.000Z",
"succeeded_at": "2026-10-21T14:32:05.000Z"
}
}
}topup.failed
A credit purchase failed (e.g. the card was declined or a bank debit was returned).
data.object: topup
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "topup.failed",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "topup",
"id": "top_01k8x1q3w5e7r9t1y3u5i7o9p1",
"status": "failed",
"amount": 500000,
"bonus": 0,
"bonus_percent": 5,
"credits": 525000,
"currency": "usd",
"payment_method_type": "us_bank_account",
"receipt_url": null,
"created_at": "2026-10-21T14:32:05.000Z",
"succeeded_at": null
}
}
}Files
file.processed
An uploaded file finished processing (status is ready, or failed). url is null in the event — fetch the file for a download URL.
data.object: file
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "file.processed",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "file",
"id": "file_01k8x3y1q3w5e7r9t1y3u5i7o9",
"filename": "logo-front.png",
"mime_type": "image/png",
"size_bytes": 482113,
"width_px": 4500,
"height_px": 5400,
"dpi": 300,
"status": "ready",
"purpose": "artwork",
"url": null,
"created_at": "2026-10-21T14:32:05.000Z"
}
}
}Testing
webhook_endpoint.test
Sent on request with POST /webhook_endpoints/{id}/test (or the dashboard) to that endpoint only. Use it to check your signature verification. Not listed by GET /events unless you filter for it.
data.object: webhook_endpoint
Example payload
{
"id": "evt_01k8x4b2r1t3y5u7i9o1p3a5s7",
"object": "event",
"type": "webhook_endpoint.test",
"api_version": "2026-10-01",
"created_at": "2026-10-21T14:32:05.000Z",
"livemode": false,
"data": {
"object": {
"object": "webhook_endpoint",
"id": "we_01k8x2m4n6b8v0c2x4z6a8s0d2",
"url": "https://company-a.example/webhooks/print",
"description": "Production order updates",
"enabled_events": [
"order.shipped",
"order.delivered"
],
"status": "enabled",
"disabled_reason": null,
"mode": "live",
"livemode": true,
"created_at": "2026-10-21T14:32:05.000Z"
}
}
}