1114 is the status — the payment was returned. 02 is the reason — the receiving bank reported no account. Use the Status Codes reference for the first value and this page for the second.
Ingo reason codes are normalized. Where a return originates with the ACH network, a card network, or an issuer, Ingo maps that provider’s response into the single Ingo reason code set below before delivering it to you. Integrate against the Ingo code — the accompanying
reason_description names the underlying network reason for operational triage, but the code is the stable contract.Reading the value
Codes are two-character, zero-padded strings
Codes are two-character, zero-padded strings
In webhook payloads, Compare against the padded literal, and store the field as a string. Parsing to an integer discards the padding that makes the value canonical and will break any round-trip back onto the wire.
reason_code is always a two-character string, zero-padded below 10. A no-account return arrives as "02" — never as 2 or "2".On the request side,
POST /gateway/checkcancel and POST /gateway/checkstop accept reason_code as an integer (73, not "73"). Because every send-side code is already two digits, no padding question arises — but the type differs from the webhook representation, so do not share a single serializer across both directions.reason_description is display text, not a matching key
reason_description is display text, not a matching key
Most events that carry
reason_code also carry reason_description — up to 250 characters, emitted verbatim from the platform’s reason code table.Treat it as display and log text only. It is not normalized prose: some entries carry legacy spellings and internal formatting (for example Chargeback-RC30_ServicesNotProvided, or R20-non transaction account). Descriptions on this page have been cleaned for readability, so they will not always match the emitted string character-for-character.Branch your logic on reason_code. Never string-match reason_description.Where reason codes appear
Where reason codes appear
The check and return events above are delivered on the IngoPay, Embedded Account Capture, and Notify webhook channels. See Webhooks for delivery, retry, and payload envelope details.Codes
73–78 are the only reason codes you send. Every other code on this page is one you receive.Unassigned and reserved values
Unassigned and reserved values
10 is not assigned. Codes 11–15 are reserved for a legacy partner integration and are not emitted on any client-facing contract.Treat any unrecognized reason_code as an unclassified failure rather than rejecting the event — the set can grow, and new codes are added without a contract version change.Reason code reference
ACH Return Reasons
ACH Return Reasons
Returned when an ACH credit or debit cannot be posted by the receiving depository financial institution. The NACHA column shows the network return code that maps to each Ingo reason code.
Reinitiation eligibility. Not every ACH return reason permits a reinitiation attempt. Status codes
1315 and 1317 on the Status Codes page are returned when a reinitiation is rejected because of the return reason on the original — or on a prior reinitiation — transaction.Card Decline & Account Reasons
Card Decline & Account Reasons
Returned when a card disbursement is declined or reversed for a reason other than a formal chargeback.
00 and 07 are both Declined and are not distinguishable from the payload alone. Treat them identically.Card Chargeback Reasons
Card Chargeback Reasons
Returned when a card disbursement is reversed through the network chargeback process. The RC column shows the network chargeback reason code that maps to each Ingo reason code.
Chargebacks are terminal for the original transaction. Reconcile the reversal against your ledger; do not resubmit the same disbursement.
Biller Reasons
Biller Reasons
Check Cancel (73–76) — sent on request
Check Cancel (73–76) — sent on request
Submitted in the
reason_code field of POST /gateway/checkcancel as an integer. The code must match the check’s current transaction status, or the request is rejected with status 722.These codes are echoed back as strings on the
payment.status.check.canceled webhook event.Check Stop (77–78) — sent on request
Check Stop (77–78) — sent on request
Submitted in the
reason_code field of POST /gateway/checkstop as an integer. The check must be in an issued status.A successful stop response confirms only that the request was submitted. Confirmation that the check was actually stopped arrives on the
payment.status.check.stopped webhook event, which echoes the reason code as a string.Positive Pay Check Returns (79–87)
Positive Pay Check Returns (79–87)
Returned on the
status.payment.check.returned webhook event when a presented check fails a positive pay exception check.Related
Status Codes
Response and event status codes across all Ingo Payments products.
Webhooks
Delivery, retry behavior, and payload envelope structure.
Retry Logic
Which outcomes warrant a retry, and how to retry safely.
Reporting
Reason codes as they appear in transaction and status files.