NewNo plan feeNo plan fee. Just 2.9% + $0.30 per card sale, and signing up is free.Try now →

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

Payments library