This guide assumes your Loop plan includes the Happy Returns integration. For help enabling these features, contact your Loop point of contact or support@loopreturns.com.
The Happy Returns integration allows merchants to process returns that have been dropped off at Happy Returns Bars. Unlike standard mail returns, these items are consolidated at Happy Returns facilities before being shipped in bulk to your warehouse.This guide explains how to programmatically retrieve shipment data—specifically the Bag Barcode—to efficiently receive and process these returns in your warehouse.
Understanding the IDs is crucial. You have two main options for scanning: Bag Barcodes (standard) or Loop Return IDs (requires configuration).
ID Name
Description
Context
Bag Barcode
The pre-printed QR code on the polybag (e.g., HR200250DB9E).
Standard scanning method. Links to the return via package_reference.
Loop Return ID
The internal Loop ID (e.g., 12345).
Option: Can be printed on the bag label if enabled.
RMA ID
Customer-facing QR code (e.g., HRJYTQ5J).
Used at drop-off, rarely in warehouse.
Shipment ID
Unique ID for the consolidated shipment.
Represents the box/pallet containing multiple bags.
Pro Tip: Print Loop ID on BagsContact your Loop point of contact or support to enable the “Happy Returns Loop Return ID Printed On Bags” setting. This prints the actual Loop Return ID on the bag’s label, allowing your warehouse to scan and find the return directly without mapping a Bag Barcode.When to use: If your WMS or 3PL cannot easily map external barcodes and prefers direct order/return lookups.
In this workflow, your system listens for webhooks to “pre-alert” your WMS about incoming returns. When the shipment leaves the Happy Returns facility, you receive the data needed to recognize the Bag Barcode when it arrives.Workflow:
Extract the package_reference (this is the Bag Barcode) and id (Loop Return ID).
Ingest the return information into your WMS before the box arrives.
Scan the physical Bag Barcode on the polybag upon arrival to immediately identify and process the return.
{ "topic": "return", "trigger": "return.updated", "id": 1001, "state": "open", "package_reference": "HR200250DB9E", // This is the Bag Barcode "scannable_id": "HR200250DB9E", // Repurposed as Bag Barcode for HR returns "external_return_label_id": "SB-272610", // Box Barcode (shipping label) ...}
The package_reference field in the return.updated webhook will contain the Happy Returns Bag Barcode once the shipment is in transit.
By default, refunds are often issued at the time of drop-off. However, you can configure Loop to wait for warehouse inspection before refunding.Requirements:
Contact your Loop point of contact or support to enable “Manual Processing” mode.
Critical: The “Happy Returns Partial Return” shop setting must be disabled.
What if a bag doesn’t scan?
If a Bag Barcode doesn’t pull up a return, it might be a “Triage Item” (an item that wasn’t correctly linked at the Return Bar). Use the Happy Returns Shipments Report to look up the item manually.Why are there multiple Bag Barcodes?
Rarely, a single return might be split into multiple bags. loops API responses provide happy_returns_return_bag_barcodes as an array. Scanning any of the barcodes in this array should validly identify the return.Can I utilize my existing Return Logic?
Yes. If you use “Post-Inspection Processing,” you can apply your standard inspection workflows (e.g., grading, restocking fees) just as you would for a mail-in return.
The Happy Returns integration allows you to offer a premium, box-free return experience for your customers while maintaining efficient warehouse operations. By correctly mapping Bag Barcodes to Loop Return IDs—either via real-time webhooks or bulk API polling—you can ensure that every return is processed accurately and quickly.If you have questions about specific warehouse configurations or need to enable Manual Processing, please reach out to your Loop point of contact or support.
{"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":"6aeca26621aa22f79f8e3517","collectionId":"dc0f7af0-e5b9-46ae-900e-ed1f575f606c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aeca26621aa22f79f8e3517"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aee02e9b56b944fc2811a93","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"API Reference","count":177},{"language":"default","tag":"APIs","count":169},{"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":14},{"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":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"integration-guides/happy-returns","slug":"/integration-guides/happy-returns","pageMetadata":{"title":"Happy Returns","icon":"smile","description":null,"href":"/integration-guides/happy-returns"},"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`,em:`em`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Heading,Table,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Warning,{children:_jsxs(_components.p,{children:[`This guide assumes your Loop plan includes the Happy Returns integration. For help enabling these features, contact your Loop point of contact or `,_jsx(_components.a,{href:`mailto:support@loopreturns.com`,children:`support@loopreturns.com`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`-overview`,children:`📝 Overview`}),`\n`,_jsx(_components.p,{children:`The Happy Returns integration allows merchants to process returns that have been dropped off at Happy Returns Bars. Unlike standard mail returns, these items are consolidated at Happy Returns facilities before being shipped in bulk to your warehouse.`}),`\n`,_jsxs(_components.p,{children:[`This guide explains how to programmatically retrieve shipment data—specifically the `,_jsx(_components.strong,{children:`Bag Barcode`}),`—to efficiently receive and process these returns in your warehouse.`]}),`\n`,_jsx(Heading,{level:`3`,id:`how-it-works`,children:`How it works`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Drop-off`}),`: Customer drops item at a Return Bar (no packaging needed).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Validation`}),`: Return Bar validates brand, color, and product type.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Bagging`}),`: Item is placed in a clear polybag with a `,_jsx(_components.strong,{children:`pre-printed QR code`}),` (Bag Barcode).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Linking`}),`: Associate scans the customer’s RMA code to link it to the Bag Barcode.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Processing`}),`: The return outcome typically processes ~12 hours later to allow for signal consolidation.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Consolidation`}),`: Bags are aggregated at Happy Returns hubs and shipped to your warehouse (typically ~2x/week).`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`-id-reference`,children:`🆔 ID Reference`}),`\n`,_jsxs(_components.p,{children:[`Understanding the IDs is crucial. You have two main options for scanning: `,_jsx(_components.strong,{children:`Bag Barcodes`}),` (standard) or `,_jsx(_components.strong,{children:`Loop Return IDs`}),` (requires configuration).`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`ID Name`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Description`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Context`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Bag Barcode`})}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`The pre-printed QR code on the polybag (e.g., `,_jsx(_components.code,{children:`HR200250DB9E`}),`).`]}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Standard scanning method. Links to the return via `,_jsx(_components.code,{children:`package_reference`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Loop Return ID`})}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`The internal Loop ID (e.g., `,_jsx(_components.code,{children:`12345`}),`).`]}),_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.strong,{children:`Option:`}),` Can be printed on the bag label if enabled.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`RMA ID`})}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Customer-facing QR code (e.g., `,_jsx(_components.code,{children:`HRJYTQ5J`}),`).`]}),_jsx(_components.td,{style:{textAlign:`left`},children:`Used at drop-off, rarely in warehouse.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Shipment ID`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Unique ID for the consolidated shipment.`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Represents the box/pallet containing multiple bags.`})]})]})]}),`\n`,_jsxs(Tip,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Pro Tip: Print Loop ID on Bags`})}),_jsxs(_components.p,{children:[`Contact your Loop point of contact or support to enable the `,_jsx(_components.strong,{children:`“Happy Returns Loop Return ID Printed On Bags”`}),` setting. This prints the actual Loop Return ID on the bag’s label, allowing your warehouse to scan and find the return directly without mapping a Bag Barcode.`]}),_jsxs(_components.p,{children:[_jsx(_components.em,{children:`When to use:`}),` If your WMS or 3PL cannot easily map external barcodes and prefers direct order/return lookups.`]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`-use-cases`,children:`🚀 Use Cases`}),`\n`,_jsx(_components.p,{children:`There are two primary ways to integrate Happy Returns data into your warehouse workflow:`}),`\n`,_jsx(Heading,{level:`3`,id:`1-scan-to-process-real-time`,children:`1. Scan-to-Process (Real-Time)`}),`\n`,_jsx(_components.p,{children:`In this workflow, your system listens for webhooks to “pre-alert” your WMS about incoming returns. When the shipment leaves the Happy Returns facility, you receive the data needed to recognize the Bag Barcode when it arrives.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Workflow:`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Listen`}),` for the `,_jsx(_components.a,{href:`/webhook-reference/topics/return-webhook`,children:_jsx(_components.code,{children:`return.updated`})}),` webhook.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Extract`}),` the `,_jsx(_components.code,{children:`package_reference`}),` (this is the Bag Barcode) and `,_jsx(_components.code,{children:`id`}),` (Loop Return ID).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Ingest`}),` the return information into your WMS before the box arrives.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Scan`}),` the physical Bag Barcode on the polybag upon arrival to immediately identify and process the return.`]}),`\n`]}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`Return Webhook Payload`,numberOfLines:`10`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"topic\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"return\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"trigger\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"return.updated\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1001`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"state\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"open\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"package_reference\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"HR200250DB9E\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// This is the Bag Barcode`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"scannable_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"HR200250DB9E\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Repurposed as Bag Barcode for HR returns`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"external_return_label_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SB-272610\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Box Barcode (shipping label)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#82071E`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F44747`,\"--shiki-dark-font-style\":`inherit`},children:` ...`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`package_reference`}),` field in the `,_jsx(_components.code,{children:`return.updated`}),` webhook will contain the Happy Returns Bag Barcode once the shipment is in transit.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`2-bulk-receiving-manifest-reconciliation`,children:`2. Bulk Receiving (Manifest Reconciliation)`}),`\n`,_jsx(_components.p,{children:`Alternatively, you can pull a manifest of all items in a shipment before processing. This is useful for receiving entire pallets at once.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Workflow:`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Listen`}),` for the `,_jsx(_components.a,{href:`/webhook-reference/topics/happy-returns-shipment-webhook`,children:_jsx(_components.code,{children:`happy.returns.shipment`})}),` webhook (trigger: `,_jsx(_components.code,{children:`shipment.processed`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Call`}),` the `,_jsx(_components.a,{href:`/api-reference/latest/happy-returns-shipment-items/get-shipment-items`,children:`Get Shipment Items`}),` API using the `,_jsx(_components.code,{children:`happy_returns_shipment_id`}),` from the webhook.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Ingest`}),` all returns in that shipment into your WMS preparation area.`]}),`\n`]}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`Response`,numberOfLines:`12`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`12`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"shipment_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`12345`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"happy_returns_shipment_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"45678\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"happy_returns_return_bag_barcodes\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"HR200250DB9E\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"loop_return_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1001`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"sku\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SKU-123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#82071E`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F44747`,\"--shiki-dark-font-style\":`inherit`},children:` ...`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`-technical-implementation`,children:`🛠️ Technical Implementation`}),`\n`,_jsx(Heading,{level:`3`,id:`webhook-setup`,children:`Webhook Setup`}),`\n`,_jsx(_components.p,{children:`To receive real-time updates, configure the following webhooks in the Loop Admin or via API:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Topic`}),`: `,_jsx(_components.a,{href:`/webhook-reference/topics/return-webhook`,children:_jsx(_components.code,{children:`return`})}),` | `,_jsx(_components.strong,{children:`Trigger`}),`: `,_jsx(_components.code,{children:`return.updated`})]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.em,{children:`Why`}),`: Gives you the link between Loop Return ID and Bag Barcode (`,_jsx(_components.code,{children:`package_reference`}),`).`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Topic`}),`: `,_jsx(_components.a,{href:`/webhook-reference/topics/happy-returns-shipment-webhook`,children:_jsx(_components.code,{children:`happy.returns.shipment`})}),` | `,_jsx(_components.strong,{children:`Trigger`}),`: `,_jsx(_components.code,{children:`shipment.processed`})]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.em,{children:`Why`}),`: Notifies you when a consolidated shipment is on its way to your warehouse.`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`api-polling-alternative`,children:`API Polling (Alternative)`}),`\n`,_jsx(_components.p,{children:`If you cannot use webhooks, you can poll the API to find new shipments:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Call `,_jsx(_components.a,{href:`/api-reference/latest/happy-returns-shipment/get-shipments`,children:`Get Shipments`}),` to find recent shipments.`]}),`\n`,_jsxs(_components.li,{children:[`For each new shipment, Call `,_jsx(_components.a,{href:`/api-reference/latest/happy-returns-shipment-items/get-shipment-items`,children:`Get Shipment Items`}),` to get the bag barcodes and return details.`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`-post-inspection-processing`,children:`📦 Post-Inspection Processing`}),`\n`,_jsx(_components.p,{children:`By default, refunds are often issued at the time of drop-off. However, you can configure Loop to wait for warehouse inspection before refunding.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Requirements:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Contact your Loop point of contact or support to enable `,_jsx(_components.strong,{children:`“Manual Processing”`}),` mode.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Critical:`}),` The “Happy Returns Partial Return” shop setting `,_jsx(_components.strong,{children:`must be disabled`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Workflow`}),`:`,`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Item arrives at warehouse.`}),`\n`,_jsx(_components.li,{children:`Warehouse inspects item.`}),`\n`,_jsxs(_components.li,{children:[`WMS calls `,_jsx(_components.a,{href:`/api-reference/latest/return-actions/process-return`,children:`Process Return API`}),` to accept/reject and trigger the refund.`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`-faq-\u0026-troubleshooting`,children:`❓ FAQ \u0026 Troubleshooting`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What if a bag doesn’t scan?`}),`\nIf a Bag Barcode doesn’t pull up a return, it might be a `,_jsx(_components.strong,{children:`“Triage Item”`}),` (an item that wasn’t correctly linked at the Return Bar). Use the `,_jsx(_components.a,{href:`https://admin.loopreturns.com/analytics/happyreturnsshipments`,children:`Happy Returns Shipments Report`}),` to look up the item manually.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Why are there multiple Bag Barcodes?`}),`\nRarely, a single return might be split into multiple bags. loops API responses provide `,_jsx(_components.code,{children:`happy_returns_return_bag_barcodes`}),` as an array. Scanning `,_jsx(_components.strong,{children:`any`}),` of the barcodes in this array should validly identify the return.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Can I utilize my existing Return Logic?`}),`\nYes. If you use “Post-Inspection Processing,” you can apply your standard inspection workflows (e.g., grading, restocking fees) just as you would for a mail-in return.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`-conclusion`,children:`🎉 Conclusion`}),`\n`,_jsxs(_components.p,{children:[`The Happy Returns integration allows you to offer a premium, box-free return experience for your customers while maintaining efficient warehouse operations. By correctly mapping `,_jsx(_components.strong,{children:`Bag Barcodes`}),` to Loop Return IDs—either via real-time webhooks or bulk API polling—you can ensure that every return is processed accurately and quickly.`]}),`\n`,_jsx(_components.p,{children:`If you have questions about specific warehouse configurations or need to enable Manual Processing, please reach out to your Loop point of contact or support.`})]})}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":"Happy Returns","icon":"smile","description":null,"href":"/integration-guides/happy-returns"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"📝 Overview","slug":"-overview","depth":2,"children":[{"title":"How it works","slug":"how-it-works","depth":3,"children":[]}]},{"title":"🆔 ID Reference","slug":"-id-reference","depth":2,"children":[]},{"title":"🚀 Use Cases","slug":"-use-cases","depth":2,"children":[{"title":"1. Scan-to-Process (Real-Time)","slug":"1-scan-to-process-real-time","depth":3,"children":[]},{"title":"2. Bulk Receiving (Manifest Reconciliation)","slug":"2-bulk-receiving-manifest-reconciliation","depth":3,"children":[]}]},{"title":"🛠️ Technical Implementation","slug":"-technical-implementation","depth":2,"children":[{"title":"Webhook Setup","slug":"webhook-setup","depth":3,"children":[]},{"title":"API Polling (Alternative)","slug":"api-polling-alternative","depth":3,"children":[]}]},{"title":"📦 Post-Inspection Processing","slug":"-post-inspection-processing","depth":2,"children":[]},{"title":"❓ FAQ \u0026 Troubleshooting","slug":"-faq-\u0026-troubleshooting","depth":2,"children":[]},{"title":"🎉 Conclusion","slug":"-conclusion","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/loopreturns/d7dc6883aeaefe8b/scripts/generate-unstable-nav.js","/_mintlify/custom/loopreturns/eb155f0b6d2849a4/scripts/update-openapi-servers.js"],"subdomain":"loopreturns","siteName":"Loop Returns Documentation","title":"Happy Returns - Loop Returns Documentation","navMaps":{"firstHrefInVersion":{"2026-07":{"href":"/integration-guides/happy-returns","matchLevel":0},"2026-10":{"href":"/integration-guides/happy-returns","matchLevel":0},"unstable":{"href":"/integration-guides/happy-returns","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-11-06T16:40:22.041Z","originalFileLocation":"integration-guides/happy-returns.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=\"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=\"Happy Returns - Loop Returns Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Loop Returns Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.loopreturns.com/integration-guides/happy-returns\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://loopreturns.mintlify.site/_mintlify/api/og/v2?division=Guides\u0026amp;title=Happy+Returns\u0026amp;theme=5ccacdea69e246fe33e6ab29\u0026amp;signature=67fc55ef10d979c147acc9d16980ee863ea3327f76e086c838f2c1da0f2f7ca8\">\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=\"Happy Returns - Loop Returns Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://loopreturns.mintlify.site/_mintlify/api/og/v2?division=Guides\u0026amp;title=Happy+Returns\u0026amp;theme=5ccacdea69e246fe33e6ab29\u0026amp;signature=67fc55ef10d979c147acc9d16980ee863ea3327f76e086c838f2c1da0f2f7ca8\">\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/integration-guides/happy-returns\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/integration-guides/happy-returns.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/integration-guides/happy-returns#webpage\",\"url\":\"https://docs.loopreturns.com/integration-guides/happy-returns\",\"name\":\"Happy Returns\",\"dateModified\":\"2026-11-06T16:40:22.041Z\",\"isPartOf\":{\"@id\":\"https://docs.loopreturns.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.loopreturns.com/integration-guides/happy-returns#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.loopreturns.com/integration-guides/happy-returns#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Guides\",\"item\":\"https://docs.loopreturns.com/integration-guides/return-data\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Happy Returns\",\"item\":\"https://docs.loopreturns.com/integration-guides/happy-returns\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.loopreturns.com/integration-guides/happy-returns#article\",\"headline\":\"Happy Returns\",\"name\":\"Happy Returns\",\"url\":\"https://docs.loopreturns.com/integration-guides/happy-returns\",\"mainEntityOfPage\":{\"@id\":\"https://docs.loopreturns.com/integration-guides/happy-returns#webpage\"},\"dateModified\":\"2026-11-06T16:40:22.041Z\",\"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","groups":[{"group":"Introduction","pages":[{"title":"Overview","icon":"sparkles","href":"/integration-guides/overview"}]},{"group":"Guides","pages":[{"title":"Retrieving Return Data","icon":"database","href":"/integration-guides/return-data"},{"title":"Shopify Gift Card Order Metafield","icon":"gift","href":"/integration-guides/shopify-gift-card-order-metafield"},{"title":"Actioning on Returns","icon":"clapperboard","href":"/integration-guides/return-actions"},{"title":"Third Party Labels","icon":"tag","href":"/integration-guides/labels-integration"},{"title":"Grading \u0026 Disposition","icon":"notebook","description":null,"href":"/integration-guides/grading-and-disposition"},{"title":"Happy Returns","icon":"smile","href":"/integration-guides/happy-returns"},{"title":"Partner (Third Party App) Deep Link","sidebarTitle":"Partner Deep Link","icon":"link","description":null,"href":"/integration-guides/partner-deep-link"},{"title":"Commerce Data","icon":"satellite-dish","href":"/integration-guides/commerce-data"},{"title":"Checkout+ API Integration","sidebarTitle":"Checkout+","icon":"shield-check","href":"/integration-guides/checkout-plus"}]},{"group":"Use Cases","pages":[{"title":"General Integration","icon":"floppy-disk","href":"/integration-guides/general-integration"},{"title":"Create a Return Authorization","sidebarTitle":"Return Authorization","icon":"plus","href":"/integration-guides/create-return-authorization"},{"title":"Process Returns in Loop","sidebarTitle":"Process Returns","icon":"check","href":"/integration-guides/process-returns"},{"title":"Deep Link to a Customer Order in the Return Portal","sidebarTitle":"Order Deep Link","icon":"link","href":"/integration-guides/deep-link"},{"title":"On-Store Exchanges","icon":"cart-shopping","href":"/integration-guides/on-store-exchanges"},{"title":"Headless Shop Now (On-Store)","sidebarTitle":"Headless On-Store","icon":"code","href":"/integration-guides/headless-on-store"},{"title":"Generate Return Details Report","sidebarTitle":"Return Details Report","icon":"table","href":"/integration-guides/generate-return-details-report"},{"title":"Loop Anywhere","icon":"plug","href":"/integration-guides/loop-anywhere"}]},{"group":"Return Create","pages":[{"title":"Getting Started with the Return Create API","sidebarTitle":"Getting Started","icon":"rocket","href":"/return-create-api/return-create-api"},{"title":"Checking Item Return Eligibility with the Return Create API","sidebarTitle":"Item Eligibility","icon":"circle-check","href":"/return-create-api/eligibility-api"}]}]},{"tab":"MCP Server","pages":[{"title":"MCP Server","href":"/mcp/overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/getting-started"}]},{"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","groups":[{"group":"Introduction","pages":[{"title":"Overview","icon":"sparkles","href":"/integration-guides/overview"}]},{"group":"Guides","pages":[{"title":"Retrieving Return Data","icon":"database","href":"/integration-guides/return-data"},{"title":"Shopify Gift Card Order Metafield","icon":"gift","href":"/integration-guides/shopify-gift-card-order-metafield"},{"title":"Actioning on Returns","icon":"clapperboard","href":"/integration-guides/return-actions"},{"title":"Third Party Labels","icon":"tag","href":"/integration-guides/labels-integration"},{"title":"Grading \u0026 Disposition","icon":"notebook","description":null,"href":"/integration-guides/grading-and-disposition"},{"title":"Happy Returns","icon":"smile","href":"/integration-guides/happy-returns"},{"title":"Partner (Third Party App) Deep Link","sidebarTitle":"Partner Deep Link","icon":"link","description":null,"href":"/integration-guides/partner-deep-link"},{"title":"Commerce Data","icon":"satellite-dish","href":"/integration-guides/commerce-data"},{"title":"Checkout+ API Integration","sidebarTitle":"Checkout+","icon":"shield-check","href":"/integration-guides/checkout-plus"}]},{"group":"Use Cases","pages":[{"title":"General Integration","icon":"floppy-disk","href":"/integration-guides/general-integration"},{"title":"Create a Return Authorization","sidebarTitle":"Return Authorization","icon":"plus","href":"/integration-guides/create-return-authorization"},{"title":"Process Returns in Loop","sidebarTitle":"Process Returns","icon":"check","href":"/integration-guides/process-returns"},{"title":"Deep Link to a Customer Order in the Return Portal","sidebarTitle":"Order Deep Link","icon":"link","href":"/integration-guides/deep-link"},{"title":"On-Store Exchanges","icon":"cart-shopping","href":"/integration-guides/on-store-exchanges"},{"title":"Headless Shop Now (On-Store)","sidebarTitle":"Headless On-Store","icon":"code","href":"/integration-guides/headless-on-store"},{"title":"Generate Return Details Report","sidebarTitle":"Return Details Report","icon":"table","href":"/integration-guides/generate-return-details-report"},{"title":"Loop Anywhere","icon":"plug","href":"/integration-guides/loop-anywhere"}]},{"group":"Return Create","pages":[{"title":"Getting Started with the Return Create API","sidebarTitle":"Getting Started","icon":"rocket","href":"/return-create-api/return-create-api"},{"title":"Checking Item Return Eligibility with the Return Create API","sidebarTitle":"Item Eligibility","icon":"circle-check","href":"/return-create-api/eligibility-api"}]},{"group":"Migration","pages":[{"title":"Migrate from 2026-07 to 2026-10","icon":"arrow-up-right","href":"/integration-guides/migration-2026-07-to-2026-10"}]}]},{"tab":"MCP Server","pages":[{"title":"MCP Server","href":"/mcp/overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/getting-started"}]},{"tab":"Webhook Reference","pages":[{"title":"Webhook Reference","href":"/webhook-reference/getting-started"}]}]},{"version":"unstable","tabs":[{"tab":"Introduction","pages":[{"title":"Introduction","href":"/welcome"}]},{"tab":"Guides","groups":[{"group":"Introduction","pages":[{"title":"Overview","icon":"sparkles","href":"/integration-guides/overview"}]},{"group":"Guides","pages":[{"title":"Retrieving Return Data","icon":"database","href":"/integration-guides/return-data"},{"title":"Shopify Gift Card Order Metafield","icon":"gift","href":"/integration-guides/shopify-gift-card-order-metafield"},{"title":"Actioning on Returns","icon":"clapperboard","href":"/integration-guides/return-actions"},{"title":"Third Party Labels","icon":"tag","href":"/integration-guides/labels-integration"},{"title":"Grading \u0026 Disposition","icon":"notebook","description":null,"href":"/integration-guides/grading-and-disposition"},{"title":"Happy Returns","icon":"smile","href":"/integration-guides/happy-returns"},{"title":"Partner (Third Party App) Deep Link","sidebarTitle":"Partner Deep Link","icon":"link","description":null,"href":"/integration-guides/partner-deep-link"},{"title":"Commerce Data","icon":"satellite-dish","href":"/integration-guides/commerce-data"},{"title":"Checkout+ API Integration","sidebarTitle":"Checkout+","icon":"shield-check","href":"/integration-guides/checkout-plus"}]},{"group":"Use Cases","pages":[{"title":"General Integration","icon":"floppy-disk","href":"/integration-guides/general-integration"},{"title":"Create a Return Authorization","sidebarTitle":"Return Authorization","icon":"plus","href":"/integration-guides/create-return-authorization"},{"title":"Process Returns in Loop","sidebarTitle":"Process Returns","icon":"check","href":"/integration-guides/process-returns"},{"title":"Deep Link to a Customer Order in the Return Portal","sidebarTitle":"Order Deep Link","icon":"link","href":"/integration-guides/deep-link"},{"title":"On-Store Exchanges","icon":"cart-shopping","href":"/integration-guides/on-store-exchanges"},{"title":"Headless Shop Now (On-Store)","sidebarTitle":"Headless On-Store","icon":"code","href":"/integration-guides/headless-on-store"},{"title":"Generate Return Details Report","sidebarTitle":"Return Details Report","icon":"table","href":"/integration-guides/generate-return-details-report"},{"title":"Loop Anywhere","icon":"plug","href":"/integration-guides/loop-anywhere"}]},{"group":"Return Create","pages":[{"title":"Getting Started with the Return Create API","sidebarTitle":"Getting Started","icon":"rocket","href":"/return-create-api/return-create-api"},{"title":"Checking Item Return Eligibility with the Return Create API","sidebarTitle":"Item Eligibility","icon":"circle-check","href":"/return-create-api/eligibility-api"}]},{"group":"Migration","pages":[{"title":"Migrate from 2026-07 to 2026-10","icon":"arrow-up-right","href":"/integration-guides/migration-2026-07-to-2026-10"}]}]},{"tab":"MCP Server","pages":[{"title":"MCP Server","href":"/mcp/overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/unstable/changes"}]},{"tab":"Webhook Reference","pages":[{"title":"Webhook Reference","href":"/webhook-reference/getting-started"}]}]}]},"basePath":"","title":"Happy Returns - Loop Returns Documentation","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":[],"chunks":[]}