Skip to main content
Every processor returns decline codes in different formats. PayNext normalizes these into a unified system so you get consistent analytics, predictable retry logic, and clear decline reasons regardless of which processor handled the payment. When a payment doesn’t succeed, PayNext returns a status and status_reason:

Payload Example

Response Fields

Available Codes

Standard declines are listed below. Authentication-specific codes are covered in Incomplete Payments. The same decline_code can arrive with more than one status or advice_code, depending on the processor and on what it returned, so always read the advice_code of the payment itself.
Subscription Impact: When a recurring (MIT) payment is blocked via workflow, the associated subscription is immediately cancelled—no retries are attempted. PayNext sends a subscription_v2.cancelled webhook and stops scheduling future payments. Review your workflow conditions carefully to avoid unintended cancellations.
payment_method_disabled means PayNext never contacted the processor. The saved payment method can’t be charged—either the customer revoked its mandate, or neither the card nor its network token is usable. The message field tells the two apart. There is no processor decline behind it, so retrying the same payment method always produces the same result. Collect a new payment method instead. See Payment Methods.
retry_via_another_processor means the decline came from the processor or its acquirer, not from the card, so the same card can succeed through a different processor. It can come with different decline codes, such as processor_blocked. To act on it automatically, route the payment to a second processor in a workflow. See Automatic Failover.
For do_not_try_again declines like expired_card or invalid_card_number, the customer must provide a new payment method. Use Recover Subscriptions for subscription renewals or the SDK checkout for one-time payments.

Incomplete Payments

Payments that require customer authentication (Cash App, Venmo, cards with 3DS) can end as incomplete if the customer doesn’t finish the flow.

Response Example

For card payments with 3DS, additional context is available in the three_d_secure object. See 3D Secure for details.
If 3DS credentials are misconfigured, you receive a failed payment. See Configure External 3DS Per Processor to update the configuration.

Card network response codes

When a Visa or Mastercard issuer declines a card payment, the processor passes along the issuer’s two-character response code. PayNext reads that code and returns it to you as a decline_code and an advice_code.

How the networks classify declines

Both networks tell merchants which declines they may retry, and how often.
  • Visa puts every decline response code into one of four categories. Category 1 means the issuer will never approve the card, so you must not retry it. Categories 2 (cannot approve right now), 3 (payment details need correcting) and 4 (all other codes) allow up to 20 retries in 30 days. Source: Visa Core Rules and Visa Product and Service Rules, April 2026 edition, section 7.3.6.3.
  • Mastercard names six codes (04, 14, 15, 41, 43, 54) that end a card-not-present payment for good: you must not retry it with the same card number and expiry date. For merchant-initiated payments, the issuer can also send a Merchant Advice Code: 01 means you should get updated card details first, 02 means you should wait at least 24 hours, and 03 or 21 mean you should stop. Source: Mastercard Transaction Processing Rules, June 2026 edition.
The tables below group codes by the Visa category they belong to, followed by the Mastercard codes that have no Visa counterpart. Some codes mean different things on each network. For 65 and 78, PayNext checks the card brand and maps each network’s meaning separately.
The network rules set the most you can retry. PayNext’s advice_code can be stricter. For example, Visa puts 03, 59, 62 and 93 in Category 2, but PayNext returns do_not_try_again for them.
Do not retry these payments with the same card. Ask the customer for a different payment method.
Visa allows a retry later, for example after the customer adds funds or the issuer’s systems recover.
A retry with the same details fails again. Collect corrected or new card details first. Mastercard also lists 54 among the codes you must not retry with the same card number and expiry date.
Visa treats any code outside the first three categories as generic. Most codes here are sent only by Mastercard.