Error code mapping
How error codes will display differently for post migration eCheck
This mapping is for eCheck activity after your migration date, in Transaction views and Transaction details.
Those transactions display and filter on the new codes. The legacy eCheck E… code is on the transaction under Transaction details → Metadata. It is not used in the Error reason filter.
Activity before your migration date keeps E… codes on Legacy Reports. Your integration and reporting API still return E… codes.
E008, E026, E029, and E048 each meant two different things. Use the tables below: a bad value in the request is a request error; a limit, rail, location, or NSF outcome is on the transaction.
E049, E182, and the limit reading of E008 all become transaction_limit_exceeded. There is one limit code now, not three.
Request rejected (transaction was not created)
| eCheck | What it meant | New code |
|---|---|---|
| E003, E033 | Merchant account not set up | merchant_not_configured |
| E004 | Authentication failed | authentication_required |
| E005 | Invalid transaction type | invalid_parameter |
| E006 | Missing or invalid merchant transaction number | parameter_missing or invalid_parameter |
| E007 | Duplicate merchant transaction number | duplicate_transaction |
| E008 | Invalid amount (malformed) | invalid_parameter |
| E009 | Invalid currency | invalid_parameter |
| E010–E023, E039 | Invalid or missing customer / payee fields | parameter_missing or invalid_parameter |
| E024–E028 | Invalid bank account or routing details (format) | parameter_missing or invalid_parameter |
| E029 | Missing or invalid originator IP (format) | parameter_missing or invalid_parameter |
| E031 | Invalid request | invalid_request |
| E002, E032, E034, E035, E037, E038 | Processing or platform error | internal_error (or provider_error if the failure was upstream) |
| E044, E045 | Address or date of birth required for verification | parameter_missing |
| E401 | This transaction type is not allowed | not_authorized |
| E402 | Originator IP required | parameter_missing |
| E403 | Identity verification fields required | parameter_missing |
Transaction declined, rejected, or returned
| eCheck | What it meant | New code |
|---|---|---|
| E008 | Amount over the per-transaction limit | transaction_limit_exceeded |
| E026 | Bank rejected the account as invalid | invalid_account |
| E029 | Originator IP failed the location check | geo_blocked |
| E034 | Decline with no more specific code | rejected_by_bank |
| E040 | Payout exceeds the merchant's available balance | insufficient_merchant_funds |
| E041, E046 | Verification service error | verification_failed |
| E047 | Identity verification failed (e.g. name or date of birth) | info_mismatch |
| E048 | Customer account has insufficient funds (at submit) | insufficient_funds |
| E048 | Debit later returned NSF | return_insufficient_funds |
| E049, E182 | Over the customer or merchant daily limit | transaction_limit_exceeded |
| E201 | Bank account on the negative list | negative_bank_data |
| E202 | Customer identity on the negative list | negative_identity |
| E203 | Suspicious activity | risk_declined |
| E301 | Too many transactions in the period | velocity_exceeded |
Codes that behave differently
| eCheck | Change |
|---|---|
| E000, E001 | Not errors. Success never returned a code. |
| E404 | No longer a hard decline. The transaction waits for the customer to link their bank account. |
| E034 | Still the catch-all. Outcomes the old gateway had no code for (for example account closed, or the customer canceled) also surface as E034 on the existing eCheck API. |
Updated about 1 hour ago

