Skip to content
PandaPayLens

Open source · Apache-2.0 · 40 providers

Understand what went wrong with your payments.

Open-source payment error decoder and transaction flow visualizer. Analyze supported PSP responses, webhooks and payment events directly in your browser.

No signup. No API keys. No payment processing. Local-first analysis.

Decoded error

Stripe · card_declined

decline_code
insufficient_funds
Category
Insufficient funds
Retry
Customer action required

Ask the customer to use an alternative payment method or try again later.

Paste it. Read it.

Paste an API error, a webhook body or an event log. PandaPayLens detects the provider and format, decodes errors, groups related events into transactions and runs deterministic checks. It shows what the records say and states clearly what they cannot prove, such as settlement or whether your application processed a webhook twice.

  1. Paste JSON or form data, or drop files.
  2. Analyze. The provider and format are detected automatically.
  3. Read the decoded error, the timeline and the findings.
  4. Export a JSON or Markdown report with identifiers masked.
{
  "error": {
    "type": "card_error",
    "code": "card_declined",
    "decline_code": "insufficient_funds"
  }
}

What it does

  • Payment error decoder

    Error, decline and refusal codes explained with the next step, retry guidance, a confidence level and a link to the provider's documentation.

  • Transaction timeline

    Webhooks and API objects grouped into transactions by explicit identifiers. Missing events are never invented.

  • Deterministic findings

    Duplicate deliveries, out-of-order arrival, conflicting copies, state contradictions and possible duplicate charges, each with evidence and limitations.

  • Local-first privacy

    Everything runs in your browser. Payloads are not uploaded, stored, logged or sent to analytics. Sensitive fields are hidden.

  • Many input formats

    JSON, JSON Lines, URL-encoded notifications and raw HTTP requests or responses copied from your logs.

  • CLI and library

    The same engine runs offline in Node.js: check webhook logs in CI or use the TypeScript packages in your own tools.

A provider is listed here only when its adapter is implemented and tested. Limited means it works with documented gaps.

ProviderOverallErrorsResponsesWebhooksTimeline
Stripesupportedsupportedsupportedsupportedsupported
Adyensupportedsupportedsupportedsupportedsupported
payabl.limitedsupportedsupportedlimitedlimited
Checkout.comlimitedsupportedsupportedlimitedlimited
Braintreelimitedsupportedsupportedlimitedlimited
PayPallimitedsupportedsupportedlimitedlimited
Mollielimitedlimitedsupportedlimitedlimited
Squarelimitedsupportedsupportedsupportedlimited
Flutterwavelimitedlimitedsupportedlimitedlimited
Paystacklimitedlimitedsupportedlimitedlimited
Razorpaylimitedsupportedsupportedsupportedlimited
PayU Indialimitedsupportedlimitedlimitedlimited
BlueSnaplimitedsupportedlimitedlimitedlimited
EBANXlimitedsupportedsupportedlimitedlimited
dLocallimitedlimitedsupportedlimitedlimited
Rapydlimitedsupportedlimitedlimitedlimited
Airwallexlimitedsupportedlimitedlimitedlimited
Paysafelimitedsupportedlimitedlimitedlimited
Nuveilimitedsupportedlimitedlimitedlimited
Authorize.netlimitedsupportedlimitedlimitedlimited
Cybersourcelimitedsupportedsupportedlimitedlimited
Worldpaylimitedsupportedsupportedlimitedlimited
Trustlylimitedlimitedlimitedlimitedlimited
DECTAlimitedsupportedlimitedlimitedlimited
Inpaylimitedlimitedlimitedlimitedlimited
Finraxlimitedlimitedlimitedlimitedlimited
AstroPaylimitedlimitedsupportedlimitedlimited
eZeeWalletlimitedlimitedlimitedlimitedexperimental
Skrilllimitedsupportedlimitedlimitedlimited
MiFinitylimitedlimitedlimitedlimitedlimited
NMIlimitedsupportedsupportedlimitedlimited
Paymentwalllimitedlimitedlimitedsupportedlimited
Ecommpaylimitedsupportedsupportedlimitedlimited
emerchantpaylimitedsupportedlimitedlimitedlimited
CCBilllimitedlimitedlimitedlimitedlimited
Segpaylimitedlimitedunsupportedlimitedlimited
Trust Paymentslimitedsupportedsupportedlimitedlimited
PXP Financiallimitedsupportedsupportedlimitedlimited
Verotellimitedlimitedlimitedlimitedlimited
NETbillinglimitedlimitedsupportedexperimentallimited

Your payment data stays on your machine

Analysis runs in a Web Worker in your browser. The page's Content Security Policy only allows requests to this site, nothing you paste is stored, and reloading clears it. Card data, secrets and contact details are hidden in the inspector and never exported.

How privacy is enforced and tested
  • No account and no provider API keys.
  • No analytics, session replay or third-party scripts.
  • Pasted webhooks are never treated as verified.
  • Reports describe the supplied records only; they do not confirm settlement.

Run it yourself

Self-host the analyzer without a database, or use the same engine from the command line. Exit codes let you fail a CI check on findings above a severity you choose.

git clone https://github.com/ratomirjovanovic/PandaPayLens.git
cd PandaPayLens
pnpm install
pnpm dev:pages

# CLI
pnpm build:packages
node packages/cli/dist/bin.js analyze events.json

Help add the next provider

Every adapter is built from official documentation, with synthetic fixtures and tests. The contribution guide walks through research, implementation and the definition of done. Bug reports, fixtures and documentation fixes are just as welcome.

What it is not

PandaPayLens does not process payments, connect to provider accounts, receive live webhooks, verify webhook signatures or confirm that money settled. It is not affiliated with any payment provider.