Stripe · Decline codes
What does the Stripe invalid_pin decline code mean?
Checked
Stripe's invalid_pin decline code means the PIN entered is incorrect, and the customer needs to try again using the correct PIN. A PIN is entered on a card reader, so this code comes from in-person payments that ask for one. Re-entering the right PIN fixes it. After too many wrong tries, the bank can block PIN attempts, which Stripe reports as pin_try_exceeded.
- Type
- Data error
- Who declined
- The card's bank
- Retry
- Yes, with the correct PIN
- Shopper action
- Re-enter the PIN, or pay another way
- Merchant action
- Allow another attempt
What PlatformDTC does
invalid_pin is never moved to a backup processor at checkout, and the shopper is asked for another card. Because online renewals cannot take a PIN, a renewal declined this way is never retried, on the fixed schedule or with Smart retry: the subscription is held past due and the customer gets a one-click link to add a different card.
Why it happens
The PIN entered does not match the card.
What the shopper can do
Enter the PIN again. If you are not sure of it, use another card or payment method so the card does not get locked.
What the store can do
Let the customer try again. After repeated failures, suggest another payment method.
Frequently asked questions
- Is invalid_pin the same as incorrect_pin?
- Stripe describes both as "the PIN entered is incorrect." For incorrect_pin it adds that the code only applies to card-reader payments.
- What if the customer keeps getting the PIN wrong?
- The bank may block further tries, shown as pin_try_exceeded, and the customer will need another card or method.
Sources
- Stripe decline codes — Stripe
Related
- incorrect_pin — The PIN entered on a card reader is wrong.
- pin_try_exceeded — Too many wrong PIN attempts; the customer must use another card or method.
- online_or_offline_pin_required — In-person only: the card needs a PIN, by Online PIN or chip and PIN.
- issuer_not_available — The card's bank could not be reached, so the payment was never authorized.
- lost_card — The card has been reported lost. It can't be used; the shopper needs another card.
- merchant_blacklist — The payment matched an entry on the store's own Stripe block list.
- new_account_information_available — The card or its account is invalid; the bank may hold newer details for it.
- no_action_taken — The card was declined for a reason the bank did not share.