The identifiers and fields to record for every payment so you can reconcile it without reconstructing it from wallet dashboards — and how to separate Atum fees from gas, swap, and bridge costs.
A single customer payment usually involves more on-chain movement than the payment itself: the deposit into the settlement vault on the source chain, the settlement on the destination chain, and — behind the scenes — settlement operators moving and sometimes converting funds across chains. If you only keep the final response, reconstructing what happened later means digging through several wallet dashboards and block explorers.Record a small set of identifiers as each payment happens so you can reconcile it from your own logs.
Capture these for every payment, on success and on failure:
Field
What it is
Where to find it
payment_id
Atum’s identifier for the payment
Gateway submit response; /status; /timeline
request_id
Your idempotency key — reuse it to retry the same payment
You set it on submit; echoed by /status
Source tx hash
The deposit on the source chain
/timeline; source-chain explorer
Destination tx hash
The fulfillment on the destination chain
/timeline; destination-chain explorer
Source asset + amount
What left the payer (chain, contract, atomic amount)
Your request; /status
Destination asset + amount
What the recipient received
/status; settlement receipt header
Quote selected
The settlement quote the Gateway selected
/timeline
Settlement status
pending, finalizing, completed, failed, refunding, refund_available or refunded, plus any error code
/status
Refund tx hash
The refund on the source chain, when the payment was refunded
transactions.refund on /status; source-chain explorer
Timestamps per state
When it was submitted, quoted, settled
/timeline
Fees (see below)
Atum fee, chain gas, and any swap/bridge cost
/timeline; explorers; provider dashboards
The examples surface the settlement result for you: x402 returns it in the PAYMENT-RESPONSE header, and MPP returns a Payment-Receipt header on the 200. Log that receipt alongside your payment_id.
/status gives you the current state and final amounts; /timeline gives you the per-state history and the transaction hashes on both chains. Use those hashes to confirm the movement on the source and destination explorers.
The amount that leaves the payer is larger than the amount the recipient receives, and the difference is not a single fee. Keep two cost categories distinct:
Atum fee — part of the settlement operator’s charge, taken by the settlement vault from the operator’s payout when the deposit is released. Rate and cap: Atum’s fee.
What the settlement operator keeps — the rest of its charge, for settling the payment.
Attributing every cost to “the payment” overstates Atum’s fee. Reconcile each category from its own source.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Atum Docs","description":"Documentation for Atum, an open payments network for tokenized-currency payments. You submit a signed payment request; Atum selects a settlement operator's price quote, the operator delivers on the destination rail, and Atum verifies delivery.","colors":{"primary":"#24450d","light":"#b3e78d","dark":"#7fcb49"},"logo":{"light":"https://mintcdn.com/atumlabs/eBwMdhd0uJ6cwbY0/images/assets/wordmark-light.svg?fit=max\u0026auto=format\u0026n=eBwMdhd0uJ6cwbY0\u0026q=85\u0026s=6ba7458a7e4528e698e48cbf8e15c375","dark":"https://mintcdn.com/atumlabs/eBwMdhd0uJ6cwbY0/images/assets/wordmark-dark.svg?fit=max\u0026auto=format\u0026n=eBwMdhd0uJ6cwbY0\u0026q=85\u0026s=023ac107f39c390813f415746157f405"},"favicon":"https://mintcdn.com/atumlabs/eBwMdhd0uJ6cwbY0/favicon.svg?fit=max\u0026auto=format\u0026n=eBwMdhd0uJ6cwbY0\u0026q=85\u0026s=0d5cc391c59a2f5739384e8520536a1a","api":{"playground":{"display":"simple"}},"appearance":{"default":"dark"},"background":{"color":{"light":"#f1f0e9","dark":"#171d15"}},"navbar":{"primary":{"type":"button","label":"Community chat","href":"https://discord.gg/a5mbNjnDNj"}},"footer":{"socials":{"discord":"https://discord.gg/a5mbNjnDNj"},"links":[{"header":"Legal","items":[{"label":"Privacy Policy","href":"https://atum.xyz/privacy-policy"}]}]},"fonts":{"heading":{"family":"Newsreader"},"body":{"family":"Public Sans"}},"styling":{"codeblocks":{"theme":"github-dark"},"latex":false},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"interaction":{"drilldown":false},"variables":{"paymentGatewayTestnet":"https://payment-gw.production-testnet.atum.xyz","paymentGatewayMainnet":"https://payment-gw.production-mainnet.atum.xyz","x402FacilitatorTestnet":"https://payment-gw.production-testnet.atum.xyz/x402/v1","x402FacilitatorMainnet":"https://payment-gw.production-mainnet.atum.xyz/x402/v1","veriFillTestnet":"https://veri-fill.production-testnet.atum.xyz","veriFillMainnet":"https://veri-fill.production-mainnet.atum.xyz"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"atumlabs","hasAudioNarration":false,"actualSubdomain":"atumlabs","customDomains":["docs.atum.xyz"],"gitSource":{"type":"github","owner":"atum-labs","repo":"atum-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae8b017ca78e468455a2e68","collectionId":"f90bb902-a0bb-4b51-a5f6-05f506a97595","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae8b017ca78e468455a2e68"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aed33e649d4102da1fae20b","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Get started","count":35},{"language":"default","tag":"Overview","count":24},{"language":"default","tag":"Settle payments","count":21},{"language":"default","tag":"API Reference","count":17},{"language":"default","tag":"Core concepts","count":15},{"language":"default","tag":"Start building","count":14},{"language":"default","tag":"Payment protocols","count":13},{"language":"default","tag":"Payment Gateway","count":8},{"language":"default","tag":"Settlement Reference","count":6},{"language":"default","tag":"Configuration","count":6}]},"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":"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},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@import url(\"https://fonts.googleapis.com/css2?family=Host+Grotesk:wght@300..800\u0026display=swap\");@import url(\"https://use.typekit.net/xnt1dnq.css\");:root{--color-dark-charcoal: #2b2a28;--color-tofu: #f1f0e9;--color-tofu-light: #f1efe7;--color-young-green: #97e162;--color-young-green-deep: #7fcb49;--color-green-house: #24450d;--color-dark-teal: #2f6460;--color-pale-green: #f0fbe8;--color-full-white: #ffffff;--color-dark-charcoal-12: rgb(43 42 40 / 12%);--color-dark-charcoal-40: rgb(43 42 40 / 40%);--color-dark-charcoal-65: rgb(43 42 40 / 65%);--ink: #171d15;--ink-2: #1e261c;--ink-line: #2c342b;--ink-muted: #9aa396;--ink-dim: #6b7266;--ink-green: #b3e78d;--ink-fg: #f7f6f2;--font-display: \"hardcover-vf\", \"Newsreader\", \"Iowan Old Style\", Georgia, serif;--font-ui: \"Host Grotesk\", \"host-grotesk\", ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", sans-serif;--font-prose: \"Public Sans\", \"public-sans\", var(--font-ui);--font-mono: ui-monospace, \"SF Mono\", SFMono-Regular, Menlo, Consolas, monospace;--ring: 0 0 0 3px rgb(151 225 98 / 45%);--radius-field: 6px;--fg: var(--color-dark-charcoal);--fg-2: #3a3936;--fg-3: #605f5b;--fg-muted: #83827c;--fg-dim: #b0afa8;--bg: var(--color-tofu);--bg-nav: var(--color-tofu);--hairline: var(--color-dark-charcoal-12);--surface: var(--color-full-white);--surface-line: var(--color-dark-charcoal-12);--label-fg: var(--color-dark-charcoal-65);--link-fg: var(--color-dark-teal);--link-hover: var(--color-green-house);--accent-text: var(--color-green-house);--inline-code-bg: var(--color-full-white);--ok-fg: var(--color-green-house);--ok-bg: var(--color-pale-green);--ok-line: rgb(36 69 13 / 22%);--info-fg: var(--color-dark-teal);--info-bg: #e9f0ef;--info-line: rgb(47 100 96 / 25%);--warn-fg: #7a4e00;--warn-bg: #fbf3e0;--warn-line: rgb(122 78 0 / 25%);--err-fg: #9b2c2c;--err-bg: #fbeae7;--err-line: rgb(155 44 44 / 25%);--muted-fg: var(--color-dark-charcoal-65);--muted-line: var(--color-dark-charcoal-12);--shadow-lg: 0 24px 48px rgb(43 42 40 / 18%)}html.dark{--fg: var(--ink-fg);--fg-2: #e3e4dd;--fg-3: #c9ccc2;--fg-muted: var(--ink-muted);--fg-dim: var(--ink-dim);--bg: var(--ink);--bg-nav: var(--ink-2);--hairline: var(--ink-line);--surface: var(--ink-2);--surface-line: var(--ink-line);--label-fg: var(--ink-muted);--link-fg: var(--ink-green);--link-hover: var(--color-young-green);--accent-text: var(--ink-green);--inline-code-bg: var(--ink-2);--ok-fg: var(--ink-green);--ok-bg: rgb(151 225 98 / 12%);--ok-line: rgb(151 225 98 / 35%);--info-fg: #9fd3ce;--info-bg: rgb(47 100 96 / 25%);--info-line: rgb(47 100 96 / 60%);--warn-fg: #f0c674;--warn-bg: rgb(122 78 0 / 28%);--warn-line: rgb(240 198 116 / 40%);--err-fg: #f3b7b7;--err-bg: rgb(155 44 44 / 30%);--err-line: rgb(243 183 183 / 40%);--muted-fg: var(--ink-muted);--muted-line: var(--ink-line);--shadow-lg: 0 24px 48px rgb(0 0 0 / 45%)}body{-webkit-font-smoothing:antialiased;font-family:var(--font-ui)}::selection{background:var(--color-young-green);color:var(--color-dark-charcoal)}:root{--gray-50: 247 246 242;--gray-100: 241 239 231;--gray-200: 229 228 221;--gray-300: 215 214 207;--gray-400: 176 175 168;--gray-500: 131 130 124;--gray-600: 96 95 91;--gray-700: 58 57 54;--gray-800: 43 42 40;--gray-900: 30 29 27;--gray-950: 21 20 18}html.dark{--gray-50: 247 246 242;--gray-100: 227 228 221;--gray-200: 201 204 194;--gray-300: 181 185 174;--gray-400: 154 163 150;--gray-500: 107 114 102;--gray-600: 76 84 73;--gray-700: 58 67 56;--gray-800: 44 52 43;--gray-900: 30 38 28;--gray-950: 23 29 21}#content,#content .prose,#header .prose{font-family:var(--font-prose);font-weight:400}#content a.link,#header .prose a{color:var(--link-fg);border-bottom:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}#content a.link:hover,#header .prose a:hover{color:var(--link-hover)}#page-title,#content h1,#content h2:not([data-component-part]),#content h3:not([data-component-part]){font-family:var(--font-display);font-weight:300;letter-spacing:-0.02em;color:var(--fg)}#content h4,#content h5,#content h6{font-family:var(--font-ui);font-weight:600;letter-spacing:-0.01em;color:var(--fg)}#page-title{font-size:clamp(2rem, 4vw, 2.75rem);line-height:1.08}#page-title::before{content:\"\";display:block;width:28px;height:3px;margin-bottom:16px;background:var(--color-young-green)}#page-title code{font:500 0.68em/1 var(--font-mono);letter-spacing:0;background:transparent;border:0;padding:0;vertical-align:0.06em}#content h2:not([data-component-part]){font-size:1.75rem;margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid var(--hairline)}#content h2#overview:not([data-component-part]){margin-top:0;padding-top:0;border-top:0}#content h3:not([data-component-part]){font-size:1.35rem}#content :is(h2,h3,h4)>div>a>div{background:transparent;box-shadow:none;--tw-ring-color: transparent;color:var(--label-fg)}#content :is(h2,h3,h4)>div>a>div svg{display:none}#content :is(h2,h3,h4)>div>a>div::before{content:\"¶\";font:400 0.9rem/1 var(--font-ui)}#content :is(h2,h3,h4)>div>a:hover>div::before{color:var(--color-young-green-deep)}#header .prose p{font-family:var(--font-prose);font-weight:300;color:var(--fg-3)}.eyebrow{font:600 10.5px/1.3 var(--font-mono);letter-spacing:0.08em;text-transform:uppercase;color:var(--accent-text)!important;height:auto}.sidebar-group-header,#table-of-contents h2 button,#content th{font:600 10.5px/1.3 var(--font-mono)!important;letter-spacing:0.08em;text-transform:uppercase;color:var(--label-fg)!important}#navbar>div:first-child{background:var(--bg-nav)!important;border-bottom:1px solid var(--hairline)!important;backdrop-filter:none}#navbar a:has(img.nav-logo){display:inline-flex;align-items:center;gap:12px;text-decoration:none;white-space:nowrap}#navbar img.nav-logo,#footer img.nav-logo{height:20px!important;width:auto!important;max-width:none}#navbar a:has(img.nav-logo)::after{content:\"Docs\";display:inline-block;font:600 10.5px/1 var(--font-mono);letter-spacing:0.08em;text-transform:uppercase;color:var(--label-fg);border:1px solid var(--surface-line);border-radius:999px;padding:6px 10px;white-space:nowrap}@media (max-width: 50rem){#navbar a:has(img.nav-logo)::after{display:none}}#navbar .nav-tabs-item,#navbar .navbar-link,#navbar a,#navbar button{font-family:var(--font-ui)}#navbar .nav-tabs-item{font-weight:500;text-shadow:none!important}#navbar .nav-tabs-item[class*=\"text-gray-800\"]{color:var(--fg)}#navbar .nav-tabs-item>div[class*=\"bg-primary\"],#navbar .nav-tabs-item>span[class*=\"bg-primary\"]{background:var(--color-young-green)!important}#search-bar-entry,#search-bar-entry-mobile{background:var(--surface)!important;border:1px solid var(--surface-line);border-radius:999px;color:var(--label-fg);box-shadow:none!important;--tw-ring-color: transparent !important;filter:none!important}#search-bar-entry:hover{border-color:var(--color-dark-charcoal-40)}html.dark #search-bar-entry:hover{border-color:var(--ink-dim)}#search-bar-entry kbd{background:transparent;border:1px solid var(--surface-line);font-family:var(--font-mono)}#topbar-cta-button a{font-family:var(--font-ui);font-weight:500;letter-spacing:-0.01em}#topbar-cta-button a>span[class*=\"absolute\"]{background:var(--color-young-green)!important;border-radius:999px!important;opacity:1!important}#topbar-cta-button a:hover>span[class*=\"absolute\"]{background:var(--color-young-green-deep)!important}#topbar-cta-button a span[class*=\"text-white\"],#topbar-cta-button a svg{color:var(--color-dark-charcoal)!important}#sidebar{border-inline-end:1px solid var(--hairline)}.sidebar-group-header{padding-top:0.4rem;padding-bottom:0.4rem}#sidebar-content a,#sidebar-content button{font-family:var(--font-ui);border-radius:0!important}#sidebar-content a{color:var(--fg-3)}#sidebar-content a[aria-current=\"page\"],#sidebar-content a[aria-current=\"page\"]:hover,#sidebar-content a[aria-current=\"page\"]:focus{background:transparent!important;box-shadow:inset 3px 0 0 var(--color-young-green);color:var(--fg)!important;font-weight:500;text-shadow:none!important}#sidebar-content a:hover:not([aria-current=\"page\"]){background:transparent!important;color:var(--fg);box-shadow:inset 3px 0 0 var(--hairline)}#sidebar-content [class*=\"border-l\"],#sidebar-content ul ul{border-color:var(--hairline)}#table-of-contents-layout{border-inline-start:1px solid var(--hairline)}#table-of-contents a{font-family:var(--font-ui);color:var(--fg-3);text-shadow:none!important}#table-of-contents li[data-active]>a{color:var(--fg)!important;font-weight:500}#table-of-contents h2 button svg{color:var(--label-fg)}#page-context-menu>button,#page-context-menu>div>button{background:var(--surface)!important;border-color:var(--surface-line)!important;color:var(--fg);font:500 13px/1.2 var(--font-ui);letter-spacing:-0.01em}#page-context-menu>button:first-child{border-radius:999px 0 0 999px!important}#page-context-menu>:last-child,#page-context-menu>:last-child button{border-radius:0 999px 999px 0!important}#page-context-menu button:hover{border-color:var(--color-young-green-deep)!important}.code-block,.code-block [data-component-part=\"code-block-root\"],.code-block pre.shiki,.code-group{border-radius:0!important;box-shadow:none!important}.code-block{border:1px solid var(--ink-line);background-color:var(--ink)!important;--tw-ring-color: transparent !important}.code-block [data-component-part=\"code-block-root\"],.code-block pre.shiki,.code-block pre.shiki code{background-color:var(--ink)!important;--shiki-dark-bg: var(--ink) !important;color:var(--ink-fg)}.code-block pre.shiki,.code-block pre.shiki code,.code-block .font-mono{font-family:var(--font-mono)!important;font-size:0.85rem;line-height:1.65}.code-block pre.shiki ::selection{background:rgb(151 225 98 / 30%);color:inherit}.code-block [data-component-part=\"code-block-header\"],.code-group>div:first-child{background:var(--ink-2)!important;border-bottom:1px solid var(--ink-line);border-radius:0!important;color:var(--ink-muted);font:500 0.75rem/1.4 var(--font-ui)}.code-group [role=\"tab\"][aria-selected=\"true\"]{color:var(--ink-fg)!important;box-shadow:inset 0 2px 0 var(--color-young-green)}.code-block-copy-button button,.code-block [data-floating-buttons] button{border-radius:999px!important;background:var(--ink-2)!important;border:1px solid var(--ink-line);color:#c9ccc2!important}.code-block [data-floating-buttons] button:hover{border-color:var(--color-young-green-deep)}#ask-assistant-code-block-button{border-radius:999px!important}#content code:not(pre code),#header .prose code{font-family:var(--font-mono);font-size:0.86em;font-weight:500;color:var(--fg)!important;background:var(--inline-code-bg)!important;border:1px solid var(--surface-line);border-radius:4px;padding:0.1em 0.35em}#content code:not(pre code)::before,#content code:not(pre code)::after{content:none}#content .callout{position:relative;display:grid;grid-template-columns:16px minmax(0, 1fr);column-gap:0.55rem;row-gap:0.45rem;align-items:center;margin-block:1.25rem;padding:0.9rem 1.1rem 0.9rem 1.25rem;border:1px solid var(--aside-line)!important;border-inline-start:3px solid var(--aside-rule)!important;border-radius:0!important;background:var(--aside-bg)!important;color:var(--fg)!important;--aside-rule: var(--color-dark-teal);--aside-fg: var(--info-fg);--aside-bg: var(--info-bg);--aside-line: var(--info-line);--aside-glyph: \"i\";--aside-badge-fg: #fff}#content .callout[data-callout-type=\"tip\"],#content .callout[data-callout-type=\"check\"]{--aside-rule: var(--color-young-green-deep);--aside-fg: var(--ok-fg);--aside-bg: var(--ok-bg);--aside-line: var(--ok-line);--aside-glyph: \"✓\";--aside-badge-fg: var(--color-dark-charcoal)}#content .callout[data-callout-type=\"warning\"]{--aside-rule: #d99a2b;--aside-fg: var(--warn-fg);--aside-bg: var(--warn-bg);--aside-line: var(--warn-line);--aside-glyph: \"!\"}#content .callout[data-callout-type=\"danger\"]{--aside-rule: #c94c4c;--aside-fg: var(--err-fg);--aside-bg: var(--err-bg);--aside-line: var(--err-line);--aside-glyph: \"✕\"}#content .callout>[data-component-part=\"callout-icon\"]{grid-column:1;grid-row:1;width:16px;height:16px;margin:0;border-radius:999px;background:var(--aside-rule);color:var(--aside-badge-fg);font:700 10px/16px var(--font-ui);text-align:center}#content .callout>[data-component-part=\"callout-icon\"] svg{display:none}#content .callout>[data-component-part=\"callout-icon\"]::before{content:var(--aside-glyph)}#content .callout::before{content:attr(aria-label);grid-column:2;grid-row:1;font:600 10.5px/1.3 var(--font-mono);letter-spacing:0.08em;text-transform:uppercase;color:var(--aside-fg)}#content .callout>[data-component-part=\"callout-content\"]{grid-column:1 / -1;grid-row:2;color:var(--fg)!important;font-size:0.875rem;line-height:1.6}#content .callout a{color:var(--link-fg)!important;border-color:currentColor}#content .callout a:hover{color:var(--link-hover)!important}#content .callout strong{color:var(--fg)!important}#content .callout code:not(pre code){background:var(--surface)!important}#content .card,.card{position:relative;border-radius:0!important;background:var(--surface)!important;border:1px solid var(--surface-line)!important;box-shadow:none!important;--tw-ring-color: transparent !important;transition:border-color 0.15s}.card::before{content:\"\";position:absolute;top:10px;left:10px;width:5px;height:5px;background:var(--surface-line);z-index:1}.card:hover{border-color:var(--color-young-green-deep)!important}.card h2,.card h3,.card [class*=\"font-semibold\"]{font-family:var(--font-ui);font-weight:600;letter-spacing:-0.01em;color:var(--fg)}.card [data-component-part=\"card-icon\"] svg,.card svg[style*=\"mask\"]{background-color:var(--accent-text)}details.accordion,.accordion-group{border-radius:0!important;border:1px solid var(--surface-line)!important;background:var(--surface)!important;box-shadow:none!important}.accordion-group details.accordion{border:0!important;border-top:1px solid var(--surface-line)!important}.accordion-group details.accordion:first-child{border-top:0!important}details.accordion>summary{font:500 0.875rem/1.4 var(--font-ui);color:var(--fg);background:transparent!important}details.accordion>summary:hover{color:var(--link-hover)}details.accordion>summary [data-component-part=\"accordion-title\"]{font:inherit;color:inherit}details.accordion>summary [data-component-part=\"accordion-caret-right\"]{color:var(--color-young-green-deep)}details.accordion>summary::after{content:\"show\";margin-left:auto;font:600 10.5px/1 var(--font-mono);letter-spacing:0.08em;text-transform:uppercase;color:var(--label-fg)}details.accordion[open]>summary::after{content:\"hide\"}details.accordion[open]>summary{border-bottom:1px solid var(--surface-line)}details.accordion>[data-component-part=\"accordion-content\"]{padding-top:0.9rem}.tabs [role=\"tablist\"]{border-color:var(--hairline)!important}.tabs [data-component-part=\"tab-button\"]{font-family:var(--font-ui);font-weight:500;color:var(--fg-3)}.tabs [data-component-part=\"tab-button\"][data-active=\"true\"]{color:var(--fg)!important;border-color:var(--color-young-green)!important;border-bottom-width:2px}.steps [data-component-part=\"step-indicator\"]{background:var(--surface)!important;border:1px solid var(--surface-line);color:var(--fg)!important;font:600 11px/1 var(--font-mono)}.steps [data-component-part=\"step-line\"]{background:var(--hairline)!important}.steps [data-component-part=\"step-title\"]{font-family:var(--font-ui);font-weight:600;letter-spacing:-0.01em;color:var(--fg)!important}#content table{font-family:var(--font-ui);font-size:0.875rem;border-collapse:collapse}#content th,#content td{border:0;border-bottom:1px solid var(--hairline);padding:0.6rem 1rem 0.6rem 0;vertical-align:top}#content th{white-space:nowrap}#content tr:nth-child(2n){background:transparent}#content tbody tr:hover{background:transparent}.frame,#content img,.expandable,.tile{border-radius:0!important}.frame{background:var(--surface)!important;border:1px solid var(--surface-line)!important;box-shadow:none!important}#pagination{font-family:var(--font-ui);font-weight:500}#pagination [data-component-part=\"pagination-title\"]{color:var(--fg-3)}#pagination a:hover [data-component-part=\"pagination-title\"]{color:var(--fg)!important}.feedback-toolbar button,#feedback-thumbs-up,#feedback-thumbs-down{border-radius:999px!important;border:1px solid var(--surface-line);background:var(--surface);color:var(--fg-3)}.method-pill,.method-nav-pill{font-family:var(--font-mono);letter-spacing:0.04em;border-radius:999px!important}#footer{background:var(--bg-nav);border-top:1px solid var(--hairline)!important;font-family:var(--font-ui);position:relative;z-index:25}#footer .footer-inner>.h-px,#footer .footer-inner>[class*=\"h-[1px]\"]{display:none!important}#footer .footer-inner,footer .footer-inner{max-width:none!important;width:100%;padding-top:1.25rem!important;padding-bottom:1.25rem!important;gap:0!important}#footer .footer-divider,footer .footer-divider{display:none!important}#footer .footer-mintlify,footer .footer-mintlify{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-end!important;gap:0.75rem!important;flex:0 0 auto!important;width:auto!important;min-width:0!important}#footer .footer-row,footer .footer-row{display:flex!important;flex-direction:row!important;flex-wrap:wrap;align-items:center!important;justify-content:flex-start!important;gap:1rem 1.5rem!important;width:100%}#footer .footer-row>:not(.audited-by),footer .footer-row>:not(.audited-by){flex:0 0 auto!important;min-width:0!important;max-width:none!important;width:auto!important}#footer .footer-row>:nth-child(3),footer .footer-row>:nth-child(3){margin-left:auto}.audited-by{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:0.75rem 1rem;flex:0 0 auto;width:auto;min-width:0;padding:0}.audited-by-label{font:600 10.5px/1.3 var(--font-mono);letter-spacing:0.08em;text-transform:uppercase;color:var(--label-fg);text-decoration:none;box-shadow:none}a.audited-by-label:hover{color:var(--fg);opacity:1}.audited-by a[data-auditor]{display:inline-flex;align-items:center;line-height:0;opacity:0.9;text-decoration:none;box-shadow:none}.audited-by a[data-auditor] button,.audited-by a[data-auditor]+button,.audited-by button{display:none}.audited-by a[data-auditor]:hover{opacity:1}.audited-by-logo{width:auto;max-width:none}.audited-by a[data-auditor=\"cantina\"] .audited-by-logo{height:22px}.audited-by a[data-auditor=\"cyfrin\"] .audited-by-logo{height:28px}.audited-by .logo-dark{display:none}.dark .audited-by .logo-light,[data-theme=\"dark\"] .audited-by .logo-light{display:none}.dark .audited-by .logo-dark,[data-theme=\"dark\"] .audited-by .logo-dark{display:block}.pay-timeline{--p1: 12.5%;--p2: 37.5%;--p3: 62.5%;--p4: 87.5%;--rail: var(--fg-dim);--dot-event: var(--fg);--dot-quote: var(--warn-fg);--dot-delivery: var(--err-fg);--bar-quote: var(--ok-fg);--bar-process: var(--warn-fg);--bar-settle: var(--info-fg);margin:1.25rem 0 1.5rem;padding:1.5rem 1.25rem 1.2rem;background:var(--surface);border:1px solid var(--surface-line);border-radius:16px}.pay-timeline-title{margin:0 0 1.75rem;text-align:center;font-family:var(--font-ui);font-size:1.05rem;font-weight:600;color:var(--fg)}.pay-timeline-stage{position:relative;height:196px}.pay-timeline-label,.pay-timeline-caption{position:absolute;margin:0;transform:translateX(-50%);text-align:center;font-family:var(--font-ui);font-weight:500;line-height:1.25}.pay-timeline-label{top:0;font-size:0.78rem;color:var(--fg-2)}.pay-timeline-label--1{left:var(--p1)}.pay-timeline-label--2{left:var(--p2)}.pay-timeline-label--3{left:var(--p3)}.pay-timeline-label--4{left:var(--p4)}.pay-timeline-guide{position:absolute;top:36px;bottom:52px;width:0;border-left:1px dashed var(--fg-dim)}.pay-timeline-guide--1{left:var(--p1)}.pay-timeline-guide--2{left:var(--p2);border-left-color:var(--dot-quote)}.pay-timeline-guide--3{left:var(--p3);border-left-color:var(--dot-delivery)}.pay-timeline-guide--4{left:var(--p4)}.pay-timeline-rail{position:absolute;top:70px;left:var(--p1);width:calc(var(--p4) - var(--p1));height:3px;background:var(--rail);border-radius:2px}.pay-timeline-dot{position:absolute;top:64px;z-index:2;width:14px;height:14px;border-radius:50%;transform:translateX(-50%);background:var(--dot-event)}.pay-timeline-dot--1{left:var(--p1)}.pay-timeline-dot--2{left:var(--p2);background:var(--dot-quote)}.pay-timeline-dot--3{left:var(--p3);background:var(--dot-delivery)}.pay-timeline-dot--4{left:var(--p4)}.pay-timeline-bar{position:absolute;top:92px;height:14px;border-radius:3px}.pay-timeline-bar--quote{left:var(--p1);width:calc(var(--p2) - var(--p1));background:var(--bar-quote)}.pay-timeline-bar--process{left:var(--p2);width:calc(var(--p3) - var(--p2));background:var(--bar-process)}.pay-timeline-bar--settle{left:var(--p3);width:calc(var(--p4) - var(--p3));background:var(--bar-settle)}.pay-timeline-caption{top:114px;font-size:0.75rem;color:var(--fg-3)}.pay-timeline-caption--quote{left:calc((var(--p1) + var(--p2)) / 2)}.pay-timeline-caption--process{left:calc((var(--p2) + var(--p3)) / 2)}.pay-timeline-caption--settle{left:calc((var(--p3) + var(--p4)) / 2)}.pay-timeline-note{margin:0.5rem 0 0;text-align:left;font-family:var(--font-ui);font-size:0.86rem;line-height:1.45;color:var(--fg-3)}.pay-timeline-note p{margin:0}.pay-timeline-note ul{margin:0.4rem 0 0;padding-left:1.15rem}.pay-timeline-note li{margin:0.35rem 0 0}.pay-timeline-note li:first-child{margin-top:0}.changelog-toc{margin:0.25rem 0 0.5rem 1.75rem;padding-left:0.75rem;border-left:1px solid var(--surface-line);list-style:none}.changelog-toc-date{margin:0.6rem 0 0.2rem;font-family:var(--font-ui);font-size:0.72rem;letter-spacing:0.04em;color:var(--fg-muted)}.changelog-toc-date:first-child{margin-top:0.2rem}.changelog-toc a{display:block;padding:0.2rem 0;font-size:0.82rem;line-height:1.35;color:var(--fg-2)}.changelog-toc a:hover{color:var(--accent-text)}.update-container [data-component-part=\"update-tag\"]{padding:0.1rem 0.55rem;border:1px solid var(--surface-line);border-radius:999px;font-family:var(--font-ui);font-size:0.78rem;white-space:nowrap;color:var(--fg-2);cursor:pointer;transition:border-color 120ms ease, color 120ms ease}.update-container [data-component-part=\"update-tag\"]:hover{border-color:var(--accent-text);color:var(--accent-text)}.update-container [data-component-part=\"update-tag\"][aria-pressed=\"true\"]{border-color:rgb(var(--primary));background:rgb(var(--primary));color:rgb(255 255 255 / 0.9)}.update-container [data-component-part=\"update-tag\"]:focus-visible{outline:none;box-shadow:var(--ring)}@media (min-width: 1280px){[class*=\"max-w-8xl\"]{max-width:1600px!important}body:has(#table-of-contents,#changelog-filters) #content-area{width:calc(100% - 20rem)!important;max-width:none!important}}#header :is(h1,p),#content :is(p,ul,ol,blockquote,h1,h2,h3,h4,h5,h6):not(td *,th *,li *){max-width:38em}@media (min-width: 1024px){.update-container>div:first-child{width:150px!important}}.update-container .prose-sm{font-size:1rem;line-height:1.75}"}],"page":{"pagePath":"get-started/support/reconciliation","slug":"/get-started/support/reconciliation","pageMetadata":{"title":"Reconciliation","sidebarTitle":"Reconciliation","description":"The identifiers and fields to record for every payment so you can reconcile it without reconstructing it from wallet dashboards — and how to separate Atum fees from gas, swap, and bridge costs.","href":"/get-started/support/reconciliation"},"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: \"The identifiers and fields to record for every payment so you can reconcile it without reconstructing it from wallet dashboards — and how to separate Atum fees from gas, swap, and bridge costs.\"\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`,em:`em`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsxs(_components.p,{children:[`A single customer payment usually involves more on-chain movement than the payment itself: the deposit into the `,_jsx(_components.a,{href:`/get-started/concepts/settlement-vault`,children:`settlement vault`}),` on the source chain, the settlement on the destination chain, and — behind the scenes — settlement operators moving and sometimes converting funds across chains. If you only keep the final response, reconstructing what happened later means digging through several wallet dashboards and block explorers.`]}),`\n`,_jsxs(_components.p,{children:[`Record a small set of identifiers `,_jsx(_components.strong,{children:`as each payment happens`}),` so you can reconcile it from your own logs.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-to-record`,children:`What to record`}),`\n`,_jsxs(_components.p,{children:[`Capture these for every payment, on success `,_jsx(_components.strong,{children:`and`}),` on failure:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`What it is`}),_jsx(_components.th,{children:`Where to find it`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`payment_id`})}),_jsx(_components.td,{children:`Atum’s identifier for the payment`}),_jsxs(_components.td,{children:[`Gateway submit response; `,_jsx(_components.code,{children:`/status`}),`; `,_jsx(_components.code,{children:`/timeline`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`request_id`})}),_jsxs(_components.td,{children:[`Your idempotency key — reuse it to retry the `,_jsx(_components.em,{children:`same`}),` payment`]}),_jsxs(_components.td,{children:[`You set it on submit; echoed by `,_jsx(_components.code,{children:`/status`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Source tx hash`}),_jsx(_components.td,{children:`The deposit on the source chain`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`/timeline`}),`; source-chain explorer`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Destination tx hash`}),_jsx(_components.td,{children:`The fulfillment on the destination chain`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`/timeline`}),`; destination-chain explorer`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Source asset + amount`}),_jsx(_components.td,{children:`What left the payer (chain, contract, atomic amount)`}),_jsxs(_components.td,{children:[`Your request; `,_jsx(_components.code,{children:`/status`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Destination asset + amount`}),_jsx(_components.td,{children:`What the recipient received`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`/status`}),`; settlement receipt header`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Quote selected`}),_jsx(_components.td,{children:`The settlement quote the Gateway selected`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`/timeline`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Settlement status`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`pending`}),`, `,_jsx(_components.code,{children:`finalizing`}),`, `,_jsx(_components.code,{children:`completed`}),`, `,_jsx(_components.code,{children:`failed`}),`, `,_jsx(_components.code,{children:`refunding`}),`, `,_jsx(_components.code,{children:`refund_available`}),` or `,_jsx(_components.code,{children:`refunded`}),`, plus any error code`]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`/status`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Refund tx hash`}),_jsx(_components.td,{children:`The refund on the source chain, when the payment was refunded`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`transactions.refund`}),` on `,_jsx(_components.code,{children:`/status`}),`; source-chain explorer`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Timestamps per state`}),_jsx(_components.td,{children:`When it was submitted, quoted, settled`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`/timeline`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Fees (see below)`}),_jsx(_components.td,{children:`Atum fee, chain gas, and any swap/bridge cost`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`/timeline`}),`; explorers; provider dashboards`]})]})]})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`The examples surface the settlement result for you: x402 returns it in the `,_jsx(_components.code,{children:`PAYMENT-RESPONSE`}),` header, and MPP returns a `,_jsx(_components.code,{children:`Payment-Receipt`}),` header on the `,_jsx(_components.code,{children:`200`}),`. Log that receipt alongside your `,_jsx(_components.code,{children:`payment_id`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`where-to-find-each`,children:`Where to find each`}),`\n`,_jsx(_components.p,{children:`Poll the gateway for the authoritative record:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-dark github-dark`,style:{backgroundColor:`#24292e`,\"--shiki-dark-bg\":`#24292e`,color:`#e1e4e8`,\"--shiki-dark\":`#e1e4e8`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#B392F0`,\"--shiki-dark\":`#B392F0`},children:`curl`}),_jsx(_components.span,{style:{color:`#79B8FF`,\"--shiki-dark\":`#79B8FF`},children:` -sS`}),_jsx(_components.span,{style:{color:`#9ECBFF`,\"--shiki-dark\":`#9ECBFF`},children:' \"${'}),_jsx(_components.span,{style:{color:`#E1E4E8`,\"--shiki-dark\":`#E1E4E8`},children:`ATUM_GATEWAY_URL`}),_jsx(_components.span,{style:{color:`#9ECBFF`,\"--shiki-dark\":`#9ECBFF`},children:\"}/v1/payments/${\"}),_jsx(_components.span,{style:{color:`#E1E4E8`,\"--shiki-dark\":`#E1E4E8`},children:`PAYMENT_ID`}),_jsx(_components.span,{style:{color:`#9ECBFF`,\"--shiki-dark\":`#9ECBFF`},children:`}/status\"`}),_jsx(_components.span,{style:{color:`#F97583`,\"--shiki-dark\":`#F97583`},children:` |`}),_jsx(_components.span,{style:{color:`#B392F0`,\"--shiki-dark\":`#B392F0`},children:` python3`}),_jsx(_components.span,{style:{color:`#79B8FF`,\"--shiki-dark\":`#79B8FF`},children:` -m`}),_jsx(_components.span,{style:{color:`#9ECBFF`,\"--shiki-dark\":`#9ECBFF`},children:` json.tool`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-dark github-dark`,style:{backgroundColor:`#24292e`,\"--shiki-dark-bg\":`#24292e`,color:`#e1e4e8`,\"--shiki-dark\":`#e1e4e8`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#B392F0`,\"--shiki-dark\":`#B392F0`},children:`curl`}),_jsx(_components.span,{style:{color:`#79B8FF`,\"--shiki-dark\":`#79B8FF`},children:` -sS`}),_jsx(_components.span,{style:{color:`#9ECBFF`,\"--shiki-dark\":`#9ECBFF`},children:' \"${'}),_jsx(_components.span,{style:{color:`#E1E4E8`,\"--shiki-dark\":`#E1E4E8`},children:`ATUM_GATEWAY_URL`}),_jsx(_components.span,{style:{color:`#9ECBFF`,\"--shiki-dark\":`#9ECBFF`},children:\"}/v1/payments/${\"}),_jsx(_components.span,{style:{color:`#E1E4E8`,\"--shiki-dark\":`#E1E4E8`},children:`PAYMENT_ID`}),_jsx(_components.span,{style:{color:`#9ECBFF`,\"--shiki-dark\":`#9ECBFF`},children:`}/timeline\"`}),_jsx(_components.span,{style:{color:`#F97583`,\"--shiki-dark\":`#F97583`},children:` |`}),_jsx(_components.span,{style:{color:`#B392F0`,\"--shiki-dark\":`#B392F0`},children:` python3`}),_jsx(_components.span,{style:{color:`#79B8FF`,\"--shiki-dark\":`#79B8FF`},children:` -m`}),_jsx(_components.span,{style:{color:`#9ECBFF`,\"--shiki-dark\":`#9ECBFF`},children:` json.tool`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`/status`}),` gives you the current state and final amounts; `,_jsx(_components.code,{children:`/timeline`}),` gives you the per-state history and the transaction hashes on both chains. Use those hashes to confirm the movement on the source and destination explorers.`]}),`\n`,_jsx(Heading,{level:`2`,id:`separating-the-fees`,children:`Separating the fees`}),`\n`,_jsxs(_components.p,{children:[`The amount that leaves the payer is larger than the amount the recipient receives, and the difference is `,_jsx(_components.strong,{children:`not`}),` a single fee. Keep two cost categories distinct:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Atum fee`}),` — part of the settlement operator’s charge, taken by the settlement vault from the operator’s payout when the deposit is released. Rate and cap: `,_jsx(_components.a,{href:`/get-started/concepts/fees#atum-fee`,children:`Atum’s fee`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`What the settlement operator keeps`}),` — the rest of its charge, for settling the payment.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Attributing every cost to “the payment” overstates Atum’s fee. Reconcile each category from its own source.`}),`\n`,_jsx(Heading,{level:`2`,id:`idempotency-and-retries`,children:`Idempotency and retries`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`To collect a payment that is still settling, see `,_jsx(_components.a,{href:`/payment-protocols/idempotency#still-settling`,children:`When a payment is still settling`}),`. A `,_jsx(_components.strong,{children:`new`}),` identifier is a `,_jsx(_components.strong,{children:`new payment`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`On the acceptance side, key fulfillment on the payment id from the receipt (`,_jsx(_components.a,{href:`/payment-protocols/idempotency#if-you-accept-payments-deliver-once`,children:`deliver once`}),`).`]}),`\n`,_jsxs(_components.li,{children:[`For out-of-band reconciliation (dashboards, ledger jobs), `,_jsx(_components.code,{children:`/status`}),` and `,_jsx(_components.code,{children:`/timeline`}),` by `,_jsx(_components.code,{children:`payment_id`}),` remain authoritative. See `,_jsx(_components.a,{href:`/get-started/support/troubleshooting`,children:`Troubleshooting`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next steps`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Topic`}),_jsx(_components.th,{children:`Link`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`How retries work`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/payment-protocols/idempotency`,children:`Idempotency`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Something failing?`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/get-started/support/troubleshooting`,children:`Troubleshooting`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A payment was refunded`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/get-started/support/refunds`,children:`Refunds`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Supported chains and tokens`}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/get-started/reference/supported-networks`,children:`Supported networks`}),` · `,_jsx(_components.a,{href:`/get-started/reference/supported-assets`,children:`Supported assets`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Which environment to target`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/payment-protocols/environments`,children:`Choose an environment`})})]})]})]})]})}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":{"codeStyling":{"theme":"github-dark"},"config":{},"pageMetadata":{"title":"Reconciliation","sidebarTitle":"Reconciliation","description":"The identifiers and fields to record for every payment so you can reconcile it without reconstructing it from wallet dashboards — and how to separate Atum fees from gas, swap, and bridge costs.","href":"/get-started/support/reconciliation"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"What to record","slug":"what-to-record","depth":2,"children":[]},{"title":"Where to find each","slug":"where-to-find-each","depth":2,"children":[]},{"title":"Separating the fees","slug":"separating-the-fees","depth":2,"children":[]},{"title":"Idempotency and retries","slug":"idempotency-and-retries","depth":2,"children":[]},{"title":"Next steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/atumlabs/ea8598561a186193/audited-by.js","/_mintlify/custom/atumlabs/946086a3f73c7db3/webmcp.js","/_mintlify/custom/atumlabs/28a7e63cae1e14fd/changelog-tags.js","/_mintlify/custom/atumlabs/f97675e153f577c9/changelog-toc.js"],"subdomain":"atumlabs","siteName":"Atum Docs","title":"Reconciliation - Atum Docs","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T11:11:58.684Z","originalFileLocation":"get-started/support/reconciliation.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=\"dark\"}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=\"The identifiers and fields to record for every payment so you can reconcile it without reconstructing it from wallet dashboards — and how to separate Atum fees from gas, swap, and bridge costs.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Atum Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/atumlabs/Pqh0GSDdyRfy-YKa/_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/atumlabs/Pqh0GSDdyRfy-YKa/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/atumlabs/Pqh0GSDdyRfy-YKa/_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/atumlabs/Pqh0GSDdyRfy-YKa/_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/atumlabs/Pqh0GSDdyRfy-YKa/_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/atumlabs/Pqh0GSDdyRfy-YKa/_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/atumlabs/Pqh0GSDdyRfy-YKa/_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/atumlabs/Pqh0GSDdyRfy-YKa/_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/atumlabs/Pqh0GSDdyRfy-YKa/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Reconciliation - Atum Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"The identifiers and fields to record for every payment so you can reconcile it without reconstructing it from wallet dashboards — and how to separate Atum fees from gas, swap, and bridge costs.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Atum Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.atum.xyz/get-started/support/reconciliation\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://atumlabs.mintlify.site/_mintlify/api/og/v2?division=Support\u0026amp;title=Reconciliation\u0026amp;description=The+identifiers+and+fields+to+record+for+every+payment+so+you+can+reconcile+it+without+reconstructing+it+from+wallet+dashboards+%E2%80%94+and+how+to+separate+Atum+fees+\u0026amp;theme=2455e481a76f39e16fb336fe\u0026amp;signature=05998e700b51c2638e164db58707f8787d3ee8d5175364838ae41cdcfc3d2360\">\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=\"Reconciliation - Atum Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The identifiers and fields to record for every payment so you can reconcile it without reconstructing it from wallet dashboards — and how to separate Atum fees from gas, swap, and bridge costs.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://atumlabs.mintlify.site/_mintlify/api/og/v2?division=Support\u0026amp;title=Reconciliation\u0026amp;description=The+identifiers+and+fields+to+record+for+every+payment+so+you+can+reconcile+it+without+reconstructing+it+from+wallet+dashboards+%E2%80%94+and+how+to+separate+Atum+fees+\u0026amp;theme=2455e481a76f39e16fb336fe\u0026amp;signature=05998e700b51c2638e164db58707f8787d3ee8d5175364838ae41cdcfc3d2360\">\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/atumlabs/Pqh0GSDdyRfy-YKa/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Atum Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#24450d\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.atum.xyz/get-started/support/reconciliation\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/get-started/support/reconciliation.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.atum.xyz/#organization\",\"name\":\"Atum Docs\",\"url\":\"https://docs.atum.xyz\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/atumlabs/eBwMdhd0uJ6cwbY0/images/assets/wordmark-light.svg?fit=max\u0026auto=format\u0026n=eBwMdhd0uJ6cwbY0\u0026q=85\u0026s=6ba7458a7e4528e698e48cbf8e15c375\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.atum.xyz#website\",\"name\":\"Atum Docs\",\"url\":\"https://docs.atum.xyz\",\"publisher\":{\"@id\":\"https://docs.atum.xyz/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.atum.xyz/get-started/support/reconciliation#webpage\",\"url\":\"https://docs.atum.xyz/get-started/support/reconciliation\",\"name\":\"Reconciliation\",\"description\":\"The identifiers and fields to record for every payment so you can reconcile it without reconstructing it from wallet dashboards — and how to separate Atum fees from gas, swap, and bridge costs.\",\"dateModified\":\"2026-11-02T11:11:58.684Z\",\"isPartOf\":{\"@id\":\"https://docs.atum.xyz#website\"},\"breadcrumb\":{\"@id\":\"https://docs.atum.xyz/get-started/support/reconciliation#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.atum.xyz/get-started/support/reconciliation#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Support\",\"item\":\"https://docs.atum.xyz/get-started/support/who-owns-what\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reconciliation\",\"item\":\"https://docs.atum.xyz/get-started/support/reconciliation\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.atum.xyz/get-started/support/reconciliation#article\",\"headline\":\"Reconciliation\",\"name\":\"Reconciliation\",\"description\":\"The identifiers and fields to record for every payment so you can reconcile it without reconstructing it from wallet dashboards — and how to separate Atum fees from gas, swap, and bridge costs.\",\"url\":\"https://docs.atum.xyz/get-started/support/reconciliation\",\"mainEntityOfPage\":{\"@id\":\"https://docs.atum.xyz/get-started/support/reconciliation#webpage\"},\"dateModified\":\"2026-11-02T11:11:58.684Z\",\"publisher\":{\"@id\":\"https://docs.atum.xyz/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.atum.xyz#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Atum Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Atum Docs","nav":{"global":null,"tabs":[{"tab":"Get started","icon":"rocket","groups":[{"group":"Overview","pages":[{"title":"What is Atum?","href":"/get-started/overview/what-is-atum"},{"group":"Use cases","icon":"briefcase","pages":[{"title":"Treasury management","href":"/get-started/use-cases/treasury-management"},{"title":"Payouts","href":"/get-started/use-cases/payouts"},{"title":"Merchant acceptance","href":"/get-started/use-cases/merchant-acceptance"},{"title":"Agentic payouts","href":"/get-started/use-cases/agentic-payouts"}]},{"group":"Core concepts","root":{"title":"Core concepts","href":"/get-started/architecture/core-concepts"},"expanded":false,"directory":"accordion","pages":[{"title":"Atum infrastructure","icon":"circle-nodes","href":"/get-started/architecture/payment-rails-primer"},{"group":"Identity","icon":"fingerprint","root":{"title":"What is Atum ID?","href":"/get-started/identity/overview"},"expanded":false,"directory":"none","pages":[{"title":"What is Atum ID?","href":"/get-started/identity/overview"},{"title":"Know Your Agent","href":"/get-started/identity/know-your-agent"},{"title":"Credentials","href":"/get-started/identity/credentials"},{"title":"Verifiable presentations","sidebarTitle":"Presenting identity","href":"/get-started/identity/verifiable-presentation"}]},{"title":"Payment request","icon":"file-invoice","href":"/get-started/concepts/payment-intent"},{"title":"Settlement vault: where funds wait and how they leave","sidebarTitle":"Settlement vault","icon":"vault","href":"/get-started/concepts/settlement-vault"},{"title":"Fees: what a payment costs and who pays","sidebarTitle":"Fees","icon":"receipt","href":"/get-started/concepts/fees"},{"title":"Deadlines","icon":"clock","href":"/get-started/concepts/deadlines"},{"title":"Finality","icon":"lock","href":"/get-started/concepts/finality"},{"title":"Idempotency","sidebarTitle":"Idempotency","icon":"arrows-rotate","href":"/payment-protocols/idempotency"},{"title":"Policy enforcement","icon":"shield-halved","href":"/get-started/concepts/policy-enforcement"},{"title":"Network participants","icon":"users","href":"/get-started/concepts/participants"},{"title":"Corridors and assets","icon":"route","href":"/get-started/concepts/corridors-and-assets"},{"title":"Token approvals","icon":"key","href":"/get-started/concepts/permit2-and-approvals"}]}]},{"group":"Start building","pages":[{"title":"Prerequisites","sidebarTitle":"Prerequisites","href":"/get-started/start-building/prerequisites"},{"group":"Quickstart","pages":[{"title":"Quickstart (using CLI)","sidebarTitle":"Try it (using CLI)","href":"/get-started/start-building/using-the-cli"},{"title":"SDK quickstart","sidebarTitle":"Integrate (using SDK)","href":"/get-started/start-building/build-with-the-sdk"}]}]},{"group":"Payment lifecycle","pages":[{"title":"Atum payment lifecycle","sidebarTitle":"Overview","href":"/get-started/how-an-atum-payment-works"},{"title":"Get a price quote","sidebarTitle":"Get a price quote","href":"/get-started/get-a-price-first"},{"title":"Prepare a payment","sidebarTitle":"Prepare a payment","href":"/get-started/prepare-a-payment"},{"title":"After submission","sidebarTitle":"After submission","href":"/get-started/after-submission"}]},{"group":"Support","pages":[{"title":"Who owns what","href":"/get-started/support/who-owns-what"},{"title":"Troubleshooting","description":"Common errors — payment not settling, stuck payments, and payment authorization.","href":"/get-started/support/troubleshooting"},{"title":"Reconciliation","sidebarTitle":"Reconciliation","href":"/get-started/support/reconciliation"},{"title":"Refunds","sidebarTitle":"Refunds","description":"How to interpret settlement statuses and recover your funds.","href":"/get-started/support/refunds"}]},{"group":"Reference","pages":[{"title":"Endpoints","icon":"link","href":"/get-started/reference/endpoints"},{"title":"Supported networks","icon":"network-wired","href":"/get-started/reference/supported-networks"},{"title":"Supported assets","icon":"coins","href":"/get-started/reference/supported-assets"},{"title":"Contract addresses","icon":"file-contract","href":"/get-started/reference/contract-addresses"},{"title":"Glossary","icon":"book-open","href":"/get-started/reference/glossary"},{"title":"Testnet wallet setup","sidebarTitle":"Testnet wallet setup","icon":"flask","href":"/get-started/reference/setup-testnet-wallet"},{"title":"Security Reviews","icon":"shield-halved","href":"/security-reviews"}]}]},{"tab":"Payment protocols","icon":"route","pages":[{"title":"Payment protocols","href":"/payment-protocols/overview"}]},{"tab":"Settle payments","icon":"handshake","pages":[{"title":"Settle payments","href":"/settle-payments/what-is-an-atum-settlement"}]},{"tab":"API Reference","icon":"code","pages":[{"title":"API Reference","href":"/api-reference/overview"}]},{"tab":"Changelog","icon":"clock-rotate-left","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Reconciliation - Atum Docs","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":[],"chunks":[]}