Card issuer response codes (ISO 8583) · Decline codes
What does card decline code 94 mean?
Checked
Code 94 is an ISO 8583 issuer response code for a duplicate: Visa says "request is identified as a duplicate", Mastercard "duplicate transmission detected". The issuer saw the same authorization twice and declined the repeat. The first attempt may have been approved, so check before charging again. Visa does not name 94 in Categories 1 to 3, so it is Category 4, with up to 20 reattempts in 30 days.
- Type
- Not a funds decline (duplicate)
- Who declined
- The card's issuing bank
- Visa category
- Category 4 (generic response): up to 20 reattempts in 30 days
- Retry
- Check the first attempt before retrying
- Shopper action
- Check for an existing charge before paying again
- Merchant action
- Look for an approved twin payment; use idempotency
- PlatformDTC renewal (Smart retry)
- No rule for this raw code; the processor's own code decides
What PlatformDTC does
PlatformDTC has no rule for a raw 94, so the processor's code decides. With Smart retry on, Stripe's duplicate_transaction gets one retry 48 to 72 hours later, when it is no longer a recent duplicate (often a second subscription on the same card billed in the same minute), then the customer is asked for a new card. At checkout it is never offered to the backup processor, so one order cannot be charged twice through two processors.
Why it happens
The same request was sent twice, for example after a double click, a timeout and resend, or an automatic retry that overlapped the first attempt.
What the store can do
Look for an approved payment with the same amount and card just before. Send an idempotency key with every payment request so a resend is recognised as the same payment.
For developers
On Stripe the raw issuer code arrives in charge.outcome.network_decline_code (here "94"), next to Stripe's own decline_code. Read it together with the card brand: the same two characters can mean different things on Visa and Mastercard. Stripe's duplicate_transaction decline code tells you to check whether a recent payment already exists.
Frequently asked questions
- Was the customer charged when they got code 94?
- Possibly by the first attempt. Check for an approved payment before asking them to pay again.
- How do I stop code 94?
- Use idempotency keys and disable the pay button after the first click.
Sources
Related
- 19 — Re-enter transaction: the issuer asks for the payment to be sent again.
- 96 — System malfunction: an error in the issuer or network system stopped the payment.
- 13 — Invalid amount: the issuer rejected the amount or the currency conversion.
- 1A — Additional customer authentication required: the bank wants 3-D Secure / SCA.
- 5C — Transaction not supported or blocked by issuer.
- 6P — Verification data failed: cardholder ID details didn't match the bank's records.
- 9G — Blocked by cardholder: the cardholder set a block. Contact the cardholder.
- N7 — Decline for CVV2 failure: the security code didn't match.