cocodot
← Back to guides
Local card declined for overseas AI? cocodot: one card + one key
OpenAI APIUpdated 2026-10

OpenAI API Billing: Prepaid Credits, Why Card Binding Fails, and the Route That Needs No Card (2026)

The OpenAI API is prepaid credits, not a subscription. How billing works, why adding a card fails, how to keep costs from running away, and an alternative that needs no card at all.

TL;DR: Separate two things people constantly conflate: ChatGPT Plus is a web subscription; the OpenAI API is a developer interface billed per token, and the two are completely independent — subscribing to Plus gives the API no credit, and vice versa. The API runs on prepaid credits: you attach a card in Billing, load a balance, and calls draw it down until it is gone, at which point calls fail outright rather than running up a bill. For developers outside a handful of countries the sticking point is attaching the card: locally issued cards, Visa and Mastercard alike, are usually refused, because what is scored is the issuing institution's country rather than the network. Two workable routes: ① attach a US-BIN virtual card to Billing and top up; ② if your code speaks the OpenAI-compatible format, point base_url at a relay that accepts local payment methods — no card involved at all.

1. First: the API and Plus are two separate wallets

This is the most common beginner misunderstanding and the most expensive in time. ChatGPT Plus is a subscription for people using the product in a browser or app. The OpenAI API is an interface for developers calling it from code, managed separately at platform.openai.com with its own card and its own balance. The money does not cross over — subscribe to Plus and your API balance is still zero, and calls still fail; load API credit and the web product is throttled exactly as before. Confusing the two sends people looking for the problem in entirely the wrong place. The test for which you need is one sentence: are you typing into a chat box, or calling from a program?

2. The billing model: prepaid, not postpaid

The API uses prepaid credits: you load an amount, calls draw against it per token, and it stops when empty. Two consequences are worth knowing in advance. ① You never accrue a debt — when the balance hits zero, calls simply fail, so production systems need balance monitoring rather than waiting for an error in the logs to tell you. ② Loading credit requires a card, and that step is a higher hurdle than most people expect. One more thing about the meter: tokens are billed both directions, input and output, and a long conversation carries its entire history back into the input on every turn — which is why the first invoice often surprises people who were only counting what the model wrote.

3. Why attaching a card fails

What matters is not the card network but the issuing institution's country, read from the first six to eight digits of the card number, the BIN. Cards issued in many markets carry a high cross-border decline rate, entirely independently of the Visa or Mastercard logo. So "this is a Visa, it should work" is the wrong inference, and trying a second card from another local bank will not change the outcome. The variable to change is the BIN. Two other frequent causes sit alongside it: a billing address that does not match the issuer's record (the platform verifies it, and inventing a plausible US address is declined more reliably than getting it right), and an account flagged by repeated failures, after which even a perfectly good card keeps being refused.

4. Route one: attach a US-BIN virtual card

The steps: ① sign up at cocodot and top up the wallet — Alipay works, and current fees are published at cocodot.co/pricing; ② issue a US-BIN Visa virtual card and move balance onto it, remembering that wallet balance is not card balance; ③ at platform.openai.com go to Billing → Payment methods, add the card, and fill the billing address exactly as your console shows it; ④ once the card attaches, load credit under Add to credit balance. Load a small amount the first time to prove the whole chain works, then scale up once it does. The same card will pay for ChatGPT Plus, Claude and Cursor, so there is no need to issue one per platform.

5. Route two: skip the card entirely with a compatible relay

If your code is written against the OpenAI SDK or any OpenAI-compatible format, there is a shorter path: point base_url at a relay that accepts local payment methods and no card is needed at all. cocodot's API works this way — set base_url to https://cocodot.co/api/ai/v1, supply your key, and your existing code does not change by a line; the same key also reaches Claude, Gemini and DeepSeek, so you are not opening an account and attaching a card at every vendor in turn. Verifying your email grants a small trial credit, enough to prove the path before you commit money. Where the two routes divide: if you need the official OpenAI account itself — for features only exposed there — take route one. If you only want to call models from code, take route two.

6. Keeping costs under control: three things to set up

The real risk with an API is not that it is expensive, it is that it runs away — one infinite loop or one unbounded batch job can drain a balance while you sleep. Three things are worth doing before that happens. ① Set a hard monthly cap and an alert threshold under Usage limits; that is your last line of defence. ② Match the model to the task — classification, extraction and formatting on a cheap model, the flagship only for genuinely hard work; this alone usually removes most of the bill. ③ Control context length, because replaying an entire conversation into the input on every turn is the most invisible form of waste — truncate or summarise. Prepaid cards give you one more layer for free: the card balance is itself a hard ceiling, so even a runaway job cannot spend past it.

7. How to read the common errors

Insufficient balance — the call fails outright; check credit balance in Billing, because the API does not let you run a tab. Authentication failures — verify the key itself, that you are not pointing at the wrong organisation or project, and that the key has not been rotated out. Rate limiting — this is a concurrency and frequency limit, not a balance problem; reduce concurrency or add backoff with retries. New accounts usually start at a lower tier and move up as spend accumulates. Card attachment failures — work through the three causes in section three in order, and stop after two or three attempts rather than hammering the form into a risk flag.

'Your credit card was declined. Try a debit card instead' — what to check

That line is a generic decline message on the OpenAI checkout. It does not mean you must use a debit card, and it does not name the cause. Check in this order: the billing address matches your bank's record character for character; international and online use is enabled and your limit covers the authorization hold; the phone number that receives 3-D Secure codes is current; and the card's issuing country and type are accepted here. If the first three are clean and it still fails, the fourth is likely the cause and only a card on an accepted range will fix it. After two failures, wait a day. Our card has a tested record on OpenAI, but a small first payment is still the sensible start.

ChatGPT Plus and the OpenAI API are different products

ChatGPT PlusOpenAI API
Where you use itThe chat interface, web and appInside your own code
How it billsFixed monthly fee, with usage capsPrepaid credits, drawn down per token
When usage is lumpyYou pay in quiet months tooA quiet month costs almost nothing
Callable from a programNoYes — that is what it is for
When the balance runs outNot applicableCalls fail immediately; you never owe money
Paying for itA card charged monthlyA card plus a prepaid balance, or an OpenAI-compatible relay

FAQ

I subscribe to ChatGPT Plus — why does the API say I have no credit?

Because they are two entirely separate billing systems. Plus is a web subscription; the API runs on prepaid credits. To use the API you attach a card and load a balance separately at platform.openai.com.

Can I run up a bill on the API?

No. It is prepaid, so when the balance is exhausted calls fail immediately. That means production systems should monitor the balance rather than discovering it from an error in the logs.

Why will my Visa not attach?

Platforms score the issuing institution's country, read from the card's BIN, not the network. Cards issued in some markets are declined at a high rate cross-border. What needs to change is the issuing country, not another card from the same one.

Is there a way to call GPT without issuing a card?

Yes. If your code uses the OpenAI-compatible format, point base_url at a relay that accepts local payment methods; no overseas card is involved and your existing code is unchanged. This suits anyone who only wants to call models from a program.

How do I stop API costs running away?

Three things: set a hard monthly cap and alert under Usage limits, match the model tier to the difficulty of each task, and keep context short instead of replaying whole conversations. On a prepaid card, the card balance is also a hard ceiling in its own right.

What do I put as the billing address?

The address registered against that card. With a virtual card, your provider publishes it — copy it exactly and keep it identical. Inventing a US address is declined more reliably than entering the correct one.

Does OpenAI accept Apple Pay?

Do not rely on memory. Accepted methods depend on the product (ChatGPT subscription versus API credit), the region, and the purchase channel (web versus in-app), and they change. Use whatever the Billing page and checkout list for your account.

About cocodot

cocodot is a payment and AI access service for developers and cross-border teams in mainland China. It provides US-BIN virtual cards issued by a licensed institution — used to pay for overseas subscriptions and ad accounts — and an OpenAI-compatible AI API gateway for calling Claude, GPT and Gemini from within mainland China. Both share one wallet, funded by Alipay and accounted in USD. Card: $9.9 to open, 3% to load, $1 per active card per month; spending: $0.60 settlement fee on purchases under $20; a corresponding fee applies when the issuer charges one.

Service scope, pricing and limits →

Opening cards in bulk for a team?

Batch-issue dozens to hundreds of US Visa virtual cards — wholesale pricing, one dashboard to manage and reconcile them all. For cross-border e-commerce, ad buying and agencies.

Business plan →
OpenAI API Billing: Prepaid Credits and Card Setup · cocodot