This is an idempotent upsert keyed on order_id:
the first call for an order_id creates the order and returns 201 Created;
subsequent calls with the same order_id update it and return 200 OK.
The order carries the full current state each time —
omitted optional fields keep their previously stored value.
The order is associated to a contact by email (or, when no email is sent, by phone),
creating the contact if needed.
accepts_email_marketing and accepts_sms_marketing drive the contact’s marketing consent —
see the field descriptions for the exact semantics.
Optionally send the X-Privy-Integration-Token header to tie the order to a specific
Custom Integration (see the header parameter below).
To trigger Privy Flows (such as Order Placed and Order Received) from orders sent to this
endpoint, you must first connect a Custom Integration
for your store. See Flows currently available
for the supported triggers and conditions.
Target a subaccount instead of the main connected account.
Pass a subaccount id from get_account's subaccounts list. Only direct subaccounts
of the connected account are reachable — omit this for the main account itself.
Optional. The integration token of a Custom Integration, sent in addition to
the Authorization: Bearer token, to tie the order to that specific
integration. Find it in your Privy dashboard under
Settings → Integrations Hub → Connected, or generate a new one in the
same Integrations Hub section under Custom Integration.
When omitted and the business has exactly one Custom Integration, the order
is auto-tied to it; otherwise no integration is attributed. If the value
doesn't match an active Custom Integration for your business, the request
returns 422. This token only narrows attribution within the business
already established by the bearer token — it is not a standalone credential.
Body
application/json
order_id, total, currency, and order_date are required on every call,
plus at least one of email or phone. All other fields are optional;
on an update, omitted optional fields keep their previously stored value.
Your unique identifier for the order. Must be a positive integer (a digits-only string is also accepted).
This is the idempotency key: the first call for an order_id creates the order, subsequent calls update it.
Payment status of the order, using Shopify's order financial-status vocabulary, which Privy
treats as canonical across every source. Privy stores the value and reports it back; no
flow or automation is triggered by it.
The order's overall fulfillment state — where the order sits in your store's fulfillment
process (mirrors Shopify's OrderDisplayFulfillmentStatus). Stored with the order and echoed
back, but it drives nothing: delivery-based flow triggers key off shipment_status instead.
Carrier delivery status of the shipment — where the parcel is (mirrors Shopify's
FulfillmentEventStatus). This is the one order status Privy acts on: when a stored order's
shipment_status becomes delivered, any "Order Received" flows start for the contact.
Only the change fires the flows. Sending delivered on the call that creates the order
counts as a change; repeating it on a later call does not fire them again. initial_sync
suppresses this along with the other real-time side effects.
A billing or shipping address. Stored and echoed back verbatim.
When a new contact is created, its name is taken from the address —
shipping first, billing as fallback — using first_name/last_name,
or a single name field split on whitespace.
A billing or shipping address. Stored and echoed back verbatim.
When a new contact is created, its name is taken from the address —
shipping first, billing as fallback — using first_name/last_name,
or a single name field split on whitespace.
Whether the buyer opted into email marketing as part of this order.
When true, Privy records email consent for the associated contact — including
resubscribing a contact who had previously unsubscribed. Two limits apply: the order must
have been placed within the last six months, so a backdated order_date older than that
has no consent effect; and a suppressed contact stays suppressed.
When false, nothing is revoked. It never unsubscribes an existing contact and never
weakens consent already on record — it only leaves a contact created by this call without
email consent. The field has no effect on an order sent with a phone and no email.
Whether the buyer opted into SMS marketing as part of this order. Requires phone.
Applies to newly created contacts only: the phone number becomes the contact's, and the
opt-in is written to Privy's SMS consent log, which makes the contact textable immediately
with no confirmation reply. An existing contact's SMS consent is never changed by this
endpoint — use PATCH /v1/contacts/{id} for that.
Because this path bypasses Privy's own opt-in flows, you are responsible for having
collected the consent in a TCPA-compliant manner. Unlike the Contacts endpoints, this one
sends no welcome text.
Set to true for bulk historical imports. Suppresses real-time side effects
(Flows and other automations, and campaign-revenue attribution) while still
recording the order, associating the contact, and updating the contact's
order_count, first_order_at, and last_order_at values.
An order as persisted. Echoes back the fields you sent
(column-backed fields normalized, the rest verbatim).
Empty values are omitted from the response.
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Privy Knowledge Base","colors":{"primary":"#254E5A","light":"#E3E32B","dark":"#254E5A"},"logo":{"light":"https://mintcdn.com/privy/fGrkZt933tBjY_zl/logo/light.svg?fit=max\u0026auto=format\u0026n=fGrkZt933tBjY_zl\u0026q=85\u0026s=36a01db426b7c94fac423778765cd517","dark":"https://mintcdn.com/privy/fGrkZt933tBjY_zl/logo/dark.svg?fit=max\u0026auto=format\u0026n=fGrkZt933tBjY_zl\u0026q=85\u0026s=24576b53a928bf065f4a636ab8dc3431"},"favicon":"https://mintcdn.com/privy/fGrkZt933tBjY_zl/logo/favicon.svg?fit=max\u0026auto=format\u0026n=fGrkZt933tBjY_zl\u0026q=85\u0026s=9fee6eb5a3c74b929294365e07a3f01d","background":{"color":{"light":"#FFF","dark":"#0D1D23"}},"navbar":{"links":[{"href":"https://www.privy.com/pricing","label":"Pricing"},{"href":"mailto:support@privy.com","label":"Contact Support"}],"primary":{"type":"button","label":"Login","href":"https://dashboard.privy.com"}},"footer":{"socials":{"x":"https://x.com/privy","linkedin":"https://www.linkedin.com/company/privy"}},"seo":{"indexing":"all"},"fonts":{"heading":{"family":"Matter","weight":650,"source":"https://public-assets.privy.com/MatterStandard-VF.woff2","format":"woff2"},"body":{"family":"Matter","weight":400,"source":"https://public-assets.privy.com/MatterStandard-VF.woff2","format":"woff2"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"privy","hasAudioNarration":false,"actualSubdomain":"privy","customDomains":["help.privy.com"],"gitSource":{"type":"github","owner":"privy","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"issues":true,"edits":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af3ac7069be62302954224f","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"Learn","count":275},{"language":"default","tag":"Developer","count":49},{"language":"default","tag":"Integrations","count":30},{"language":"default","tag":"Strategy Guides","count":24},{"language":"default","tag":"Flows","count":18},{"language":"default","tag":"Account + Billing","count":18},{"language":"default","tag":"Contacts","count":17},{"language":"default","tag":"Displays","count":15},{"language":"default","tag":"Deliverability","count":11},{"language":"default","tag":"Content","count":10}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@font-face{font-family:\"Matter\";src:url(\"https://public-assets.privy.com/MatterStandard-VF.woff2\") format(\"woff2\");font-display:swap;font-style:normal;font-weight:600}.mdx-content strong,.mdx-content b{font-weight:600}.mdx-content em,.mdx-content i{font-style:italic}"}],"page":{"pagePath":"docs/api-reference/order-placed","slug":"/docs/api-reference/order-placed","pageMetadata":{"title":"Order placed","openapi":"openapi/privy-api.yaml POST /orders/placed","description":"Report an order placed in your store.\n\nThis is an **idempotent upsert** keyed on `order_id`:\nthe first call for an `order_id` creates the order and returns `201 Created`;\nsubsequent calls with the same `order_id` update it and return `200 OK`.\nThe order carries the full current state each time —\nomitted optional fields keep their previously stored value.\n\nThe order is associated to a contact by `email` (or, when no email is sent, by `phone`),\ncreating the contact if needed.\n\n`accepts_email_marketing` and `accepts_sms_marketing` drive the contact's marketing consent —\nsee the field descriptions for the exact semantics.\n\nOptionally send the `X-Privy-Integration-Token` header to tie the order to a specific\nCustom Integration (see the header parameter below).\n\n**Required scope:** `orders_write`\n","href":"/docs/api-reference/order-placed"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Report an order placed in your store.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"This is an \", _jsx(_components.strong, {\n children: \"idempotent upsert\"\n }), \" keyed on \", _jsx(_components.code, {\n children: \"order_id\"\n }), \":\\nthe first call for an \", _jsx(_components.code, {\n children: \"order_id\"\n }), \" creates the order and returns \", _jsx(_components.code, {\n children: \"201 Created\"\n }), \";\\nsubsequent calls with the same \", _jsx(_components.code, {\n children: \"order_id\"\n }), \" update it and return \", _jsx(_components.code, {\n children: \"200 OK\"\n }), \".\\nThe order carries the full current state each time —\\nomitted optional fields keep their previously stored value.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The order is associated to a contact by \", _jsx(_components.code, {\n children: \"email\"\n }), \" (or, when no email is sent, by \", _jsx(_components.code, {\n children: \"phone\"\n }), \"),\\ncreating the contact if needed.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"accepts_email_marketing\"\n }), \" and \", _jsx(_components.code, {\n children: \"accepts_sms_marketing\"\n }), \" drive the contact’s marketing consent —\\nsee the field descriptions for the exact semantics.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Optionally send the \", _jsx(_components.code, {\n children: \"X-Privy-Integration-Token\"\n }), \" header to tie the order to a specific\\nCustom Integration (see the header parameter below).\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Required scope:\"\n }), \" \", _jsx(_components.code, {\n children: \"orders_write\"\n })]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Note}=_components;if(!Note)_missingMdxReference(`Note`,true);return _jsx(Note,{children:_jsxs(_components.p,{children:[`To trigger Privy `,_jsx(_components.strong,{children:`Flows`}),` (such as Order Placed and Order Received) from orders sent to this\nendpoint, you must first connect a `,_jsx(_components.a,{href:`/docs/learn/integrations/custom-integration`,children:`Custom Integration`}),`\nfor your store. See `,_jsx(_components.a,{href:`/docs/learn/integrations/custom-integration#flows-currently-available`,children:`Flows currently available`}),`\nfor the supported triggers and conditions.`]})})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Order placed","openapi":"openapi/privy-api.yaml POST /orders/placed","description":"Report an order placed in your store.\n\nThis is an **idempotent upsert** keyed on `order_id`:\nthe first call for an `order_id` creates the order and returns `201 Created`;\nsubsequent calls with the same `order_id` update it and return `200 OK`.\nThe order carries the full current state each time —\nomitted optional fields keep their previously stored value.\n\nThe order is associated to a contact by `email` (or, when no email is sent, by `phone`),\ncreating the contact if needed.\n\n`accepts_email_marketing` and `accepts_sms_marketing` drive the contact's marketing consent —\nsee the field descriptions for the exact semantics.\n\nOptionally send the `X-Privy-Integration-Token` header to tie the order to a specific\nCustom Integration (see the header parameter below).\n\n**Required scope:** `orders_write`\n","href":"/docs/api-reference/order-placed"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"placeOrder","summary":"Order placed","description":"Report an order placed in your store.\n\nThis is an **idempotent upsert** keyed on `order_id`:\nthe first call for an `order_id` creates the order and returns `201 Created`;\nsubsequent calls with the same `order_id` update it and return `200 OK`.\nThe order carries the full current state each time —\nomitted optional fields keep their previously stored value.\n\nThe order is associated to a contact by `email` (or, when no email is sent, by `phone`),\ncreating the contact if needed.\n\n`accepts_email_marketing` and `accepts_sms_marketing` drive the contact's marketing consent —\nsee the field descriptions for the exact semantics.\n\nOptionally send the `X-Privy-Integration-Token` header to tie the order to a specific\nCustom Integration (see the header parameter below).\n\n**Required scope:** `orders_write`\n","tags":["Orders"],"security":["6f31646e-109b-4de2-89d2-76c48971c49c"],"parameters":["4c7c3a86-67f8-4671-b29c-e1a6bac22ab5","7d6ff7c6-7215-4a84-b496-8a045c16d660"],"requestBody":"e8c12ea6-71fc-4502-8d91-897b3a1deeae","responses":{"200":"b5ceeb27-6744-4c11-8e11-ecc47c540354","201":"18ae3431-8180-43e2-b4de-dc6d364d6623","400":"30a944e3-5487-4c6c-9425-8c9d5763aa1a","401":"cc07ff4f-65e4-4db9-aacf-6ecda7b24636","403":"8968e319-e632-4200-8283-08db73c5544f","422":"9d60219c-0cf6-4002-8150-eccdb8393ddd","429":"1f675548-8520-48f8-bb37-63e390c75db0"},"method":"post","type":"path","servers":["97f63e03-f020-41b7-a5b9-e312bbfed47d"],"path":"/orders/placed","baseUrlOptions":["https://api.privy.com/v1"],"title":"Order placed","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"4c7c3a86-67f8-4671-b29c-e1a6bac22ab5":{"name":"Privy-Account-Id","in":"header","required":false,"description":"Target a subaccount instead of the main connected account.\nPass a subaccount `id` from get_account's `subaccounts` list. Only direct subaccounts\nof the connected account are reachable — omit this for the main account itself.\n","schema":{"type":"string","isRequired":false,"description":"Target a subaccount instead of the main connected account.\nPass a subaccount `id` from get_account's `subaccounts` list. Only direct subaccounts\nof the connected account are reachable — omit this for the main account itself.\n","uniqueKey":"","typeLabel":"string"},"example":"S1U2B3A4C5C6T7"},"7d6ff7c6-7215-4a84-b496-8a045c16d660":{"name":"X-Privy-Integration-Token","in":"header","required":false,"description":"Optional. The integration token of a Custom Integration, sent **in addition to**\nthe `Authorization: Bearer` token, to tie the order to that specific\nintegration. Find it in your Privy dashboard under\n**Settings → Integrations Hub → Connected**, or generate a new one in the\nsame **Integrations Hub** section under **Custom Integration**.\n\nWhen omitted and the business has exactly one Custom Integration, the order\nis auto-tied to it; otherwise no integration is attributed. If the value\ndoesn't match an active Custom Integration for your business, the request\nreturns `422`. This token only narrows attribution within the business\nalready established by the bearer token — it is not a standalone credential.\n","schema":{"type":"string","isRequired":false,"description":"Optional. The integration token of a Custom Integration, sent **in addition to**\nthe `Authorization: Bearer` token, to tie the order to that specific\nintegration. Find it in your Privy dashboard under\n**Settings → Integrations Hub → Connected**, or generate a new one in the\nsame **Integrations Hub** section under **Custom Integration**.\n\nWhen omitted and the business has exactly one Custom Integration, the order\nis auto-tied to it; otherwise no integration is attributed. If the value\ndoesn't match an active Custom Integration for your business, the request\nreturns `422`. This token only narrows attribution within the business\nalready established by the bearer token — it is not a standalone credential.\n","uniqueKey":"","typeLabel":"string"},"example":"prv_a1b2c3d4e5f6g7h8"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"`order_id`, `total`, `currency`, and `order_date` are required on every call,\nplus at least one of `email` or `phone`. All other fields are optional;\non an update, omitted optional fields keep their previously stored value.\n","required":["order_id","total","currency","order_date"],"properties":{"order_id":{"type":"integer","format":"int64","description":"Your unique identifier for the order. Must be a positive integer (a digits-only string is also accepted).\nThis is the idempotency key: the first call for an `order_id` creates the order, subsequent calls update it.\n","example":1001,"isRequired":true,"uniqueKey":"order_id","typeLabel":"integer\u003cint64>"},"total":{"type":"number","description":"Order grand total. Required.","example":95,"isRequired":true,"uniqueKey":"total","typeLabel":"number"},"currency":{"type":"string","description":"ISO 4217 three-letter currency code. Required.","example":"USD","isRequired":true,"uniqueKey":"currency","typeLabel":"string"},"order_date":{"type":"string","format":"date-time","description":"ISO 8601 date-time the order was placed. Required. Expected to be in UTC\n(zero offset) — end the timestamp with `Z` (e.g. `2026-06-01T12:00:00Z`).\n","example":"2026-06-01T12:00:00Z","isRequired":true,"uniqueKey":"order_date","typeLabel":"string\u003cdate-time>"},"email":{"type":"string","format":"email","description":"Buyer's email. Used to find or create the associated contact.\nAt least one of `email` or `phone` is required.\n","example":"buyer@example.com","uniqueKey":"email","typeLabel":"string\u003cemail>"},"phone":{"type":"string","description":"Buyer's phone number. Loosely formatted input is accepted and normalized to E.164.\nRequired when `accepts_sms_marketing` is `true`.\n","example":"+12025550123","uniqueKey":"phone","typeLabel":"string"},"customer_id":{"type":"string","description":"Your external identifier for the customer.","example":"ext-42","uniqueKey":"customer_id","typeLabel":"string"},"subtotal":{"type":"number","description":"Order subtotal before tax, shipping, and discounts.","example":90,"uniqueKey":"subtotal","typeLabel":"number"},"discounts":{"type":"array","description":"Discounts applied to the order.","items":{"type":"object","description":"A discount applied to the order. Stored and echoed back verbatim.","additionalProperties":true,"properties":{"code":{"oneOf":[{"type":"string","example":"SAVE10","uniqueKey":"discounts.items.[INDEX].code.oneOf.0","typeLabel":"string"},{"type":"null","example":"SAVE10","uniqueKey":"discounts.items.[INDEX].code.oneOf.1","typeLabel":"null"}],"uniqueKey":"discounts.items.[INDEX].code","typeLabel":"string | null"},"amount":{"oneOf":[{"type":"number","example":10,"uniqueKey":"discounts.items.[INDEX].amount.oneOf.0","typeLabel":"number"},{"type":"null","example":10,"uniqueKey":"discounts.items.[INDEX].amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"discounts.items.[INDEX].amount","typeLabel":"number | null"}},"uniqueKey":"discounts.items.[INDEX]","typeLabel":"object"},"uniqueKey":"discounts","typeLabel":"object[]"},"tax_lines":{"type":"array","description":"Tax lines applied to the order.","items":{"type":"object","description":"A tax line on the order. Stored and echoed back verbatim.","additionalProperties":true,"properties":{"title":{"oneOf":[{"type":"string","example":"VAT","uniqueKey":"tax_lines.items.[INDEX].title.oneOf.0","typeLabel":"string"},{"type":"null","example":"VAT","uniqueKey":"tax_lines.items.[INDEX].title.oneOf.1","typeLabel":"null"}],"uniqueKey":"tax_lines.items.[INDEX].title","typeLabel":"string | null"},"amount":{"oneOf":[{"type":"number","example":5,"uniqueKey":"tax_lines.items.[INDEX].amount.oneOf.0","typeLabel":"number"},{"type":"null","example":5,"uniqueKey":"tax_lines.items.[INDEX].amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"tax_lines.items.[INDEX].amount","typeLabel":"number | null"}},"uniqueKey":"tax_lines.items.[INDEX]","typeLabel":"object"},"uniqueKey":"tax_lines","typeLabel":"object[]"},"total_items":{"type":"integer","description":"Total number of items in the order.","example":2,"uniqueKey":"total_items","typeLabel":"integer"},"financial_status":{"type":"string","enum":["authorized","expired","paid","partially_paid","partially_refunded","pending","refunded","voided"],"description":"Payment status of the order, using Shopify's order financial-status vocabulary, which Privy\ntreats as canonical across every source. Privy stores the value and reports it back; no\nflow or automation is triggered by it.\n","example":"paid","uniqueKey":"financial_status","typeLabel":"enum\u003cstring>"},"fulfillment_status":{"type":"string","enum":["fulfilled","in_progress","on_hold","open","partially_fulfilled","pending","pending_fulfillment","request_declined","restocked","scheduled","unfulfilled"],"description":"The order's overall fulfillment state — where the order sits in your store's fulfillment\nprocess (mirrors Shopify's OrderDisplayFulfillmentStatus). Stored with the order and echoed\nback, but it drives nothing: delivery-based flow triggers key off `shipment_status` instead.\n","example":"fulfilled","uniqueKey":"fulfillment_status","typeLabel":"enum\u003cstring>"},"shipment_status":{"type":"string","enum":["attempted_delivery","carrier_picked_up","confirmed","delayed","delivered","failure","in_transit","label_printed","label_purchased","out_for_delivery","picked_up","ready_for_pickup"],"description":"Carrier delivery status of the shipment — where the parcel is (mirrors Shopify's\nFulfillmentEventStatus). This is the one order status Privy acts on: when a stored order's\n`shipment_status` becomes `delivered`, any \"Order Received\" flows start for the contact.\n\nOnly the change fires the flows. Sending `delivered` on the call that creates the order\ncounts as a change; repeating it on a later call does not fire them again. `initial_sync`\nsuppresses this along with the other real-time side effects.\n","example":"delivered","uniqueKey":"shipment_status","typeLabel":"enum\u003cstring>"},"line_items":{"type":"array","description":"The products purchased.","items":{"type":"object","description":"A product line on the order. Stored and echoed back verbatim.","additionalProperties":true,"properties":{"product_id":{"oneOf":[{"type":"string","example":"prod_305","uniqueKey":"line_items.items.[INDEX].product_id.oneOf.0","typeLabel":"string"},{"type":"number","example":"prod_305","uniqueKey":"line_items.items.[INDEX].product_id.oneOf.1","typeLabel":"number"}],"uniqueKey":"line_items.items.[INDEX].product_id","typeLabel":"string | number"},"variant_id":{"oneOf":[{"type":"string","example":"var_305","uniqueKey":"line_items.items.[INDEX].variant_id.oneOf.0","typeLabel":"string"},{"type":"number","example":"var_305","uniqueKey":"line_items.items.[INDEX].variant_id.oneOf.1","typeLabel":"number"}],"uniqueKey":"line_items.items.[INDEX].variant_id","typeLabel":"string | number"},"sku":{"oneOf":[{"type":"string","example":"SKU-1","uniqueKey":"line_items.items.[INDEX].sku.oneOf.0","typeLabel":"string"},{"type":"null","example":"SKU-1","uniqueKey":"line_items.items.[INDEX].sku.oneOf.1","typeLabel":"null"}],"uniqueKey":"line_items.items.[INDEX].sku","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","example":"Sample Product","uniqueKey":"line_items.items.[INDEX].title.oneOf.0","typeLabel":"string"},{"type":"null","example":"Sample Product","uniqueKey":"line_items.items.[INDEX].title.oneOf.1","typeLabel":"null"}],"uniqueKey":"line_items.items.[INDEX].title","typeLabel":"string | null"},"quantity":{"oneOf":[{"type":"integer","example":2,"uniqueKey":"line_items.items.[INDEX].quantity.oneOf.0","typeLabel":"integer"},{"type":"null","example":2,"uniqueKey":"line_items.items.[INDEX].quantity.oneOf.1","typeLabel":"null"}],"uniqueKey":"line_items.items.[INDEX].quantity","typeLabel":"integer | null"},"price":{"oneOf":[{"type":"string","description":"Unit price for the line, echoed back as sent.\n","example":45,"uniqueKey":"line_items.items.[INDEX].price.oneOf.0","typeLabel":"string"},{"type":"number","description":"Unit price for the line, echoed back as sent.\n","example":45,"uniqueKey":"line_items.items.[INDEX].price.oneOf.1","typeLabel":"number"},{"type":"null","description":"Unit price for the line, echoed back as sent.\n","example":45,"uniqueKey":"line_items.items.[INDEX].price.oneOf.2","typeLabel":"null"}],"uniqueKey":"line_items.items.[INDEX].price","typeLabel":"string | number | null"}},"uniqueKey":"line_items.items.[INDEX]","typeLabel":"object"},"uniqueKey":"line_items","typeLabel":"object[]"},"billing_address":{"type":"object","description":"A billing or shipping address. Stored and echoed back verbatim.\nWhen a new contact is created, its name is taken from the address —\nshipping first, billing as fallback — using `first_name`/`last_name`,\nor a single `name` field split on whitespace.\n","additionalProperties":true,"properties":{"first_name":{"oneOf":[{"type":"string","example":"Jane","uniqueKey":"billing_address.first_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Jane","uniqueKey":"billing_address.first_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"billing_address.first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","example":"Shopper","uniqueKey":"billing_address.last_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Shopper","uniqueKey":"billing_address.last_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"billing_address.last_name","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"Full name; used when `first_name`/`last_name` are absent.","example":"Jane Shopper","uniqueKey":"billing_address.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Full name; used when `first_name`/`last_name` are absent.","example":"Jane Shopper","uniqueKey":"billing_address.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"billing_address.name","typeLabel":"string | null"},"address1":{"oneOf":[{"type":"string","example":"123 Main St","uniqueKey":"billing_address.address1.oneOf.0","typeLabel":"string"},{"type":"null","example":"123 Main St","uniqueKey":"billing_address.address1.oneOf.1","typeLabel":"null"}],"uniqueKey":"billing_address.address1","typeLabel":"string | null"},"address2":{"oneOf":[{"type":"string","example":"Apt 101","uniqueKey":"billing_address.address2.oneOf.0","typeLabel":"string"},{"type":"null","example":"Apt 101","uniqueKey":"billing_address.address2.oneOf.1","typeLabel":"null"}],"uniqueKey":"billing_address.address2","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","example":"Boston","uniqueKey":"billing_address.city.oneOf.0","typeLabel":"string"},{"type":"null","example":"Boston","uniqueKey":"billing_address.city.oneOf.1","typeLabel":"null"}],"uniqueKey":"billing_address.city","typeLabel":"string | null"},"state_code":{"oneOf":[{"type":"string","example":"MA","uniqueKey":"billing_address.state_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"MA","uniqueKey":"billing_address.state_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"billing_address.state_code","typeLabel":"string | null"},"country_code":{"oneOf":[{"type":"string","example":"US","uniqueKey":"billing_address.country_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"US","uniqueKey":"billing_address.country_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"billing_address.country_code","typeLabel":"string | null"},"postal_code":{"oneOf":[{"type":"string","example":"02118","uniqueKey":"billing_address.postal_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"02118","uniqueKey":"billing_address.postal_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"billing_address.postal_code","typeLabel":"string | null"}},"uniqueKey":"billing_address","typeLabel":"object"},"shipping_address":{"type":"object","description":"A billing or shipping address. Stored and echoed back verbatim.\nWhen a new contact is created, its name is taken from the address —\nshipping first, billing as fallback — using `first_name`/`last_name`,\nor a single `name` field split on whitespace.\n","additionalProperties":true,"properties":{"first_name":{"oneOf":[{"type":"string","example":"Jane","uniqueKey":"shipping_address.first_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Jane","uniqueKey":"shipping_address.first_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"shipping_address.first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","example":"Shopper","uniqueKey":"shipping_address.last_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Shopper","uniqueKey":"shipping_address.last_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"shipping_address.last_name","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"Full name; used when `first_name`/`last_name` are absent.","example":"Jane Shopper","uniqueKey":"shipping_address.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Full name; used when `first_name`/`last_name` are absent.","example":"Jane Shopper","uniqueKey":"shipping_address.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"shipping_address.name","typeLabel":"string | null"},"address1":{"oneOf":[{"type":"string","example":"123 Main St","uniqueKey":"shipping_address.address1.oneOf.0","typeLabel":"string"},{"type":"null","example":"123 Main St","uniqueKey":"shipping_address.address1.oneOf.1","typeLabel":"null"}],"uniqueKey":"shipping_address.address1","typeLabel":"string | null"},"address2":{"oneOf":[{"type":"string","example":"Apt 101","uniqueKey":"shipping_address.address2.oneOf.0","typeLabel":"string"},{"type":"null","example":"Apt 101","uniqueKey":"shipping_address.address2.oneOf.1","typeLabel":"null"}],"uniqueKey":"shipping_address.address2","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","example":"Boston","uniqueKey":"shipping_address.city.oneOf.0","typeLabel":"string"},{"type":"null","example":"Boston","uniqueKey":"shipping_address.city.oneOf.1","typeLabel":"null"}],"uniqueKey":"shipping_address.city","typeLabel":"string | null"},"state_code":{"oneOf":[{"type":"string","example":"MA","uniqueKey":"shipping_address.state_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"MA","uniqueKey":"shipping_address.state_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"shipping_address.state_code","typeLabel":"string | null"},"country_code":{"oneOf":[{"type":"string","example":"US","uniqueKey":"shipping_address.country_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"US","uniqueKey":"shipping_address.country_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"shipping_address.country_code","typeLabel":"string | null"},"postal_code":{"oneOf":[{"type":"string","example":"02118","uniqueKey":"shipping_address.postal_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"02118","uniqueKey":"shipping_address.postal_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"shipping_address.postal_code","typeLabel":"string | null"}},"uniqueKey":"shipping_address","typeLabel":"object"},"accepts_email_marketing":{"type":"boolean","description":"Whether the buyer opted into email marketing as part of this order.\n\nWhen `true`, Privy records email consent for the associated contact — including\nresubscribing a contact who had previously unsubscribed. Two limits apply: the order must\nhave been placed within the last six months, so a backdated `order_date` older than that\nhas no consent effect; and a suppressed contact stays suppressed.\n\nWhen `false`, nothing is revoked. It never unsubscribes an existing contact and never\nweakens consent already on record — it only leaves a contact created by this call without\nemail consent. The field has no effect on an order sent with a `phone` and no `email`.\n","example":true,"uniqueKey":"accepts_email_marketing","typeLabel":"boolean"},"accepts_sms_marketing":{"type":"boolean","description":"Whether the buyer opted into SMS marketing as part of this order. Requires `phone`.\n\nApplies to newly created contacts only: the phone number becomes the contact's, and the\nopt-in is written to Privy's SMS consent log, which makes the contact textable immediately\nwith no confirmation reply. An existing contact's SMS consent is never changed by this\nendpoint — use `PATCH /v1/contacts/{id}` for that.\n\nBecause this path bypasses Privy's own opt-in flows, you are responsible for having\ncollected the consent in a TCPA-compliant manner. Unlike the Contacts endpoints, this one\nsends no welcome text.\n","example":true,"uniqueKey":"accepts_sms_marketing","typeLabel":"boolean"},"initial_sync":{"type":"boolean","default":false,"description":"Set to `true` for bulk historical imports. Suppresses real-time side effects\n(Flows and other automations, and campaign-revenue attribution) while still\nrecording the order, associating the contact, and updating the contact's\n`order_count`, `first_order_at`, and `last_order_at` values.\n","example":false,"uniqueKey":"initial_sync","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"example":{"order_id":1001,"email":"buyer@example.com","phone":"+12025550123","customer_id":"ext-42","subtotal":90,"discounts":[{"code":"SAVE10","amount":10}],"tax_lines":[{"title":"VAT","amount":5}],"total":95,"currency":"USD","total_items":2,"financial_status":"paid","fulfillment_status":"fulfilled","shipment_status":"delivered","line_items":[{"sku":"SKU-1","quantity":2,"price":45}],"billing_address":{"first_name":"Janet","last_name":"Biller","city":"Boston","state_code":"MA","country_code":"US","postal_code":"02118"},"shipping_address":{"first_name":"Jane","last_name":"Shopper","city":"Boston","state_code":"MA","country_code":"US","postal_code":"02118"},"accepts_email_marketing":true,"accepts_sms_marketing":true,"order_date":"2026-06-01T12:00:00Z"},"examples":{"Example":{"title":"Example","value":{"order_id":1001,"email":"buyer@example.com","phone":"+12025550123","customer_id":"ext-42","subtotal":90,"discounts":[{"code":"SAVE10","amount":10}],"tax_lines":[{"title":"VAT","amount":5}],"total":95,"currency":"USD","total_items":2,"financial_status":"paid","fulfillment_status":"fulfilled","shipment_status":"delivered","line_items":[{"sku":"SKU-1","quantity":2,"price":45}],"billing_address":{"first_name":"Janet","last_name":"Biller","city":"Boston","state_code":"MA","country_code":"US","postal_code":"02118"},"shipping_address":{"first_name":"Jane","last_name":"Shopper","city":"Boston","state_code":"MA","country_code":"US","postal_code":"02118"},"accepts_email_marketing":true,"accepts_sms_marketing":true,"order_date":"2026-06-01T12:00:00Z"}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"b5ceeb27-6744-4c11-8e11-ecc47c540354":{"description":"Existing order updated.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","description":"An order as persisted. Echoes back the fields you sent\n(column-backed fields normalized, the rest verbatim).\nEmpty values are omitted from the response.\n","properties":{"order_id":{"type":"integer","format":"int64","description":"Your order identifier, echoed back. The only public identifier for the order.","example":1001,"uniqueKey":"data.order_id","typeLabel":"integer\u003cint64>"},"source":{"type":"string","example":"api","uniqueKey":"data.source","typeLabel":"string"},"email":{"type":"string","format":"email","example":"buyer@example.com","uniqueKey":"data.email","typeLabel":"string\u003cemail>"},"phone":{"type":"string","description":"Normalized to E.164.","example":"+12025550123","uniqueKey":"data.phone","typeLabel":"string"},"total_amount":{"type":"string","description":"Order grand total, as a decimal string.","example":"95.00","uniqueKey":"data.total_amount","typeLabel":"string"},"currency_code":{"type":"string","example":"USD","uniqueKey":"data.currency_code","typeLabel":"string"},"placed_at":{"type":"string","format":"date-time","example":"2026-06-01T12:00:00Z","uniqueKey":"data.placed_at","typeLabel":"string\u003cdate-time>"},"financial_status":{"type":"string","description":"Payment status of the order, using Shopify's order financial-status vocabulary. Absent when\nno payment status was recorded for the order.\n","example":"paid","uniqueKey":"data.financial_status","typeLabel":"string"},"fulfillment_status":{"type":"string","description":"The order's overall fulfillment state — where the order sits in the store's fulfillment\nprocess. Delivery-based flow triggers key off `shipment_status`, not this field.\n","example":"fulfilled","uniqueKey":"data.fulfillment_status","typeLabel":"string"},"shipment_status":{"type":"string","description":"Carrier delivery status of the shipment — where the parcel is. Privy acts on this field:\nwhen it becomes `delivered`, the contact's \"Order Received\" flows start.\n","example":"in_transit","uniqueKey":"data.shipment_status","typeLabel":"string"},"customer_id":{"oneOf":[{"type":"string","description":"The customer identifier reported with the order, echoed back as sent.\n","example":"ext-42","uniqueKey":"data.customer_id.oneOf.0","typeLabel":"string"},{"type":"integer","description":"The customer identifier reported with the order, echoed back as sent.\n","example":"ext-42","uniqueKey":"data.customer_id.oneOf.1","typeLabel":"integer"}],"uniqueKey":"data.customer_id","typeLabel":"string | integer"},"subtotal":{"type":"number","example":90,"uniqueKey":"data.subtotal","typeLabel":"number"},"discounts":{"type":"array","items":{"type":"object","description":"A discount applied to the order. Stored and echoed back verbatim.","additionalProperties":true,"properties":{"code":{"oneOf":[{"type":"string","example":"SAVE10","uniqueKey":"data.discounts.items.[INDEX].code.oneOf.0","typeLabel":"string"},{"type":"null","example":"SAVE10","uniqueKey":"data.discounts.items.[INDEX].code.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.discounts.items.[INDEX].code","typeLabel":"string | null"},"amount":{"oneOf":[{"type":"number","example":10,"uniqueKey":"data.discounts.items.[INDEX].amount.oneOf.0","typeLabel":"number"},{"type":"null","example":10,"uniqueKey":"data.discounts.items.[INDEX].amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.discounts.items.[INDEX].amount","typeLabel":"number | null"}},"uniqueKey":"data.discounts.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.discounts","typeLabel":"object[]"},"tax_lines":{"type":"array","items":{"type":"object","description":"A tax line on the order. Stored and echoed back verbatim.","additionalProperties":true,"properties":{"title":{"oneOf":[{"type":"string","example":"VAT","uniqueKey":"data.tax_lines.items.[INDEX].title.oneOf.0","typeLabel":"string"},{"type":"null","example":"VAT","uniqueKey":"data.tax_lines.items.[INDEX].title.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.tax_lines.items.[INDEX].title","typeLabel":"string | null"},"amount":{"oneOf":[{"type":"number","example":5,"uniqueKey":"data.tax_lines.items.[INDEX].amount.oneOf.0","typeLabel":"number"},{"type":"null","example":5,"uniqueKey":"data.tax_lines.items.[INDEX].amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.tax_lines.items.[INDEX].amount","typeLabel":"number | null"}},"uniqueKey":"data.tax_lines.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.tax_lines","typeLabel":"object[]"},"total_items":{"type":"integer","example":2,"uniqueKey":"data.total_items","typeLabel":"integer"},"line_items":{"type":"array","items":{"type":"object","description":"A product line on the order. Stored and echoed back verbatim.","additionalProperties":true,"properties":{"product_id":{"oneOf":[{"type":"string","example":"prod_305","uniqueKey":"data.line_items.items.[INDEX].product_id.oneOf.0","typeLabel":"string"},{"type":"number","example":"prod_305","uniqueKey":"data.line_items.items.[INDEX].product_id.oneOf.1","typeLabel":"number"}],"uniqueKey":"data.line_items.items.[INDEX].product_id","typeLabel":"string | number"},"variant_id":{"oneOf":[{"type":"string","example":"var_305","uniqueKey":"data.line_items.items.[INDEX].variant_id.oneOf.0","typeLabel":"string"},{"type":"number","example":"var_305","uniqueKey":"data.line_items.items.[INDEX].variant_id.oneOf.1","typeLabel":"number"}],"uniqueKey":"data.line_items.items.[INDEX].variant_id","typeLabel":"string | number"},"sku":{"oneOf":[{"type":"string","example":"SKU-1","uniqueKey":"data.line_items.items.[INDEX].sku.oneOf.0","typeLabel":"string"},{"type":"null","example":"SKU-1","uniqueKey":"data.line_items.items.[INDEX].sku.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.line_items.items.[INDEX].sku","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","example":"Sample Product","uniqueKey":"data.line_items.items.[INDEX].title.oneOf.0","typeLabel":"string"},{"type":"null","example":"Sample Product","uniqueKey":"data.line_items.items.[INDEX].title.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.line_items.items.[INDEX].title","typeLabel":"string | null"},"quantity":{"oneOf":[{"type":"integer","example":2,"uniqueKey":"data.line_items.items.[INDEX].quantity.oneOf.0","typeLabel":"integer"},{"type":"null","example":2,"uniqueKey":"data.line_items.items.[INDEX].quantity.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.line_items.items.[INDEX].quantity","typeLabel":"integer | null"},"price":{"oneOf":[{"type":"string","description":"Unit price for the line, echoed back as sent.\n","example":45,"uniqueKey":"data.line_items.items.[INDEX].price.oneOf.0","typeLabel":"string"},{"type":"number","description":"Unit price for the line, echoed back as sent.\n","example":45,"uniqueKey":"data.line_items.items.[INDEX].price.oneOf.1","typeLabel":"number"},{"type":"null","description":"Unit price for the line, echoed back as sent.\n","example":45,"uniqueKey":"data.line_items.items.[INDEX].price.oneOf.2","typeLabel":"null"}],"uniqueKey":"data.line_items.items.[INDEX].price","typeLabel":"string | number | null"}},"uniqueKey":"data.line_items.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.line_items","typeLabel":"object[]"},"billing_address":{"type":"object","description":"A billing or shipping address. Stored and echoed back verbatim.\nWhen a new contact is created, its name is taken from the address —\nshipping first, billing as fallback — using `first_name`/`last_name`,\nor a single `name` field split on whitespace.\n","additionalProperties":true,"properties":{"first_name":{"oneOf":[{"type":"string","example":"Jane","uniqueKey":"data.billing_address.first_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Jane","uniqueKey":"data.billing_address.first_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","example":"Shopper","uniqueKey":"data.billing_address.last_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Shopper","uniqueKey":"data.billing_address.last_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.last_name","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"Full name; used when `first_name`/`last_name` are absent.","example":"Jane Shopper","uniqueKey":"data.billing_address.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Full name; used when `first_name`/`last_name` are absent.","example":"Jane Shopper","uniqueKey":"data.billing_address.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.name","typeLabel":"string | null"},"address1":{"oneOf":[{"type":"string","example":"123 Main St","uniqueKey":"data.billing_address.address1.oneOf.0","typeLabel":"string"},{"type":"null","example":"123 Main St","uniqueKey":"data.billing_address.address1.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.address1","typeLabel":"string | null"},"address2":{"oneOf":[{"type":"string","example":"Apt 101","uniqueKey":"data.billing_address.address2.oneOf.0","typeLabel":"string"},{"type":"null","example":"Apt 101","uniqueKey":"data.billing_address.address2.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.address2","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","example":"Boston","uniqueKey":"data.billing_address.city.oneOf.0","typeLabel":"string"},{"type":"null","example":"Boston","uniqueKey":"data.billing_address.city.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.city","typeLabel":"string | null"},"state_code":{"oneOf":[{"type":"string","example":"MA","uniqueKey":"data.billing_address.state_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"MA","uniqueKey":"data.billing_address.state_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.state_code","typeLabel":"string | null"},"country_code":{"oneOf":[{"type":"string","example":"US","uniqueKey":"data.billing_address.country_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"US","uniqueKey":"data.billing_address.country_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.country_code","typeLabel":"string | null"},"postal_code":{"oneOf":[{"type":"string","example":"02118","uniqueKey":"data.billing_address.postal_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"02118","uniqueKey":"data.billing_address.postal_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.postal_code","typeLabel":"string | null"}},"uniqueKey":"data.billing_address","typeLabel":"object"},"shipping_address":{"type":"object","description":"A billing or shipping address. Stored and echoed back verbatim.\nWhen a new contact is created, its name is taken from the address —\nshipping first, billing as fallback — using `first_name`/`last_name`,\nor a single `name` field split on whitespace.\n","additionalProperties":true,"properties":{"first_name":{"oneOf":[{"type":"string","example":"Jane","uniqueKey":"data.shipping_address.first_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Jane","uniqueKey":"data.shipping_address.first_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","example":"Shopper","uniqueKey":"data.shipping_address.last_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Shopper","uniqueKey":"data.shipping_address.last_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.last_name","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"Full name; used when `first_name`/`last_name` are absent.","example":"Jane Shopper","uniqueKey":"data.shipping_address.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Full name; used when `first_name`/`last_name` are absent.","example":"Jane Shopper","uniqueKey":"data.shipping_address.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.name","typeLabel":"string | null"},"address1":{"oneOf":[{"type":"string","example":"123 Main St","uniqueKey":"data.shipping_address.address1.oneOf.0","typeLabel":"string"},{"type":"null","example":"123 Main St","uniqueKey":"data.shipping_address.address1.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.address1","typeLabel":"string | null"},"address2":{"oneOf":[{"type":"string","example":"Apt 101","uniqueKey":"data.shipping_address.address2.oneOf.0","typeLabel":"string"},{"type":"null","example":"Apt 101","uniqueKey":"data.shipping_address.address2.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.address2","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","example":"Boston","uniqueKey":"data.shipping_address.city.oneOf.0","typeLabel":"string"},{"type":"null","example":"Boston","uniqueKey":"data.shipping_address.city.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.city","typeLabel":"string | null"},"state_code":{"oneOf":[{"type":"string","example":"MA","uniqueKey":"data.shipping_address.state_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"MA","uniqueKey":"data.shipping_address.state_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.state_code","typeLabel":"string | null"},"country_code":{"oneOf":[{"type":"string","example":"US","uniqueKey":"data.shipping_address.country_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"US","uniqueKey":"data.shipping_address.country_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.country_code","typeLabel":"string | null"},"postal_code":{"oneOf":[{"type":"string","example":"02118","uniqueKey":"data.shipping_address.postal_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"02118","uniqueKey":"data.shipping_address.postal_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.postal_code","typeLabel":"string | null"}},"uniqueKey":"data.shipping_address","typeLabel":"object"},"accepts_email_marketing":{"type":"boolean","description":"The email marketing opt-in reported with the order, echoed back as sent. It records what\nthe order said, not the contact's consent now — read that from the contact's\n`email_consent`.\n","example":true,"uniqueKey":"data.accepts_email_marketing","typeLabel":"boolean"},"accepts_sms_marketing":{"type":"boolean","description":"The SMS marketing opt-in reported with the order, echoed back as sent. As with\n`accepts_email_marketing`, the contact's current consent lives on the contact\n(`sms_consent`), not here.\n","example":true,"uniqueKey":"data.accepts_sms_marketing","typeLabel":"boolean"},"integration":{"type":"object","description":"The Custom Integration the order is tied to. Present only when the order was attributed to an integration\n(via the `X-Privy-Integration-Token` header or auto-tie).\n","properties":{"store_name":{"type":"string","example":"My Store","uniqueKey":"data.integration.store_name","typeLabel":"string"},"store_url":{"type":"string","example":"https://mystore.example.com","uniqueKey":"data.integration.store_url","typeLabel":"string"}},"uniqueKey":"data.integration","typeLabel":"object"},"created_at":{"type":"string","format":"date-time","example":"2026-06-01T12:00:05Z","uniqueKey":"data.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","example":"2026-06-01T12:00:05Z","uniqueKey":"data.updated_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":{"order_id":1001,"source":"api","email":"buyer@example.com","phone":"+12025550123","total_amount":"95.00","currency_code":"USD","placed_at":"2026-06-01T12:00:00Z","financial_status":"paid","fulfillment_status":"fulfilled","shipment_status":"delivered","customer_id":"ext-42","total_items":2,"accepts_email_marketing":true,"accepts_sms_marketing":true,"created_at":"2026-06-01T12:00:05Z","updated_at":"2026-06-02T09:14:00Z"}},"examples":{"Example":{"title":"Example","value":{"data":{"order_id":1001,"source":"api","email":"buyer@example.com","phone":"+12025550123","total_amount":"95.00","currency_code":"USD","placed_at":"2026-06-01T12:00:00Z","financial_status":"paid","fulfillment_status":"fulfilled","shipment_status":"delivered","customer_id":"ext-42","total_items":2,"accepts_email_marketing":true,"accepts_sms_marketing":true,"created_at":"2026-06-01T12:00:05Z","updated_at":"2026-06-02T09:14:00Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"18ae3431-8180-43e2-b4de-dc6d364d6623":{"description":"Order created.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","description":"An order as persisted. Echoes back the fields you sent\n(column-backed fields normalized, the rest verbatim).\nEmpty values are omitted from the response.\n","properties":{"order_id":{"type":"integer","format":"int64","description":"Your order identifier, echoed back. The only public identifier for the order.","example":1001,"uniqueKey":"data.order_id","typeLabel":"integer\u003cint64>"},"source":{"type":"string","example":"api","uniqueKey":"data.source","typeLabel":"string"},"email":{"type":"string","format":"email","example":"buyer@example.com","uniqueKey":"data.email","typeLabel":"string\u003cemail>"},"phone":{"type":"string","description":"Normalized to E.164.","example":"+12025550123","uniqueKey":"data.phone","typeLabel":"string"},"total_amount":{"type":"string","description":"Order grand total, as a decimal string.","example":"95.00","uniqueKey":"data.total_amount","typeLabel":"string"},"currency_code":{"type":"string","example":"USD","uniqueKey":"data.currency_code","typeLabel":"string"},"placed_at":{"type":"string","format":"date-time","example":"2026-06-01T12:00:00Z","uniqueKey":"data.placed_at","typeLabel":"string\u003cdate-time>"},"financial_status":{"type":"string","description":"Payment status of the order, using Shopify's order financial-status vocabulary. Absent when\nno payment status was recorded for the order.\n","example":"paid","uniqueKey":"data.financial_status","typeLabel":"string"},"fulfillment_status":{"type":"string","description":"The order's overall fulfillment state — where the order sits in the store's fulfillment\nprocess. Delivery-based flow triggers key off `shipment_status`, not this field.\n","example":"fulfilled","uniqueKey":"data.fulfillment_status","typeLabel":"string"},"shipment_status":{"type":"string","description":"Carrier delivery status of the shipment — where the parcel is. Privy acts on this field:\nwhen it becomes `delivered`, the contact's \"Order Received\" flows start.\n","example":"in_transit","uniqueKey":"data.shipment_status","typeLabel":"string"},"customer_id":{"oneOf":[{"type":"string","description":"The customer identifier reported with the order, echoed back as sent.\n","example":"ext-42","uniqueKey":"data.customer_id.oneOf.0","typeLabel":"string"},{"type":"integer","description":"The customer identifier reported with the order, echoed back as sent.\n","example":"ext-42","uniqueKey":"data.customer_id.oneOf.1","typeLabel":"integer"}],"uniqueKey":"data.customer_id","typeLabel":"string | integer"},"subtotal":{"type":"number","example":90,"uniqueKey":"data.subtotal","typeLabel":"number"},"discounts":{"type":"array","items":{"type":"object","description":"A discount applied to the order. Stored and echoed back verbatim.","additionalProperties":true,"properties":{"code":{"oneOf":[{"type":"string","example":"SAVE10","uniqueKey":"data.discounts.items.[INDEX].code.oneOf.0","typeLabel":"string"},{"type":"null","example":"SAVE10","uniqueKey":"data.discounts.items.[INDEX].code.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.discounts.items.[INDEX].code","typeLabel":"string | null"},"amount":{"oneOf":[{"type":"number","example":10,"uniqueKey":"data.discounts.items.[INDEX].amount.oneOf.0","typeLabel":"number"},{"type":"null","example":10,"uniqueKey":"data.discounts.items.[INDEX].amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.discounts.items.[INDEX].amount","typeLabel":"number | null"}},"uniqueKey":"data.discounts.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.discounts","typeLabel":"object[]"},"tax_lines":{"type":"array","items":{"type":"object","description":"A tax line on the order. Stored and echoed back verbatim.","additionalProperties":true,"properties":{"title":{"oneOf":[{"type":"string","example":"VAT","uniqueKey":"data.tax_lines.items.[INDEX].title.oneOf.0","typeLabel":"string"},{"type":"null","example":"VAT","uniqueKey":"data.tax_lines.items.[INDEX].title.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.tax_lines.items.[INDEX].title","typeLabel":"string | null"},"amount":{"oneOf":[{"type":"number","example":5,"uniqueKey":"data.tax_lines.items.[INDEX].amount.oneOf.0","typeLabel":"number"},{"type":"null","example":5,"uniqueKey":"data.tax_lines.items.[INDEX].amount.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.tax_lines.items.[INDEX].amount","typeLabel":"number | null"}},"uniqueKey":"data.tax_lines.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.tax_lines","typeLabel":"object[]"},"total_items":{"type":"integer","example":2,"uniqueKey":"data.total_items","typeLabel":"integer"},"line_items":{"type":"array","items":{"type":"object","description":"A product line on the order. Stored and echoed back verbatim.","additionalProperties":true,"properties":{"product_id":{"oneOf":[{"type":"string","example":"prod_305","uniqueKey":"data.line_items.items.[INDEX].product_id.oneOf.0","typeLabel":"string"},{"type":"number","example":"prod_305","uniqueKey":"data.line_items.items.[INDEX].product_id.oneOf.1","typeLabel":"number"}],"uniqueKey":"data.line_items.items.[INDEX].product_id","typeLabel":"string | number"},"variant_id":{"oneOf":[{"type":"string","example":"var_305","uniqueKey":"data.line_items.items.[INDEX].variant_id.oneOf.0","typeLabel":"string"},{"type":"number","example":"var_305","uniqueKey":"data.line_items.items.[INDEX].variant_id.oneOf.1","typeLabel":"number"}],"uniqueKey":"data.line_items.items.[INDEX].variant_id","typeLabel":"string | number"},"sku":{"oneOf":[{"type":"string","example":"SKU-1","uniqueKey":"data.line_items.items.[INDEX].sku.oneOf.0","typeLabel":"string"},{"type":"null","example":"SKU-1","uniqueKey":"data.line_items.items.[INDEX].sku.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.line_items.items.[INDEX].sku","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","example":"Sample Product","uniqueKey":"data.line_items.items.[INDEX].title.oneOf.0","typeLabel":"string"},{"type":"null","example":"Sample Product","uniqueKey":"data.line_items.items.[INDEX].title.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.line_items.items.[INDEX].title","typeLabel":"string | null"},"quantity":{"oneOf":[{"type":"integer","example":2,"uniqueKey":"data.line_items.items.[INDEX].quantity.oneOf.0","typeLabel":"integer"},{"type":"null","example":2,"uniqueKey":"data.line_items.items.[INDEX].quantity.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.line_items.items.[INDEX].quantity","typeLabel":"integer | null"},"price":{"oneOf":[{"type":"string","description":"Unit price for the line, echoed back as sent.\n","example":45,"uniqueKey":"data.line_items.items.[INDEX].price.oneOf.0","typeLabel":"string"},{"type":"number","description":"Unit price for the line, echoed back as sent.\n","example":45,"uniqueKey":"data.line_items.items.[INDEX].price.oneOf.1","typeLabel":"number"},{"type":"null","description":"Unit price for the line, echoed back as sent.\n","example":45,"uniqueKey":"data.line_items.items.[INDEX].price.oneOf.2","typeLabel":"null"}],"uniqueKey":"data.line_items.items.[INDEX].price","typeLabel":"string | number | null"}},"uniqueKey":"data.line_items.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.line_items","typeLabel":"object[]"},"billing_address":{"type":"object","description":"A billing or shipping address. Stored and echoed back verbatim.\nWhen a new contact is created, its name is taken from the address —\nshipping first, billing as fallback — using `first_name`/`last_name`,\nor a single `name` field split on whitespace.\n","additionalProperties":true,"properties":{"first_name":{"oneOf":[{"type":"string","example":"Jane","uniqueKey":"data.billing_address.first_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Jane","uniqueKey":"data.billing_address.first_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","example":"Shopper","uniqueKey":"data.billing_address.last_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Shopper","uniqueKey":"data.billing_address.last_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.last_name","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"Full name; used when `first_name`/`last_name` are absent.","example":"Jane Shopper","uniqueKey":"data.billing_address.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Full name; used when `first_name`/`last_name` are absent.","example":"Jane Shopper","uniqueKey":"data.billing_address.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.name","typeLabel":"string | null"},"address1":{"oneOf":[{"type":"string","example":"123 Main St","uniqueKey":"data.billing_address.address1.oneOf.0","typeLabel":"string"},{"type":"null","example":"123 Main St","uniqueKey":"data.billing_address.address1.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.address1","typeLabel":"string | null"},"address2":{"oneOf":[{"type":"string","example":"Apt 101","uniqueKey":"data.billing_address.address2.oneOf.0","typeLabel":"string"},{"type":"null","example":"Apt 101","uniqueKey":"data.billing_address.address2.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.address2","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","example":"Boston","uniqueKey":"data.billing_address.city.oneOf.0","typeLabel":"string"},{"type":"null","example":"Boston","uniqueKey":"data.billing_address.city.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.city","typeLabel":"string | null"},"state_code":{"oneOf":[{"type":"string","example":"MA","uniqueKey":"data.billing_address.state_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"MA","uniqueKey":"data.billing_address.state_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.state_code","typeLabel":"string | null"},"country_code":{"oneOf":[{"type":"string","example":"US","uniqueKey":"data.billing_address.country_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"US","uniqueKey":"data.billing_address.country_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.country_code","typeLabel":"string | null"},"postal_code":{"oneOf":[{"type":"string","example":"02118","uniqueKey":"data.billing_address.postal_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"02118","uniqueKey":"data.billing_address.postal_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.billing_address.postal_code","typeLabel":"string | null"}},"uniqueKey":"data.billing_address","typeLabel":"object"},"shipping_address":{"type":"object","description":"A billing or shipping address. Stored and echoed back verbatim.\nWhen a new contact is created, its name is taken from the address —\nshipping first, billing as fallback — using `first_name`/`last_name`,\nor a single `name` field split on whitespace.\n","additionalProperties":true,"properties":{"first_name":{"oneOf":[{"type":"string","example":"Jane","uniqueKey":"data.shipping_address.first_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Jane","uniqueKey":"data.shipping_address.first_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","example":"Shopper","uniqueKey":"data.shipping_address.last_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Shopper","uniqueKey":"data.shipping_address.last_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.last_name","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"Full name; used when `first_name`/`last_name` are absent.","example":"Jane Shopper","uniqueKey":"data.shipping_address.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Full name; used when `first_name`/`last_name` are absent.","example":"Jane Shopper","uniqueKey":"data.shipping_address.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.name","typeLabel":"string | null"},"address1":{"oneOf":[{"type":"string","example":"123 Main St","uniqueKey":"data.shipping_address.address1.oneOf.0","typeLabel":"string"},{"type":"null","example":"123 Main St","uniqueKey":"data.shipping_address.address1.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.address1","typeLabel":"string | null"},"address2":{"oneOf":[{"type":"string","example":"Apt 101","uniqueKey":"data.shipping_address.address2.oneOf.0","typeLabel":"string"},{"type":"null","example":"Apt 101","uniqueKey":"data.shipping_address.address2.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.address2","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","example":"Boston","uniqueKey":"data.shipping_address.city.oneOf.0","typeLabel":"string"},{"type":"null","example":"Boston","uniqueKey":"data.shipping_address.city.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.city","typeLabel":"string | null"},"state_code":{"oneOf":[{"type":"string","example":"MA","uniqueKey":"data.shipping_address.state_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"MA","uniqueKey":"data.shipping_address.state_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.state_code","typeLabel":"string | null"},"country_code":{"oneOf":[{"type":"string","example":"US","uniqueKey":"data.shipping_address.country_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"US","uniqueKey":"data.shipping_address.country_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.country_code","typeLabel":"string | null"},"postal_code":{"oneOf":[{"type":"string","example":"02118","uniqueKey":"data.shipping_address.postal_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"02118","uniqueKey":"data.shipping_address.postal_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shipping_address.postal_code","typeLabel":"string | null"}},"uniqueKey":"data.shipping_address","typeLabel":"object"},"accepts_email_marketing":{"type":"boolean","description":"The email marketing opt-in reported with the order, echoed back as sent. It records what\nthe order said, not the contact's consent now — read that from the contact's\n`email_consent`.\n","example":true,"uniqueKey":"data.accepts_email_marketing","typeLabel":"boolean"},"accepts_sms_marketing":{"type":"boolean","description":"The SMS marketing opt-in reported with the order, echoed back as sent. As with\n`accepts_email_marketing`, the contact's current consent lives on the contact\n(`sms_consent`), not here.\n","example":true,"uniqueKey":"data.accepts_sms_marketing","typeLabel":"boolean"},"integration":{"type":"object","description":"The Custom Integration the order is tied to. Present only when the order was attributed to an integration\n(via the `X-Privy-Integration-Token` header or auto-tie).\n","properties":{"store_name":{"type":"string","example":"My Store","uniqueKey":"data.integration.store_name","typeLabel":"string"},"store_url":{"type":"string","example":"https://mystore.example.com","uniqueKey":"data.integration.store_url","typeLabel":"string"}},"uniqueKey":"data.integration","typeLabel":"object"},"created_at":{"type":"string","format":"date-time","example":"2026-06-01T12:00:05Z","uniqueKey":"data.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","example":"2026-06-01T12:00:05Z","uniqueKey":"data.updated_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":{"order_id":1001,"source":"api","email":"buyer@example.com","phone":"+12025550123","total_amount":"95.00","currency_code":"USD","placed_at":"2026-06-01T12:00:00Z","financial_status":"paid","fulfillment_status":"fulfilled","shipment_status":"delivered","customer_id":"ext-42","total_items":2,"accepts_email_marketing":true,"accepts_sms_marketing":true,"integration":{"store_name":"My Store","store_url":"https://mystore.example.com"},"created_at":"2026-06-01T12:00:05Z","updated_at":"2026-06-01T12:00:05Z"}},"examples":{"Example":{"title":"Example","value":{"data":{"order_id":1001,"source":"api","email":"buyer@example.com","phone":"+12025550123","total_amount":"95.00","currency_code":"USD","placed_at":"2026-06-01T12:00:00Z","financial_status":"paid","fulfillment_status":"fulfilled","shipment_status":"delivered","customer_id":"ext-42","total_items":2,"accepts_email_marketing":true,"accepts_sms_marketing":true,"integration":{"store_name":"My Store","store_url":"https://mystore.example.com"},"created_at":"2026-06-01T12:00:05Z","updated_at":"2026-06-01T12:00:05Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"30a944e3-5487-4c6c-9425-8c9d5763aa1a":{"description":"The request body is not valid JSON.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_client","invalid_scope","unauthorized","insufficient_scope","forbidden","paid_plan_required","api_access_required","segment_builder_required","not_found","no_connected_store","conflict","contacts_not_ready","validation_failed","idempotency_key_reused","rate_limited","store_unavailable","store_rate_limited","not_a_draft","design_changed","sms_missing","email_missing","ab_test_draft","idempotency_key_reused","template_unavailable","design_unavailable","render_failed"],"example":"validation_failed","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"One or more fields are invalid","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","example":"email","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","example":"is required","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"malformed_json","message":"The request body is not valid JSON."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"malformed_json","message":"The request body is not valid JSON."}}}},"exampleType":"examples"}},"exampleType":"examples"},"cc07ff4f-65e4-4db9-aacf-6ecda7b24636":{"description":"Missing or invalid bearer token.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_client","invalid_scope","unauthorized","insufficient_scope","forbidden","paid_plan_required","api_access_required","segment_builder_required","not_found","no_connected_store","conflict","contacts_not_ready","validation_failed","idempotency_key_reused","rate_limited","store_unavailable","store_rate_limited","not_a_draft","design_changed","sms_missing","email_missing","ab_test_draft","idempotency_key_reused","template_unavailable","design_unavailable","render_failed"],"example":"validation_failed","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"One or more fields are invalid","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","example":"email","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","example":"is required","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"unauthorized","message":"Bearer token is missing or invalid"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"unauthorized","message":"Bearer token is missing or invalid"}}}},"exampleType":"examples"}},"exampleType":"examples"},"8968e319-e632-4200-8283-08db73c5544f":{"description":"`insufficient_scope` when the token lacks the required scope for this endpoint.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_client","invalid_scope","unauthorized","insufficient_scope","forbidden","paid_plan_required","api_access_required","segment_builder_required","not_found","no_connected_store","conflict","contacts_not_ready","validation_failed","idempotency_key_reused","rate_limited","store_unavailable","store_rate_limited","not_a_draft","design_changed","sms_missing","email_missing","ab_test_draft","idempotency_key_reused","template_unavailable","design_unavailable","render_failed"],"example":"validation_failed","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"One or more fields are invalid","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","example":"email","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","example":"is required","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"insufficient_scope","message":"Token does not have the required scope"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"insufficient_scope","message":"Token does not have the required scope"}}}},"exampleType":"examples"}},"exampleType":"examples"},"9d60219c-0cf6-4002-8150-eccdb8393ddd":{"description":"One or more fields failed validation.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_client","invalid_scope","unauthorized","insufficient_scope","forbidden","paid_plan_required","api_access_required","segment_builder_required","not_found","no_connected_store","conflict","contacts_not_ready","validation_failed","idempotency_key_reused","rate_limited","store_unavailable","store_rate_limited","not_a_draft","design_changed","sms_missing","email_missing","ab_test_draft","idempotency_key_reused","template_unavailable","design_unavailable","render_failed"],"example":"validation_failed","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"One or more fields are invalid","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","example":"email","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","example":"is required","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"validation_failed","message":"One or more fields are invalid","details":[{"field":"email","message":"is required"}]}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"validation_failed","message":"One or more fields are invalid","details":[{"field":"email","message":"is required"}]}}}},"exampleType":"examples"}},"exampleType":"examples"},"1f675548-8520-48f8-bb37-63e390c75db0":{"description":"Rate limit exceeded. Retry after the specified time.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"},"example":42},"X-RateLimit-Limit-Minute":{"description":"Maximum requests allowed per minute.","schema":{"type":"integer"},"example":60},"X-RateLimit-Remaining-Minute":{"description":"Requests remaining in the current minute window.","schema":{"type":"integer"},"example":0},"X-RateLimit-Reset-Minute":{"description":"Unix timestamp when the minute window resets.","schema":{"type":"integer"},"example":1711929600},"X-RateLimit-Limit-Day":{"description":"Maximum requests allowed per day.","schema":{"type":"integer"},"example":10000},"X-RateLimit-Remaining-Day":{"description":"Requests remaining in the current day window.","schema":{"type":"integer"},"example":9500},"X-RateLimit-Reset-Day":{"description":"Unix timestamp when the day window resets.","schema":{"type":"integer"},"example":1712016000}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_client","invalid_scope","unauthorized","insufficient_scope","forbidden","paid_plan_required","api_access_required","segment_builder_required","not_found","no_connected_store","conflict","contacts_not_ready","validation_failed","idempotency_key_reused","rate_limited","store_unavailable","store_rate_limited","not_a_draft","design_changed","sms_missing","email_missing","ab_test_draft","idempotency_key_reused","template_unavailable","design_unavailable","render_failed"],"example":"validation_failed","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"One or more fields are invalid","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","example":"email","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","example":"is required","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"rate_limited","message":"Rate limit exceeded"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"rate_limited","message":"Rate limit exceeded"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"6f31646e-109b-4de2-89d2-76c48971c49c":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API token or OAuth access token","description":"Send either an API token or an OAuth access token as\n`Authorization: Bearer \u003ctoken>`. See the Authentication page for details.\n","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"97f63e03-f020-41b7-a5b9-e312bbfed47d":{"url":"https://api.privy.com/v1","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"API token or OAuth access token","description":"Send either an API token or an OAuth access token as\n`Authorization: Bearer \u003ctoken>`. See the Authentication page for details.\n","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Send either an API token or an OAuth access token as\n`Authorization: Bearer \u003ctoken>`. See the Authentication page for details.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi/privy-api.yaml"},"subdomain":"privy","siteName":"Privy Knowledge Base","title":"Order placed - Privy Knowledge Base","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-05T23:40:26.964Z","originalFileLocation":"docs/api-reference/order-placed.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Report an order placed in your store. This is an idempotent upsert keyed on order_id: the first call for an order_id creates the order and returns 201 Created; subsequent calls with the same order_id update it and return 200 OK. The order carries the full current state each time — omitted optional fields keep their previously stored value. The order is associated to a contact by email (or, when no email is sent, by phone), creating the contact if needed. accepts_email_marketing and accepts_sms_marketing drive the contact\u0026#x27;s marketing consent — see the field descriptions for the exact semantics. Optionally send the X-Privy-Integration-Token header to tie the order to a specific Custom Integration (see the header parameter below). Required scope: orders_write\">\u003cmeta data-mint-head name=\"application-name\" content=\"Privy Knowledge Base\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/privy/fvbglk3MPcKWjtyG/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/privy/fvbglk3MPcKWjtyG/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/privy/fvbglk3MPcKWjtyG/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/privy/fvbglk3MPcKWjtyG/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/privy/fvbglk3MPcKWjtyG/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/privy/fvbglk3MPcKWjtyG/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/privy/fvbglk3MPcKWjtyG/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/privy/fvbglk3MPcKWjtyG/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/privy/fvbglk3MPcKWjtyG/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Order placed - Privy Knowledge Base\">\u003cmeta data-mint-head property=\"og:description\" content=\"Report an order placed in your store. This is an idempotent upsert keyed on order_id: the first call for an order_id creates the order and returns 201 Created; subsequent calls with the same order_id update it and return 200 OK. The order carries the full current state each time — omitted optional fields keep their previously stored value. The order is associated to a contact by email (or, when no email is sent, by phone), creating the contact if needed. accepts_email_marketing and accepts_sms_marketing drive the contact\u0026#x27;s marketing consent — see the field descriptions for the exact semantics. Optionally send the X-Privy-Integration-Token header to tie the order to a specific Custom Integration (see the header parameter below). Required scope: orders_write\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Privy Knowledge Base\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://help.privy.com/docs/api-reference/order-placed\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://privy.mintlify.site/_mintlify/api/og/v2?division=Orders\u0026amp;title=Order+placed\u0026amp;description=Report+an+order+placed+in+your+store.%0A%0AThis+is+an+**idempotent+upsert**+keyed+on+%60order_id%60%3A%0Athe+first+call+for+an+%60order_id%60+creates+the+order+and+returns+%60201\u0026amp;theme=a5dbdd3119e247d04186b21c\u0026amp;signature=8accff37a2e081f4310eb2a54376ca6d76d49e165fd3b8743cd1c9d730ad905b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Order placed - Privy Knowledge Base\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Report an order placed in your store. This is an idempotent upsert keyed on order_id: the first call for an order_id creates the order and returns 201 Created; subsequent calls with the same order_id update it and return 200 OK. The order carries the full current state each time — omitted optional fields keep their previously stored value. The order is associated to a contact by email (or, when no email is sent, by phone), creating the contact if needed. accepts_email_marketing and accepts_sms_marketing drive the contact\u0026#x27;s marketing consent — see the field descriptions for the exact semantics. Optionally send the X-Privy-Integration-Token header to tie the order to a specific Custom Integration (see the header parameter below). Required scope: orders_write\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://privy.mintlify.site/_mintlify/api/og/v2?division=Orders\u0026amp;title=Order+placed\u0026amp;description=Report+an+order+placed+in+your+store.%0A%0AThis+is+an+**idempotent+upsert**+keyed+on+%60order_id%60%3A%0Athe+first+call+for+an+%60order_id%60+creates+the+order+and+returns+%60201\u0026amp;theme=a5dbdd3119e247d04186b21c\u0026amp;signature=8accff37a2e081f4310eb2a54376ca6d76d49e165fd3b8743cd1c9d730ad905b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/privy/fvbglk3MPcKWjtyG/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Privy Knowledge Base\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#254E5A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://help.privy.com/docs/api-reference/order-placed\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/order-placed.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://help.privy.com/#organization\",\"name\":\"Privy Knowledge Base\",\"url\":\"https://help.privy.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/privy/fGrkZt933tBjY_zl/logo/light.svg?fit=max\u0026auto=format\u0026n=fGrkZt933tBjY_zl\u0026q=85\u0026s=36a01db426b7c94fac423778765cd517\"}},{\"@type\":\"WebSite\",\"@id\":\"https://help.privy.com#website\",\"name\":\"Privy Knowledge Base\",\"url\":\"https://help.privy.com\",\"publisher\":{\"@id\":\"https://help.privy.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://help.privy.com/docs/api-reference/order-placed#webpage\",\"url\":\"https://help.privy.com/docs/api-reference/order-placed\",\"name\":\"Order placed\",\"description\":\"Report an order placed in your store. This is an idempotent upsert keyed on order_id: the first call for an order_id creates the order and returns 201 Created; subsequent calls with the same order_id update it and return 200 OK. The order carries the full current state each time — omitted optional fields keep their previously stored value. The order is associated to a contact by email (or, when no email is sent, by phone), creating the contact if needed. accepts_email_marketing and accepts_sms_marketing drive the contact's marketing consent — see the field descriptions for the exact semantics. Optionally send the X-Privy-Integration-Token header to tie the order to a specific Custom Integration (see the header parameter below). Required scope: orders_write\",\"dateModified\":\"2026-08-05T23:40:26.964Z\",\"isPartOf\":{\"@id\":\"https://help.privy.com#website\"},\"breadcrumb\":{\"@id\":\"https://help.privy.com/docs/api-reference/order-placed#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://help.privy.com/docs/api-reference/order-placed#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Privy Knowledge Base\",\"item\":\"https://help.privy.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Order placed\",\"item\":\"https://help.privy.com/docs/api-reference/order-placed\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://help.privy.com/docs/api-reference/order-placed#apireference\",\"headline\":\"Order placed\",\"name\":\"Order placed\",\"description\":\"Report an order placed in your store. This is an idempotent upsert keyed on order_id: the first call for an order_id creates the order and returns 201 Created; subsequent calls with the same order_id update it and return 200 OK. The order carries the full current state each time — omitted optional fields keep their previously stored value. The order is associated to a contact by email (or, when no email is sent, by phone), creating the contact if needed. accepts_email_marketing and accepts_sms_marketing drive the contact's marketing consent — see the field descriptions for the exact semantics. Optionally send the X-Privy-Integration-Token header to tie the order to a specific Custom Integration (see the header parameter below). Required scope: orders_write\",\"url\":\"https://help.privy.com/docs/api-reference/order-placed\",\"mainEntityOfPage\":{\"@id\":\"https://help.privy.com/docs/api-reference/order-placed#webpage\"},\"dateModified\":\"2026-08-05T23:40:26.964Z\",\"publisher\":{\"@id\":\"https://help.privy.com/#organization\"},\"isPartOf\":{\"@id\":\"https://help.privy.com#website\"}}]}\u003c/script>","agentPointerHref":"/docs/api-reference/order-placed.md","siteName":"Privy Knowledge Base","nav":{"global":null,"tabs":[{"tab":"Learn","icon":"house","pages":[{"title":"Learn","href":"/docs/learn/home"}]},{"tab":"Developer","icon":"square-terminal","groups":[{"group":"API Reference","pages":[{"title":"API Overview","sidebarTitle":"Overview","icon":"book-open","href":"/docs/api-reference/overview"},{"title":"Authentication","sidebarTitle":"Authentication","icon":"lock","href":"/docs/api-reference/authentication"},{"title":"API Tokens","sidebarTitle":"API Tokens","icon":"key","href":"/docs/api-reference/api-tokens"},{"title":"Rate Limits","sidebarTitle":"Rate Limits","icon":"gauge","href":"/docs/api-reference/rate-limits"},{"title":"Errors","sidebarTitle":"Errors","icon":"triangle-exclamation","href":"/docs/api-reference/errors"},{"title":"API Changelog","sidebarTitle":"Changelog","icon":"clock-rotate-left","href":"/docs/api-reference/changelog"}]},{"group":"Account","pages":[{"title":"Get account","openapi":"openapi/privy-api.yaml GET /account","href":"/docs/api-reference/get-account"},{"title":"Get account setup","openapi":"openapi/privy-api.yaml GET /account/setup","href":"/docs/api-reference/get-account-setup"}]},{"group":"Contacts","pages":[{"title":"List contacts","openapi":"openapi/privy-api.yaml GET /contacts","href":"/docs/api-reference/list-contacts"},{"title":"Get a contact","openapi":"openapi/privy-api.yaml GET /contacts/{id}","href":"/docs/api-reference/get-contact"},{"title":"Create a contact","openapi":"openapi/privy-api.yaml POST /contacts","href":"/docs/api-reference/create-contact"},{"title":"Update a contact","openapi":"openapi/privy-api.yaml PATCH /contacts/{id}","href":"/docs/api-reference/update-contact"},{"title":"Delete a contact","openapi":"openapi/privy-api.yaml DELETE /contacts/{id}","href":"/docs/api-reference/delete-contact"},{"title":"List a contact's activity","openapi":"openapi/privy-api.yaml GET /contacts/{id}/events","href":"/docs/api-reference/list-contact-activity"}]},{"group":"Imports","pages":[{"title":"List contact imports","openapi":"openapi/privy-api.yaml GET /imports","href":"/docs/api-reference/list-imports"},{"title":"Get a contact import","openapi":"openapi/privy-api.yaml GET /imports/{id}","href":"/docs/api-reference/get-import"}]},{"group":"Tags","pages":[{"title":"List tags","openapi":"openapi/privy-api.yaml GET /tags","href":"/docs/api-reference/list-tags"},{"title":"Get a tag","openapi":"openapi/privy-api.yaml GET /tags/{id}","href":"/docs/api-reference/get-tag"}]},{"group":"Campaigns","pages":[{"title":"List campaigns","openapi":"openapi/privy-api.yaml GET /campaigns","href":"/docs/api-reference/list-campaigns"},{"title":"Get a campaign","openapi":"openapi/privy-api.yaml GET /campaigns/{id}","href":"/docs/api-reference/get-campaign"}]},{"group":"Displays","pages":[{"title":"List displays","openapi":"openapi/privy-api.yaml GET /displays","href":"/docs/api-reference/list-displays"},{"title":"Get a display","openapi":"openapi/privy-api.yaml GET /displays/{id}","href":"/docs/api-reference/get-display"}]},{"group":"Coupons","pages":[{"title":"List coupons","openapi":"openapi/privy-api.yaml GET /coupons","href":"/docs/api-reference/list-coupons"},{"title":"Get a coupon","openapi":"openapi/privy-api.yaml GET /coupons/{id}","href":"/docs/api-reference/get-coupon"},{"title":"Check a coupon code","openapi":"openapi/privy-api.yaml GET /coupons/{id}/codes/{code}","href":"/docs/api-reference/check-coupon-code"}]},{"group":"Reports","pages":[{"title":"Get business report summary","openapi":"openapi/privy-api.yaml GET /reports/summary","href":"/docs/api-reference/get-report-summary"},{"title":"List campaign performance","openapi":"openapi/privy-api.yaml GET /reports/campaigns","href":"/docs/api-reference/list-campaign-performance"},{"title":"Get campaign performance","openapi":"openapi/privy-api.yaml GET /reports/campaigns/{campaign_id}","href":"/docs/api-reference/get-campaign-performance"},{"title":"List flow performance","openapi":"openapi/privy-api.yaml GET /reports/flows","href":"/docs/api-reference/list-flow-performance"},{"title":"Get flow performance","openapi":"openapi/privy-api.yaml GET /reports/flows/{flow_id}","href":"/docs/api-reference/get-flow-performance"},{"title":"List display performance","openapi":"openapi/privy-api.yaml GET /reports/displays","href":"/docs/api-reference/list-display-performance"},{"title":"Get display performance","openapi":"openapi/privy-api.yaml GET /reports/displays/{display_id}","href":"/docs/api-reference/get-display-performance"},{"title":"List top products","openapi":"openapi/privy-api.yaml GET /reports/top_products","href":"/docs/api-reference/list-top-products"}]},{"group":"Flows","pages":[{"title":"List flows","openapi":"openapi/privy-api.yaml GET /flows","href":"/docs/api-reference/list-flows"},{"title":"Get a flow","openapi":"openapi/privy-api.yaml GET /flows/{id}","href":"/docs/api-reference/get-flow"}]},{"group":"Segments","pages":[{"title":"List segments","openapi":"openapi/privy-api.yaml GET /segments","href":"/docs/api-reference/list-segments"},{"title":"Get a segment","openapi":"openapi/privy-api.yaml GET /segments/{id}","href":"/docs/api-reference/get-segment"},{"title":"List a segment's contacts","openapi":"openapi/privy-api.yaml GET /segments/{id}/contacts","description":"Retrieve the segment's members as a paginated list of contacts, in the same shape as the\nContacts API, most recently created first.\n\nMembership is computed periodically, so the list may be up to an hour old (see\n`counts.refreshed_at` on the segment). If the segment's membership has **never** been computed,\nthis endpoint returns `202 Accepted`, starts the computation in the background, and you should\nretry shortly.\n\nEvery member is returned whatever their consent state, so `pagination.total_count` is the\nsegment's total membership, as its `total_count` was at the last refresh. It is neither the\nsegment's `mailable_count` nor its `textable_count` — those are consent-filtered counts taken\nat the last refresh.\n\n**Required scope:** `segments_read`\n","href":"/docs/api-reference/list-segment-contacts"}]},{"group":"Orders","pages":[{"title":"Order placed","openapi":"openapi/privy-api.yaml POST /orders/placed","href":"/docs/api-reference/order-placed"},{"title":"List orders","openapi":"openapi/privy-api.yaml GET /orders","description":"Retrieve a paginated list of your orders across every source (Shopify,\nBigCommerce, Weebly, Wix, and orders reported via this API), most recently created first.\n\nOrders imported before Privy began denormalizing order timestamps may be excluded when a date filter is applied.\n\nRows carry the full order shape, so no per-order follow-up is needed, and\nthe only filters are the placed-date ones — none by contact, email, or\nstatus.\n\n**Required scope:** `orders_read`\n","href":"/docs/api-reference/list-orders"},{"title":"Get an order","openapi":"openapi/privy-api.yaml GET /orders/{order_id}","href":"/docs/api-reference/get-order"}]},{"group":"Products","pages":[{"title":"List products","openapi":"openapi/privy-api.yaml GET /products","href":"/docs/api-reference/list-products"},{"title":"Get a product","openapi":"openapi/privy-api.yaml GET /products/{id}","href":"/docs/api-reference/get-product"},{"title":"List product collections","openapi":"openapi/privy-api.yaml GET /product_collections","href":"/docs/api-reference/list-product-collections"},{"title":"Get a product collection","openapi":"openapi/privy-api.yaml GET /product_collections/{id}","href":"/docs/api-reference/get-product-collection"},{"title":"List a collection's products","openapi":"openapi/privy-api.yaml GET /product_collections/{id}/products","href":"/docs/api-reference/list-collection-products"},{"title":"List a product's collections","openapi":"openapi/privy-api.yaml GET /products/{id}/collections","href":"/docs/api-reference/list-collections-for-product"}]},{"group":"Events","pages":[{"title":"Ingest an event","openapi":"openapi/privy-api.yaml POST /events","href":"/docs/api-reference/ingest-event"},{"title":"Send cart events from your storefront","sidebarTitle":"Browser events","href":"/docs/api-reference/browser-events"}]}]}]},"basePath":"","title":"Order placed - Privy Knowledge Base","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}