Skip to content
PandaPayLens

Examples

Every example uses synthetic identifiers and values. None contain real cardholder, merchant or customer data. Open one in the analyzer to see the decoder, timeline and findings.

General

Declines, 3D Secure, duplicate and out-of-order webhooks, captures and refunds.

  • stripe

    Successful Stripe payment

    PaymentIntent created, charge succeeded, PaymentIntent succeeded. Includes embedded customer and card fields that PandaPayLens hides.

    Open in analyzer →
  • stripe

    Stripe: insufficient funds

    A card_error API response with decline_code insufficient_funds.

    Open in analyzer →
  • stripe

    Stripe: authentication required

    A PaymentIntent that needs 3D Secure, with the off-session decline that triggered it.

    Open in analyzer →
  • stripe

    Stripe: duplicate webhook delivery

    The same event delivered twice, with receipt timestamps.

    Open in analyzer →
  • stripe

    Stripe: events arriving out of order

    payment_intent.succeeded arrives before the events that preceded it.

    Open in analyzer →
  • adyen

    Adyen: successful authorisation

    A Standard webhook AUTHORISATION with success=true. The reason field with card summary is dropped.

    Open in analyzer →
  • adyen

    Adyen: declined authorisation

    A Refused payment response and the matching AUTHORISATION webhook (Not enough balance).

    Open in analyzer →
  • adyen

    Adyen: authorisation, capture and refund

    Modifications linked to the payment through originalReference.

    Open in analyzer →
  • mixed / unknown

    Unknown provider error

    An error from an unsupported source. PandaPayLens explains that it cannot analyze it.

    Open in analyzer →
  • mixed / unknown

    Mixed, unrelated transactions

    Stripe and Adyen events for separate payments, kept apart in separate groups.

    Open in analyzer →
  • adyen

    Adyen: duplicate and conflicting webhooks

    A repeated AUTHORISATION and a CAPTURE delivered with both success=false and success=true.

    Open in analyzer →
  • adyen

    Adyen: possible duplicate charge

    Two authorised payments for one merchantReference around an internal error.

    Open in analyzer →
  • stripe

    Stripe: api_error with unknown outcome

    An error that does not say whether the request took effect.

    Open in analyzer →
  • stripe

    Stripe: state change after success

    A PaymentIntent reported as processing after it had succeeded.

    Open in analyzer →
  • payabl

    payabl.: authorized order notification

    A form-encoded order notification for a successful authorization.

    Open in analyzer →
  • payabl

    payabl.: declined, insufficient funds

    A form-encoded Gateway API response for an issuer decline.

    Open in analyzer →
  • payabl

    payabl.: timeout with unknown outcome

    A Gateway API response where the result of the request is not known.

    Open in analyzer →
  • checkout

    Checkout.com: declined payment

    A 201 response with approved=false, decoded from response_code.

    Open in analyzer →
  • checkout

    Checkout.com: capture and refund webhooks

    Gateway webhooks linked through the pay_ payment id and act_ action ids.

    Open in analyzer →
  • paypal

    PayPal: order completed, capture declined

    An order with status COMPLETED whose capture was declined. The order status is not the payment outcome.

    Open in analyzer →
  • paypal

    PayPal: INSTRUMENT_DECLINED

    An Orders v2 error with a details[].issue value.

    Open in analyzer →
  • paypal

    PayPal: order and capture webhooks

    Webhook events for one order, correlated through related_ids.

    Open in analyzer →
  • mollie

    Mollie: failed payment

    A payment snapshot with status failed and a failureReason.

    Open in analyzer →
  • mollie

    Mollie: authorized, captured and refunded

    Payment, capture and refund objects linked by their ids.

    Open in analyzer →
  • mollie

    Mollie: classic webhook (id only)

    A classic webhook carries only the payment id. PandaPayLens explains what else is needed.

    Open in analyzer →
  • square

    Square: declined card payment

    An error response that includes the FAILED payment.

    Open in analyzer →
  • square

    Square: payment and refund webhooks

    payment.* and refund.* events grouped by payment id.

    Open in analyzer →
  • braintree

    Braintree: processor declined

    A GraphQL response where the decline is a transaction in data, not an error.

    Open in analyzer →
  • braintree

    Braintree: sale, refund and dispute

    Transaction snapshots linked by transaction and refund ids, built from status history.

    Open in analyzer →
  • braintree

    Braintree: signed webhook (not decodable)

    A raw bt_signature/bt_payload webhook. PandaPayLens explains what to paste instead.

    Open in analyzer →
  • worldpay

    Worldpay: card payment webhooks

    Access Worldpay events from authorization to settlement in one timeline.

    Open in analyzer →
  • worldpay

    Worldpay: refusal with a raw scheme code

    A Card Payments v7 refusal where the raw scheme code and the Worldpay code are shown side by side.

    Open in analyzer →
  • worldpay

    Worldpay: refused WPG XML reply

    A WPG paymentService reply with a REFUSED lastEvent and an ISO8583ReturnCode, with card holder and address fields that PandaPayLens hides.

    Open in analyzer →
  • cybersource

    Cybersource: authorization, capture and refund

    Three operations linked into one timeline through the Transaction Details root id.

    Open in analyzer →
  • cybersource

    Cybersource: declined, insufficient funds

    An HTTP 201 decline decoded with Cybersource's retry advice.

    Open in analyzer →
  • authorize_net

    Authorize.net: capture and refund

    Authorization and capture webhooks, the refund response and the refund webhook in one transaction.

    Open in analyzer →
  • authorize_net

    Authorize.net: card declined

    The transaction reason code decoded separately from the response code, with AVS and card code results.

    Open in analyzer →
  • nuvei

    Nuvei: APM payment pending, then approved

    Two payment DMNs for one transaction, shown as one timeline.

    Open in analyzer →
  • nuvei

    Nuvei: declined, do not honor

    A REST decline where the Mastercard advice code tightens the retry advice.

    Open in analyzer →
  • paysafe

    Paysafe: card declined with merchant advice

    An HTTP 402 decline with a merchant advice code, an ISO response code and a raw processor code.

    Open in analyzer →
  • paysafe

    Paysafe: EPS payment webhooks

    A payment handle and its payment linked into one timeline.

    Open in analyzer →
  • airwallex

    Airwallex: card payment webhooks

    From creation through authorization, capture and settlement to a partial refund.

    Open in analyzer →
  • airwallex

    Airwallex: payment declined by the issuer

    A PaymentIntent whose latest attempt failed, decoded with the card brand, AVS and CVC results.

    Open in analyzer →
  • rapyd

    Rapyd: payment failed webhook

    A card decline that requires 3DS, with a merchant advice code.

    Open in analyzer →
  • rapyd

    Rapyd: payout returned

    A payout created, completed and then returned, kept separate from payments.

    Open in analyzer →
  • dlocal

    dLocal: one code, three meanings

    The same status_code read for a payment, a chargeback and a payout.

    Open in analyzer →
  • dlocal

    dLocal: cash voucher expired

    An OXXO voucher that stays pending until it expires.

    Open in analyzer →
  • ebanx

    EBANX: authorization, capture and refund

    A card payment authorized, captured and partially refunded in one timeline.

    Open in analyzer →
  • ebanx

    EBANX: card declined, insufficient funds

    A decline inside a successful envelope, with ISO and Mastercard advice codes.

    Open in analyzer →
  • bluesnap

    BlueSnap: charge, refund and chargeback webhooks

    Form-encoded webhooks linked into one transaction by the reference number.

    Open in analyzer →
  • bluesnap

    BlueSnap: declined, do not honor

    An HTTP 400 decline decoded by error name, although many card errors share one numeric code.

    Open in analyzer →
  • payu_india

    PayU India: card declined webhook

    A declined card payment with the failure stage and the bank's own reason.

    Open in analyzer →
  • payu_india

    PayU India: UPI payment pending

    A UPI payment that is still pending at redirect.

    Open in analyzer →
  • razorpay

    Razorpay: card payment webhooks

    Authorized, captured, order paid and a partial refund in one timeline.

    Open in analyzer →
  • razorpay

    Razorpay: late authorisation

    A UPI payment that fails on timeout and is later authorized and captured.

    Open in analyzer →
  • paystack

    Paystack: card payment with PIN and OTP

    Initialize, Charge API steps, the charge.success webhook and verify in one payment.

    Open in analyzer →
  • paystack

    Paystack: declined, do not honour

    A failed verify response decoded from Paystack's documented bank messages.

    Open in analyzer →
  • flutterwave

    Flutterwave: refund initiated, then completed

    A refund reported as completed that is only initiated until the refund webhook confirms it.

    Open in analyzer →
  • flutterwave

    Flutterwave: preauthorization voided

    A held payment that is voided; the void is not shown as a payment success.

    Open in analyzer →

High-risk payments

Recurring billing and failed rebills, chargebacks, gaming deposits and payouts, query-string postbacks. Grouped by provider focus; nothing here says a merchant or transaction is high-risk.

  • netbilling

    NETbilling: declined, insufficient funds

    A form-encoded Direct Mode response; the decline is decoded from the whole authorization message.

    Open in analyzer →
  • netbilling

    NETbilling: 3DS challenge pending

    status_code=T with OFFLINE RECORD: nothing is authorized yet.

    Open in analyzer →
  • verotel

    Verotel: subscription postbacks

    Initial, rebill and cancel postbacks for one subscription, one per line.

    Open in analyzer →
  • verotel

    Verotel: subscription chargeback

    A FlexPay chargeback postback linked to its sale.

    Open in analyzer →
  • verotel

    Verotel: cancelled subscription status page

    A FlexPay status page in name: value text for a subscription that was cancelled and has expired, read as a snapshot of the sale.

    Open in analyzer →
  • pxp

    PXP: card refused

    A Transactions API response decoded from PXP's normalized CRD code.

    Open in analyzer →
  • pxp

    PXP: SPEI payout rejected

    A bank payout reported as rejected; payouts are kept separate from deposits.

    Open in analyzer →
  • trust_payments

    Trust Payments: AUTH declined

    A Webservices JSON response with errorcode 70000; the acquirer reason is not published, and the explanation says so.

    Open in analyzer →
  • trust_payments

    Trust Payments: recurring payments

    An initial AUTH and RECUR rebills linked by parenttransactionreference.

    Open in analyzer →
  • trust_payments

    Trust Payments: gaming payout

    A payout to a card, kept separate from deposits.

    Open in analyzer →
  • segpay

    Segpay: rebill declined

    A form-encoded postback for a failed recurring charge.

    Open in analyzer →
  • segpay

    Segpay: Stand-In decline

    A Stand-In approval followed by a decline that reuses the same ids; not treated as a duplicate.

    Open in analyzer →
  • segpay

    Segpay: PayPal dispute postback

    A dispute postback linked to the original purchase.

    Open in analyzer →
  • ccbill

    CCBill: rebill declined

    A RenewalFailure webhook: a recurring charge failed and CCBill reports the next retry date.

    Open in analyzer →
  • ccbill

    CCBill: webhook as a raw HTTP request

    The event type is read from the URL query string; the body alone does not carry it.

    Open in analyzer →
  • ccbill

    CCBill: Background Post denial

    A declined sale decoded from CCBill's numbered decline codes.

    Open in analyzer →
  • emerchantpay

    emerchantpay: recurring sale declined

    A form-encoded Genesis notification for a failed rebill; recurring advice codes decide the retry guidance.

    Open in analyzer →
  • emerchantpay

    emerchantpay: chargeback notification

    A chargeback event linked to the original transaction by its unique id.

    Open in analyzer →
  • emerchantpay

    emerchantpay: declined XML response

    A Genesis XML payment_response for a declined authorization, read from XML and decoded like its JSON form.

    Open in analyzer →
  • ecommpay

    Ecommpay: authorization and capture

    Gate callbacks for an auth and a capture of one payment.

    Open in analyzer →
  • ecommpay

    Ecommpay: payout declined

    A declined payout callback, kept separate from deposits.

    Open in analyzer →
  • paymentwall

    Paymentwall: subscription renewal failed

    A type 14 pingback: a recurring charge failed.

    Open in analyzer →
  • paymentwall

    Paymentwall: Brick payment declined

    A Brick error decoded from the Brick code table.

    Open in analyzer →
  • nmi

    NMI: declined, insufficient funds

    A Classic Payment API response decoded from response and response_code.

    Open in analyzer →
  • nmi

    NMI: webhooks for auth, capture and refund

    Transaction webhooks for one payment in one timeline.

    Open in analyzer →
  • mifinity

    MiFinity: payout flow

    A wallet payout from submission to its final status.

    Open in analyzer →
  • mifinity

    MiFinity: deposit refused by risk

    A wallet deposit callback refused by the risk check.

    Open in analyzer →
  • skrill

    Skrill: payment failed

    A status_url post with status -2 and a failed_reason_code.

    Open in analyzer →
  • skrill

    Skrill: chargeback status

    A status -3 post: a chargeback with no link to the original payment.

    Open in analyzer →
  • skrill

    Skrill: pending refund (XML over HTTP)

    A raw HTTP response from refund.pl with an XML body. A pending refund stays pending, not completed.

    Open in analyzer →
  • ezeewallet

    eZeeWallet: transfer declined

    A transfer notification with a declined status; the decline reason is shown as provider text.

    Open in analyzer →
  • ezeewallet

    eZeeWallet: payout flow

    A payout request and its status notifications.

    Open in analyzer →
  • astropay

    AstroPay: withdrawal cancelled

    A payout cancelled with a documented cancel reason.

    Open in analyzer →
  • astropay

    AstroPay: payment creation timeout

    An HTTP 408 timeout: the outcome is unknown, so the payment must be checked before any retry.

    Open in analyzer →
  • finrax

    Finrax: underpaid crypto payment

    A deposited payment where only part of the expected amount arrived; shown as an unknown outcome, not a success.

    Open in analyzer →
  • finrax

    Finrax: blocked deposit and pending refund

    A blocked deposit whose refund still waits for an address.

    Open in analyzer →
  • inpay

    Inpay: payout rejected

    A payout webhook rejected for a wrong account number, with the request id used to detect repeated deliveries.

    Open in analyzer →
  • inpay

    Inpay: pay-by-bank order cancelled

    An open banking payment cancelled by the payer.

    Open in analyzer →
  • decta

    DECTA: hold, capture and refund

    One order moving from a hold to a capture and a refund.

    Open in analyzer →
  • decta

    DECTA: payment failure webhook

    An order.payment_failure webhook with a raw acquirer code decoded as insufficient funds.

    Open in analyzer →
  • trustly

    Trustly: payout failed

    A payout accepted, then reported as failed, then the amount credited back.

    Open in analyzer →
  • trustly

    Trustly: North America payment failed

    A Failed event posted as an HTTP request and decoded as insufficient funds.

    Open in analyzer →