incorrect_pinmediumAffects MRR

Stripe incorrect_pin Error — Causes, Fix & MRR Impact

The Stripe incorrect_pin error occurs when the PIN entered at a card reader is incorrect, causing the issuer to decline; this applies to card-present (e.g. reader) payments for SaaS or in-person scenarios processing subscription or one-time payments.

What this means

The PIN the customer entered at the card reader is wrong. They should try again with the correct PIN (typically 3 tries before lockout).

Why it happens

Customer typo

The customer mistyped their PIN when entering it on the reader.

Wrong PIN remembered

The customer entered a PIN they thought was correct but was not (e.g. old PIN after change).

Multiple cards

The customer used a PIN for a different card than the one inserted.

Reader or keypad issue

Rarely, a keypad or reader could misread or send wrong digits; retry usually resolves.

MRR Impact

For terminal/reader flows, allowing PIN retry with clear messaging avoids failed transactions and supports MRR where in-person or hybrid is used.

PIN errors on reader flows are resolved by retry with correct PIN; limit attempts to avoid lockout.

Avg. recovery rate: High when customer can retry with correct PIN; limit retries to avoid lockout.

Urgency: within 24h

How to fix it

  1. 1

    Prompt for PIN retry

    When decline_code is incorrect_pin, show a clear message asking the customer to re-enter their PIN. Do not expose the raw code in the customer UI.

  2. 2

    Limit PIN attempts

    Allow a limited number of PIN attempts (e.g. 3) per transaction or session. After that, ask the customer to use another card or payment method to avoid issuer lockout.

  3. 3

    Use Stripe Terminal best practices

    If using Stripe Terminal, follow the recommended flow for collecting PIN and handling errors. Use the SDK's error handling to show appropriate messages.

  4. 4

    Do not log PIN values

    Never log or store the PIN. Log only that incorrect_pin occurred and attempt count for analytics.

  5. 5

    Differentiate from CVC for online

    For online flows you will not get incorrect_pin; you may get invalid_cvc or incorrect_cvc. Ensure your error handling maps the right message (PIN for terminal, CVC for online).

Detect incorrect_pin automatically

Track incorrect_pin rate for terminal flows; high rate may indicate UX or reader issues.

Monitor your Stripe health free →

FAQ

What is Stripe incorrect_pin?
incorrect_pin means the PIN entered was wrong. This decline code applies to payments made with a card reader (in-person). The customer should try again with the correct PIN. For online SaaS, you typically will not see this; you might see invalid_cvc or similar for card-not-present flows.
When do I see incorrect_pin?
When using Stripe Terminal or another card reader that supports PIN entry (e.g. chip and PIN). For card-not-present or online subscriptions, PIN is not used; focus on CVC and 3D Secure instead.
Should I retry after incorrect_pin?
Yes. Allow the customer to re-enter the PIN and try again. Limit attempts (e.g. 3) per session to avoid lockouts; after that, they may need to use another card or method.
Does incorrect_pin affect SaaS MRR?
Mainly for in-person or terminal flows. For pure online SaaS, this is rare; ensure your terminal or hybrid flows allow PIN retry and clear messaging.

Related errors