Queue GDPR customer redaction for a Loop Anywhere (Commerce Data) shop.
Shopify shops receive 403 and should keep using Shopify’s customers/redact
webhook.
Send at least one of customer.id, customer.email, or customer.external_id.
Send customer.id or customer.external_id, not both. Identifiers combine as
a union: when a customer id and an email are both sent, Loop redacts orders
that match the id plus orders that match the email. Optionally send
orders_to_redact or orders_to_redact_external (1–100 ids each, not both)
to narrow each of those matches to the listed orders.
customer.id and orders_to_redact are Loop Commerce Data global ids.
customer.external_id and orders_to_redact_external are merchant ids sent
at ingest.
Redaction anonymizes PII on matching Loop orders, returns, and Commerce
Data customers and orders. It is not a hard delete. After the jobs run,
GET /customers/{id} and GET /orders/{id} return the anonymized values.
DELETE /customers is not a substitute.
Auth: Public API key or OAuth with scope customers:write.
A 202{"accepted": true} means the job is queued asynchronously.
Shopify shops receive 403. Continue using Shopify’s customers/redact
webhook, which Loop already handles.
Delete Customer only removes
the Commerce Data catalog record. It is not a substitute for this GDPR
redaction. Redaction anonymizes PII; it is not a hard delete.
The endpoint returns 202{"accepted": true} and runs asynchronously.
After the jobs finish, the matched Commerce Data customer and orders are
anonymized, not deleted.
Get Customer and
Get Order then return the
anonymized values.A customer.id or customer.external_id for a deleted customer is accepted
(202) and that customer’s data is anonymized. A customer.id or
customer.external_id that does not resolve returns 404. An
orders_to_redact or orders_to_redact_external value that is unknown
or not owned by the supplied customer or email returns 202{"accepted": true} and is not redacted. An owned deleted order sent by
its original external id in orders_to_redact_external is redacted.These identifier rules decide which records are redacted (customer.id or
external_id, the email union, and orders_to_redact or
orders_to_redact_external, 1–100 ids each). An empty orders_to_redact or
orders_to_redact_external array returns 422. orders_to_redact and
orders_to_redact_external only redact orders the identified customer owns:
a core order whose customer or email matches, or a Commerce Data order
belonging to that customer, including when identified by email. Any other customer’s order id in the
list is ignored entirely, including its order-edit session data. If nothing
in the list is owned, no orders are redacted, and the customer record is
still anonymized.
Customer: first_name and last_name become gdpr; email becomes
{id}_gdpr@loopreturns.com, where {id} is an internal identifier; phone
becomes null.
Order: browser_ip and client_details_user_agent become null.
Shipping and billing address: name, first_name, last_name, address1,
city, and postal_code become gdpr; company, address2, and phone
become null; region, province_code, country, and country_code are
kept.
At least one of id, email, or external_id is required. Send id or external_id, not both. id or external_id plus email redacts the union of matching orders.
Merchant order ids, 1–100 inclusive. Narrows each customer match to these orders. Do not send with orders_to_redact. An owned deleted order sent by its original external id is redacted. An unknown or unowned value is not redacted.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Loop Returns Documentation","colors":{"primary":"#0672FF","light":"#FFFCF7","dark":"#000000"},"logo":{"light":"https://mintcdn.com/loopreturns/mWP1nZGNp75FiB-l/logo/loop-logo-lapis-charcoal.svg?fit=max\u0026auto=format\u0026n=mWP1nZGNp75FiB-l\u0026q=85\u0026s=5113cc3f8f2d70a65c2c774e471a13c4","dark":"https://mintcdn.com/loopreturns/mWP1nZGNp75FiB-l/logo/loop-logo-lapis-newsprint.svg?fit=max\u0026auto=format\u0026n=mWP1nZGNp75FiB-l\u0026q=85\u0026s=c2197689146b468c5df1b8581f091743"},"favicon":"https://mintcdn.com/loopreturns/mWP1nZGNp75FiB-l/favicon.svg?fit=max\u0026auto=format\u0026n=mWP1nZGNp75FiB-l\u0026q=85\u0026s=93b43e224efe823b43c6d1b9c45799f9","navbar":{"links":[{"href":"https://help.loopreturns.com","label":"Support"}],"primary":{"type":"button","label":"Request Demo","href":"https://www.loopreturns.com/book-a-demo-today/"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/loop-returns","instagram":"https://www.instagram.com/loopreturns"}},"fonts":{"heading":{"family":"ABC Ginto","weight":900,"source":"fonts/ABCGinto-Black.woff2","format":"woff2"},"body":{"family":"Matter","weight":400,"source":"fonts/Matter-Regular.woff2","format":"woff2"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"System Status","icon":"radar","href":"https://status.loopreturns.com"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"loopreturns","hasAudioNarration":false,"actualSubdomain":"loopreturns","customDomains":["docs.loopreturns.com"],"gitSource":{"type":"gitlab","owner":"loopreturns/documentation","repo":"public-api-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"projectId":67355043,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea6397763d711f84cf1805","collectionId":"25bee025-319e-4d27-8792-c80e52204873","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea6397763d711f84cf1805"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aeca26621aa22f79f8e3517","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"API Reference","count":174},{"language":"default","tag":"APIs","count":166},{"language":"default","tag":"Commerce Data","count":69},{"language":"default","tag":"Return Create","count":52},{"language":"default","tag":"Guides","count":30},{"language":"default","tag":"Products","count":17},{"language":"default","tag":"Webhook Reference","count":13},{"language":"default","tag":"Collections","count":12},{"language":"default","tag":"Orders","count":11},{"language":"default","tag":"MCP Server","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":"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":"vite-origin","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":"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":[],"page":{"pagePath":"api-reference/latest/customers/redact-customer","slug":"/api-reference/latest/customers/redact-customer","pageMetadata":{"title":"Redact Customer","openapi":"post /privacy/customer/redact","description":"Queue GDPR customer redaction for a Loop Anywhere (Commerce Data) shop.\nShopify shops receive `403` and should keep using Shopify's `customers/redact`\nwebhook.\n\nSend at least one of `customer.id`, `customer.email`, or `customer.external_id`.\nSend `customer.id` or `customer.external_id`, not both. Identifiers combine as\na union: when a customer id and an email are both sent, Loop redacts orders\nthat match the id plus orders that match the email. Optionally send\n`orders_to_redact` or `orders_to_redact_external` (1–100 ids each, not both)\nto narrow each of those matches to the listed orders.\n\n`customer.id` and `orders_to_redact` are Loop Commerce Data global ids.\n`customer.external_id` and `orders_to_redact_external` are merchant ids sent\nat ingest.\n\nRedaction anonymizes PII on matching Loop orders, returns, and Commerce\nData customers and orders. It is not a hard delete. After the jobs run,\n`GET /customers/{id}` and `GET /orders/{id}` return the anonymized values.\n`DELETE /customers` is not a substitute.\n\nAuth: Public API key or OAuth with scope `customers:write`.\nA `202` `{\"accepted\": true}` means the job is queued asynchronously.","href":"/api-reference/latest/customers/redact-customer"},"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 ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Queue GDPR customer redaction for a Loop Anywhere (Commerce Data) shop.\\nShopify shops receive \", _jsx(_components.code, {\n children: \"403\"\n }), \" and should keep using Shopify’s \", _jsx(_components.code, {\n children: \"customers/redact\"\n }), \"\\nwebhook.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Send at least one of \", _jsx(_components.code, {\n children: \"customer.id\"\n }), \", \", _jsx(_components.code, {\n children: \"customer.email\"\n }), \", or \", _jsx(_components.code, {\n children: \"customer.external_id\"\n }), \".\\nSend \", _jsx(_components.code, {\n children: \"customer.id\"\n }), \" or \", _jsx(_components.code, {\n children: \"customer.external_id\"\n }), \", not both. Identifiers combine as\\na union: when a customer id and an email are both sent, Loop redacts orders\\nthat match the id plus orders that match the email. Optionally send\\n\", _jsx(_components.code, {\n children: \"orders_to_redact\"\n }), \" or \", _jsx(_components.code, {\n children: \"orders_to_redact_external\"\n }), \" (1–100 ids each, not both)\\nto narrow each of those matches to the listed orders.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"customer.id\"\n }), \" and \", _jsx(_components.code, {\n children: \"orders_to_redact\"\n }), \" are Loop Commerce Data global ids.\\n\", _jsx(_components.code, {\n children: \"customer.external_id\"\n }), \" and \", _jsx(_components.code, {\n children: \"orders_to_redact_external\"\n }), \" are merchant ids sent\\nat ingest.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Redaction anonymizes PII on matching Loop orders, returns, and Commerce\\nData customers and orders. It is not a hard delete. After the jobs run,\\n\", _jsx(_components.code, {\n children: \"GET /customers/{id}\"\n }), \" and \", _jsx(_components.code, {\n children: \"GET /orders/{id}\"\n }), \" return the anonymized values.\\n\", _jsx(_components.code, {\n children: \"DELETE /customers\"\n }), \" is not a substitute.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Auth: Public API key or OAuth with scope \", _jsx(_components.code, {\n children: \"customers:write\"\n }), \".\\nA \", _jsx(_components.code, {\n children: \"202\"\n }), \" \", _jsx(_components.code, {\n children: \"{\\\"accepted\\\": true}\"\n }), \" means the job is queued asynchronously.\"]\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{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Note,Warning}=_components;if(!Note)_missingMdxReference(`Note`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Warning,{children:_jsxs(_components.p,{children:[`Shopify shops receive `,_jsx(_components.code,{children:`403`}),`. Continue using Shopify’s `,_jsx(_components.code,{children:`customers/redact`}),`\nwebhook, which Loop already handles.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/api-reference/latest/customers/delete-customer`,children:`Delete Customer`}),` only removes\nthe Commerce Data catalog record. It is not a substitute for this GDPR\nredaction. Redaction anonymizes PII; it is not a hard delete.`]})}),`\n`,_jsxs(_components.p,{children:[`The endpoint returns `,_jsx(_components.code,{children:`202`}),` `,_jsx(_components.code,{children:`{\"accepted\": true}`}),` and runs asynchronously.\nAfter the jobs finish, the matched Commerce Data customer and orders are\nanonymized, not deleted.\n`,_jsx(_components.a,{href:`/api-reference/latest/customers/get-customer`,children:`Get Customer`}),` and\n`,_jsx(_components.a,{href:`/api-reference/latest/orders/get-order`,children:`Get Order`}),` then return the\nanonymized values.`]}),`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`customer.id`}),` or `,_jsx(_components.code,{children:`customer.external_id`}),` for a deleted customer is accepted\n(`,_jsx(_components.code,{children:`202`}),`) and that customer’s data is anonymized. A `,_jsx(_components.code,{children:`customer.id`}),` or\n`,_jsx(_components.code,{children:`customer.external_id`}),` that does not resolve returns `,_jsx(_components.code,{children:`404`}),`. An\n`,_jsx(_components.code,{children:`orders_to_redact`}),` or `,_jsx(_components.code,{children:`orders_to_redact_external`}),` value that is unknown\nor not owned by the supplied customer or email returns `,_jsx(_components.code,{children:`202`}),`\n`,_jsx(_components.code,{children:`{\"accepted\": true}`}),` and is not redacted. An owned deleted order sent by\nits original external id in `,_jsx(_components.code,{children:`orders_to_redact_external`}),` is redacted.`]}),`\n`,_jsxs(_components.p,{children:[`These identifier rules decide which records are redacted (`,_jsx(_components.code,{children:`customer.id`}),` or\n`,_jsx(_components.code,{children:`external_id`}),`, the email union, and `,_jsx(_components.code,{children:`orders_to_redact`}),` or\n`,_jsx(_components.code,{children:`orders_to_redact_external`}),`, 1–100 ids each). An empty `,_jsx(_components.code,{children:`orders_to_redact`}),` or\n`,_jsx(_components.code,{children:`orders_to_redact_external`}),` array returns `,_jsx(_components.code,{children:`422`}),`. `,_jsx(_components.code,{children:`orders_to_redact`}),` and\n`,_jsx(_components.code,{children:`orders_to_redact_external`}),` only redact orders the identified customer owns:\na core order whose customer or email matches, or a Commerce Data order\nbelonging to that customer, including when identified by email. Any other customer’s order id in the\nlist is ignored entirely, including its order-edit session data. If nothing\nin the list is owned, no orders are redacted, and the customer record is\nstill anonymized.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Customer: `,_jsx(_components.code,{children:`first_name`}),` and `,_jsx(_components.code,{children:`last_name`}),` become `,_jsx(_components.code,{children:`gdpr`}),`; `,_jsx(_components.code,{children:`email`}),` becomes\n`,_jsx(_components.code,{children:`{id}_gdpr@loopreturns.com`}),`, where `,_jsx(_components.code,{children:`{id}`}),` is an internal identifier; `,_jsx(_components.code,{children:`phone`}),`\nbecomes `,_jsx(_components.code,{children:`null`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Order: `,_jsx(_components.code,{children:`browser_ip`}),` and `,_jsx(_components.code,{children:`client_details_user_agent`}),` become `,_jsx(_components.code,{children:`null`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Shipping and billing address: `,_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.code,{children:`first_name`}),`, `,_jsx(_components.code,{children:`last_name`}),`, `,_jsx(_components.code,{children:`address1`}),`,\n`,_jsx(_components.code,{children:`city`}),`, and `,_jsx(_components.code,{children:`postal_code`}),` become `,_jsx(_components.code,{children:`gdpr`}),`; `,_jsx(_components.code,{children:`company`}),`, `,_jsx(_components.code,{children:`address2`}),`, and `,_jsx(_components.code,{children:`phone`}),`\nbecome `,_jsx(_components.code,{children:`null`}),`; `,_jsx(_components.code,{children:`region`}),`, `,_jsx(_components.code,{children:`province_code`}),`, `,_jsx(_components.code,{children:`country`}),`, and `,_jsx(_components.code,{children:`country_code`}),` are\nkept.`]}),`\n`]})]})}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":"Redact Customer","openapi":"post /privacy/customer/redact","description":"Queue GDPR customer redaction for a Loop Anywhere (Commerce Data) shop.\nShopify shops receive `403` and should keep using Shopify's `customers/redact`\nwebhook.\n\nSend at least one of `customer.id`, `customer.email`, or `customer.external_id`.\nSend `customer.id` or `customer.external_id`, not both. Identifiers combine as\na union: when a customer id and an email are both sent, Loop redacts orders\nthat match the id plus orders that match the email. Optionally send\n`orders_to_redact` or `orders_to_redact_external` (1–100 ids each, not both)\nto narrow each of those matches to the listed orders.\n\n`customer.id` and `orders_to_redact` are Loop Commerce Data global ids.\n`customer.external_id` and `orders_to_redact_external` are merchant ids sent\nat ingest.\n\nRedaction anonymizes PII on matching Loop orders, returns, and Commerce\nData customers and orders. It is not a hard delete. After the jobs run,\n`GET /customers/{id}` and `GET /orders/{id}` return the anonymized values.\n`DELETE /customers` is not a substitute.\n\nAuth: Public API key or OAuth with scope `customers:write`.\nA `202` `{\"accepted\": true}` means the job is queued asynchronously.","href":"/api-reference/latest/customers/redact-customer"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/loopreturns/d7dc6883aeaefe8b/scripts/generate-unstable-nav.js","/_mintlify/custom/loopreturns/eb155f0b6d2849a4/scripts/update-openapi-servers.js"],"openApiReferenceData":{"operation":{"summary":"Redact Customer","description":"Queue GDPR customer redaction for a Loop Anywhere (Commerce Data) shop.\nShopify shops receive `403` and should keep using Shopify's `customers/redact`\nwebhook.\n\nSend at least one of `customer.id`, `customer.email`, or `customer.external_id`.\nSend `customer.id` or `customer.external_id`, not both. Identifiers combine as\na union: when a customer id and an email are both sent, Loop redacts orders\nthat match the id plus orders that match the email. Optionally send\n`orders_to_redact` or `orders_to_redact_external` (1–100 ids each, not both)\nto narrow each of those matches to the listed orders.\n\n`customer.id` and `orders_to_redact` are Loop Commerce Data global ids.\n`customer.external_id` and `orders_to_redact_external` are merchant ids sent\nat ingest.\n\nRedaction anonymizes PII on matching Loop orders, returns, and Commerce\nData customers and orders. It is not a hard delete. After the jobs run,\n`GET /customers/{id}` and `GET /orders/{id}` return the anonymized values.\n`DELETE /customers` is not a substitute.\n\nAuth: Public API key or OAuth with scope `customers:write`.\nA `202` `{\"accepted\": true}` means the job is queued asynchronously.","operationId":"redactCustomer","tags":["Customers"],"requestBody":"1f7646e7-b387-463b-a041-1f34d7749f4a","responses":{"202":"0eaa3b78-cf3f-430f-ab1c-89921a4372a1","401":"49a68e33-781f-4c4e-b4c5-8c7772879a28","403":"01dbdfe0-27bd-4ea3-88ec-710b62eaedcf","404":"71b568d5-0499-4db0-b360-edbaa1deba50","422":"66434903-c983-4720-a4c3-98d93baf0708"},"security":["9fdd98d7-c796-432a-8743-52a249da6062","390b50f1-0b32-4baa-aeb1-0c42d1ba09b3"],"method":"post","type":"path","servers":["439848d7-2493-4806-8771-876250c35828","62ec754b-f20e-4d2c-8087-1cf467b9f417","33b0578b-bc27-42ec-926b-dcdf1d4a7dd2"],"path":"/privacy/customer/redact","baseUrlOptions":["https://api.loopreturns.com/api/2026-10","https://api.loopreturns.com/api/2026-07","https://api.loopreturns.com/api/unstable"],"title":"Redact Customer","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["customer"],"properties":{"customer":{"type":"object","description":"At least one of `id`, `email`, or `external_id` is required. Send `id` or `external_id`, not both. `id` or `external_id` plus `email` redacts the union of matching orders.","properties":{"id":{"type":"integer","format":"int64","description":"Loop Commerce Data customer global id.","uniqueKey":"customer.id","typeLabel":"integer\u003cint64>"},"email":{"type":"string","format":"email","description":"Customer email as stored on matching Loop orders.","uniqueKey":"customer.email","typeLabel":"string\u003cemail>"},"external_id":{"type":"string","maxLength":100,"description":"Merchant customer id sent at ingest.","uniqueKey":"customer.external_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"customer","typeLabel":"object"},"orders_to_redact":{"type":"array","description":"Loop global order ids, 1–100 inclusive. Narrows each customer match to these orders. Do not send with `orders_to_redact_external`.","minItems":1,"maxItems":100,"items":{"type":"integer","format":"int64","uniqueKey":"orders_to_redact.items.[INDEX]","typeLabel":"integer\u003cint64>"},"uniqueKey":"orders_to_redact","typeLabel":"integer\u003cint64>[]"},"orders_to_redact_external":{"type":"array","description":"Merchant order ids, 1–100 inclusive. Narrows each customer match to these orders. Do not send with `orders_to_redact`. An owned deleted order sent by its original external id is redacted. An unknown or unowned value is not redacted.","minItems":1,"maxItems":100,"items":{"type":"string","maxLength":100,"uniqueKey":"orders_to_redact_external.items.[INDEX]","typeLabel":"string"},"uniqueKey":"orders_to_redact_external","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"customer":{"id":123,"email":"jsmith@example.com","external_id":"\u003cstring>"},"orders_to_redact":[123],"orders_to_redact_external":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"0eaa3b78-cf3f-430f-ab1c-89921a4372a1":{"description":"Redaction accepted and queued.","content":{"application/json":{"schema":{"type":"object","required":["accepted"],"properties":{"accepted":{"type":"boolean","examples":[true],"isRequired":true,"uniqueKey":"accepted","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"accepted":true}}},"exampleType":"generated"}},"exampleType":"generated"},"49a68e33-781f-4c4e-b4c5-8c7772879a28":{"description":"Missing, invalid, or expired credentials, or the credentials lack `customers:write`. The body differs by which of those it is.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Returned when the API key or OAuth token is missing, invalid, or expired.","properties":{"error":{"type":"object","properties":{"code":{"type":"string","examples":["401"],"uniqueKey":"oneOf.0.error.code","typeLabel":"string"},"http_code":{"type":"string","uniqueKey":"oneOf.0.error.http_code","typeLabel":"string"},"message":{"type":"string","examples":["Unauthorized."],"uniqueKey":"oneOf.0.error.message","typeLabel":"string"}},"uniqueKey":"oneOf.0.error","typeLabel":"object"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["errors"],"properties":{"errors":{"type":"string","examples":["Unauthorized."],"isRequired":true,"uniqueKey":"oneOf.1.errors","typeLabel":"string"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"invalidCredentials":{"title":"invalidCredentials","value":{"error":{"code":"401","http_code":"GEN-UNAUTHORIZED","message":"Unauthorized."}}},"missingScope":{"title":"missingScope","value":{"errors":"Unauthorized."}}},"exampleType":"examples"}},"exampleType":"examples"},"01dbdfe0-27bd-4ea3-88ec-710b62eaedcf":{"description":"Shop is not a Loop Anywhere (Commerce Data) shop.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"71b568d5-0499-4db0-b360-edbaa1deba50":{"description":"The `customer.id` or `customer.external_id` does not resolve. A deleted customer's `id` or `external_id` is accepted (`202`) and that customer's data is anonymized.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","examples":["Resource not found."],"isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"customerDoesNotResolve":{"title":"customerDoesNotResolve","value":{"message":"Resource not found."}}},"exampleType":"examples"}},"exampleType":"examples"},"66434903-c983-4720-a4c3-98d93baf0708":{"description":"No customer identifier, both `customer.id` and `customer.external_id`, both order arrays, or an empty `orders_to_redact` or `orders_to_redact_external` array.","content":{"application/json":{"schema":{"type":"object","description":"Returned when the request body fails validation. Uses Laravel's standard validation error shape.","properties":{"message":{"type":"string","examples":["The external_id field is required."],"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"errors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.additionalProperties","typeLabel":"string[]"},"examples":[{"external_id":["The external_id field is required."]}],"uniqueKey":"errors","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"The external_id field is required.","errors":{"external_id":["The external_id field is required."]}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"9fdd98d7-c796-432a-8743-52a249da6062":{"oauth2":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://oauth.loopreturns.com/authorize","tokenUrl":"https://oauth.loopreturns.com/oauth/token","scopes":{"customers:write":"Redact Customer (`POST /privacy/customer/redact`)"}}},"scopes":["customers:write"],"schemeName":"oauth2"}},"390b50f1-0b32-4baa-aeb1-0c42d1ba09b3":{"write":{"name":"X-Authorization","type":"apiKey","in":"header","description":"API Scope: \"Customers (write)\"","scopes":[],"schemeName":"write"}}},"servers":{"439848d7-2493-4806-8771-876250c35828":{"url":"https://api.loopreturns.com/api/2026-10","description":"2026-10 (Stable)"},"62ec754b-f20e-4d2c-8087-1cf467b9f417":{"url":"https://api.loopreturns.com/api/2026-07","description":"2026-07"},"33b0578b-bc27-42ec-926b-dcdf1d4a7dd2":{"url":"https://api.loopreturns.com/api/unstable","description":"Unstable (Preview)"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://oauth.loopreturns.com/authorize","tokenUrl":"https://oauth.loopreturns.com/oauth/token","scopes":{"customers:write":"Redact Customer (`POST /privacy/customer/redact`)"}}},"scopes":["customers:write"],"schemeName":"oauth2"},"schema":{"title":"OAuth2 Auth","type":"string","isRequired":true,"description":"The access token received from the authorization server in the OAuth 2.0 flow.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"oauth2","name":"Authorization"}],"title":"oauth2"},{"schemes":[{"scheme":{"name":"X-Authorization","type":"apiKey","in":"header","description":"API Scope: \"Customers (write)\"","scopes":[],"schemeName":"write"},"schema":{"title":"X-Authorization","type":"string","description":"API Scope: \"Customers (write)\"","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"write","name":"X-Authorization"}],"title":"write"}]},"originalFileLocation":"openapi/customers-api.yaml"},"subdomain":"loopreturns","siteName":"Loop Returns Documentation","title":"Redact Customer - Loop Returns Documentation","navMaps":{"firstHrefInVersion":{"2026-07":{"href":"/api-reference/latest/customers/redact-customer","matchLevel":0},"2026-10":{"href":"/api-reference/latest/customers/redact-customer","matchLevel":0},"unstable":{"href":"/api-reference/latest/customers/redact-customer","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T15:36:44.221Z","originalFileLocation":"api-reference/latest/customers/redact-customer.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=\"Queue GDPR customer redaction for a Loop Anywhere (Commerce Data) shop. Shopify shops receive 403 and should keep using Shopify\u0026#x27;s customers/redact webhook. Send at least one of customer.id, customer.email, or customer.external_id. Send customer.id or customer.external_id, not both. Identifiers combine as a union: when a customer id and an email are both sent, Loop redacts orders that match the id plus orders that match the email. Optionally send orders_to_redact or orders_to_redact_external (1–100 ids each, not both) to narrow each of those matches to the listed orders. customer.id and orders_to_redact are Loop Commerce Data global ids. customer.external_id and orders_to_redact_external are merchant ids sent at ingest. Redaction anonymizes PII on matching Loop orders, returns, and Commerce Data customers and orders. It is not a hard delete. After the jobs run, GET /customers/{id} and GET /orders/{id} return the anonymized values. DELETE /customers is not a substitute. Auth: Public API key or OAuth with scope customers:write. A 202 {\u0026quot;accepted\u0026quot;: true} means the job is queued asynchronously.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Loop Returns Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/loopreturns/X0rUYkP1UIsEaMhI/_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/loopreturns/X0rUYkP1UIsEaMhI/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/loopreturns/X0rUYkP1UIsEaMhI/_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/loopreturns/X0rUYkP1UIsEaMhI/_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/loopreturns/X0rUYkP1UIsEaMhI/_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/loopreturns/X0rUYkP1UIsEaMhI/_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/loopreturns/X0rUYkP1UIsEaMhI/_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/loopreturns/X0rUYkP1UIsEaMhI/_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/loopreturns/X0rUYkP1UIsEaMhI/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Redact Customer - Loop Returns Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Queue GDPR customer redaction for a Loop Anywhere (Commerce Data) shop. Shopify shops receive 403 and should keep using Shopify\u0026#x27;s customers/redact webhook. Send at least one of customer.id, customer.email, or customer.external_id. Send customer.id or customer.external_id, not both. Identifiers combine as a union: when a customer id and an email are both sent, Loop redacts orders that match the id plus orders that match the email. Optionally send orders_to_redact or orders_to_redact_external (1–100 ids each, not both) to narrow each of those matches to the listed orders. customer.id and orders_to_redact are Loop Commerce Data global ids. customer.external_id and orders_to_redact_external are merchant ids sent at ingest. Redaction anonymizes PII on matching Loop orders, returns, and Commerce Data customers and orders. It is not a hard delete. After the jobs run, GET /customers/{id} and GET /orders/{id} return the anonymized values. DELETE /customers is not a substitute. Auth: Public API key or OAuth with scope customers:write. A 202 {\u0026quot;accepted\u0026quot;: true} means the job is queued asynchronously.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Loop Returns Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.loopreturns.com/api-reference/latest/customers/redact-customer\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://loopreturns.mintlify.app/_mintlify/api/og/v2?division=Customers\u0026amp;title=Redact+Customer\u0026amp;description=Queue+GDPR+customer+redaction+for+a+Loop+Anywhere+%28Commerce+Data%29+shop.%0AShopify+shops+receive+%60403%60+and+should+keep+using+Shopify%27s+%60customers%2Fredact%60%0Awebhook.%0A\u0026amp;theme=5ccacdea69e246fe33e6ab29\u0026amp;signature=be23ea657d01397ff1c459e08c7066c72699be7ca832de7c24095e5a59de4636\">\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=\"Redact Customer - Loop Returns Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Queue GDPR customer redaction for a Loop Anywhere (Commerce Data) shop. Shopify shops receive 403 and should keep using Shopify\u0026#x27;s customers/redact webhook. Send at least one of customer.id, customer.email, or customer.external_id. Send customer.id or customer.external_id, not both. Identifiers combine as a union: when a customer id and an email are both sent, Loop redacts orders that match the id plus orders that match the email. Optionally send orders_to_redact or orders_to_redact_external (1–100 ids each, not both) to narrow each of those matches to the listed orders. customer.id and orders_to_redact are Loop Commerce Data global ids. customer.external_id and orders_to_redact_external are merchant ids sent at ingest. Redaction anonymizes PII on matching Loop orders, returns, and Commerce Data customers and orders. It is not a hard delete. After the jobs run, GET /customers/{id} and GET /orders/{id} return the anonymized values. DELETE /customers is not a substitute. Auth: Public API key or OAuth with scope customers:write. A 202 {\u0026quot;accepted\u0026quot;: true} means the job is queued asynchronously.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://loopreturns.mintlify.app/_mintlify/api/og/v2?division=Customers\u0026amp;title=Redact+Customer\u0026amp;description=Queue+GDPR+customer+redaction+for+a+Loop+Anywhere+%28Commerce+Data%29+shop.%0AShopify+shops+receive+%60403%60+and+should+keep+using+Shopify%27s+%60customers%2Fredact%60%0Awebhook.%0A\u0026amp;theme=5ccacdea69e246fe33e6ab29\u0026amp;signature=be23ea657d01397ff1c459e08c7066c72699be7ca832de7c24095e5a59de4636\">\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/loopreturns/X0rUYkP1UIsEaMhI/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Loop Returns Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0672FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.loopreturns.com/api-reference/latest/customers/redact-customer\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/latest/customers/redact-customer.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.loopreturns.com/#organization\",\"name\":\"Loop Returns Documentation\",\"url\":\"https://docs.loopreturns.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/loopreturns/mWP1nZGNp75FiB-l/logo/loop-logo-lapis-charcoal.svg?fit=max\u0026auto=format\u0026n=mWP1nZGNp75FiB-l\u0026q=85\u0026s=5113cc3f8f2d70a65c2c774e471a13c4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.loopreturns.com#website\",\"name\":\"Loop Returns Documentation\",\"url\":\"https://docs.loopreturns.com\",\"publisher\":{\"@id\":\"https://docs.loopreturns.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.loopreturns.com/api-reference/latest/customers/redact-customer#webpage\",\"url\":\"https://docs.loopreturns.com/api-reference/latest/customers/redact-customer\",\"name\":\"Redact Customer\",\"description\":\"Queue GDPR customer redaction for a Loop Anywhere (Commerce Data) shop. Shopify shops receive 403 and should keep using Shopify's customers/redact webhook. Send at least one of customer.id, customer.email, or customer.external_id. Send customer.id or customer.external_id, not both. Identifiers combine as a union: when a customer id and an email are both sent, Loop redacts orders that match the id plus orders that match the email. Optionally send orders_to_redact or orders_to_redact_external (1–100 ids each, not both) to narrow each of those matches to the listed orders. customer.id and orders_to_redact are Loop Commerce Data global ids. customer.external_id and orders_to_redact_external are merchant ids sent at ingest. Redaction anonymizes PII on matching Loop orders, returns, and Commerce Data customers and orders. It is not a hard delete. After the jobs run, GET /customers/{id} and GET /orders/{id} return the anonymized values. DELETE /customers is not a substitute. Auth: Public API key or OAuth with scope customers:write. A 202 {\\\"accepted\\\": true} means the job is queued asynchronously.\",\"dateModified\":\"2026-11-05T15:36:44.221Z\",\"isPartOf\":{\"@id\":\"https://docs.loopreturns.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.loopreturns.com/api-reference/latest/customers/redact-customer#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.loopreturns.com/api-reference/latest/customers/redact-customer#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"APIs\",\"item\":\"https://docs.loopreturns.com/api-reference/latest/return-actions/process-return\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Commerce Data\",\"item\":\"https://docs.loopreturns.com/api-reference/latest/products/list-products\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Customers\",\"item\":\"https://docs.loopreturns.com/api-reference/latest/customers/list-customers\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Redact Customer\",\"item\":\"https://docs.loopreturns.com/api-reference/latest/customers/redact-customer\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.loopreturns.com/api-reference/latest/customers/redact-customer#apireference\",\"headline\":\"Redact Customer\",\"name\":\"Redact Customer\",\"description\":\"Queue GDPR customer redaction for a Loop Anywhere (Commerce Data) shop. Shopify shops receive 403 and should keep using Shopify's customers/redact webhook. Send at least one of customer.id, customer.email, or customer.external_id. Send customer.id or customer.external_id, not both. Identifiers combine as a union: when a customer id and an email are both sent, Loop redacts orders that match the id plus orders that match the email. Optionally send orders_to_redact or orders_to_redact_external (1–100 ids each, not both) to narrow each of those matches to the listed orders. customer.id and orders_to_redact are Loop Commerce Data global ids. customer.external_id and orders_to_redact_external are merchant ids sent at ingest. Redaction anonymizes PII on matching Loop orders, returns, and Commerce Data customers and orders. It is not a hard delete. After the jobs run, GET /customers/{id} and GET /orders/{id} return the anonymized values. DELETE /customers is not a substitute. Auth: Public API key or OAuth with scope customers:write. A 202 {\\\"accepted\\\": true} means the job is queued asynchronously.\",\"url\":\"https://docs.loopreturns.com/api-reference/latest/customers/redact-customer\",\"mainEntityOfPage\":{\"@id\":\"https://docs.loopreturns.com/api-reference/latest/customers/redact-customer#webpage\"},\"dateModified\":\"2026-11-05T15:36:44.221Z\",\"publisher\":{\"@id\":\"https://docs.loopreturns.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.loopreturns.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Loop Returns Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Loop Returns Documentation","nav":{"global":{"anchors":[{"anchor":"System Status","icon":"radar","href":"https://status.loopreturns.com"}]},"versions":[{"version":"2026-07","tabs":[{"tab":"Introduction","pages":[{"title":"Introduction","href":"/welcome"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/integration-guides/overview"}]},{"tab":"MCP Server","pages":[{"title":"MCP Server","href":"/mcp/overview"}]},{"tab":"API Reference","groups":[{"group":"Using the API","pages":[{"title":"Getting Started","icon":"play","href":"/api-reference/getting-started"},{"title":"Authentication","version":"2026-07","icon":"lock","href":"/api-reference/authentication"},{"title":"API Versioning","icon":"clock","href":"/api-reference/versioning"},{"title":"Rate limit","icon":"gauge","href":"/api-reference/rate-limit"},{"title":"Pagination","icon":"page","href":"/api-reference/pagination"},{"title":"Error codes","icon":"circle-exclamation","iconType":"regular","href":"/api-reference/error-codes"},{"title":"Postman Collection","icon":"bolt","href":"/api-reference/postman"}]},{"group":"APIs","pages":[{"group":"Return Actions","pages":[{"openapi":"post /warehouse/return/{id}/process","title":"Process Return","href":"/api-reference/latest/return-actions/process-return"},{"openapi":"post /warehouse/return/{id}/remove","title":"Remove Line Items","href":"/api-reference/latest/return-actions/remove-line-items"},{"openapi":"post /warehouse/return/{id}/cancel","title":"Cancel Return","href":"/api-reference/latest/return-actions/cancel-return"},{"openapi":"post /warehouse/return/{id}/flag","title":"Flag Return","href":"/api-reference/latest/return-actions/flag-return"},{"openapi":"post /warehouse/return/{id}/close","title":"Close Return","href":"/api-reference/latest/return-actions/close-return"},{"openapi":"get /warehouse/return/{id}/notes","title":"Get Return Notes","href":"/api-reference/latest/return-actions/get-return-notes"},{"openapi":"post /warehouse/return/{id}/note","title":"Create Return Note","href":"/api-reference/latest/return-actions/create-return-note"},{"openapi":"post /order/link","title":"Create Return Deep Link","href":"/api-reference/latest/return-actions/create-return-deep-link"},{"openapi":"post /order/qr","title":"Create Return Deep Link with QR Code","href":"/api-reference/latest/return-actions/create-return-deep-link-with-qr-code"}]},{"group":"Return Data","pages":[{"openapi":"get /warehouse/return/list","title":"Detailed Returns List","href":"/api-reference/latest/return-data/detailed-returns-list"},{"openapi":"get /warehouse/return/details","title":"Get Return Details","href":"/api-reference/latest/return-data/get-return-details"},{"openapi":"get /warehouse/reporting/asn","title":"Advanced Shipping Notice","href":"/api-reference/latest/return-data/advanced-shipping-notice"}]},{"group":"Programmatic Webhooks","pages":[{"openapi":"get /webhooks","title":"Get Webhooks","href":"/api-reference/latest/programmatic-webhooks/get-webhooks"},{"openapi":"post /webhooks","title":"Create Webhook","href":"/api-reference/latest/programmatic-webhooks/create-webhook"},{"openapi":"put /webhooks/{id}","title":"Update Webhook","href":"/api-reference/latest/programmatic-webhooks/update-webhook"},{"openapi":"delete /webhooks/{id}","title":"Delete Webhook","href":"/api-reference/latest/programmatic-webhooks/delete-webhook"}]},{"group":"Item Grading and Dispositioning","pages":[{"openapi":"post /dispositioning/grade","title":"Grade Items","href":"/api-reference/latest/item-grading-and-disposition/grade-items"},{"openapi":"post /dispositioning/assess","title":"Assess Dispositions","href":"/api-reference/latest/item-grading-and-disposition/assess-dispositions"}]},{"group":"Cart","pages":[{"openapi":"post /cart","title":"Create Cart","href":"/api-reference/latest/cart/create-cart"},{"openapi":"get /cart/{token}","title":null,"href":"/api-reference/latest/cart/get-cart"},{"openapi":"post /cart/{token}","title":null,"href":"/api-reference/latest/cart/update-cart"},{"openapi":"delete /cart/{token}","title":null,"href":"/api-reference/latest/cart/delete-cart"}]},{"group":"Destinations","pages":[{"openapi":"get /destinations","title":"Get All Destinations","href":"/api-reference/latest/destinations/get-all-destinations"},{"openapi":"post /destinations","title":"Create Destination","href":"/api-reference/latest/destinations/create-destination"},{"openapi":"get /destinations/{id}","title":"Get Destination Details","href":"/api-reference/latest/destinations/get-destination-details"},{"openapi":"put /destinations/{id}","title":"Update Destination","href":"/api-reference/latest/destinations/update-destination"},{"openapi":"delete /destinations/{id}","title":"Delete Destination","href":"/api-reference/latest/destinations/delete-destination"}]},{"group":"Blocklist","pages":[{"openapi":"get /blocklists","title":"List Blocklist Items","href":"/api-reference/latest/blocklist/list-blocklist-items"},{"openapi":"post /blocklists","title":"Create Blocklist Item","href":"/api-reference/latest/blocklist/create-blocklist-item"},{"openapi":"get /blocklists/{id}","title":"Get Blocklist Item","href":"/api-reference/latest/blocklist/get-blocklist-item"},{"openapi":"delete /blocklists/{id}","title":"Delete Blocklist Item","href":"/api-reference/latest/blocklist/delete-blocklist-item"}]},{"group":"Allowlist","pages":[{"openapi":"get /allowlists","title":"List Allowlist Items","href":"/api-reference/latest/allowlist/list-allowlist-items"},{"openapi":"post /allowlists","title":"Create Allowlist Item","href":"/api-reference/latest/allowlist/create-allowlist-item"},{"openapi":"get /allowlists/{id}","title":"Get Allowlist Item","href":"/api-reference/latest/allowlist/get-allowlist-item"},{"openapi":"delete /allowlists/{id}","title":"Delete Allowlist Item","href":"/api-reference/latest/allowlist/delete-allowlist-item"}]},{"group":"Fraud Reports","pages":[{"openapi":"post /returns/{id}/fraud-report","title":"Create Fraud Report","href":"/api-reference/latest/return-actions/create-fraud-report"}]},{"group":"Order Return Eligibility","pages":[{"openapi":"post /orders/return-eligibility","title":"Look Up Order Return Eligibility by Order Name","href":"/api-reference/latest/orders/look-up-order-return-eligibility"}]},{"group":"Happy Returns Shipments","pages":[{"openapi":"get /happy-returns/shipments/{happy_returns_shipment_id}","title":"Get Shipment Information","href":"/api-reference/latest/happy-returns-shipment/get-shipment-information"},{"openapi":"get /happy-returns/shipments","title":"Get Shipments","href":"/api-reference/latest/happy-returns-shipment/get-shipments"},{"openapi":"get /happy-returns/shipments/{id}/items","title":"Get Shipment Items","href":"/api-reference/latest/happy-returns-shipment-items/get-shipment-items"}]},{"group":"Label Requests","pages":[{"openapi":"get /label-requests","title":"List Label Requests","href":"/api-reference/latest/label-requests/list-label-requests"},{"openapi":"get /label-requests/{id}","title":"Get Label Request","href":"/api-reference/latest/label-requests/get-label-request"},{"openapi":"post /label-requests/{id}/errors","title":"Create Label Request Error","href":"/api-reference/latest/label-requests/create-a-label-request-error"},{"openapi":"post /labels","title":"Create Label","href":"/api-reference/latest/label-requests/create-label"},{"openapi":"post /returns/{returnId}/labels","title":"Generate Label","href":"/api-reference/latest/label-requests/generate-label"},{"openapi":"post /returns/{returnId}/labels/regenerate","title":"Regenerate Label","href":"/api-reference/latest/label-requests/regenerate-label"},{"openapi":"put /labels/{id}","title":"Update Label Status","href":"/api-reference/latest/label-requests/update-label-status"}]},{"group":"Return Create","pages":[{"title":"Return Create Overview","href":"/api-reference/latest/draft-returns/overview"},{"openapi":"openapi/draft-returns.yaml get /draft-returns/{draft_return_id}","title":"Get Draft Return","href":"/api-reference/latest/draft-returns/get-draft-return"},{"openapi":"openapi/draft-returns.yaml post /draft-returns","title":"Initialize Draft Return","href":"/api-reference/latest/draft-returns/initialize-draft-return"},{"openapi":"openapi/draft-returns.yaml post /draft-returns/{draft_return_id}/cancel","title":"Cancel Draft Return","href":"/api-reference/latest/draft-returns/cancel-draft-return"},{"openapi":"openapi/draft-returns.yaml post /draft-returns/{draft_return_id}/customer","title":"Set Customer","href":"/api-reference/latest/draft-returns/set-customer"},{"openapi":"openapi/draft-returns.yaml post /draft-returns/{draft_return_id}/address","title":"Set Address","href":"/api-reference/latest/draft-returns/set-address"},{"openapi":"openapi/draft-returns.yaml post /draft-returns/{draft_return_id}/returning-items","title":"Add Returning Item","href":"/api-reference/latest/draft-returns/add-returning-item"},{"openapi":"openapi/draft-returns.yaml delete /draft-returns/{draft_return_id}/returning-items/{returning_item_id}","title":"Remove Returning Item","href":"/api-reference/latest/draft-returns/remove-returning-item"},{"openapi":"openapi/draft-returns.yaml post /draft-returns/{draft_return_id}/returning-items/{returning_item_id}/return-reason","title":"Set Returning Item Return Reason","href":"/api-reference/latest/draft-returns/set-returning-item-return-reason"},{"openapi":"openapi/draft-returns.yaml post /draft-returns/{draft_return_id}/returning-items/{returning_item_id}/user-input/{user_input_id}","title":"Add Returning Item User Input","href":"/api-reference/latest/draft-returns/add-returning-item-user-input"},{"openapi":"openapi/draft-returns.yaml post /draft-returns/{draft_return_id}/returning-items/{returning_item_id}/return-type","title":"Set Returning Item Return Type","href":"/api-reference/latest/draft-returns/set-returning-item-return-type"},{"openapi":"openapi/draft-returns.yaml post /draft-returns/{draft_return_id}/returning-items/{returning_item_id}/exchange-item","title":"Add Returning Item Exchange Item","href":"/api-reference/latest/draft-returns/add-returning-item-exchange-item"},{"openapi":"openapi/draft-returns.yaml post /draft-returns/{draft_return_id}/cart/items","title":"Add Cart Item","href":"/api-reference/latest/draft-returns/add-cart-item"},{"openapi":"openapi/draft-returns.yaml delete /draft-returns/{draft_return_id}/cart/items/{cart_item_id}","title":"Remove Cart Item","href":"/api-reference/latest/draft-returns/remove-cart-item"},{"openapi":"openapi/draft-returns.yaml post /draft-returns/{draft_return_id}/credit-type","title":"Set Credit Type","href":"/api-reference/latest/draft-returns/set-credit-type"},{"openapi":"openapi/draft-returns.yaml post /draft-returns/{draft_return_id}/processing-type","title":"Set Processing Type","href":"/api-reference/latest/draft-returns/set-processing-type"},{"openapi":"openapi/draft-returns.yaml post /draft-returns/{draft_return_id}/finalize-items","title":"Finalize Items","href":"/api-reference/latest/draft-returns/finalize-items"},{"openapi":"openapi/draft-returns.yaml post /draft-returns/{draft_return_id}/unfinalize-items","title":"Unfinalize Items","href":"/api-reference/latest/draft-returns/unfinalize-items"},{"openapi":"openapi/draft-returns.yaml post /draft-returns/{draft_return_id}/return-method","title":"Select Return Method","href":"/api-reference/latest/draft-returns/select-return-method"},{"openapi":"openapi/draft-returns.yaml post /draft-returns/{draft_return_id}/submit","title":"Submit Draft Return","href":"/api-reference/latest/draft-returns/submit-draft-return"}]},{"group":"Commerce Data","pages":[{"group":"Products","pages":[{"openapi":"get /products","title":"List Products","href":"/api-reference/latest/products/list-products"},{"openapi":"post /products","title":"Create Product","href":"/api-reference/latest/products/create-product"},{"openapi":"put /products","title":"Upsert Product","href":"/api-reference/latest/products/upsert-product"},{"openapi":"get /products/{id}","title":"Get Product","href":"/api-reference/latest/products/get-product"},{"openapi":"get /products/external/{externalId}","title":"Get Product by External ID","href":"/api-reference/latest/products/get-product-by-external-id"},{"openapi":"put /products/{id}","title":"Update Product","href":"/api-reference/latest/products/update-product"},{"openapi":"delete /products/{id}","title":"Delete Product","href":"/api-reference/latest/products/delete-product"},{"openapi":"delete /products/external/{externalId}","title":"Delete Product by External ID","href":"/api-reference/latest/products/delete-product-by-external-id"},{"openapi":"get /products/{productId}/product-variants","title":"List Product Variants","href":"/api-reference/latest/products/list-product-variants"},{"openapi":"post /products/{productId}/product-variants","title":"Create Product Variant","href":"/api-reference/latest/products/create-product-variant"},{"openapi":"put /products/{productId}/product-variants","title":"Upsert Product Variant","href":"/api-reference/latest/products/upsert-product-variant"},{"openapi":"put /products/external/{productExternalId}/product-variants","title":"Upsert Product Variant by Product External ID","href":"/api-reference/latest/products/upsert-product-variant-by-product-external-id"},{"openapi":"get /products/{productId}/product-variants/{id}","title":"Get Product Variant","href":"/api-reference/latest/products/get-product-variant"},{"openapi":"get /products/external/{productExternalId}/product-variants/{externalId}","title":"Get Product Variant by External ID","href":"/api-reference/latest/products/get-product-variant-by-external-id"},{"openapi":"patch /products/{productId}/product-variants/{id}","title":"Update Product Variant","href":"/api-reference/latest/products/update-product-variant"},{"openapi":"delete /products/{productId}/product-variants/{id}","title":"Delete Product Variant","href":"/api-reference/latest/products/delete-product-variant"},{"openapi":"delete /products/external/{productExternalId}/product-variants/{externalId}","title":"Delete Product Variant by External ID","href":"/api-reference/latest/products/delete-product-variant-by-external-id"}]},{"group":"Orders","pages":[{"openapi":"get /orders","title":"List Orders","href":"/api-reference/latest/orders/list-orders"},{"openapi":"openapi/orders-api-2026-07.yaml post /orders","title":"Create Order","href":"/api-reference/2026-07/orders/create-order"},{"openapi":"openapi/orders-api-2026-07.yaml put /orders","title":"Upsert Order","href":"/api-reference/2026-07/orders/upsert-order"},{"openapi":"get /orders/{id}","title":"Get Order","href":"/api-reference/latest/orders/get-order"},{"openapi":"get /orders/external/{externalId}","title":"Get Order by External ID","href":"/api-reference/latest/orders/get-order-by-external-id"},{"openapi":"openapi/orders-api-2026-07.yaml put /orders/{id}","title":"Update Order","href":"/api-reference/2026-07/orders/update-order"},{"openapi":"delete /orders/{id}","title":"Delete Order","href":"/api-reference/latest/orders/delete-order"},{"openapi":"delete /orders/external/{externalId}","title":"Delete Order by External ID","href":"/api-reference/latest/orders/delete-order-by-external-id"}]},{"group":"Customers","pages":[{"openapi":"get /customers","title":"List Customers","href":"/api-reference/latest/customers/list-customers"},{"openapi":"post /customers","title":"Create Customer","href":"/api-reference/latest/customers/create-customer"},{"openapi":"put /customers","title":"Upsert Customer","href":"/api-reference/latest/customers/upsert-customer"},{"openapi":"get /customers/{id}","title":"Get Customer","href":"/api-reference/latest/customers/get-customer"},{"openapi":"get /customers/external/{externalId}","title":"Get Customer by External ID","href":"/api-reference/latest/customers/get-customer-by-external-id"},{"openapi":"put /customers/{id}","title":"Update Customer","href":"/api-reference/latest/customers/update-customer"},{"openapi":"delete /customers/{id}","title":"Delete Customer","href":"/api-reference/latest/customers/delete-customer"},{"openapi":"delete /customers/external/{externalId}","title":"Delete Customer by External ID","description":"Delete a customer by its commerce `external_id`.","href":"/api-reference/latest/customers/delete-customer-by-external-id"},{"title":"Redact Customer","openapi":"post /privacy/customer/redact","href":"/api-reference/latest/customers/redact-customer"}]},{"group":"Locations","pages":[{"openapi":"get /locations","title":"List Locations","description":"Retrieve a list of locations. The list can be filtered, sorted, and paginated using the parameters below.","href":"/api-reference/latest/locations/list-locations"},{"openapi":"post /locations","title":"Create Location","href":"/api-reference/latest/locations/create-location"},{"openapi":"put /locations","title":"Upsert Location","href":"/api-reference/latest/locations/upsert-location"},{"openapi":"get /locations/{id}","title":"Get Location","href":"/api-reference/latest/locations/get-location"},{"openapi":"get /locations/external/{externalId}","title":"Get Location by External ID","href":"/api-reference/latest/locations/get-location-by-external-id"},{"openapi":"put /locations/{id}","title":"Update Location","href":"/api-reference/latest/locations/update-location"},{"openapi":"delete /locations/{id}","title":"Delete Location","href":"/api-reference/latest/locations/delete-location"},{"openapi":"delete /locations/external/{externalId}","title":"Delete Location by External ID","href":"/api-reference/latest/locations/delete-location-by-external-id"}]},{"group":"Inventories","pages":[{"openapi":"get /inventories","title":"List Inventories","href":"/api-reference/latest/inventories/list-inventories"},{"openapi":"post /inventories/{productVariantId}/{locationId}","title":"Upsert Inventory","href":"/api-reference/latest/inventories/create-inventory"},{"openapi":"put /inventories/{productVariantId}/{locationId}","title":"Upsert Inventory","href":"/api-reference/latest/inventories/upsert-inventory"},{"openapi":"put /inventories/external/{variantExternalId}/{locationExternalId}","title":"Upsert Inventory by External IDs","href":"/api-reference/latest/inventories/upsert-inventory-by-external-ids"},{"openapi":"get /inventories/{productVariantId}/{locationId}","title":"Get Inventory","href":"/api-reference/latest/inventories/get-inventory"},{"openapi":"get /inventories/external/{variantExternalId}/{locationExternalId}","title":"Get Inventory by External IDs","href":"/api-reference/latest/inventories/get-inventory-by-external-ids"},{"openapi":"delete /inventories/{productVariantId}/{locationId}","title":"Delete Inventory","href":"/api-reference/latest/inventories/delete-inventory"},{"openapi":"delete /inventories/external/{variantExternalId}/{locationExternalId}","title":"Delete Inventory by External IDs","href":"/api-reference/latest/inventories/delete-inventory-by-external-ids"}]},{"group":"Collections","pages":[{"openapi":"get /collections","title":"List Collections","href":"/api-reference/latest/collections/list-collections"},{"openapi":"post /collections","title":"Create Collection","href":"/api-reference/latest/collections/create-collection"},{"openapi":"put /collections","title":"Upsert Collection","href":"/api-reference/latest/collections/upsert-collection"},{"openapi":"get /collections/{id}","title":"Get Collection","href":"/api-reference/latest/collections/get-collection"},{"openapi":"get /collections/external/{externalId}","title":"Get Collection by External ID","href":"/api-reference/latest/collections/get-collection-by-external-id"},{"openapi":"put /collections/{id}","title":"Update Collection","href":"/api-reference/latest/collections/update-collection"},{"openapi":"delete /collections/{id}","title":"Delete Collection","href":"/api-reference/latest/collections/delete-collection"},{"openapi":"delete /collections/external/{externalId}","title":"Delete Collection by External ID","href":"/api-reference/latest/collections/delete-collection-by-external-id"},{"openapi":"post /collections/{id}/products/{productId}","title":"Add Product to Collection","href":"/api-reference/latest/collections/add-product-to-collection"},{"openapi":"delete /collections/{id}/products/{productId}","title":"Delete Product from Collection","href":"/api-reference/latest/collections/delete-product-from-collection"},{"openapi":"post /collections/external/{collectionExternalId}/products/external/{productExternalId}","title":"Add Product to Collection by External ID","href":"/api-reference/latest/collections/add-product-to-collection-by-external-id"},{"openapi":"delete /collections/external/{collectionExternalId}/products/external/{productExternalId}","title":"Delete Product from Collection by External ID","href":"/api-reference/latest/collections/delete-product-from-collection-by-external-id"}]},{"group":"Bulk Operations","pages":[{"openapi":"post /bulk-operations","title":"Create Bulk Operation","href":"/api-reference/latest/bulk-operations/create-bulk-operation"},{"openapi":"get /bulk-operations","title":"List Bulk Operations","href":"/api-reference/latest/bulk-operations/list-bulk-operations"},{"openapi":"get /bulk-operations/{id}","title":"Get Bulk Operation","href":"/api-reference/latest/bulk-operations/get-bulk-operation"},{"openapi":"get /bulk-operations/{id}/jobs","title":"List Bulk Operation Jobs","href":"/api-reference/latest/bulk-operations/list-bulk-operation-jobs"}]}]}]}]},{"tab":"Webhook Reference","pages":[{"title":"Webhook Reference","href":"/webhook-reference/getting-started"}]}]},{"version":"2026-10","default":true,"tabs":[{"tab":"Introduction","pages":[{"title":"Introduction","href":"/welcome"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/integration-guides/overview"}]},{"tab":"MCP Server","pages":[{"title":"MCP Server","href":"/mcp/overview"}]},{"tab":"API Reference","groups":[{"group":"Using the API","pages":[{"title":"Getting Started","icon":"play","href":"/api-reference/getting-started"},{"title":"Authentication","version":"2026-07","icon":"lock","href":"/api-reference/authentication"},{"title":"API Versioning","icon":"clock","href":"/api-reference/versioning"},{"title":"Rate limit","icon":"gauge","href":"/api-reference/rate-limit"},{"title":"Pagination","icon":"page","href":"/api-reference/pagination"},{"title":"Error codes","icon":"circle-exclamation","iconType":"regular","href":"/api-reference/error-codes"},{"title":"Postman Collection","icon":"bolt","href":"/api-reference/postman"}]},{"group":"APIs","pages":[{"group":"Return Actions","pages":[{"openapi":"post /warehouse/return/{id}/process","title":"Process Return","href":"/api-reference/latest/return-actions/process-return"},{"openapi":"post /warehouse/return/{id}/remove","title":"Remove Line Items","href":"/api-reference/latest/return-actions/remove-line-items"},{"openapi":"post /warehouse/return/{id}/cancel","title":"Cancel Return","href":"/api-reference/latest/return-actions/cancel-return"},{"openapi":"post /warehouse/return/{id}/flag","title":"Flag Return","href":"/api-reference/latest/return-actions/flag-return"},{"openapi":"post /warehouse/return/{id}/close","title":"Close Return","href":"/api-reference/latest/return-actions/close-return"},{"openapi":"get /warehouse/return/{id}/notes","title":"Get Return Notes","href":"/api-reference/latest/return-actions/get-return-notes"},{"openapi":"post /warehouse/return/{id}/note","title":"Create Return Note","href":"/api-reference/latest/return-actions/create-return-note"},{"openapi":"post /order/link","title":"Create Return Deep Link","href":"/api-reference/latest/return-actions/create-return-deep-link"},{"openapi":"post /order/qr","title":"Create Return Deep Link with QR Code","href":"/api-reference/latest/return-actions/create-return-deep-link-with-qr-code"}]},{"group":"Return Data","pages":[{"openapi":"get /warehouse/return/list","title":"Detailed Returns List","href":"/api-reference/latest/return-data/detailed-returns-list"},{"openapi":"get /warehouse/return/details","title":"Get Return Details","href":"/api-reference/latest/return-data/get-return-details"},{"openapi":"get /warehouse/reporting/asn","title":"Advanced Shipping Notice","href":"/api-reference/latest/return-data/advanced-shipping-notice"}]},{"group":"Programmatic Webhooks","pages":[{"openapi":"get /webhooks","title":"Get Webhooks","href":"/api-reference/latest/programmatic-webhooks/get-webhooks"},{"openapi":"post /webhooks","title":"Create Webhook","href":"/api-reference/latest/programmatic-webhooks/create-webhook"},{"openapi":"put /webhooks/{id}","title":"Update Webhook","href":"/api-reference/latest/programmatic-webhooks/update-webhook"},{"openapi":"delete /webhooks/{id}","title":"Delete Webhook","href":"/api-reference/latest/programmatic-webhooks/delete-webhook"}]},{"group":"Item Grading and Dispositioning","pages":[{"openapi":"post /dispositioning/grade","title":"Grade Items","href":"/api-reference/latest/item-grading-and-disposition/grade-items"},{"openapi":"post /dispositioning/assess","title":"Assess Dispositions","href":"/api-reference/latest/item-grading-and-disposition/assess-dispositions"}]},{"group":"Cart","pages":[{"openapi":"post /cart","title":"Create Cart","href":"/api-reference/latest/cart/create-cart"},{"openapi":"get /cart/{token}","title":null,"href":"/api-reference/latest/cart/get-cart"},{"openapi":"post /cart/{token}","title":null,"href":"/api-reference/latest/cart/update-cart"},{"openapi":"delete /cart/{token}","title":null,"href":"/api-reference/latest/cart/delete-cart"}]},{"group":"Destinations","pages":[{"openapi":"get /destinations","title":"Get All Destinations","href":"/api-reference/latest/destinations/get-all-destinations"},{"openapi":"post /destinations","title":"Create Destination","href":"/api-reference/latest/destinations/create-destination"},{"openapi":"get /destinations/{id}","title":"Get Destination Details","href":"/api-reference/latest/destinations/get-destination-details"},{"openapi":"put /destinations/{id}","title":"Update Destination","href":"/api-reference/latest/destinations/update-destination"},{"openapi":"delete /destinations/{id}","title":"Delete Destination","href":"/api-reference/latest/destinations/delete-destination"}]},{"group":"Blocklist","pages":[{"openapi":"get /blocklists","title":"List Blocklist Items","href":"/api-reference/latest/blocklist/list-blocklist-items"},{"openapi":"post /blocklists","title":"Create Blocklist Item","href":"/api-reference/latest/blocklist/create-blocklist-item"},{"openapi":"get /blocklists/{id}","title":"Get Blocklist Item","href":"/api-reference/latest/blocklist/get-blocklist-item"},{"openapi":"delete /blocklists/{id}","title":"Delete Blocklist Item","href":"/api-reference/latest/blocklist/delete-blocklist-item"}]},{"group":"Allowlist","pages":[{"openapi":"get /allowlists","title":"List Allowlist Items","href":"/api-reference/latest/allowlist/list-allowlist-items"},{"openapi":"post /allowlists","title":"Create Allowlist Item","href":"/api-reference/latest/allowlist/create-allowlist-item"},{"openapi":"get /allowlists/{id}","title":"Get Allowlist Item","href":"/api-reference/latest/allowlist/get-allowlist-item"},{"openapi":"delete /allowlists/{id}","title":"Delete Allowlist Item","href":"/api-reference/latest/allowlist/delete-allowlist-item"}]},{"group":"Fraud Reports","pages":[{"openapi":"post /returns/{id}/fraud-report","title":"Create Fraud Report","href":"/api-reference/latest/return-actions/create-fraud-report"}]},{"group":"Order Return Eligibility","pages":[{"openapi":"post /orders/return-eligibility","title":"Look Up Order Return Eligibility by Order Name","href":"/api-reference/latest/orders/look-up-order-return-eligibility"}]},{"group":"Happy Returns Shipments","pages":[{"openapi":"get /happy-returns/shipments/{happy_returns_shipment_id}","title":"Get Shipment Information","href":"/api-reference/latest/happy-returns-shipment/get-shipment-information"},{"openapi":"get /happy-returns/shipments","title":"Get Shipments","href":"/api-reference/latest/happy-returns-shipment/get-shipments"},{"openapi":"get /happy-returns/shipments/{id}/items","title":"Get Shipment Items","href":"/api-reference/latest/happy-returns-shipment-items/get-shipment-items"}]},{"group":"Label Requests","pages":[{"openapi":"get /label-requests","title":"List Label Requests","href":"/api-reference/latest/label-requests/list-label-requests"},{"openapi":"get /label-requests/{id}","title":"Get Label Request","href":"/api-reference/latest/label-requests/get-label-request"},{"openapi":"post /label-requests/{id}/errors","title":"Create Label Request Error","href":"/api-reference/latest/label-requests/create-a-label-request-error"},{"openapi":"post /labels","title":"Create Label","href":"/api-reference/latest/label-requests/create-label"},{"openapi":"post /returns/{returnId}/labels","title":"Generate Label","href":"/api-reference/latest/label-requests/generate-label"},{"openapi":"put /labels/{id}","title":"Update Label Status","href":"/api-reference/latest/label-requests/update-label-status"}]},{"group":"Return Create","pages":[{"title":"Return Create Overview","version":"2026-10","href":"/api-reference/2026-10/draft-returns/overview"},{"openapi":"draft-returns-hal-forms get /draft-returns","title":"List Draft Returns","href":"/api-reference/2026-10/draft-returns/list-draft-returns"},{"openapi":"draft-returns-hal-forms get /draft-returns/{draft_return_id}","title":"Get Draft Return","href":"/api-reference/2026-10/draft-returns/get-draft-return"},{"openapi":"draft-returns-hal-forms get /draft-returns/{draft_return_id}/order/items","title":"List Order Line Items","href":"/api-reference/2026-10/draft-returns/list-order-line-items"},{"openapi":"draft-returns-hal-forms get /draft-returns/{draft_return_id}/totals","title":"Get Draft Return Totals","href":"/api-reference/2026-10/draft-returns/get-draft-return-totals"},{"openapi":"draft-returns-hal-forms post /draft-returns","title":"Initialize Draft Return","href":"/api-reference/2026-10/draft-returns/initialize-draft-return"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/accept-return-policy","title":"Accept Return Policy","href":"/api-reference/2026-10/draft-returns/accept-return-policy"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/cancel","title":"Cancel Draft Return","href":"/api-reference/2026-10/draft-returns/cancel-draft-return"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/customer","title":"Set Customer","href":"/api-reference/2026-10/draft-returns/set-customer"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/address","title":"Set Address","href":"/api-reference/2026-10/draft-returns/set-address"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/returning-items","title":"Add Returning Item","href":"/api-reference/2026-10/draft-returns/add-returning-item"},{"openapi":"draft-returns-hal-forms delete /draft-returns/{draft_return_id}/returning-items/{returning_item_id}","title":"Remove Returning Item","href":"/api-reference/2026-10/draft-returns/remove-returning-item"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/returning-items/{returning_item_id}/return-reason","title":"Set Returning Item Return Reason","href":"/api-reference/2026-10/draft-returns/set-returning-item-return-reason"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/returning-items/{returning_item_id}/user-input/{user_input_id}","title":"Add Returning Item User Input","href":"/api-reference/2026-10/draft-returns/add-returning-item-user-input"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/returning-items/{returning_item_id}/return-type","title":"Set Returning Item Return Type","href":"/api-reference/2026-10/draft-returns/set-returning-item-return-type"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/returning-items/{returning_item_id}/exchange-item","title":"Add Returning Item Exchange Item","href":"/api-reference/2026-10/draft-returns/add-returning-item-exchange-item"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/cart/items","title":"Add Cart Item","href":"/api-reference/2026-10/draft-returns/add-cart-item"},{"openapi":"draft-returns-hal-forms delete /draft-returns/{draft_return_id}/cart/items/{cart_item_id}","title":"Remove Cart Item","href":"/api-reference/2026-10/draft-returns/remove-cart-item"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/credit-type","title":"Set Credit Type","href":"/api-reference/2026-10/draft-returns/set-credit-type"},{"openapi":"draft-returns-hal-forms delete /draft-returns/{draft_return_id}/credit-type","title":"Unset Credit Type","href":"/api-reference/2026-10/draft-returns/unset-credit-type"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/processing-type","title":"Set Processing Type","href":"/api-reference/2026-10/draft-returns/set-processing-type"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/finalize-items","title":"Finalize Items","href":"/api-reference/2026-10/draft-returns/finalize-items"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/unfinalize-items","title":"Unfinalize Items","href":"/api-reference/2026-10/draft-returns/unfinalize-items"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/return-method","title":"Select Return Method","href":"/api-reference/2026-10/draft-returns/select-return-method"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/return-method/carrier","title":"Select Return Method Carrier","href":"/api-reference/2026-10/draft-returns/select-return-method-carrier"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/language","title":"Set Language","href":"/api-reference/2026-10/draft-returns/set-language"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/cart","title":"Set Cart","href":"/api-reference/2026-10/draft-returns/set-cart"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/payment-intent","title":"Create Payment Intent","href":"/api-reference/2026-10/draft-returns/create-payment-intent"},{"openapi":"draft-returns-hal-forms delete /draft-returns/{draft_return_id}/payment-intent/{payment_intent_id}","title":"Remove Payment Intent","href":"/api-reference/2026-10/draft-returns/remove-payment-intent"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/submit","title":"Submit Draft Return","href":"/api-reference/2026-10/draft-returns/submit-draft-return"}]},{"group":"Commerce Data","pages":[{"group":"Products","pages":[{"openapi":"get /products","title":"List Products","href":"/api-reference/latest/products/list-products"},{"openapi":"post /products","title":"Create Product","href":"/api-reference/latest/products/create-product"},{"openapi":"put /products","title":"Upsert Product","href":"/api-reference/latest/products/upsert-product"},{"openapi":"get /products/{id}","title":"Get Product","href":"/api-reference/latest/products/get-product"},{"openapi":"get /products/external/{externalId}","title":"Get Product by External ID","href":"/api-reference/latest/products/get-product-by-external-id"},{"openapi":"put /products/{id}","title":"Update Product","href":"/api-reference/latest/products/update-product"},{"openapi":"delete /products/{id}","title":"Delete Product","href":"/api-reference/latest/products/delete-product"},{"openapi":"delete /products/external/{externalId}","title":"Delete Product by External ID","href":"/api-reference/latest/products/delete-product-by-external-id"},{"openapi":"get /products/{productId}/product-variants","title":"List Product Variants","href":"/api-reference/latest/products/list-product-variants"},{"openapi":"post /products/{productId}/product-variants","title":"Create Product Variant","href":"/api-reference/latest/products/create-product-variant"},{"openapi":"put /products/{productId}/product-variants","title":"Upsert Product Variant","href":"/api-reference/latest/products/upsert-product-variant"},{"openapi":"put /products/external/{productExternalId}/product-variants","title":"Upsert Product Variant by Product External ID","href":"/api-reference/latest/products/upsert-product-variant-by-product-external-id"},{"openapi":"get /products/{productId}/product-variants/{id}","title":"Get Product Variant","href":"/api-reference/latest/products/get-product-variant"},{"openapi":"get /products/external/{productExternalId}/product-variants/{externalId}","title":"Get Product Variant by External ID","href":"/api-reference/latest/products/get-product-variant-by-external-id"},{"openapi":"patch /products/{productId}/product-variants/{id}","title":"Update Product Variant","href":"/api-reference/latest/products/update-product-variant"},{"openapi":"delete /products/{productId}/product-variants/{id}","title":"Delete Product Variant","href":"/api-reference/latest/products/delete-product-variant"},{"openapi":"delete /products/external/{productExternalId}/product-variants/{externalId}","title":"Delete Product Variant by External ID","href":"/api-reference/latest/products/delete-product-variant-by-external-id"}]},{"group":"Orders","pages":[{"openapi":"get /orders","title":"List Orders","href":"/api-reference/latest/orders/list-orders"},{"openapi":"openapi/orders-api.yaml post /orders","title":"Create Order","href":"/api-reference/latest/orders/create-order"},{"openapi":"openapi/orders-api.yaml put /orders","title":"Upsert Order","href":"/api-reference/latest/orders/upsert-order"},{"openapi":"get /orders/{id}","title":"Get Order","href":"/api-reference/latest/orders/get-order"},{"openapi":"get /orders/external/{externalId}","title":"Get Order by External ID","href":"/api-reference/latest/orders/get-order-by-external-id"},{"openapi":"openapi/orders-api.yaml put /orders/{id}","title":"Update Order","href":"/api-reference/latest/orders/update-order"},{"openapi":"delete /orders/{id}","title":"Delete Order","href":"/api-reference/latest/orders/delete-order"},{"openapi":"delete /orders/external/{externalId}","title":"Delete Order by External ID","href":"/api-reference/latest/orders/delete-order-by-external-id"}]},{"group":"Customers","pages":[{"openapi":"get /customers","title":"List Customers","href":"/api-reference/latest/customers/list-customers"},{"openapi":"post /customers","title":"Create Customer","href":"/api-reference/latest/customers/create-customer"},{"openapi":"put /customers","title":"Upsert Customer","href":"/api-reference/latest/customers/upsert-customer"},{"openapi":"get /customers/{id}","title":"Get Customer","href":"/api-reference/latest/customers/get-customer"},{"openapi":"get /customers/external/{externalId}","title":"Get Customer by External ID","href":"/api-reference/latest/customers/get-customer-by-external-id"},{"openapi":"put /customers/{id}","title":"Update Customer","href":"/api-reference/latest/customers/update-customer"},{"openapi":"delete /customers/{id}","title":"Delete Customer","href":"/api-reference/latest/customers/delete-customer"},{"openapi":"delete /customers/external/{externalId}","title":"Delete Customer by External ID","description":"Delete a customer by its commerce `external_id`.","href":"/api-reference/latest/customers/delete-customer-by-external-id"},{"title":"Redact Customer","openapi":"post /privacy/customer/redact","href":"/api-reference/latest/customers/redact-customer"}]},{"group":"Locations","pages":[{"openapi":"get /locations","title":"List Locations","description":"Retrieve a list of locations. The list can be filtered, sorted, and paginated using the parameters below.","href":"/api-reference/latest/locations/list-locations"},{"openapi":"post /locations","title":"Create Location","href":"/api-reference/latest/locations/create-location"},{"openapi":"put /locations","title":"Upsert Location","href":"/api-reference/latest/locations/upsert-location"},{"openapi":"get /locations/{id}","title":"Get Location","href":"/api-reference/latest/locations/get-location"},{"openapi":"get /locations/external/{externalId}","title":"Get Location by External ID","href":"/api-reference/latest/locations/get-location-by-external-id"},{"openapi":"put /locations/{id}","title":"Update Location","href":"/api-reference/latest/locations/update-location"},{"openapi":"delete /locations/{id}","title":"Delete Location","href":"/api-reference/latest/locations/delete-location"},{"openapi":"delete /locations/external/{externalId}","title":"Delete Location by External ID","href":"/api-reference/latest/locations/delete-location-by-external-id"}]},{"group":"Inventories","pages":[{"openapi":"get /inventories","title":"List Inventories","href":"/api-reference/latest/inventories/list-inventories"},{"openapi":"post /inventories/{productVariantId}/{locationId}","title":"Upsert Inventory","href":"/api-reference/latest/inventories/create-inventory"},{"openapi":"put /inventories/{productVariantId}/{locationId}","title":"Upsert Inventory","href":"/api-reference/latest/inventories/upsert-inventory"},{"openapi":"put /inventories/external/{variantExternalId}/{locationExternalId}","title":"Upsert Inventory by External IDs","href":"/api-reference/latest/inventories/upsert-inventory-by-external-ids"},{"openapi":"get /inventories/{productVariantId}/{locationId}","title":"Get Inventory","href":"/api-reference/latest/inventories/get-inventory"},{"openapi":"get /inventories/external/{variantExternalId}/{locationExternalId}","title":"Get Inventory by External IDs","href":"/api-reference/latest/inventories/get-inventory-by-external-ids"},{"openapi":"delete /inventories/{productVariantId}/{locationId}","title":"Delete Inventory","href":"/api-reference/latest/inventories/delete-inventory"},{"openapi":"delete /inventories/external/{variantExternalId}/{locationExternalId}","title":"Delete Inventory by External IDs","href":"/api-reference/latest/inventories/delete-inventory-by-external-ids"}]},{"group":"Collections","pages":[{"openapi":"get /collections","title":"List Collections","href":"/api-reference/latest/collections/list-collections"},{"openapi":"post /collections","title":"Create Collection","href":"/api-reference/latest/collections/create-collection"},{"openapi":"put /collections","title":"Upsert Collection","href":"/api-reference/latest/collections/upsert-collection"},{"openapi":"get /collections/{id}","title":"Get Collection","href":"/api-reference/latest/collections/get-collection"},{"openapi":"get /collections/external/{externalId}","title":"Get Collection by External ID","href":"/api-reference/latest/collections/get-collection-by-external-id"},{"openapi":"put /collections/{id}","title":"Update Collection","href":"/api-reference/latest/collections/update-collection"},{"openapi":"delete /collections/{id}","title":"Delete Collection","href":"/api-reference/latest/collections/delete-collection"},{"openapi":"delete /collections/external/{externalId}","title":"Delete Collection by External ID","href":"/api-reference/latest/collections/delete-collection-by-external-id"},{"openapi":"post /collections/{id}/products/{productId}","title":"Add Product to Collection","href":"/api-reference/latest/collections/add-product-to-collection"},{"openapi":"delete /collections/{id}/products/{productId}","title":"Delete Product from Collection","href":"/api-reference/latest/collections/delete-product-from-collection"},{"openapi":"post /collections/external/{collectionExternalId}/products/external/{productExternalId}","title":"Add Product to Collection by External ID","href":"/api-reference/latest/collections/add-product-to-collection-by-external-id"},{"openapi":"delete /collections/external/{collectionExternalId}/products/external/{productExternalId}","title":"Delete Product from Collection by External ID","href":"/api-reference/latest/collections/delete-product-from-collection-by-external-id"}]},{"group":"Bulk Operations","pages":[{"openapi":"post /bulk-operations","title":"Create Bulk Operation","href":"/api-reference/latest/bulk-operations/create-bulk-operation"},{"openapi":"get /bulk-operations","title":"List Bulk Operations","href":"/api-reference/latest/bulk-operations/list-bulk-operations"},{"openapi":"get /bulk-operations/{id}","title":"Get Bulk Operation","href":"/api-reference/latest/bulk-operations/get-bulk-operation"},{"openapi":"get /bulk-operations/{id}/jobs","title":"List Bulk Operation Jobs","href":"/api-reference/latest/bulk-operations/list-bulk-operation-jobs"}]}]}]}]},{"tab":"Webhook Reference","pages":[{"title":"Webhook Reference","href":"/webhook-reference/getting-started"}]}]},{"version":"unstable","tabs":[{"tab":"Introduction","pages":[{"title":"Introduction","href":"/welcome"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/integration-guides/overview"}]},{"tab":"MCP Server","pages":[{"title":"MCP Server","href":"/mcp/overview"}]},{"tab":"API Reference","groups":[{"group":"Unstable","pages":[{"title":"What's different in unstable","sidebarTitle":"What's Changed","href":"/api-reference/unstable/changes"}]},{"group":"Using the API","pages":[{"title":"Getting Started","icon":"play","href":"/api-reference/getting-started"},{"title":"Authentication","version":"2026-07","icon":"lock","href":"/api-reference/authentication"},{"title":"API Versioning","icon":"clock","href":"/api-reference/versioning"},{"title":"Rate limit","icon":"gauge","href":"/api-reference/rate-limit"},{"title":"Pagination","icon":"page","href":"/api-reference/pagination"},{"title":"Error codes","icon":"circle-exclamation","iconType":"regular","href":"/api-reference/error-codes"},{"title":"Postman Collection","icon":"bolt","href":"/api-reference/postman"}]},{"group":"APIs","pages":[{"group":"Return Actions","pages":[{"openapi":"post /warehouse/return/{id}/process","title":"Process Return","href":"/api-reference/latest/return-actions/process-return"},{"openapi":"post /warehouse/return/{id}/remove","title":"Remove Line Items","href":"/api-reference/latest/return-actions/remove-line-items"},{"openapi":"post /warehouse/return/{id}/cancel","title":"Cancel Return","href":"/api-reference/latest/return-actions/cancel-return"},{"openapi":"post /warehouse/return/{id}/flag","title":"Flag Return","href":"/api-reference/latest/return-actions/flag-return"},{"openapi":"post /warehouse/return/{id}/close","title":"Close Return","href":"/api-reference/latest/return-actions/close-return"},{"openapi":"get /warehouse/return/{id}/notes","title":"Get Return Notes","href":"/api-reference/latest/return-actions/get-return-notes"},{"openapi":"post /warehouse/return/{id}/note","title":"Create Return Note","href":"/api-reference/latest/return-actions/create-return-note"},{"openapi":"post /order/link","title":"Create Return Deep Link","href":"/api-reference/latest/return-actions/create-return-deep-link"},{"openapi":"post /order/qr","title":"Create Return Deep Link with QR Code","href":"/api-reference/latest/return-actions/create-return-deep-link-with-qr-code"}]},{"group":"Return Data","pages":[{"openapi":"get /warehouse/return/list","title":"Detailed Returns List","href":"/api-reference/latest/return-data/detailed-returns-list"},{"openapi":"get /warehouse/return/details","title":"Get Return Details","href":"/api-reference/latest/return-data/get-return-details"},{"openapi":"get /warehouse/reporting/asn","title":"Advanced Shipping Notice","href":"/api-reference/latest/return-data/advanced-shipping-notice"}]},{"group":"Programmatic Webhooks","pages":[{"openapi":"get /webhooks","title":"Get Webhooks","href":"/api-reference/latest/programmatic-webhooks/get-webhooks"},{"openapi":"post /webhooks","title":"Create Webhook","href":"/api-reference/latest/programmatic-webhooks/create-webhook"},{"openapi":"put /webhooks/{id}","title":"Update Webhook","href":"/api-reference/latest/programmatic-webhooks/update-webhook"},{"openapi":"delete /webhooks/{id}","title":"Delete Webhook","href":"/api-reference/latest/programmatic-webhooks/delete-webhook"}]},{"group":"Item Grading and Dispositioning","pages":[{"openapi":"post /dispositioning/grade","title":"Grade Items","href":"/api-reference/latest/item-grading-and-disposition/grade-items"},{"openapi":"post /dispositioning/assess","title":"Assess Dispositions","href":"/api-reference/latest/item-grading-and-disposition/assess-dispositions"}]},{"group":"Cart","pages":[{"openapi":"post /cart","title":"Create Cart","href":"/api-reference/latest/cart/create-cart"},{"openapi":"get /cart/{token}","title":null,"href":"/api-reference/latest/cart/get-cart"},{"openapi":"post /cart/{token}","title":null,"href":"/api-reference/latest/cart/update-cart"},{"openapi":"delete /cart/{token}","title":null,"href":"/api-reference/latest/cart/delete-cart"}]},{"group":"Destinations","pages":[{"openapi":"get /destinations","title":"Get All Destinations","href":"/api-reference/latest/destinations/get-all-destinations"},{"openapi":"post /destinations","title":"Create Destination","href":"/api-reference/latest/destinations/create-destination"},{"openapi":"get /destinations/{id}","title":"Get Destination Details","href":"/api-reference/latest/destinations/get-destination-details"},{"openapi":"put /destinations/{id}","title":"Update Destination","href":"/api-reference/latest/destinations/update-destination"},{"openapi":"delete /destinations/{id}","title":"Delete Destination","href":"/api-reference/latest/destinations/delete-destination"}]},{"group":"Blocklist","pages":[{"openapi":"get /blocklists","title":"List Blocklist Items","href":"/api-reference/latest/blocklist/list-blocklist-items"},{"openapi":"post /blocklists","title":"Create Blocklist Item","href":"/api-reference/latest/blocklist/create-blocklist-item"},{"openapi":"get /blocklists/{id}","title":"Get Blocklist Item","href":"/api-reference/latest/blocklist/get-blocklist-item"},{"openapi":"delete /blocklists/{id}","title":"Delete Blocklist Item","href":"/api-reference/latest/blocklist/delete-blocklist-item"}]},{"group":"Allowlist","pages":[{"openapi":"get /allowlists","title":"List Allowlist Items","href":"/api-reference/latest/allowlist/list-allowlist-items"},{"openapi":"post /allowlists","title":"Create Allowlist Item","href":"/api-reference/latest/allowlist/create-allowlist-item"},{"openapi":"get /allowlists/{id}","title":"Get Allowlist Item","href":"/api-reference/latest/allowlist/get-allowlist-item"},{"openapi":"delete /allowlists/{id}","title":"Delete Allowlist Item","href":"/api-reference/latest/allowlist/delete-allowlist-item"}]},{"group":"Fraud Reports","pages":[{"openapi":"post /returns/{id}/fraud-report","title":"Create Fraud Report","href":"/api-reference/latest/return-actions/create-fraud-report"}]},{"group":"Order Return Eligibility","pages":[{"openapi":"post /orders/return-eligibility","title":"Look Up Order Return Eligibility by Order Name","href":"/api-reference/latest/orders/look-up-order-return-eligibility"}]},{"group":"Happy Returns Shipments","pages":[{"openapi":"get /happy-returns/shipments/{happy_returns_shipment_id}","title":"Get Shipment Information","href":"/api-reference/latest/happy-returns-shipment/get-shipment-information"},{"openapi":"get /happy-returns/shipments","title":"Get Shipments","href":"/api-reference/latest/happy-returns-shipment/get-shipments"},{"openapi":"get /happy-returns/shipments/{id}/items","title":"Get Shipment Items","href":"/api-reference/latest/happy-returns-shipment-items/get-shipment-items"}]},{"group":"Label Requests","pages":[{"openapi":"get /label-requests","title":"List Label Requests","href":"/api-reference/latest/label-requests/list-label-requests"},{"openapi":"get /label-requests/{id}","title":"Get Label Request","href":"/api-reference/latest/label-requests/get-label-request"},{"openapi":"post /label-requests/{id}/errors","title":"Create Label Request Error","href":"/api-reference/latest/label-requests/create-a-label-request-error"},{"openapi":"post /labels","title":"Create Label","href":"/api-reference/latest/label-requests/create-label"},{"openapi":"post /returns/{returnId}/labels","title":"Generate Label","href":"/api-reference/latest/label-requests/generate-label"},{"openapi":"put /labels/{id}","title":"Update Label Status","href":"/api-reference/latest/label-requests/update-label-status"}]},{"group":"Return Create","pages":[{"title":"Return Create Overview","version":"2026-10","href":"/api-reference/2026-10/draft-returns/overview"},{"openapi":"draft-returns-hal-forms get /draft-returns","title":"List Draft Returns","href":"/api-reference/2026-10/draft-returns/list-draft-returns"},{"openapi":"draft-returns-hal-forms get /draft-returns/{draft_return_id}","title":"Get Draft Return","href":"/api-reference/2026-10/draft-returns/get-draft-return"},{"openapi":"draft-returns-hal-forms get /draft-returns/{draft_return_id}/order/items","title":"List Order Line Items","href":"/api-reference/2026-10/draft-returns/list-order-line-items"},{"openapi":"draft-returns-hal-forms get /draft-returns/{draft_return_id}/totals","title":"Get Draft Return Totals","href":"/api-reference/2026-10/draft-returns/get-draft-return-totals"},{"openapi":"draft-returns-hal-forms post /draft-returns","title":"Initialize Draft Return","href":"/api-reference/2026-10/draft-returns/initialize-draft-return"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/accept-return-policy","title":"Accept Return Policy","href":"/api-reference/2026-10/draft-returns/accept-return-policy"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/cancel","title":"Cancel Draft Return","href":"/api-reference/2026-10/draft-returns/cancel-draft-return"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/customer","title":"Set Customer","href":"/api-reference/2026-10/draft-returns/set-customer"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/address","title":"Set Address","href":"/api-reference/2026-10/draft-returns/set-address"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/returning-items","title":"Add Returning Item","href":"/api-reference/2026-10/draft-returns/add-returning-item"},{"openapi":"draft-returns-hal-forms delete /draft-returns/{draft_return_id}/returning-items/{returning_item_id}","title":"Remove Returning Item","href":"/api-reference/2026-10/draft-returns/remove-returning-item"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/returning-items/{returning_item_id}/return-reason","title":"Set Returning Item Return Reason","href":"/api-reference/2026-10/draft-returns/set-returning-item-return-reason"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/returning-items/{returning_item_id}/user-input/{user_input_id}","title":"Add Returning Item User Input","href":"/api-reference/2026-10/draft-returns/add-returning-item-user-input"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/returning-items/{returning_item_id}/return-type","title":"Set Returning Item Return Type","href":"/api-reference/2026-10/draft-returns/set-returning-item-return-type"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/returning-items/{returning_item_id}/exchange-item","title":"Add Returning Item Exchange Item","href":"/api-reference/2026-10/draft-returns/add-returning-item-exchange-item"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/cart/items","title":"Add Cart Item","href":"/api-reference/2026-10/draft-returns/add-cart-item"},{"openapi":"draft-returns-hal-forms delete /draft-returns/{draft_return_id}/cart/items/{cart_item_id}","title":"Remove Cart Item","href":"/api-reference/2026-10/draft-returns/remove-cart-item"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/credit-type","title":"Set Credit Type","href":"/api-reference/2026-10/draft-returns/set-credit-type"},{"openapi":"draft-returns-hal-forms delete /draft-returns/{draft_return_id}/credit-type","title":"Unset Credit Type","href":"/api-reference/2026-10/draft-returns/unset-credit-type"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/processing-type","title":"Set Processing Type","href":"/api-reference/2026-10/draft-returns/set-processing-type"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/finalize-items","title":"Finalize Items","href":"/api-reference/2026-10/draft-returns/finalize-items"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/unfinalize-items","title":"Unfinalize Items","href":"/api-reference/2026-10/draft-returns/unfinalize-items"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/return-method","title":"Select Return Method","href":"/api-reference/2026-10/draft-returns/select-return-method"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/return-method/carrier","title":"Select Return Method Carrier","href":"/api-reference/2026-10/draft-returns/select-return-method-carrier"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/language","title":"Set Language","href":"/api-reference/2026-10/draft-returns/set-language"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/cart","title":"Set Cart","href":"/api-reference/2026-10/draft-returns/set-cart"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/payment-intent","title":"Create Payment Intent","href":"/api-reference/2026-10/draft-returns/create-payment-intent"},{"openapi":"draft-returns-hal-forms delete /draft-returns/{draft_return_id}/payment-intent/{payment_intent_id}","title":"Remove Payment Intent","href":"/api-reference/2026-10/draft-returns/remove-payment-intent"},{"openapi":"draft-returns-hal-forms post /draft-returns/{draft_return_id}/submit","title":"Submit Draft Return","href":"/api-reference/2026-10/draft-returns/submit-draft-return"}]},{"group":"Commerce Data","pages":[{"group":"Products","pages":[{"openapi":"get /products","title":"List Products","href":"/api-reference/latest/products/list-products"},{"openapi":"post /products","title":"Create Product","href":"/api-reference/latest/products/create-product"},{"openapi":"put /products","title":"Upsert Product","href":"/api-reference/latest/products/upsert-product"},{"openapi":"get /products/{id}","title":"Get Product","href":"/api-reference/latest/products/get-product"},{"openapi":"get /products/external/{externalId}","title":"Get Product by External ID","href":"/api-reference/latest/products/get-product-by-external-id"},{"openapi":"put /products/{id}","title":"Update Product","href":"/api-reference/latest/products/update-product"},{"openapi":"delete /products/{id}","title":"Delete Product","href":"/api-reference/latest/products/delete-product"},{"openapi":"delete /products/external/{externalId}","title":"Delete Product by External ID","href":"/api-reference/latest/products/delete-product-by-external-id"},{"openapi":"get /products/{productId}/product-variants","title":"List Product Variants","href":"/api-reference/latest/products/list-product-variants"},{"openapi":"post /products/{productId}/product-variants","title":"Create Product Variant","href":"/api-reference/latest/products/create-product-variant"},{"openapi":"put /products/{productId}/product-variants","title":"Upsert Product Variant","href":"/api-reference/latest/products/upsert-product-variant"},{"openapi":"put /products/external/{productExternalId}/product-variants","title":"Upsert Product Variant by Product External ID","href":"/api-reference/latest/products/upsert-product-variant-by-product-external-id"},{"openapi":"get /products/{productId}/product-variants/{id}","title":"Get Product Variant","href":"/api-reference/latest/products/get-product-variant"},{"openapi":"get /products/external/{productExternalId}/product-variants/{externalId}","title":"Get Product Variant by External ID","href":"/api-reference/latest/products/get-product-variant-by-external-id"},{"openapi":"patch /products/{productId}/product-variants/{id}","title":"Update Product Variant","href":"/api-reference/latest/products/update-product-variant"},{"openapi":"delete /products/{productId}/product-variants/{id}","title":"Delete Product Variant","href":"/api-reference/latest/products/delete-product-variant"},{"openapi":"delete /products/external/{productExternalId}/product-variants/{externalId}","title":"Delete Product Variant by External ID","href":"/api-reference/latest/products/delete-product-variant-by-external-id"}]},{"group":"Orders","pages":[{"openapi":"get /orders","title":"List Orders","href":"/api-reference/latest/orders/list-orders"},{"openapi":"openapi/orders-api.yaml post /orders","title":"Create Order","href":"/api-reference/latest/orders/create-order"},{"openapi":"openapi/orders-api.yaml put /orders","title":"Upsert Order","href":"/api-reference/latest/orders/upsert-order"},{"openapi":"get /orders/{id}","title":"Get Order","href":"/api-reference/latest/orders/get-order"},{"openapi":"get /orders/external/{externalId}","title":"Get Order by External ID","href":"/api-reference/latest/orders/get-order-by-external-id"},{"openapi":"openapi/orders-api.yaml put /orders/{id}","title":"Update Order","href":"/api-reference/latest/orders/update-order"},{"openapi":"delete /orders/{id}","title":"Delete Order","href":"/api-reference/latest/orders/delete-order"},{"openapi":"delete /orders/external/{externalId}","title":"Delete Order by External ID","href":"/api-reference/latest/orders/delete-order-by-external-id"}]},{"group":"Customers","pages":[{"openapi":"get /customers","title":"List Customers","href":"/api-reference/latest/customers/list-customers"},{"openapi":"post /customers","title":"Create Customer","href":"/api-reference/latest/customers/create-customer"},{"openapi":"put /customers","title":"Upsert Customer","href":"/api-reference/latest/customers/upsert-customer"},{"openapi":"get /customers/{id}","title":"Get Customer","href":"/api-reference/latest/customers/get-customer"},{"openapi":"get /customers/external/{externalId}","title":"Get Customer by External ID","href":"/api-reference/latest/customers/get-customer-by-external-id"},{"openapi":"put /customers/{id}","title":"Update Customer","href":"/api-reference/latest/customers/update-customer"},{"openapi":"delete /customers/{id}","title":"Delete Customer","href":"/api-reference/latest/customers/delete-customer"},{"openapi":"delete /customers/external/{externalId}","title":"Delete Customer by External ID","description":"Delete a customer by its commerce `external_id`.","href":"/api-reference/latest/customers/delete-customer-by-external-id"},{"title":"Redact Customer","openapi":"post /privacy/customer/redact","href":"/api-reference/latest/customers/redact-customer"}]},{"group":"Locations","pages":[{"openapi":"get /locations","title":"List Locations","description":"Retrieve a list of locations. The list can be filtered, sorted, and paginated using the parameters below.","href":"/api-reference/latest/locations/list-locations"},{"openapi":"post /locations","title":"Create Location","href":"/api-reference/latest/locations/create-location"},{"openapi":"put /locations","title":"Upsert Location","href":"/api-reference/latest/locations/upsert-location"},{"openapi":"get /locations/{id}","title":"Get Location","href":"/api-reference/latest/locations/get-location"},{"openapi":"get /locations/external/{externalId}","title":"Get Location by External ID","href":"/api-reference/latest/locations/get-location-by-external-id"},{"openapi":"put /locations/{id}","title":"Update Location","href":"/api-reference/latest/locations/update-location"},{"openapi":"delete /locations/{id}","title":"Delete Location","href":"/api-reference/latest/locations/delete-location"},{"openapi":"delete /locations/external/{externalId}","title":"Delete Location by External ID","href":"/api-reference/latest/locations/delete-location-by-external-id"}]},{"group":"Inventories","pages":[{"openapi":"get /inventories","title":"List Inventories","href":"/api-reference/latest/inventories/list-inventories"},{"openapi":"post /inventories/{productVariantId}/{locationId}","title":"Upsert Inventory","href":"/api-reference/latest/inventories/create-inventory"},{"openapi":"put /inventories/{productVariantId}/{locationId}","title":"Upsert Inventory","href":"/api-reference/latest/inventories/upsert-inventory"},{"openapi":"put /inventories/external/{variantExternalId}/{locationExternalId}","title":"Upsert Inventory by External IDs","href":"/api-reference/latest/inventories/upsert-inventory-by-external-ids"},{"openapi":"get /inventories/{productVariantId}/{locationId}","title":"Get Inventory","href":"/api-reference/latest/inventories/get-inventory"},{"openapi":"get /inventories/external/{variantExternalId}/{locationExternalId}","title":"Get Inventory by External IDs","href":"/api-reference/latest/inventories/get-inventory-by-external-ids"},{"openapi":"delete /inventories/{productVariantId}/{locationId}","title":"Delete Inventory","href":"/api-reference/latest/inventories/delete-inventory"},{"openapi":"delete /inventories/external/{variantExternalId}/{locationExternalId}","title":"Delete Inventory by External IDs","href":"/api-reference/latest/inventories/delete-inventory-by-external-ids"}]},{"group":"Collections","pages":[{"openapi":"get /collections","title":"List Collections","href":"/api-reference/latest/collections/list-collections"},{"openapi":"post /collections","title":"Create Collection","href":"/api-reference/latest/collections/create-collection"},{"openapi":"put /collections","title":"Upsert Collection","href":"/api-reference/latest/collections/upsert-collection"},{"openapi":"get /collections/{id}","title":"Get Collection","href":"/api-reference/latest/collections/get-collection"},{"openapi":"get /collections/external/{externalId}","title":"Get Collection by External ID","href":"/api-reference/latest/collections/get-collection-by-external-id"},{"openapi":"put /collections/{id}","title":"Update Collection","href":"/api-reference/latest/collections/update-collection"},{"openapi":"delete /collections/{id}","title":"Delete Collection","href":"/api-reference/latest/collections/delete-collection"},{"openapi":"delete /collections/external/{externalId}","title":"Delete Collection by External ID","href":"/api-reference/latest/collections/delete-collection-by-external-id"},{"openapi":"post /collections/{id}/products/{productId}","title":"Add Product to Collection","href":"/api-reference/latest/collections/add-product-to-collection"},{"openapi":"delete /collections/{id}/products/{productId}","title":"Delete Product from Collection","href":"/api-reference/latest/collections/delete-product-from-collection"},{"openapi":"post /collections/external/{collectionExternalId}/products/external/{productExternalId}","title":"Add Product to Collection by External ID","href":"/api-reference/latest/collections/add-product-to-collection-by-external-id"},{"openapi":"delete /collections/external/{collectionExternalId}/products/external/{productExternalId}","title":"Delete Product from Collection by External ID","href":"/api-reference/latest/collections/delete-product-from-collection-by-external-id"}]},{"group":"Bulk Operations","pages":[{"openapi":"post /bulk-operations","title":"Create Bulk Operation","href":"/api-reference/latest/bulk-operations/create-bulk-operation"},{"openapi":"get /bulk-operations","title":"List Bulk Operations","href":"/api-reference/latest/bulk-operations/list-bulk-operations"},{"openapi":"get /bulk-operations/{id}","title":"Get Bulk Operation","href":"/api-reference/latest/bulk-operations/get-bulk-operation"},{"openapi":"get /bulk-operations/{id}/jobs","title":"List Bulk Operation Jobs","href":"/api-reference/latest/bulk-operations/list-bulk-operation-jobs"}]}]}]}]},{"tab":"Webhook Reference","pages":[{"title":"Webhook Reference","href":"/webhook-reference/getting-started"}]}]}]},"basePath":"","title":"Redact Customer - Loop Returns Documentation","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","Page-BAvA99GL.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js","Markdown-nKm-uidQ.js","clsx-ClVdStUn.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CIQkMg3R.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-ImrFS4Fy.js"]}