{"templateId":"../../../@theme/Templates/Wide.tsx","sharedDataIds":{"sidebar":"sidebar-guides/developer/errors/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["sub-header","error-code-heading","section","panel-left","panel-right"]},"type":"markdown"},"seo":{"title":"Funding errors","siteUrl":"https://docs.wise.com","projectTitle":"Wise Platform","description":"Handle rejected Wise transfer funding, insufficient funds, and SCA responses.","keywords":["funding errors","insufficient funds","transfer funding","SCA"]},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"funding-errors","__idx":0},"children":["Funding errors"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"span","attributes":{"class":"sub-header"},"children":["Handle rejected transfer funding, insufficient funds, and SCA responses."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This page covers transfer funding and retrieving funding attempts."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Funding is a separate lifecycle action after transfer creation. The available funding methods and error responses depend on your settlement model and integration configuration."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["On this page:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#fund-a-transfer"},"children":["Fund a transfer"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#retrieve-funding-attempts"},"children":["Retrieve funding attempts"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#handle-sca-responses"},"children":["Handle SCA responses"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#retry-funding-requests"},"children":["Retry funding requests"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/developer/errors#choose-a-recovery-action"},"children":["shared handling guidance"]}," for choosing an action, displaying messages, and retrying safely."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"fund-a-transfer","__idx":1},"children":["Fund a transfer"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Endpoint:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /profiles/{profileId}/transfers/{transferId}/payments"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-reference/transfer/transferfund"},"children":["fund a transfer operation"]}," as the source of truth for the current request and response schema."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Interpret the funding result"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A successful HTTP response does not always mean that Wise funded the transfer. Always check ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["errorCode"]}," in the response body."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Depending on when the failure occurs, the operation can return a non-success HTTP response or a funding result with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status: REJECTED"]},". Detect the response format before reading the code."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The optional ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["errorMessage"]}," is diagnostic text. It is not localised or safe to display directly to end users."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Completed funding"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"type\": \"BALANCE\",\n  \"status\": \"COMPLETED\",\n  \"errorCode\": null\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Mark the transfer as funded only after the response reports ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["COMPLETED"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"shared-funding-errors","__idx":2},"children":["Shared funding errors"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These codes can apply across more than one funding type."]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"transfer.not-found"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Wise cannot find the transfer identified by the request in the current profile context."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify the transfer and profile identifiers."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Confirm that the transfer was created in the same environment."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Do not retry until the identifiers or context change."]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"transfer.invalid-state"},"children":[]},{"$$mdtype":"Tag","name":"Section","attributes":{},"children":[{"$$mdtype":"Tag","name":"PanelLeft","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The transfer's current state does not allow funding. It can already be funded, cancelled, or being processed."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Retrieve the latest transfer state."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Reconcile whether an earlier funding request succeeded."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Do not create a second funding attempt for the same completed action."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retry only when the latest transfer state allows funding."]}]},{"$$mdtype":"Tag","name":"PanelRight","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example error response"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"type\": \"TRUSTED_PRE_FUND_BULK\",\n  \"status\": \"REJECTED\",\n  \"errorCode\": \"transfer.invalid-state\",\n  \"errorMessage\": null\n}\n","lang":"json"},"children":[]}]}]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"payment.exists"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A funding payment already exists for the transfer or logical funding attempt."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Reconcile the existing payment and transfer state instead of creating another payment."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Do not retry as a new funding attempt."]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"transfer.not-accessible-for-user"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The authenticated user cannot access or fund the transfer."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Verify the token, profile ownership, and agreed permissions for the funding operation."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retry only with an identity that can access the transfer."]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"payment.not-found"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Wise cannot find the expected funding payment. In delayed funding, this can occur when completion is requested before initiation."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify the funding sequence and payment state."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Initiate delayed funding before completing it when the integration uses that flow."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retry only after restoring the required funding sequence."]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"invalid.request"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The funding request is missing required data or does not match the selected funding type."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Compare the request with the current schema for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BALANCE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRUSTED_PRE_FUND_BULK"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRUSTED_PRE_FUND_TX"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retry after correcting the request."]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"unexpected.error"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Wise could not complete the funding operation because of an unexpected service failure."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Return a safe system-error message."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Record a redacted response signature."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Reconcile the transfer and funding state before creating another attempt."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Do not automatically retry an unexplained failure. Retry only if a transient cause and safe replay are confirmed, using bounded backoff after reconciliation."]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"payment.option-unavailable"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The selected funding option is not available for the transfer or integration context."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Choose an available funding type or confirm the funding model enabled for the integration."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Do not retry with the same unavailable option."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"balance-funding-errors","__idx":3},"children":["Balance funding errors"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These codes apply when the request uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type: BALANCE"]},"."]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"balance.unauthorised.missing-security-role"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The authenticated identity does not have the required security role for balance funding."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Verify the token type, profile, permissions, and any applicable authentication requirement."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retry only after resolving access."]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"balance.payment-option-unavailable"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Balance funding is not available for this transfer or profile context."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Confirm that balance funding is supported and choose another available funding approach when applicable."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Do not retry the same option until its availability changes."]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"balance.account-not-found"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Wise cannot find the balance identified by the request in the current profile context."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Verify ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["balanceId"]},", profile ownership, currency, and environment."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retry after providing an accessible balance identifier."]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"balance.account-inactive"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The selected balance is not active and cannot fund the transfer."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Choose an active eligible balance or resolve the balance state before funding."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retry only after selecting an active balance."]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"balance.insufficient-funds"},"children":[]},{"$$mdtype":"Tag","name":"Section","attributes":{},"children":[{"$$mdtype":"Tag","name":"PanelLeft","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The selected Wise balance does not contain enough available funds."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Do not mark the transfer as funded."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Add sufficient funds or choose another supported funding approach."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retry after sufficient funds are available."]}]},{"$$mdtype":"Tag","name":"PanelRight","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example error response"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"type\": \"BALANCE\",\n  \"status\": \"REJECTED\",\n  \"errorCode\": \"balance.insufficient-funds\"\n}\n","lang":"json"},"children":[]}]}]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"balance.no-balance-for-currency"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The profile does not have an eligible balance for the transfer's funding currency."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Select or fund a balance in the required currency, or use another supported funding approach."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retry after an eligible balance is available."]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"balance.currency-unsupported"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The selected currency is not supported for balance funding."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use a supported funding currency or another available funding type."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Do not retry with the same unsupported currency."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"trusted-pre-funding-errors","__idx":4},"children":["Trusted pre-funding errors"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These codes apply to funding models enabled by agreement with Wise."]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"trustedprefundbulk.payment-option-unavailable"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The integration is not enabled to use bulk trusted pre-funding for this request."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the funding type agreed for the integration or confirm the bulk settlement configuration with Wise."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Do not retry with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRUSTED_PRE_FUND_BULK"]}," until it is available."]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"trustedprefundtx.payment-option-unavailable"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The integration is not enabled to use per-transfer trusted pre-funding for this request."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the funding type agreed for the integration or confirm the per-transfer funding configuration with Wise."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Do not retry with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRUSTED_PRE_FUND_TX"]}," until it is available."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"integration-specific-funding-errors","__idx":5},"children":["Integration-specific funding errors"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Some funding integrations can return identifiers outside the standard fund transfer catalogue. Interpret these only for the operation and response format in which they are documented."]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"transfer.insufficient_funds"},"children":[]},{"$$mdtype":"Tag","name":"Section","attributes":{},"children":[{"$$mdtype":"Tag","name":"PanelLeft","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The selected Wise balance does not contain enough available funds to fund the transfer."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Do not mark the transfer as funded."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If the customer owns the funding balance, explain that more funds are needed. If it is a partner or correspondent balance, notify your operations team and show the customer an appropriate payment-unavailable message."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Add funds or choose another supported funding approach."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Call the funding operation again after sufficient funds are available."]}]},{"$$mdtype":"Tag","name":"PanelRight","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example error response"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"type\": \"BALANCE\",\n  \"status\": \"REJECTED\",\n  \"errorCode\": \"transfer.insufficient_funds\"\n}\n","lang":"json"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"retrieve-funding-attempts","__idx":6},"children":["Retrieve funding attempts"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Endpoint:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /transfers/{transferId}/payments"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-reference/transfer/transferpaymentslist"},"children":["list transfer payments operation"]}," for the current request and response schema."]},{"$$mdtype":"Tag","name":"ErrorCodeHeading","attributes":{"code":"error.transfer.not.found"},"children":[]},{"$$mdtype":"Tag","name":"Section","attributes":{},"children":[{"$$mdtype":"Tag","name":"PanelLeft","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Wise could not find the transfer identified by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transferId"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["HTTP status:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["404"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What to do"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify the transfer ID, profile, environment, and access context."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Return a generic not-found message when revealing the transfer could disclose unauthorised information."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry conditions"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retry only after correcting the lookup context."]}]},{"$$mdtype":"Tag","name":"PanelRight","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example error response"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"errors\": [\n    {\n      \"code\": \"error.transfer.not.found\",\n      \"message\": \"We couldn't find a transfer with that ID (111111111)\",\n      \"arguments\": [111111111]\n    }\n  ]\n}\n","lang":"json"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"handle-sca-responses","__idx":7},"children":["Handle SCA responses"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Funding can return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["403"]}," when strong customer authentication applies. Check the documented SCA response headers before treating the response as a permanent permission denial."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Complete the SCA challenge"]}]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Check for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-2FA-Approval"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-2FA-Approval-Result"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Complete the required SCA challenge."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Retry the funding operation with the approved one-time token."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/developer/auth-and-security/sca-and-2fa"},"children":["SCA and two-factor authentication"]}," for the supported flow."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"retry-funding-requests","__idx":8},"children":["Retry funding requests"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Correct the funding method, profile, or transfer context before retrying a request error."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Complete SCA before retrying an applicable ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["403"]}," response."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Add sufficient funds before retrying a rejected balance funding request."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Follow ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Retry-After"]}," for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["429"]}," responses."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Retry transient ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["5xx"]}," responses only when the operation is safe to repeat, using bounded exponential backoff and jitter. Reconcile an uncertain funding outcome first."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Reconcile the funding result after a timeout or other uncertain response."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For transfer creation, retrieval, and cancellation errors, see the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/developer/errors/transfers"},"children":["transfer error overview"]},"."]}]},"headings":[{"value":"Funding errors","id":"funding-errors","depth":1},{"value":"Fund a transfer","id":"fund-a-transfer","depth":2},{"value":"Shared funding errors","id":"shared-funding-errors","depth":3},{"value":"Balance funding errors","id":"balance-funding-errors","depth":3},{"value":"Trusted pre-funding errors","id":"trusted-pre-funding-errors","depth":3},{"value":"Integration-specific funding errors","id":"integration-specific-funding-errors","depth":3},{"value":"Retrieve funding attempts","id":"retrieve-funding-attempts","depth":2},{"value":"Handle SCA responses","id":"handle-sca-responses","depth":2},{"value":"Retry funding requests","id":"retry-funding-requests","depth":2}],"frontmatter":{"template":"../../../@theme/Templates/Wide.tsx","seo":{"title":"Funding errors","description":"Handle rejected Wise transfer funding, insufficient funds, and SCA responses.","keywords":["funding errors","insufficient funds","transfer funding","SCA"]},"markdown":{"toc":{"hide":true}}},"lastModified":"2026-09-22T05:59:17.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/developer/errors/funding","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}