LiveRecoverVYG Developer Docs
CDP REST APIAPI Reference

Get Order

Fetch a single order by its Shopify/external id, returning a normalized contract with line items.

GET /cdp/commerce/orders/{id} — fetch a single order by its Shopify/external id, bound to your shop scope. The order is served from the local synced store and returned as a normalized contract (line items and processed_at are derived from the stored payload) — the raw Shopify payload is never exposed verbatim.

Requires the beta:cdp-commerce permission on your brand.

Request

GET /cdp/commerce/orders/{id}
Authorization: Bearer vyg_…

Path parameters

ParamTypeDescription
idstringThe order's Shopify/external order id.

Response 200

{
	"id": "b2c1…",
	"external_id": "4501234567890",
	"number": "1001",
	"state": "complete",
	"billing_status": "complete",
	"total": "120.00",
	"currency_code": "USD",
	"customer": {
		"contact_id": "c9f0…",
		"shopify_customer_id": "5483611717768"
	},
	"created_at": "2026-03-02T14:21:00.000Z",
	"processed_at": "2026-03-02T14:22:10.000Z",
	"updated_at": "2026-03-02T14:22:10.000Z",
	"recovered_at": null,
	"line_items": [
		{
			"title": "Product 2",
			"quantity": 2,
			"price": "5.00",
			"sku": "jojo",
			"product_id": "4616065155208",
			"variant_id": "32547470704776",
			"variant_title": ""
		}
	]
}
FieldTypeDescription
idstringInternal order id.
external_idstringShopify/external order id (the {id} you fetched by).
numberstringHuman-facing order number.
state / billing_statusstringOrder state and billing status.
total / currency_codestringOrder total and its currency.
customerobjectLocal contact_id and, when derivable, the shopify_customer_id.
created_at / processed_at / updated_atstring | nullOrder timestamps.
recovered_atstring | nullWhen the order was recovered, if applicable.
line_itemsarrayNormalized line items ([] when the stored payload has none).

Example

curl -s "https://cdp.vyg.app/cdp/commerce/orders/4501234567890" \
  -H "Authorization: Bearer vyg_your_key_here"

Errors

StatusWhen
400Missing order id.
401Missing or invalid credential.
403Brand not enrolled in the commerce beta (beta_not_enabled), or no connected Shopify integration (integration_not_connected).
404Order not found or owned by another brand — indistinguishable by design, so a brand cannot probe for another brand's ids.
405Non-GET method.
{
	"error": "not_found",
	"error_description": "Order not found"
}

See Tenant Isolation & Scope for why out-of-scope ids return 404.

On this page