# We are unable to authenticate your payment method: ChatGPT Fix

> At ChatGPT checkout this message means your bank's 3D Secure check did not finish. Retry once cleanly, ask your bank, or switch to another listed method.

- Source: https://www.aifreeapi.com/en/posts/chatgpt-payment-verification-failed
- Language: en
- Published: 2026-11-11
- Updated: 2026-11-11
- Publisher: AI Free API (https://www.aifreeapi.com)

The full message reads: “We are unable to authenticate your payment method. Please choose a different payment method and try again.” It appears at ChatGPT checkout when you upgrade to Plus, Go or Pro, start a free trial, or add a card.

It means one specific step failed: your bank's identity check for online payments, called 3D Secure. That check is the one-time code (OTP) or the approval request in your banking app. Either the code was wrong or expired, the bank's window was closed or blocked, or the bank never sent a prompt. It is not the bank refusing the charge. In the standard flow of Stripe, the payment processor behind the checkout, the charge is attempted only after this check succeeds.

Despite the wording, the same card can still work once the check completes. Go in this order:

1. **Make one clean attempt.** Allow pop-ups and redirects, turn off ad and pop-up blockers, then complete the bank's OTP or app approval without closing or refreshing the checkout page.
2. **If no prompt appears, or it fails again, contact your bank.** Ask it to enable or approve 3D Secure for online, recurring and international payments on this card.
3. **Or switch to another payment method that OpenAI lists for your country**, such as UPI in India, GoPay in Indonesia, GCash in the Philippines or MoMo in Vietnam.

Stop instead of retrying if your card was issued in a country that is [not on OpenAI's supported list](#when-to-stop-unsupported-countries-and-cards-issued-there). No change of browser or bank setting fixes that case.

The three steps follow OpenAI's own article, [Why was my credit card declined?](https://help.openai.com/en/articles/7232916-why-was-my-credit-card-declined), which covers 3D Secure errors without quoting this exact sentence.

## What the message means: your bank's 3D Secure check did not finish

3D Secure is the card networks' identity check for online payments. The bank that issued your card asks you to prove you are the cardholder through “a password, one-time code sent to their mobile device, or biometric verification,” as [Stripe's 3D Secure documentation](https://docs.stripe.com/payments/3d-secure) puts it. On the bank's screen the check usually carries a network name: Visa Secure, Mastercard Identity Check or American Express SafeKey. European rules call the same requirement Strong Customer Authentication (SCA).

The bank controls this step. Stripe's documentation says so directly: “While Stripe initiates the authentication request, the requirement comes from the issuer.” Regulations in the European Economic Area, and similar ones in the UK, India, Japan and Australia, can require the check. Elsewhere an issuer can still ask for it on a particular payment, which is why a card can pass at one merchant with no prompt and be challenged at another.

Stripe's [authentication flow](https://docs.stripe.com/payments/3d-secure/authentication-flow) puts the events in this order:

1. You submit the payment details.
2. Stripe works out whether the payment requires 3D Secure and, if so, contacts the card issuer.
3. The issuer verifies you, usually with a prompt. Some checks run with no visible prompt at all.
4. Only on the result “Authenticated” does “Stripe attempt the charge.”
5. On “Failure,” the payment returns to a state “indicating that you need to try a different payment method, or you can retry 3DS by reconfirming.”

The message on your screen is step 5. Its second sentence repeats the first half of Stripe's wording and leaves out the second half: retrying the same card is allowed, and the payment can go ahead once the check completes.

Three words circulate for this one step. The checkout says “authenticate.” ChatGPT's own Settings page says the payment method “couldn't be authorized.” Most people say “verify.” In strict banking terms, authentication proves that you are the cardholder and authorization is the bank approving the amount. For this message the difference changes nothing you do: all three wordings point to the bank's identity check.

Stripe attaches the sentence to two error codes, which its [error-code reference](https://docs.stripe.com/error-codes) defines almost identically: “The provided payment method has failed authentication. Provide a new payment method to attempt to fulfill this PaymentIntent again.” One code, `payment_intent_authentication_failure`, applies when a charge is being attempted. The other, `setup_intent_authentication_failure`, applies when a card is being saved for later charges, which is what a free-trial sign-up or a card added in Settings typically involves. Both show the same sentence and call for the same fix.

## Where the sentence comes from: Stripe's text, not OpenAI's

The sentence is Stripe's default error text, and ChatGPT's checkout displays it unchanged. That explains why the same words appear on unrelated websites and why OpenAI's declined-card article does not quote them. Four details in the files behind the checkout show this, as of November 11, 2026:

- **Stripe.js carries the sentence.** Stripe.js is the script that every Stripe-powered web checkout loads from `https://js.stripe.com/v3/`. In its shared code the sentence is the English default for exactly two message IDs, one for each error code above, and it occurs exactly twice. The same file lists language files for 44 languages.
- **ChatGPT's code does not contain it.** The ChatGPT desktop app for macOS embeds the web checkout. Its bundle (version 26.1103.60933) contains zero occurrences of “unable to authenticate your payment.” At the confirmation step the checkout code takes the processor's error and shows its message as received. Only if no message arrives does it fall back to its own text, “Payment confirmation failed.”
- **Closing the bank's window gives the same result as a wrong code.** In Stripe.js, the code that handles a canceled verification window closes the overlay and returns the same error code as a failed check. If the bank's page looked stuck and you closed it, or you pressed Cancel, that alone explains the message.
- **ChatGPT has its own sentence for this failure in another place.** In Settings › Billing, when saving a payment method fails with one of Stripe's authentication codes, the app shows “This payment method couldn't be authorized. Try another payment method.” If you see that sentence while adding or replacing a card, treat it exactly like the checkout message.

![Diagram: a wrong or expired one-time code or a closed bank window leads to two Stripe error codes, payment_intent_authentication_failure and setup_intent_authentication_failure; ChatGPT checkout shows Stripe's sentence unchanged, and Settings › Billing shows OpenAI's own wording](https://www.aifreeapi.com/posts/en/chatgpt-payment-verification-failed/img/message-source-stripe-codes.webp)

Stripe's mobile SDKs carry the same English sentence, and a comment in [the SDK source](https://github.com/stripe/stripe-ios) describes it in one line: “Error when 3DS2 authentication failed (e.g. customer entered the wrong code).”

The four details above come from static files: the public script and language files served from js.stripe.com, and the code inside an installed copy of the ChatGPT desktop app. No checkout was opened and no payment was attempted. The files show which text belongs to which error code. They cannot show which of the two codes a particular purchase produced. Two further questions have no documented answer and belong to your bank: whether a short-lived pending entry can appear after a failed check, and how long verification stays locked after several wrong codes.

## The message in Hindi, Indonesian, Vietnamese and other languages

Stripe.js carries translations of the sentence, so the message can appear in the language of your checkout instead of English. These are the sentences in the language files that Stripe.js loads, as of November 11, 2026. All of them mean the same thing and lead to the same steps.

| Language | Text shown at checkout |
| --- | --- |
| Hindi | हम आपकी पेमेंट विधि को प्रमाणित करने में असमर्थ हैं. कृपया भिन्न पेमेंट विधि चुनें और पुनः प्रयास करें. |
| Indonesian | Kami tidak dapat mengautentikasi metode pembayaran Anda. Pilih metode pembayaran yang berbeda dan coba lagi. |
| Vietnamese | Chúng tôi không thể xác thực phương thức thanh toán của quý vị. Vui lòng chọn một phương thức thanh toán khác và thử lại. |
| Thai | เราตรวจสอบสิทธิ์วิธีการชำระเงินของคุณไม่ได้ โปรดเลือกวิธีการชำระเงินอื่นและลองอีกครั้ง |
| Portuguese (Brazil) | Não conseguimos autenticar sua forma de pagamento. Escolha outra forma de pagamento e tente novamente. |
| Spanish (Latin America) | No podemos autenticar tu método de pago. Elige otro método de pago y vuelve a intentarlo. |
| Spanish (Spain) | No podemos autenticar tu método de pago. Elige otro método y vuelve a intentarlo. |
| French | Nous ne parvenons pas à authentifier votre moyen de paiement. Veuillez en choisir un autre et réessayer. |
| German | Wir konnten Ihre Zahlungsmethode nicht authentifizieren. Wählen Sie eine andere Zahlungsmethode und versuchen Sie es erneut. |
| Turkish | Ödeme yönteminizi doğrulayamadık. Lütfen farklı bir ödeme yöntemi seçip tekrar deneyin. |
| Russian | Не удалось верифицировать способ оплаты. Выберите другой способ оплаты и повторите попытку. |
| Japanese | 決済手段を認証できませんでした。別の決済手段を選択してやりなおしてください。 |
| Korean | 결제 방식을 인증할 수 없습니다. 다른 결제 방식을 선택하고 다시 시도하십시오. |

The Russian row is the text for a charge. When a card is being saved, the Russian file uses “подтвердить” in place of “верифицировать”; the rest of the sentence is identical. Apps built on Stripe's mobile SDKs use slightly different translations in several languages, so a quote from another app or a forum post may differ by a word or two and still be this message.

## Fix order: one clean retry, then your bank, then another method

The order is fixed: one clean retry, then your bank, then another payment method that OpenAI lists for your country.

![Fix order in three steps: one clean retry with pop-ups allowed and blockers off, questions to ask your bank about 3D Secure, and another listed method such as UPI, GoPay, GCash, MoMo or Pix; stop if the card was issued in an unsupported country](https://www.aifreeapi.com/posts/en/chatgpt-payment-verification-failed/img/fix-order-retry-bank-method.webp)

Where you enter that order depends on what you saw on screen.

| What happened | What it points to | Next step |
| --- | --- | --- |
| A bank page or app request appeared, and the code was mistyped or expired, or the window was closed or refreshed | The check started and did not complete | One clean retry |
| No bank page, no SMS, no app notification | The prompt was blocked in your browser, or the bank did not send one | Fix the browser side once, then ask the bank |
| You approved correctly and the message still appeared, or it fails on every attempt | A setting or restriction on the bank's side | Contact the bank, or use another method |
| The card was issued in a country OpenAI does not support | The checkout is not open to that card | Stop |

### The bank prompt appeared, but the code failed or the window closed

Make one attempt under better conditions. OpenAI's instructions for 3D Secure errors are specific:

1. Allow pop-ups and redirects for chatgpt.com.
2. Turn off ad blockers and pop-up blockers. Turn off a VPN if one is running.
3. Use an incognito window, or a different browser, device or network.
4. Start checkout again and “complete the bank's OTP/app approval without closing or refreshing the checkout.”

Keep your phone unlocked and your banking app signed in before you press Subscribe, so the code or approval request does not expire while you look for it. Type the newest code only. If the approval happens in a banking app, return to the checkout tab afterward and let it finish on its own.

Do not loop on the same attempt. If the clean attempt fails, the bank is the next step.

### No OTP or app prompt ever appeared

A missing prompt has two possible sources. Your browser may have blocked the bank's window or redirect, which the four steps above address. Or the bank never issued a challenge for this card. Not every 3D Secure check shows a visible prompt, so a blank screen does not prove that the browser was at fault. The bank's record of the attempt settles which one it was.

OpenAI's instruction for this case is to go to the bank: “If no prompt appears or it keeps failing, contact your bank to enable/approve 3DS/SCA for online, recurring, or international e-commerce transactions, or try a different card.”

### What to ask your bank about 3D Secure

OpenAI states that it “typically [doesn't] receive detailed decline reasons from banks,” so the bank is the place to find out why the check failed. Give the bank the time of the attempt, say that the payment was to OpenAI for ChatGPT, then ask:

- Does the bank see a 3D Secure (Visa Secure, Mastercard Identity Check, SafeKey) request at that time, and what was its result?
- Is this card enrolled in 3D Secure, and is the phone number or app used for approval current?
- Is the card enabled for online, recurring and international transactions? Ask about each one. OpenAI's article names all three, and the question applies to debit cards as much as credit cards.
- If you entered wrong codes several times, is verification on the card temporarily locked, and when does it reset?

Cards issued in India face a stricter rule for subscriptions. When a recurring-payment mandate (e-mandate) is being created, Stripe's flow treats “anything but an `authenticated` result” as failure, so ask about recurring payments in particular.

If the bank has no record of any attempt, tell OpenAI Support exactly that. In OpenAI's words, “If your bank has no record of the attempt, the error alone doesn't show that your bank declined it.”

## “Choose a different payment method”: what OpenAI lists by country

A different payment method does not have to be another card. For chatgpt.com subscriptions, OpenAI's [multicurrency billing article](https://help.openai.com/en/articles/10421635-multicurrency-billing) lists the following methods as of November 11, 2026. The list changes, so check the article before you rely on it.

| Country or region | Listed in addition to credit and debit cards | Plans or condition |
| --- | --- | --- |
| India | UPI | Go and Plus (not Pro or Business) |
| Indonesia | GoPay | Go, Plus, Pro |
| Philippines | GCash | Go, Plus, Pro |
| Vietnam | MoMo | Go, Plus, Pro |
| Brazil | Pix | Go, Plus, Pro |
| South Korea | Kakao Pay, Naver Pay and local cards | On subscription checkout pages |
| UK and EEA | Bank debit via Link | Where supported |
| United States | ChatGPT wallet balance | Eligible USD charges |

Credit and debit cards are listed for all supported countries. Your own checkout page is the final word on what your account can use. If a method in the table is not offered there, the remaining options are a different card or your bank.

Neither OpenAI nor Stripe documents this message for wallet or UPI payments. If it appeared while you were approving one of those instead of a card, the likely reading is the same, because Stripe's definition of the error is not card-specific (“The provided payment method has failed authentication”): the approval inside the wallet or UPI app did not complete. Check the app for a pending or rejected request before you try again.

Subscribing inside the ChatGPT app for iOS or Android is also an official route, but it changes who bills you. A subscription bought in the app is billed and managed by the Apple App Store or Google Play, not by the web checkout. If you already pay for a plan on chatgpt.com and wanted to upgrade it, check where that subscription lives first, because a second purchase in the app creates a second subscription with a second biller. The guide to [finding the billing owner for a ChatGPT subscription](/en/posts/chatgpt-plus-payment-failed-card-declined) shows how to tell chatgpt.com, App Store and Google Play billing apart.

## When to stop: unsupported countries and cards issued there

Stop retrying if your card comes from a bank outside OpenAI's supported regions. The rule is stated in the declined-card article: “Purchases are only available in our supported countries and regions. Your payment card must be issued by a bank located in one of those supported regions.”

As of November 11, 2026, Russia, Belarus, mainland China and Hong Kong are not on the [supported countries list](https://help.openai.com/en/articles/7947663-chatgpt-supported-countries). India, Indonesia, Japan, South Korea, Taiwan, Spain, Mexico, Kazakhstan and Kyrgyzstan are. Check the list for your own country and for the country of the bank that issued the card, since the two can differ.

For a card issued outside the list, the bank's identity check is not the obstacle, and none of the steps above applies, whatever message the checkout shows. The official checkout is not open to that card. The same page carries a warning: “Accessing or offering access to our services outside of the countries and territories listed below may result in your account being blocked or suspended.”

## Was I charged? In Stripe's flow the charge comes after authentication

In Stripe's standard flow, a failed authentication stops the payment before the charge is attempted, so this message normally means no money moved. Confirm it in two places instead of assuming:

- **Your bank or card app.** Look for a pending or posted entry from OpenAI at the time of the attempt. If one is there, ask the bank what it is and whether it will drop off.
- **ChatGPT Settings.** Check whether your plan changed. If the plan did not change and the bank shows nothing, the attempt ended at the identity check.

On a free trial or when you add a card in Settings, the card is typically being saved for later charges instead of charged now. The bank is asked to confirm it in the same way.

If a real charge posted and the plan did not activate, that is a different problem from this message. Take the bank entry and the time to OpenAI Support.

## Similar ChatGPT checkout messages that mean something else

Several messages appear in the same place and get confused with this one. Each points somewhere else.

| Message | What it refers to |
| --- | --- |
| “We are unable to authenticate your payment method. Please choose a different payment method and try again.” | The bank's identity check (3D Secure) failed or was canceled. Stripe's text. |
| “This payment method couldn't be authorized. Try another payment method.” | The same kind of failure, shown in Settings › Billing when saving a card. |
| “Your card has been declined.” | A decline of the card, not a failed identity check. Stripe's text. |
| “Payment was not approved” | The payment was blocked at checkout. OpenAI's own text. |
| “Check your billing details and try again.” | The billing details were rejected before confirmation. |
| “Payment details did not load” | The payment fields failed to load. Retry reloads the checkout. |
| “Your checkout session expired, please refresh your page.” | The checkout session expired. Refresh the page and start again. |
| “Checkout could not be completed. Please try again.” | A checkout request failed. Nothing is implied about the card. |
| “Too many subscriptions associated with this card or device. We can't complete this purchase.” | A limit on subscriptions tied to the card or device. |

Only the first two rows are about the bank's identity check. For “Payment was not approved,” card declines and failed renewals, the separate guide [ChatGPT Payment Was Not Approved: Find the Billing Owner Before You Retry](/en/posts/chatgpt-plus-payment-failed-card-declined) covers what to check.

## What to send OpenAI Support when the bank finds no problem

Contact OpenAI Support after the clean retry and the bank call, not before, because OpenAI typically does not receive the bank's reason. OpenAI's article lists what to include: “the product, whether the error appeared while adding the card, at checkout or during renewal, the exact error, and the local time and time zone.” It also says to “leave out your card number and security code.”

A message in this shape covers all of it:

```text
Product: ChatGPT Plus, web checkout at chatgpt.com
Where the error appeared: at checkout (not while adding a card, not at renewal)
Exact error: We are unable to authenticate your payment method. Please choose a different payment method and try again.
Local time and time zone: November 11, 2026, 9:40 PM, IST (UTC+5:30)
What my bank says: no record of an attempt at that time
```

Replace the product, time and bank line with your own. The last line is not on OpenAI's list, but the article singles out that case: when the bank has no record of the attempt, the error alone does not show that the bank declined the payment.

## Short answers about the ChatGPT payment authentication error

### Why is ChatGPT unable to authenticate my payment method?

Because your bank's 3D Secure check did not end with a successful result. That covers a wrong or expired one-time code, an approval request that timed out, a bank window that was closed or blocked by the browser, and a card that is not enabled for 3D Secure on online, recurring or international payments. ChatGPT itself does not run the check. The card issuer does, and the checkout only reports that it failed.

### Does the message mean my card was declined or is invalid?

No. A decline has its own message, “Your card has been declined.” This message says the identity check before the charge did not pass. The card can be valid, funded and working elsewhere.

### My card works everywhere else. Why does it fail at ChatGPT?

Working in shops or at local websites does not show that the card is enabled for this kind of payment. A ChatGPT subscription is an online, recurring and often international transaction, and OpenAI's article tells you to ask the bank about each of the three. The issuer also decides which payments to challenge, so one merchant can pass without a prompt while another needs approval.

### Several cards fail with the same message. What does that mean?

Look at what the attempts share. If every card fails with no prompt, suspect what is common on your side first: the browser, an extension or the network blocking the bank's window. If the cards come from the same bank or the same country, look at the issuer's settings or the supported-region rule.

### Why does the message appear when I upgrade an existing plan?

Renewals are charged without you present, while an upgrade is a new payment that you start yourself. Stripe's documentation lists payments made without the customer present among the transactions that do not support 3D Secure. A card that has renewed for months without a prompt can therefore still be asked for approval when you upgrade.

### Can I subscribe in the ChatGPT mobile app instead?

Yes. A subscription bought in the iOS or Android app uses the payment method on your Apple or Google account and never goes through the web checkout. Apple or Google then bills and manages it. Do this only if you do not already have a subscription on chatgpt.com, or you will hold two.
