Repository navigation
Error Decoding
When a record contains a provider error, decline or response code, the adapter looks it up in a catalog built from the provider's official documentation. Each catalog entry has a link to the page it came from.
| Field | Meaning |
|---|---|
| code | the provider's own code, unchanged |
| explanation | a short paraphrase of the documented meaning |
| category | a common category (table below) |
| retry guidance | what to do about retries (table below) |
| next step | a concrete action for the developer or the customer |
| confidence | how sure the decoding is (table below) |
| documentation | link to the provider's page |
| outcome known | whether the original operation's result is known |
| Category | Typical cause |
|---|---|
card_declined |
issuer or scheme declined |
insufficient_funds |
not enough funds or credit |
authentication_required |
3D Secure or another customer step is needed |
authentication_failed |
the customer failed or abandoned authentication |
invalid_request |
missing or malformed parameters |
invalid_amount |
amount or currency not allowed |
payment_method_unavailable |
method not enabled, not supported or unavailable |
fraud_or_risk |
blocked by risk rules or suspected fraud |
rate_limiting |
too many requests |
provider_unavailable |
provider or acquirer error or outage |
network_or_timeout |
timeout or connection problem |
duplicate_request |
the same request or reference was already used |
configuration |
account, credentials or settings problem |
unknown |
not documented, or several documented meanings disagree |
| Value | Meaning |
|---|---|
do_not_retry |
retrying the same request will fail again or is forbidden by the provider or issuer |
customer_action_required |
the customer has to do something first (authenticate, use another card, add funds) |
retry_conditionally |
retry only after checking the original outcome or fixing a condition |
safe_to_retry_technical_request |
a technical retry of the same request is safe |
manual_review |
a person should look at it |
unknown |
not enough information |
A retry is never shown as safe when the outcome of the original operation is unknown (for example after a timeout). In that case the guidance is retry_conditionally with an instruction to check the payment status first, even if the provider's own text simply says "try again". Recurring advice codes from card schemes, when present, take precedence over a generic decline.
| Level | Meaning |
|---|---|
confirmed |
stated directly by the data (used mostly for findings) |
strong |
exact documented code meaning |
possible |
fallback, range match, or a code with more than one documented meaning |
insufficient |
unknown code; the explanation says so instead of guessing |
When a code has several documented meanings (for example the same number in two tables), every meaning is shown and confidence is lowered. Unknown codes are reported as unknown.
Catalogs are data files in each adapter (packages/adapters/<id>/src/catalog.ts). The research behind them, with every source URL, is in docs/providers/research/ and docs/providers/high-risk/research/.
PandaPayLens is open source under the Apache-2.0 license. Demo · Repository · Changelog
Using PandaPayLens
- Getting Started
- Input Formats
- Error Decoding
- Timeline and Correlation
- Diagnostic Rules
- Exports and Reports
- Command Line Interface
Providers
Under the hood
Community