The top-level status values a transaction can carry, the status object shape, and how to act on each outcome.
Lifecycle
PROCESSING is the only non-final status. APPROVED, DECLINED, CANCELLED, ERROR, and UNKNOWN
are all final — none of them transition to another status on their own.
Treat UNKNOWN as unresolved, not as a failure. Query transaction status
again or contact support before taking any action based on it.
How to act on each status
APPROVED
The payment succeeded. For a sale, funds are captured. For a pre-authorization, funds are held —
call capture to settle them, or
void to release the hold.
PROCESSING
The transaction is still in flight. Poll transaction status or
wait for a webhook event rather than resubmitting the request.
DECLINED
The issuer, processor, or a SmartRetry risk/validation rule refused the transaction. Read
reasonCode and domain to determine whether the decline is retryable — see
Decline codes.
ERROR
A technical failure prevented the transaction from completing, distinct from an issuer decline.
These are typically safe to retry with a new Idempotency-Key.
CANCELLED
The transaction was cancelled — for example, by a void — before it
reached a final outcome. No funds moved.
UNKNOWN
The outcome could not be determined, for example after a timeout with no response from the
processor. Do not assume success or failure.
The status object
GET /v1/payments/status/{terminal_friendly_id}/{order_id}/{transaction_id} returns status as a structured
object, not a plain string:
{ "status": "DECLINED", "reasonCode": "PAYER_ACCOUNT.STOLEN_INSTRUMENT", "domain": "PAYER_ACCOUNT", "reason": "STOLEN_INSTRUMENT", "name": "Stolen Card", "description": "The payment card has been reported as stolen by the cardholder or the issuing bank."}
string
The top-level outcome. See the values above.
string
required
A dot-separated code identifying the reason for the status. See Reason code formats below for
how this differs from the reason_code on error responses.
string
The functional area responsible for the status. See Status reason codes for the full breakdown by domain.
string
The reason segment of the code, without the domain prefix.
string
required
A human-readable name for the specific reason.
string
A plain-language description of what this reason means.
object
Present for validation-related reasons. Identifies the offending field.
Show properties
string
required
A JSON pointer to the invalid field in the original request body.
Reason code formats
SmartRetry uses the same underlying catalog in two different string formats, depending on where it
appears.
status.reasonCode
error reason_code
Dot-separated, and truncated to at most two segments: DOMAIN.REASON. The full three-segment
detail is still reflected in name and description.
Slash-separated, and never truncated: DOMAIN/REASON or DOMAIN/REASON/DETAIL. This is the value
returned as reason_code on every error response, and it matches an
entry in the full Status reason codes catalog exactly.
Status domains
The domain field tells you which part of the payment chain produced a status — SmartRetry’s own
validation, risk rules, routing, the card network, the processor, the payment method, or the payer’s
account. Domain names and descriptions are documented alongside the full code catalog.
Status reason codes
All 300+ reason codes, grouped and described by domain.
Related
Transaction status endpoint
Retrieve the current status and details of any transaction.
Status reason codes
The full reason-code catalog, grouped by domain.
Errors
HTTP status codes and error response structure.
The high-level outcome of a transaction.
Value
Description
APPROVED
Transaction was approved and completed successfully.
PROCESSING
Transaction is still being processed.
DECLINED
Transaction was declined (e.g., by issuer, risk, validation).
ERROR
Transaction failed due to a system or technical error.
CANCELLED
Transaction was cancelled by the user or merchant.
UNKNOWN
Transaction outcome is unknown or indeterminate.
Available options:
APPROVED,
PROCESSING,
DECLINED,
ERROR,
CANCELLED,
UNKNOWN
Example:
{ "title": "Example", "value": undefined }
⌘I
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"SmartRetry Documentation","description":"Official SmartRetry API documentation. Integrate intelligent retry and multi-acquirer routing to recover declined payments.","colors":{"primary":"#fc34a4","light":"#f094d4"},"logo":{"light":"https://mintcdn.com/smartretry/_g7WFMFW7o98H_Fk/images/logo.svg?fit=max\u0026auto=format\u0026n=_g7WFMFW7o98H_Fk\u0026q=85\u0026s=fbe76b69de851cddc7febffe37080486","dark":"https://mintcdn.com/smartretry/_g7WFMFW7o98H_Fk/images/logo.svg?fit=max\u0026auto=format\u0026n=_g7WFMFW7o98H_Fk\u0026q=85\u0026s=fbe76b69de851cddc7febffe37080486"},"favicon":"https://mintcdn.com/smartretry/ZbqbGx_5fnYHU2wn/favicon.svg?fit=max\u0026auto=format\u0026n=ZbqbGx_5fnYHU2wn\u0026q=85\u0026s=1e5d6f55df667d65ccfd44a4e0760935","api":{"openapi":"api-reference/openapi.json"},"navbar":{"links":[{"href":"https://status.smartretry.com/","label":"Status"},{"href":"https://www.smartretry.com/contact","label":"Contact"},{"href":"https://console.smartretry.com/","label":"Console"}],"primary":{"type":"github","href":"https://github.com/smartretry"}},"footer":{"socials":{"website":"https://www.smartretry.com/","linkedin":"https://www.linkedin.com/company/smartretry","facebook":"https://www.facebook.com/smartretry","youtube":"https://www.youtube.com/@SmartRetry","instagram":"https://www.instagram.com/smartretry","x":"https://x.com/smartretry"}},"errors":{"404":{"redirect":false,"title":"Page not found","description":"This page doesn't exist or was moved. Try the search or go back to the [docs home](/)."}},"contextual":{"options":["copy","view","chatgpt","claude","download-spec"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"smartretry","hasAudioNarration":false,"actualSubdomain":"smartretry","customDomains":["www.smartretry.com"],"gitSource":{"type":"github","owner":"smartretry","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":false},"entitlements":{},"buildId":"6ad890b007bd5e919ed2661b","clientVersion":"0.0.4131","searchFilterCounts":[{"language":"default","tag":"API Reference","count":22},{"language":"default","tag":"Documentation","count":17},{"language":"default","tag":"Payments","count":7},{"language":"default","tag":"Integration","count":7},{"language":"default","tag":"Recurring","count":5},{"language":"default","tag":"Core Concepts","count":5},{"language":"default","tag":"Overview","count":4},{"language":"default","tag":"Future Transactions","count":4},{"language":"default","tag":"Get Started","count":3},{"language":"default","tag":"Statuses","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","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":"api-reference/transaction-status","slug":"/api-reference/transaction-status","pageMetadata":{"title":"Transaction status","description":"The top-level status values a transaction can carry, the status object shape, and how to act on each outcome.","openapi-schema":"TransactionStatus","href":"/api-reference/transaction-status"},"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 top-level status values a transaction can carry, the status object shape, and how to act on each outcome.\"\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`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,CodeBlock,Expandable,Heading,ResponseField,Tab,Tabs,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`lifecycle`,children:`Lifecycle`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`PROCESSING`}),` is the only non-final status. `,_jsx(_components.code,{children:`APPROVED`}),`, `,_jsx(_components.code,{children:`DECLINED`}),`, `,_jsx(_components.code,{children:`CANCELLED`}),`, `,_jsx(_components.code,{children:`ERROR`}),`, and `,_jsx(_components.code,{children:`UNKNOWN`}),`\nare all final — none of them transition to another status on their own.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Treat `,_jsx(_components.code,{children:`UNKNOWN`}),` as unresolved, not as a failure. Query `,_jsx(_components.a,{href:`/api-reference/payments/status`,children:`transaction status`}),`\nagain or contact support before taking any action based on it.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`how-to-act-on-each-status`,children:`How to act on each status`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`APPROVED`,id:`approved`,children:_jsxs(_components.p,{children:[`The payment succeeded. For a sale, funds are captured. For a pre-authorization, funds are held —\ncall `,_jsx(_components.a,{href:`/api-reference/payments/capture`,children:`capture`}),` to settle them, or\n`,_jsx(_components.a,{href:`/api-reference/payments/void`,children:`void`}),` to release the hold.`]})}),_jsx(Accordion,{title:`PROCESSING`,id:`processing`,children:_jsxs(_components.p,{children:[`The transaction is still in flight. Poll `,_jsx(_components.a,{href:`/api-reference/payments/status`,children:`transaction status`}),` or\nwait for a webhook event rather than resubmitting the request.`]})}),_jsx(Accordion,{title:`DECLINED`,id:`declined`,children:_jsxs(_components.p,{children:[`The issuer, processor, or a SmartRetry risk/validation rule refused the transaction. Read\n`,_jsx(_components.code,{children:`reasonCode`}),` and `,_jsx(_components.code,{children:`domain`}),` to determine whether the decline is retryable — see\n`,_jsx(_components.a,{href:`/concepts/decline-codes`,children:`Decline codes`}),`.`]})}),_jsx(Accordion,{title:`ERROR`,id:`error`,children:_jsxs(_components.p,{children:[`A technical failure prevented the transaction from completing, distinct from an issuer decline.\nThese are typically safe to retry with a new `,_jsx(_components.code,{children:`Idempotency-Key`}),`.`]})}),_jsx(Accordion,{title:`CANCELLED`,id:`cancelled`,children:_jsxs(_components.p,{children:[`The transaction was cancelled — for example, by a `,_jsx(_components.a,{href:`/api-reference/payments/void`,children:`void`}),` — before it\nreached a final outcome. No funds moved.`]})}),_jsx(Accordion,{title:`UNKNOWN`,id:`unknown`,children:_jsx(_components.p,{children:`The outcome could not be determined, for example after a timeout with no response from the\nprocessor. Do not assume success or failure.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`the-status-object`,children:`The status object`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`GET /v1/payments/status/{terminal_friendly_id}/{order_id}/{transaction_id}`}),` returns `,_jsx(_components.code,{children:`status`}),` as a structured\nobject, not a plain string:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,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:`8`,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:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"DECLINED\"`}),_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:` \"reasonCode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"PAYER_ACCOUNT.STOLEN_INSTRUMENT\"`}),_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:` \"domain\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"PAYER_ACCOUNT\"`}),_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:` \"reason\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"STOLEN_INSTRUMENT\"`}),_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:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Stolen Card\"`}),_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:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"The payment card has been reported as stolen by the cardholder or the issuing bank.\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(ResponseField,{name:`status`,type:`string`,id:`param-status`,children:_jsx(_components.p,{children:`The top-level outcome. See the values above.`})}),`\n`,_jsx(ResponseField,{name:`reasonCode`,type:`string`,required:true,id:`param-reason-code`,children:_jsxs(_components.p,{children:[`A dot-separated code identifying the reason for the status. See `,_jsx(_components.strong,{children:`Reason code formats`}),` below for\nhow this differs from the `,_jsx(_components.code,{children:`reason_code`}),` on error responses.`]})}),`\n`,_jsx(ResponseField,{name:`domain`,type:`string`,id:`param-domain`,children:_jsxs(_components.p,{children:[`The functional area responsible for the status. See `,_jsx(_components.a,{href:`/api-reference/status-reason-codes`,children:`Status reason codes`}),` for the full breakdown by domain.`]})}),`\n`,_jsx(ResponseField,{name:`reason`,type:`string`,id:`param-reason`,children:_jsx(_components.p,{children:`The reason segment of the code, without the domain prefix.`})}),`\n`,_jsx(ResponseField,{name:`name`,type:`string`,required:true,id:`param-name`,children:_jsx(_components.p,{children:`A human-readable name for the specific reason.`})}),`\n`,_jsx(ResponseField,{name:`description`,type:`string`,id:`param-description`,children:_jsx(_components.p,{children:`A plain-language description of what this reason means.`})}),`\n`,_jsxs(ResponseField,{name:`field`,type:`object`,id:`param-field`,children:[_jsx(_components.p,{children:`Present for validation-related reasons. Identifies the offending field.`}),_jsx(Expandable,{title:`properties`,children:_jsx(ResponseField,{name:`field.pointer`,type:`string`,required:true,id:`param-field-pointer`,children:_jsx(_components.p,{children:`A JSON pointer to the invalid field in the original request body.`})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`reason-code-formats`,children:`Reason code formats`}),`\n`,_jsx(_components.p,{children:`SmartRetry uses the same underlying catalog in two different string formats, depending on where it\nappears.`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`status.reasonCode`,id:`status-reasoncode`,children:[_jsxs(_components.p,{children:[`Dot-separated, and truncated to at most two segments: `,_jsx(_components.code,{children:`DOMAIN.REASON`}),`. The full three-segment\ndetail is still reflected in `,_jsx(_components.code,{children:`name`}),` and `,_jsx(_components.code,{children:`description`}),`.`]}),_jsx(CodeBlock,{numberOfLines:`5`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`PAYER_ACCOUNT/STOLEN_INSTRUMENT/STOLEN_CARD (underlying code)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` → reasonCode: \"PAYER_ACCOUNT.STOLEN_INSTRUMENT\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` → domain: \"PAYER_ACCOUNT\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` → reason: \"STOLEN_INSTRUMENT\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})]}),_jsx(Tab,{title:`error reason_code`,id:`error-reason_code`,children:_jsxs(_components.p,{children:[`Slash-separated, and never truncated: `,_jsx(_components.code,{children:`DOMAIN/REASON`}),` or `,_jsx(_components.code,{children:`DOMAIN/REASON/DETAIL`}),`. This is the value\nreturned as `,_jsx(_components.code,{children:`reason_code`}),` on every `,_jsx(_components.a,{href:`/api-reference/errors`,children:`error response`}),`, and it matches an\nentry in the full `,_jsx(_components.a,{href:`/api-reference/status-reason-codes`,children:`Status reason codes`}),` catalog exactly.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`status-domains`,children:`Status domains`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`domain`}),` field tells you which part of the payment chain produced a status — SmartRetry’s own\nvalidation, risk rules, routing, the card network, the processor, the payment method, or the payer’s\naccount. Domain names and descriptions are documented alongside the full code catalog.`]}),`\n`,_jsx(Card,{title:`Status reason codes`,icon:`list`,href:`/api-reference/status-reason-codes`,children:_jsx(_components.p,{children:`All 300+ reason codes, grouped and described by domain.`})}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(CardGroup,{cols:3,children:[_jsx(Card,{title:`Transaction status endpoint`,icon:`magnifying-glass`,href:`/api-reference/payments/status`,children:_jsx(_components.p,{children:`Retrieve the current status and details of any transaction.`})}),_jsx(Card,{title:`Status reason codes`,icon:`list`,href:`/api-reference/status-reason-codes`,children:_jsx(_components.p,{children:`The full reason-code catalog, grouped by domain.`})}),_jsx(Card,{title:`Errors`,icon:`triangle-exclamation`,href:`/api-reference/errors`,children:_jsx(_components.p,{children:`HTTP status codes and error response structure.`})})]})]})}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":"Transaction status","description":"The top-level status values a transaction can carry, the status object shape, and how to act on each outcome.","openapi-schema":"TransactionStatus","href":"/api-reference/transaction-status"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Lifecycle","slug":"lifecycle","depth":2,"children":[]},{"title":"How to act on each status","slug":"how-to-act-on-each-status","depth":2,"children":[]},{"title":"The status object","slug":"the-status-object","depth":2,"children":[]},{"title":"Reason code formats","slug":"reason-code-formats","depth":2,"children":[]},{"title":"Status domains","slug":"status-domains","depth":2,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/smartretry/439bed5f4a9c39c6/consent-scripts.js"],"openApiReferenceData":{"schemaData":{"x-normalize":"code","description":"The high-level outcome of a transaction.\n\n| Value | Description |\n|---|---|\n| `APPROVED` | Transaction was approved and completed successfully. |\n| `PROCESSING` | Transaction is still being processed. |\n| `DECLINED` | Transaction was declined (e.g., by issuer, risk, validation). |\n| `ERROR` | Transaction failed due to a system or technical error. |\n| `CANCELLED` | Transaction was cancelled by the user or merchant. |\n| `UNKNOWN` | Transaction outcome is unknown or indeterminate. |","x-enumDescriptions":{"APPROVED":"Transaction was approved and completed successfully.","PROCESSING":"Transaction is still being processed.","DECLINED":"Transaction was declined (e.g., by issuer, risk, validation).","ERROR":"Transaction failed due to a system or technical error.","CANCELLED":"Transaction was cancelled by the user or merchant.","UNKNOWN":"Transaction outcome is unknown or indeterminate."},"type":"string","enum":["APPROVED","PROCESSING","DECLINED","ERROR","CANCELLED","UNKNOWN"],"uniqueKey":"","typeLabel":"enum\u003cstring>","example":{"title":"Example"}},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"smartretry","siteName":"SmartRetry Documentation","title":"Transaction status - SmartRetry Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-21T10:15:20.232Z","originalFileLocation":"api-reference/transaction-status.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=\"The top-level status values a transaction can carry, the status object shape, and how to act on each outcome.\">\u003cmeta data-mint-head name=\"application-name\" content=\"SmartRetry Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/smartretry/SXFkZTx2n1JgwTow/_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=\"/docs/mintlify-assets/_mintlify/favicons/smartretry/SXFkZTx2n1JgwTow/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/smartretry/SXFkZTx2n1JgwTow/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/smartretry/SXFkZTx2n1JgwTow/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/smartretry/SXFkZTx2n1JgwTow/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/smartretry/SXFkZTx2n1JgwTow/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/smartretry/SXFkZTx2n1JgwTow/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/smartretry/SXFkZTx2n1JgwTow/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/smartretry/SXFkZTx2n1JgwTow/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Transaction status - SmartRetry Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"The top-level status values a transaction can carry, the status object shape, and how to act on each outcome.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SmartRetry Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.smartretry.com/docs/api-reference/transaction-status\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://smartretry.mintlify.site/docs/_mintlify/api/og/v2?division=Statuses\u0026amp;title=Transaction+status\u0026amp;description=The+top-level+status+values+a+transaction+can+carry%2C+the+status+object+shape%2C+and+how+to+act+on+each+outcome.\u0026amp;theme=fde9b2ebbd4d78142db73f62\u0026amp;signature=a0d131cf96e4382c50bf41b5e21671ca48c71396782c96402cfceb41b9ca6f6d\">\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=\"Transaction status - SmartRetry Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The top-level status values a transaction can carry, the status object shape, and how to act on each outcome.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://smartretry.mintlify.site/docs/_mintlify/api/og/v2?division=Statuses\u0026amp;title=Transaction+status\u0026amp;description=The+top-level+status+values+a+transaction+can+carry%2C+the+status+object+shape%2C+and+how+to+act+on+each+outcome.\u0026amp;theme=fde9b2ebbd4d78142db73f62\u0026amp;signature=a0d131cf96e4382c50bf41b5e21671ca48c71396782c96402cfceb41b9ca6f6d\">\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=\"/docs/mintlify-assets/_mintlify/favicons/smartretry/SXFkZTx2n1JgwTow/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SmartRetry Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#fc34a4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.smartretry.com/docs/api-reference/transaction-status\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/transaction-status.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.smartretry.com/#organization\",\"name\":\"SmartRetry Documentation\",\"url\":\"https://www.smartretry.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/smartretry/_g7WFMFW7o98H_Fk/images/logo.svg?fit=max\u0026auto=format\u0026n=_g7WFMFW7o98H_Fk\u0026q=85\u0026s=fbe76b69de851cddc7febffe37080486\"}},{\"@type\":\"WebSite\",\"@id\":\"https://www.smartretry.com/docs#website\",\"name\":\"SmartRetry Documentation\",\"url\":\"https://www.smartretry.com/docs\",\"publisher\":{\"@id\":\"https://www.smartretry.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.smartretry.com/docs/api-reference/transaction-status#webpage\",\"url\":\"https://www.smartretry.com/docs/api-reference/transaction-status\",\"name\":\"Transaction status\",\"description\":\"The top-level status values a transaction can carry, the status object shape, and how to act on each outcome.\",\"dateModified\":\"2026-10-21T10:15:20.232Z\",\"isPartOf\":{\"@id\":\"https://www.smartretry.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://www.smartretry.com/docs/api-reference/transaction-status#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.smartretry.com/docs/api-reference/transaction-status#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"SmartRetry Documentation\",\"item\":\"https://www.smartretry.com/docs\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Transaction status\",\"item\":\"https://www.smartretry.com/docs/api-reference/transaction-status\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://www.smartretry.com/docs/api-reference/transaction-status#apireference\",\"headline\":\"Transaction status\",\"name\":\"Transaction status\",\"description\":\"The top-level status values a transaction can carry, the status object shape, and how to act on each outcome.\",\"url\":\"https://www.smartretry.com/docs/api-reference/transaction-status\",\"mainEntityOfPage\":{\"@id\":\"https://www.smartretry.com/docs/api-reference/transaction-status#webpage\"},\"dateModified\":\"2026-10-21T10:15:20.232Z\",\"publisher\":{\"@id\":\"https://www.smartretry.com/#organization\"},\"isPartOf\":{\"@id\":\"https://www.smartretry.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SmartRetry Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"SmartRetry Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/api-reference/transaction-status.md","siteName":"SmartRetry Documentation","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Overview","href":"/api-reference/overview"},{"title":"Idempotency","href":"/api-reference/idempotency"},{"title":"Rate limiting","href":"/api-reference/rate-limiting"},{"title":"Errors","description":"HTTP error codes and reason codes returned by the SmartRetry API.","href":"/api-reference/errors"}]},{"group":"Statuses","pages":[{"title":"Transaction status","href":"/api-reference/transaction-status"},{"title":"Status reason codes","description":"The full catalog of status-reason codes, grouped by domain.","href":"/api-reference/status-reason-codes"}]},{"group":"Payments","pages":[{"title":"Sale","openapi":"api-reference/openapi.json POST /v1/payments/sale/{terminal_friendly_id}","href":"/api-reference/payments/sale"},{"title":"Pre-authorization","openapi":"api-reference/openapi.json POST /v1/payments/preauth/{terminal_friendly_id}","href":"/api-reference/payments/preauth"},{"title":"Capture","openapi":"api-reference/openapi.json POST /v1/payments/capture/{terminal_friendly_id}","href":"/api-reference/payments/capture"},{"title":"Refund","openapi":"api-reference/openapi.json POST /v1/payments/refund/{terminal_friendly_id}","href":"/api-reference/payments/refund"},{"title":"Void","openapi":"api-reference/openapi.json POST /v1/payments/void/{terminal_friendly_id}","href":"/api-reference/payments/void"},{"title":"Transaction status","openapi":"api-reference/openapi.json GET /v1/payments/status/{terminal_friendly_id}/{order_id}/{transaction_id}","href":"/api-reference/payments/status"},{"title":"Complete payer actions","openapi":"api-reference/openapi.json POST /v1/payments/status/{terminal_friendly_id}/{order_id}/{transaction_id}/payer-actions/{plan_id}/complete","href":"/api-reference/payments/payer-action-complete"}]},{"group":"Recurring","pages":[{"title":"Initialize recurring","openapi":"api-reference/openapi.json POST /v1/payments/recurring/init/{terminal_friendly_id}","href":"/api-reference/recurring/init"},{"title":"Recurring status","openapi":"api-reference/openapi.json GET /v1/payments/recurring/status/{terminal_friendly_id}","href":"/api-reference/recurring/status"},{"title":"Charge recurring","openapi":"api-reference/openapi.json POST /v1/payments/recurring/charge/{terminal_friendly_id}","href":"/api-reference/recurring/charge"},{"title":"Update recurring","openapi":"api-reference/openapi.json PUT /v1/payments/recurring/update/{terminal_friendly_id}","href":"/api-reference/recurring/update"},{"title":"Cancel recurring","openapi":"api-reference/openapi.json POST /v1/payments/recurring/cancel/{terminal_friendly_id}","href":"/api-reference/recurring/cancel"}]},{"group":"Future Transactions","pages":[{"title":"Future transaction status","openapi":"api-reference/openapi.json GET /v1/payments/recurring/future-transactions/status/{terminal_friendly_id}","href":"/api-reference/future-transactions/status"},{"title":"Update future transaction","openapi":"api-reference/openapi.json PUT /v1/payments/recurring/future-transactions/update/{terminal_friendly_id}","href":"/api-reference/future-transactions/update"},{"title":"Charge future transaction","openapi":"api-reference/openapi.json POST /v1/payments/recurring/future-transactions/charge/{terminal_friendly_id}","href":"/api-reference/future-transactions/charge"},{"title":"Cancel future transaction","openapi":"api-reference/openapi.json POST /v1/payments/recurring/future-transactions/cancel/{terminal_friendly_id}","href":"/api-reference/future-transactions/cancel"}]}]}]},"basePath":"","title":"Transaction status - SmartRetry Documentation","buildId":"dpl_Eok1jboeiLTUE4ccnKdogAktkDhH","deploymentId":"dpl_Eok1jboeiLTUE4ccnKdogAktkDhH","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-BO6jLjHP.js","utils-DzK3kjtW.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B_o_sRtB.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-w5sf6cTL.js","snippetPresets-C-LqQvlw.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-B6e_603r.js","ApiExamples-B86q0r56.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CK4fhXtK.js","shallow-2nSrO3Y1.js","getApiPlaygroundDisplay-iMY8AQYp.js","CodeSnippet-CYrmmkRs.js","CodeSnippets-CpTHX08n.js","getPastedJson-ErXUu_z-.js","icon-DjAwzjTp.js","MethodPill-DWCnd71y.js","DuplicateIcon-CzD5BRfY.js","createIcon-D_pVdVTU.js","DynamicMarkdown-BeNxZ5px.js","SectionHeading-CovuDw0Y.js","axios-vUo_bRtp.js","Markdown-BZjeoXbi.js","clsx-BaM3PNnJ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BfGZDUfd.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-wFXGQKnc.js"]}