When LightSwap swaps get refunded, how refundAddress works, and what to tell your users.
Most swaps complete. When one can’t, the deposit comes back. This page covers how that works and what your integration should do.
When a swap gets refunded
A swap ends as refunded when the route can’t complete after a deposit arrived. The common triggers:
The deposit arrived after the deadline.
The deposit was underpaid and the route couldn’t settle it.
A route failure made the swap impossible to complete.
refunded is a terminal status. Once you see it, the funds are on their way back.
Where the refund goes
POST /swap accepts an optional refundAddress: an address on the sending network that receives the funds back.When you don’t set one, LightSwap uses its configured network refund address for that network. If your users might need refunds routed to their own wallets, collect a refund address from them at swap creation. You can’t add one after the deposit is sent.
The refund address must belong to the sending network. A BTC deposit refunds to a Bitcoin address, not to an Ethereum one.
What your integration should do
Show the refunded status plainly, with the refund destination.
Keep polling underpaid swaps. Underpaid is not terminal; don’t promise a refund or a top-up until the status resolves.
Don’t ask users to send more funds to a swap unless LightSwap support tells you to.
For failed swaps and stuck cases, contact support with the externalId, swap ID, and deposit transaction hash.
For swaps paused by a compliance check, follow the risk and hold policy, including the refund terms and review timelines.
What to tell your users
Three honest sentences that cover almost every case:
If a swap can’t complete, the deposit is refunded to the refund address.
Crypto transfers can’t be reversed, so a refund goes out as a new transfer and needs network confirmations.
Support can trace any swap with the order ID and transaction hash.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"LightSwap Documentation","colors":{"primary":"#0C8C5E","light":"#18E299","dark":"#18E299"},"logo":{"light":"https://mintcdn.com/lightswap/ka8_BxmX7QeJdfKZ/logo/title-logo.png?fit=max\u0026auto=format\u0026n=ka8_BxmX7QeJdfKZ\u0026q=85\u0026s=69eac73df0f7e08308c88218f915f6ad","dark":"https://mintcdn.com/lightswap/ka8_BxmX7QeJdfKZ/logo/title-logo-dark.png?fit=max\u0026auto=format\u0026n=ka8_BxmX7QeJdfKZ\u0026q=85\u0026s=0edd46e3351849a9a31f37f720c819b7"},"favicon":"https://mintcdn.com/lightswap/5hH4uTIi26OLLq2a/favicon.svg?fit=max\u0026auto=format\u0026n=5hH4uTIi26OLLq2a\u0026q=85\u0026s=4d9d9cedc3d506f7afca9f9bcf484c55","navbar":{"links":[{"href":"https://lightswap.me/support","label":"Support"}],"primary":{"type":"button","label":"Open App","href":"https://lightswap.me"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"lightswap","hasAudioNarration":false,"actualSubdomain":"lightswap","customDomains":["docs.lightswap.me"],"gitSource":{"type":"github","owner":"lightswapme","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"issues":false,"thumbs":false},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aef495a59edac7bace68031","clientVersion":"0.0.4131","searchFilterCounts":[{"language":"default","tag":"Business","count":18},{"language":"default","tag":"Documentation","count":17},{"language":"default","tag":"Account","count":7},{"language":"default","tag":"API Reference","count":7},{"language":"default","tag":"Direct API","count":7},{"language":"default","tag":"Introduction","count":6},{"language":"default","tag":"Get started","count":3},{"language":"default","tag":"Swaps","count":3},{"language":"default","tag":"Widget","count":1},{"language":"default","tag":"Support","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"integrations/direct-api/refunds","slug":"/integrations/direct-api/refunds","pageMetadata":{"title":"Refunds","description":"When LightSwap swaps get refunded, how refundAddress works, and what to tell your users.","href":"/integrations/direct-api/refunds"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"When LightSwap swaps get refunded, how refundAddress works, and what to tell your users.\"\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`,ol:`ol`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Most swaps complete. When one can’t, the deposit comes back. This page covers how that works and what your integration should do.`}),`\n`,_jsx(Heading,{level:`2`,id:`when-a-swap-gets-refunded`,children:`When a swap gets refunded`}),`\n`,_jsxs(_components.p,{children:[`A swap ends as `,_jsx(_components.code,{children:`refunded`}),` when the route can’t complete after a deposit arrived. The common triggers:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The deposit arrived after the deadline.`}),`\n`,_jsx(_components.li,{children:`The deposit was underpaid and the route couldn’t settle it.`}),`\n`,_jsx(_components.li,{children:`A route failure made the swap impossible to complete.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`refunded`}),` is a terminal status. Once you see it, the funds are on their way back.`]}),`\n`,_jsx(Heading,{level:`2`,id:`where-the-refund-goes`,children:`Where the refund goes`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`POST /swap`}),` accepts an optional `,_jsx(_components.code,{children:`refundAddress`}),`: an address on the `,_jsx(_components.strong,{children:`sending`}),` network that receives the funds back.`]}),`\n`,_jsx(_components.p,{children:`When you don’t set one, LightSwap uses its configured network refund address for that network. If your users might need refunds routed to their own wallets, collect a refund address from them at swap creation. You can’t add one after the deposit is sent.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`The refund address must belong to the sending network. A BTC deposit refunds to a Bitcoin address, not to an Ethereum one.`})}),`\n`,_jsx(Heading,{level:`2`,id:`what-your-integration-should-do`,children:`What your integration should do`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Show the `,_jsx(_components.code,{children:`refunded`}),` status plainly, with the refund destination.`]}),`\n`,_jsxs(_components.li,{children:[`Keep polling `,_jsx(_components.code,{children:`underpaid`}),` swaps. Underpaid is not terminal; don’t promise a refund or a top-up until the status resolves.`]}),`\n`,_jsx(_components.li,{children:`Don’t ask users to send more funds to a swap unless LightSwap support tells you to.`}),`\n`,_jsxs(_components.li,{children:[`For `,_jsx(_components.code,{children:`failed`}),` swaps and stuck cases, contact support with the `,_jsx(_components.code,{children:`externalId`}),`, swap ID, and deposit transaction hash.`]}),`\n`,_jsxs(_components.li,{children:[`For swaps paused by a compliance check, follow the `,_jsx(_components.a,{href:`/integrations/direct-api/risk-policy`,children:`risk and hold policy`}),`, including the refund terms and review timelines.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-to-tell-your-users`,children:`What to tell your users`}),`\n`,_jsx(_components.p,{children:`Three honest sentences that cover almost every case:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`If a swap can’t complete, the deposit is refunded to the refund address.`}),`\n`,_jsx(_components.li,{children:`Crypto transfers can’t be reversed, so a refund goes out as a new transfer and needs network confirmations.`}),`\n`,_jsx(_components.li,{children:`Support can trace any swap with the order ID and transaction hash.`}),`\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":"Refunds","description":"When LightSwap swaps get refunded, how refundAddress works, and what to tell your users.","href":"/integrations/direct-api/refunds"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"When a swap gets refunded","slug":"when-a-swap-gets-refunded","depth":2,"children":[]},{"title":"Where the refund goes","slug":"where-the-refund-goes","depth":2,"children":[]},{"title":"What your integration should do","slug":"what-your-integration-should-do","depth":2,"children":[]},{"title":"What to tell your users","slug":"what-to-tell-your-users","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"lightswap","siteName":"LightSwap Documentation","title":"Refunds - LightSwap Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-08T08:25:32.201Z","originalFileLocation":"integrations/direct-api/refunds.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=\"When LightSwap swaps get refunded, how refundAddress works, and what to tell your users.\">\u003cmeta data-mint-head name=\"application-name\" content=\"LightSwap Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/svg+xml\" sizes=\"180x180\" href=\"https://mintcdn.com/lightswap/5hH4uTIi26OLLq2a/favicon.svg?fit=max\u0026amp;auto=format\u0026amp;n=5hH4uTIi26OLLq2a\u0026amp;q=85\u0026amp;s=4d9d9cedc3d506f7afca9f9bcf484c55\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"32x32\" href=\"https://mintcdn.com/lightswap/5hH4uTIi26OLLq2a/favicon.svg?fit=max\u0026amp;auto=format\u0026amp;n=5hH4uTIi26OLLq2a\u0026amp;q=85\u0026amp;s=4d9d9cedc3d506f7afca9f9bcf484c55\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"16x16\" href=\"https://mintcdn.com/lightswap/5hH4uTIi26OLLq2a/favicon.svg?fit=max\u0026amp;auto=format\u0026amp;n=5hH4uTIi26OLLq2a\u0026amp;q=85\u0026amp;s=4d9d9cedc3d506f7afca9f9bcf484c55\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/svg+xml\" href=\"https://mintcdn.com/lightswap/5hH4uTIi26OLLq2a/favicon.svg?fit=max\u0026amp;auto=format\u0026amp;n=5hH4uTIi26OLLq2a\u0026amp;q=85\u0026amp;s=4d9d9cedc3d506f7afca9f9bcf484c55\">\u003cmeta data-mint-head property=\"og:title\" content=\"Refunds - LightSwap Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"When LightSwap swaps get refunded, how refundAddress works, and what to tell your users.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"LightSwap Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.lightswap.me/integrations/direct-api/refunds\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://lightswap.mintlify.site/_mintlify/api/og/v2?division=Direct+API\u0026amp;title=Refunds\u0026amp;description=When+LightSwap+swaps+get+refunded%2C+how+refundAddress+works%2C+and+what+to+tell+your+users.\u0026amp;theme=66410e18503af4e3697c64a2\u0026amp;signature=f704dfeff4b00eb6e8a5357fc4f85c180114b63ea60a7a4161c94ab2c384e0a7\">\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=\"Refunds - LightSwap Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"When LightSwap swaps get refunded, how refundAddress works, and what to tell your users.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://lightswap.mintlify.site/_mintlify/api/og/v2?division=Direct+API\u0026amp;title=Refunds\u0026amp;description=When+LightSwap+swaps+get+refunded%2C+how+refundAddress+works%2C+and+what+to+tell+your+users.\u0026amp;theme=66410e18503af4e3697c64a2\u0026amp;signature=f704dfeff4b00eb6e8a5357fc4f85c180114b63ea60a7a4161c94ab2c384e0a7\">\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=\"https://mintlify.s3.us-west-1.amazonaws.com/lightswap/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"LightSwap Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0C8C5E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.lightswap.me/integrations/direct-api/refunds\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/integrations/direct-api/refunds.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.lightswap.me/#organization\",\"name\":\"LightSwap Documentation\",\"url\":\"https://docs.lightswap.me\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/lightswap/ka8_BxmX7QeJdfKZ/logo/title-logo.png?fit=max\u0026auto=format\u0026n=ka8_BxmX7QeJdfKZ\u0026q=85\u0026s=69eac73df0f7e08308c88218f915f6ad\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.lightswap.me#website\",\"name\":\"LightSwap Documentation\",\"url\":\"https://docs.lightswap.me\",\"publisher\":{\"@id\":\"https://docs.lightswap.me/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.lightswap.me/integrations/direct-api/refunds#webpage\",\"url\":\"https://docs.lightswap.me/integrations/direct-api/refunds\",\"name\":\"Refunds\",\"description\":\"When LightSwap swaps get refunded, how refundAddress works, and what to tell your users.\",\"dateModified\":\"2026-08-08T08:25:32.201Z\",\"isPartOf\":{\"@id\":\"https://docs.lightswap.me#website\"},\"breadcrumb\":{\"@id\":\"https://docs.lightswap.me/integrations/direct-api/refunds#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.lightswap.me/integrations/direct-api/refunds#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Direct API\",\"item\":\"https://docs.lightswap.me/integrations/direct-api/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Refunds\",\"item\":\"https://docs.lightswap.me/integrations/direct-api/refunds\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.lightswap.me/integrations/direct-api/refunds#article\",\"headline\":\"Refunds\",\"name\":\"Refunds\",\"description\":\"When LightSwap swaps get refunded, how refundAddress works, and what to tell your users.\",\"url\":\"https://docs.lightswap.me/integrations/direct-api/refunds\",\"mainEntityOfPage\":{\"@id\":\"https://docs.lightswap.me/integrations/direct-api/refunds#webpage\"},\"dateModified\":\"2026-08-08T08:25:32.201Z\",\"publisher\":{\"@id\":\"https://docs.lightswap.me/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.lightswap.me#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"LightSwap Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"LightSwap Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/integrations/direct-api/refunds.md","siteName":"LightSwap Documentation","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"Business","groups":[{"group":"Get started","icon":"rocket","pages":[{"title":"Add swaps to your product","sidebarTitle":"Overview","href":"/business/overview"},{"title":"Quickstart","href":"/business/quickstart"},{"title":"Revenue sharing","sidebarTitle":"Revenue sharing","href":"/business/revenue-sharing"}]},{"group":"Direct API","icon":"code","pages":[{"title":"Introduction","href":"/integrations/direct-api/introduction"},{"title":"Authentication","href":"/integrations/direct-api/authentication"},{"title":"Integration flow","href":"/integrations/direct-api/integration-flow"},{"title":"Statuses and errors","href":"/integrations/direct-api/statuses-errors"},{"title":"Limits","description":"Current Direct API limits: rate limits, quote lifetime, deposit window, memos, and integration defaults.","href":"/integrations/direct-api/limits"},{"title":"Refunds","href":"/integrations/direct-api/refunds"},{"title":"Risk and hold policy","description":"What happens when a swap is flagged by a compliance check: what your integration sees, the steps, the timelines, the refund terms, and what to promise your users.","href":"/integrations/direct-api/risk-policy"}]},{"group":"Widget","icon":"app-window","pages":[{"title":"Widget","href":"/integrations/widget/introduction"}]},{"group":"API Reference","icon":"square-terminal","pages":[{"title":"Overview","href":"/api-reference/introduction"},{"title":"List assets","openapi":"api-reference/openapi.json GET /asset","href":"/api-reference/asset"},{"title":"Validate address","openapi":"api-reference/openapi.json POST /address","href":"/api-reference/address"},{"title":"Create quote","openapi":"api-reference/openapi.json POST /quote","href":"/api-reference/quote"},{"title":"Swap","openapi":"api-reference/openapi.json POST /swap","href":"/api-reference/swap"},{"title":"Swap history","openapi":"api-reference/openapi.json GET /swap","href":"/api-reference/swaps"},{"title":"Swap status","openapi":"api-reference/openapi.json GET /swap/{id}","href":"/api-reference/swap-status"}]}]}]},"basePath":"","title":"Refunds - LightSwap Documentation","buildId":"dpl_5joLUXmnJgwqjrHAS4dxZrQTdxgh","deploymentId":"dpl_5joLUXmnJgwqjrHAS4dxZrQTdxgh","dynamics":[],"chunks":[]}