Plaid logo
Docs
ALL DOCS

Errors

  • Overview
  • Item errors
  • Institution errors
  • Transactions errors
  • Transfer errors
  • Income errors
  • Sandbox errors
  • API errors
  • Assets errors
  • Payment errors (UK/EU)
  • Virtual Accounts errors (UK/EU)
  • Check Report errors
  • Invalid Request errors
  • Invalid Input errors
  • Invalid Result errors
  • Rate Limit Exceeded errors
  • Recaptcha errors
  • OAuth errors
  • Microdeposits errors
  • Partner errors
Plaid logo
Docs
Close search modal
Ask Bill!
Ask Bill!
Hi! I'm Bill! You can ask me all about the Plaid API. Try asking questions like:
  • Why is /transactions/sync/ better than /get?
  • What is Remember Me?
  • How do I fix an Item in ITEM_LOGIN_REQUIRED state?
Note: Bill isn't perfect. He's just a robot platypus that reads our docs for fun. You should treat his answers with the same healthy skepticism you might treat any other answer on the internet. This chat may be logged for quality and training purposes. Please don't send Bill any PII -- he's scared of intimacy. All chats with Bill are subject to Plaid's Privacy Policy.
Plaid.com
Log in
Get API Keys
Open nav

Transfer errors

Errors specific to the Transfer product

TRANSFER_LIMIT_REACHED

The attempted transfer exceeded the account's daily transfer or single transfer limits.
Common causes
  • The attempted transfer exceeded the account's daily transfer or single transfer limits. The error message will indicate which transfer limit was exceeded.
  • Pre-production transfer limits are being applied in Production because the client has not fully completed the Transfer Implementation Checklist. Customers must provide all the information requested on the checklist and complete all checklist attestations in order to be granted production-level transfer limits.
Troubleshooting steps
1http code 400
2{
3 "error_type": "TRANSFER_ERROR",
4 "error_code": "TRANSFER_LIMIT_REACHED",
5 "error_message": "transfer limit exceeded",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

TRANSFER_ACCOUNT_BLOCKED

The transfer could not be completed because a previous transfer involving the same end-user account resulted in an error
Common causes
  • Plaid has flagged the end-user's account as not valid for use with Transfer.
Troubleshooting steps
1http code 400
2{
3 "error_type": "TRANSFER_ERROR",
4 "error_code": "TRANSFER_ACCOUNT_BLOCKED",
5 "error_message": "transfer was blocked due to a previous ACH return on this account",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

TRANSFER_NOT_CANCELLABLE

The transfer could not be canceled
Common causes
  • An attempt was made to cancel a transfer that has already been sent to the network for execution and cannot be cancelled at this stage.
Troubleshooting steps
1http code 400
2{
3 "error_type": "TRANSFER_ERROR",
4 "error_code": "TRANSFER_NOT_CANCELLABLE",
5 "error_message": "transfer is not cancellable",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

TRANSFER_UNSUPPORTED_ACCOUNT_TYPE

An attempt was made to transfer funds to or from an unsupported account type
Common causes
  • An attempt was made to transfer funds to or from an unsupported account type. Only checking, savings, and cash management accounts can be used with Transfer. In addition, if the transfer is a debit transfer, the account must be a debitable account. Common examples of non-debitable depository accounts include savings accounts at Chime or at Navy Federal Credit Union (NFCU).
Troubleshooting steps
1http code 400
2{
3 "error_type": "TRANSFER_ERROR",
4 "error_code": "TRANSFER_UNSUPPORTED_ACCOUNT_TYPE",
5 "error_message": "transfer account type not supported",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

TRANSFER_FORBIDDEN_ACH_CLASS

An attempt was made to create a transfer with a forbidden ACH class (SEC code)
Common causes
  • Your Plaid account has not been enabled for the ACH class specified in the request.

  • The ACH class specified in the transfer request was incorrect.

Troubleshooting steps
1http code 400
2{
3 "error_type": "TRANSFER_ERROR",
4 "error_code": "TRANSFER_FORBIDDEN_ACH_CLASS",
5 "error_message": "specified ach_class is forbidden",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

TRANSFER_UI_UNAUTHORIZED

The client is not enabled for the Transfer UI product
Common causes
  • Your account is not enabled for use with Transfer UI.
Troubleshooting steps
1http code 400
2{
3 "error_type": "TRANSFER_ERROR",
4 "error_code": "TRANSFER_UI_UNAUTHORIZED",
5 "error_message": "client is not authorized for transfer UI",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

TRANSFER_ORIGINATOR_NOT_FOUND

An association between the sender and the originator client doesn't exist
Common causes
  • There is a typo in the originator_client_id
  • You are a Platform Payments customer (not a partner) and did not call /transfer/originator/create for this end-customer
  • You are a Plaid Partner and have not submitted diligence information via /transfer/questionnaire/create for this end-customer
Troubleshooting steps
1http code 400
2{
3 "error_type": "TRANSFER_ERROR",
4 "error_code": "TRANSFER_ORIGINATOR_NOT_FOUND",
5 "error_message": "the association between the sender and the originator client doesn't exist",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

INCOMPLETE_CUSTOMER_ONBOARDING

The end customer has not completed onboarding. Their diligence status must be approved before moving funds
Common causes
  • You tried to move funds for an originator that hasn't been approved by Plaid yet
Troubleshooting steps
1http code 400
2{
3 "error_type": "TRANSFER_ERROR",
4 "error_code": "INCOMPLETE_CUSTOMER_ONBOARDING",
5 "error_message": "end customer has not completed onboarding. their diligence status must be `approved` before moving funds",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

UNAUTHORIZED_ACCESS

You are not authorized to access this endpoint for your use case
Common causes
  • You are not a Platform Payments customer and tried to call a Platform Payments endpoint
  • You are a Plaid Partner and tried to create an end-customer using /transfer/originator/create (instead of /partner/customer/create)
Troubleshooting steps
1http code 400
2{
3 "error_type": "TRANSFER_ERROR",
4 "error_code": "UNAUTHORIZED_ACCESS",
5 "error_message": "you are not authorized to access this endpoint for your use case.",
6 "display_message": null,
7 "request_id": "HNTDNrA8F1shFEW"
8}
Was this helpful?

ACH return codes

Prefer to learn by watching? A video guide is available for this topic.

All returned ACH transactions will have an ACH return code. By reading the code, you can troubleshoot and debug returned transactions.

Return CodeDescriptionNotes
R01Insufficient fundsAvailable balance is not sufficient to cover the dollar amount of the debit entry
R02Account closedA previously open account is now closed
R03No account or unable to locate accountThe account number structure is valid, but the account number does not correspond to an existing account, or the name on the transaction does not match the name on the account.
R04Invalid account numberThe account number fails the check digit validation or may contain an incorrect number of digits. Commonly caused by invalidated TANs; see Tokenized account numbers for more details.
R05Unauthorized debit to consumer accountA business debit entry was transmitted to a member’s consumer account, and the member had not authorized the entry
R06Returned per ODFI's requestThe ODFI has requested that the RDFI return the entry
R07Authorization revoked by customerMember who previously authorized an entry has revoked authorization with the originator
R08Payment stopped or stop payment on itemMember had previously requested a stop payment of a single or recurring entry
R09Uncollected fundsAvailable balance is sufficient, but the collected balance is not sufficient to cover the entry
R10Customer advises not authorizedMember advises not authorized, notice not provided, improper source document, or amount of entry not accurately obtained from source document
R11Check truncation entry returnTo be used when returning a check truncation entry
R12Branch sold to another DFIRDFI unable to post entry destined for a bank account maintained at a branch sold to another financial institution
R13Invalid ACH routing numberFinancial institution does not receive commercial ACH entries
R14Representative payee deceased or unable to continue in that capacityRepresentative payee is deceased or unable to continue in that capacity, beneficiary is not deceased
R15Beneficiary of account holder deceasedBeneficiary or Account Holder Deceased
R16Account frozenAccess to account is restricted due to a specific action taken by the RDFI or by legal action
R17File record edit criteriaFields rejected by RDFI processing (identified in return addenda)
R18Improper effective entryEntries have been presented prior to the first available processing window for the effective date
R19Amount field errorImproper formatting of the amount field
R20Non-transaction accountPolicies or regulations (such as Regulation D) prohibit or limit activity to the account indicated
R21Invalid company identificationThe company ID information not valid (normally CIE entries)
R22Invalid individual ID numberIndividual id used by receiver is incorrect (CIE entries)
R23Credit entry refused by receiverReceiver returned entry because minimum or exact amount not remitted, bank account is subject to litigation, or payment represents an overpayment, originator is not known to receiver or receiver has not authorized this credit entry to this bank account
R24Duplicate entryRDFI has received a duplicate entry
R25Addenda errorImproper formatting of the addenda record information
R26Mandatory field errorImproper information in one of the mandatory fields
R27Trace number errorOriginal entry trace number is not valid for return entry; or addenda trace numbers do not correspond with entry detail record
R28Routing number or check digitCheck digit for transit routing number is incorrect
R29Corporate customer advises not authorizedRDFI has been notified by business account holder that a specific transaction is unauthorized. Business accounts often automatically decline debits for security purposes. Your customer needs to inform their bank to allow debits that use your tax identifier.
R30RDFI not participant in check truncation programFinancial institution not participating in automated check safekeeping application
R31Permissible return entryRDFI has been notified by business account holder that a specific transaction is unauthorized
R32RDFI non settlementRDFI is not able to settle the entry
R33Return of XCK entryRDFI determines at its sole discretion to return an XCK entry; an XCK return entry may be initiated by midnight of the sixtieth day following the settlement date if the XCK entry
R34Limited participation DFIRDFI participation has been limited by a federal or state supervisor
R35Return of improper debit entryACH debit not permitted for use with the CIE standard entry class code (except for reversals)
R36Return of improper credit entry
R37Source Document Presented for PaymentCheck used for an ARC, BOC or POP entry has also been presented for payment
R38Stop payment on source documentStop payment has been placed on a check used for an ARC entry
R40Return of ENR entry by federal government agency (ENR only)
R41Invalid transaction code (ENR only)
R42Routing number or check digit error (ENR only)
R43Invalid DFI account number (ENR only)
R44Invalid individual ID number (ENR only)
R45Invalid individual name/company name (ENR only)
R46Invalid representative payee indicator (ENR only)
R47Duplicate enrollment
R50State law affecting RCK acceptance
R51Item is ineligible, notice not provided, signature not genuine
R52Stop payment on item
R61Misrouted returnReturn entry was sent by RDFI to an incorrect ODFI routing/transit number
R62Incorrect trace number
R63Incorrect dollar amount
R64Incorrect individual identification
R65Incorrect transaction code
R66Incorrect company identification
R67Duplicate returnODFI has received more than one return entry for the same original entry
R68Untimely returnReturn entry did not meet the return deadline
R69Multiple errors
R70Permissible return entry not accepted
R71Misrouted dishonored return
R72Untimely dishonored return
R73Timely original return
R74Corrected return
R80Cross-border payment coding error
R81Nonparticipant in cross-border program
R82Invalid foreign receiving DFI identification

RTP/RfP error codes

failed RTP/RfP transactions will have a failure description. By reading the description, you can troubleshoot and debug failed transactions.

Failure CodeDescriptionNotes
1100Other Reasons - Not covered by specific codes
9909Central Switch (RTP) system malfunction
9910Instructed Agent signed-off
9912Recipient connection unavailable
9934Instructing Agent signed-off
9946Instructing Agent suspended
9947Instructed Agent suspended
9948Central Switch (RTP) service suspended
AC02Debtor account is invalid
AC03Creditor account is invalid
AC04Account closed
AC06Account specified is blocked, prohibiting transactions
AC07Creditor account closed
AC10Debtor account currency is invalid or missing
AC11Creditor account currency is invalid or missing
AC13Debtor account type missing or invalid
AC14Creditor account type missing or invalid
AG01Transaction forbidden on this type of account
AG03Transaction type not supported or authorized on this account
AGNTIncorrect Agent
AM02Transaction amount exceeds allowed maximum
AM04Insufficient funds to cover message amount
AM09Amount received is incorrect
AM11Transaction currency is invalid or missing
AM12Amount is invalid or missing
AM13Transaction amount exceeds clearing system limits
AM14Transaction amount exceeds limits agreed between bank and client
BE04Missing or incorrect creditor address required for payment
BE06End customer not known or no longer exists
BE07Missing or incorrect debtor address required for payment
BE10Debtor country code is missing or invalid
BE11Creditor country code is missing or invalid
BE13Debtor's residence country code missing or invalid
BE14Creditor's residence country code missing or invalid
BE16Debtor identification code missing or invalid
BE17Creditor identification code missing or invalid
BLKDPayment has been blocked
CH11Creditor Identifier Incorrect - Customer indicates creditor is unknown
CUSTRequested By Customer - Customer declines payment
DS04Order Rejected - The bank rejected the order due to content issues
DS0HSigner not authorized for this account
DS24Waiting time expired due to incomplete orderReceiving bank timed out
DT04Future date not supported
DUPLDuplicate payment detected
FF02Syntax error in narrative information
FF03Invalid Payment Type Information
FF08End to End Id missing or invalid
INSFInsufficient funds for outbound message
MD07End customer is deceased
NARRNarrative reason provided in additional information
NOATCustomer account does not support this message type
RC01Bank identifier code format is incorrect
RC02Bank identifier is invalid or missing
RC03Debtor FI identifier is invalid or missing
RC04Creditor FI identifier is invalid or missing
SL12Debtor does not wish to receive RFPs from this Creditor
TK01Invalid Token
TK02Sender Token Not Found
TK03Receiver Token Not Found
TK04Token Expired
TK05Token Counterparty Mismatch
TK06Token Value Limit Rule Violation
TK07Single Use Token Already Used
TK08Token Suspended
TM01Invalid Cut Off Time
Was this helpful?
Developer community
GitHub
GitHub
Stack Overflow
Stack Overflow
YouTube
YouTube
Discord
Discord