Claude Pro VAT is decided by two fields Anthropic never shows you
The amount that hits your card is not a mystery. It is a one-line calculation built from payment_method.country and currency on the same Anthropic endpoint the Settings billing page calls. Anthropic never renders those fields in the UI. Here is where they live, how to read them, and what each country code turns $20 into.
The setup, in one sentence
Anthropic lists Claude Pro at $20.00 a month and keeps the sticker price identical everywhere in the world. What changes between countries is the tax line Stripe adds on top at charge time. That tax line is computed from your billing address, which Anthropic stores as a single ISO-3166 country code on your subscription. By default that address is captured from the issuing country of your payment card, so the card usually sets it, but the billing address is the lever, and you can change it. What never enters in is your IP address, your account email, or the country flag your browser shows.
Every other guide on this topic describes that rule in the abstract. None of them tells you which field holds the country code or how to read it. The field exists. It is observable. You can check yours in the next 30 seconds.
The anchor fact: 0 fields, 0 endpoint
The endpoint is GET /api/organizations/{org_uuid}/subscription_details. Hit it with your logged-in claude.ai cookies. This is the exact JSON shape you get back, formatted for readability:
The two fields that matter for tax are payment_method.country and currency. Everything else on this payload is flavor: the brand of the card, the last four digits, whether the plan is active, when the next charge lands. The tax jurisdiction is decided by the first field. The billing currency is stated in the second.
The struct, verbatim
ClaudeMeter deserializes the response into the structs below. If Anthropic ever renames country or moves it, the deserializer fails and we ship a release; the field has been stable for many months.
The whole VAT surface, in numbers
From the implementation, not from marketing copy.
Inputs to the VAT line on your invoice
The country code, the rate, the final number
Once you have read payment_method.country, this is what Stripe adds on top. Base is $20.00 everywhere; only the second column moves. Use this as a reference, then confirm against your next PDF invoice.
| Feature | Standard VAT rate | Final USD charge |
|---|---|---|
| United Kingdom (GB) | 20% | $20.00 + $4.00 = $24.00 |
| Germany (DE) | 19% | $20.00 + $3.80 = $23.80 |
| France (FR) | 20% | $20.00 + $4.00 = $24.00 |
| Netherlands (NL) | 21% | $20.00 + $4.20 = $24.20 |
| Ireland (IE) | 23% | $20.00 + $4.60 = $24.60 |
| Italy (IT) | 22% | $20.00 + $4.40 = $24.40 |
| Spain (ES) | 21% | $20.00 + $4.20 = $24.20 |
| Poland (PL) | 23% | $20.00 + $4.60 = $24.60 |
| Sweden (SE) | 25% | $20.00 + $5.00 = $25.00 |
| Denmark (DK) | 25% | $20.00 + $5.00 = $25.00 |
| Hungary (HU) | 27% | $20.00 + $5.40 = $25.40 |
| Belgium (BE) | 21% | $20.00 + $4.20 = $24.20 |
| Austria (AT) | 20% | $20.00 + $4.00 = $24.00 |
| Portugal (PT) | 23% | $20.00 + $4.60 = $24.60 |
| Finland (FI) | 25.5% | $20.00 + $5.10 = $25.10 |
| Czechia (CZ) | 21% | $20.00 + $4.20 = $24.20 |
| Greece (GR) | 24% | $20.00 + $4.80 = $24.80 |
| Romania (RO) | 19% | $20.00 + $3.80 = $23.80 |
| Norway (NO) | 25% | $20.00 + $5.00 = $25.00 |
| Switzerland (CH) | 8.1% | $20.00 + $1.62 = $21.62 |
| United States (US) | 0% | $20.00 flat |
Rates are standard national VAT as of 2026-04. Anthropic uses the standard rate; digital services are not eligible for most reduced rates. A business VAT ID on Team/Enterprise moves the line to reverse-charge (net of VAT) from the next invoice onward.
What happens between your card and the PDF invoice
The exact sequence that turns $20.00 into a $24.00 charge for a UK card. Same shape for every other VAT jurisdiction, only the rate changes.
VAT computation path
Reproduce it yourself in one curl
You do not need ClaudeMeter to do this. Open DevTools on claude.ai/settings/billing, grab the cookie header off any XHR to claude.ai, and hit subscription_details directly. The response is plain JSON with the two fields we care about at top level.
The full verification path, step by step
Open claude.ai/settings/billing
The page loads and immediately fires a request to /api/organizations/{your_org_uuid}/subscription_details. This is the endpoint that carries the two fields you want.
Open DevTools, switch to Network, filter XHR
Reload the page. You will see subscription_details fetched. Click it, open the Response tab. The JSON contains payment_method.country and currency as top-level keys.
Read payment_method.country
ISO-3166 two-letter code. GB applies 20% VAT. DE applies 19%. FR applies 20%. HU applies 27% (the highest EU rate). US applies 0. If this code is wrong, the VAT line on your invoice will be wrong too.
Read currency
Lowercase three-letter code. Almost always 'usd' on individual Pro, even in the UK and EU. Team and Enterprise sometimes return 'eur' or 'gbp'. Your bank's FX line on the card statement is cosmetic; the number Anthropic sent to Stripe is in this currency.
Multiply
Base price is $20.00. Your final pre-FX invoice is $20.00 plus (country VAT rate times $20.00). For GB, that is $24.00. For DE, $23.80. For HU, $25.40. For a country code outside a VAT jurisdiction, it stays $20.00.
Verify against the Stripe PDF
The PDF invoice Stripe emails you after the charge has an itemized VAT line with Anthropic's local tax registration number. The line amount should match the math above to the cent. If it does not, the country code is stale; update your payment method.
How to actually change what you are charged (the official levers)
Reading the field tells you what Anthropic has on file. Changing it happens in Settings, not in the JSON. There are three official levers, all documented in Anthropic’s help center, and all prospective: they apply to your next invoice, never the last one.
- Billing address. This is what Anthropic uses to compute tax: “your billing address determines how taxes are calculated on your Claude purchases.” Update it at Settings > Billing > Billing Addresses; it takes effect on future invoices. If you need an address that differs from your card, Anthropic asks you to contact support with documentation (a VAT registration certificate, for non-US customers) verifying your location.
- Tax / VAT ID (reverse-charge). Business customers on Pro, Max, Team, and Console can enter a Tax or VAT ID at Settings > Billing > Update, where the region supports it. A valid ID for a reverse-charge jurisdiction drops VAT to 0% on future invoices.
- Payment method country. Because the billing address is captured from your card by default, switching to a card issued in another country moves
payment_method.countryand, with it, the jurisdiction on the next charge.
None of the three touches an invoice that has already been drafted. Anthropic’s documentation is explicit: updates apply to future billing cycles only, and previously completed invoices cannot be updated retroactively. To fix a charge that already went through, email support@anthropic.com with your VAT ID and invoice numbers and ask for a credit or amended invoice.
Sources: Anthropic Help Center, Understanding your billing address and tax calculation and Add or update your paid Claude account’s tax or VAT ID.
Why the invoice number does not match the pricing page
The pricing page on anthropic.com lists Pro at $20 a month. The Settings page inside claude.ai shows $20 a month. Your Stripe PDF, in GB, says $24.00. None of those are wrong, and none of them is lying. The first two quote the pre-tax base; subscription_details stores the country code that triggers the tax line; Stripe Tax adds 20% at invoice-draft time; the PDF is the first artifact that shows the assembled number.
The UI gap is real but it is not deceptive: it is how every Stripe-billed B2C subscription works. Netflix, Spotify, Adobe, GitHub all behave the same way. What is unusual about Anthropic is that the country code is observable to you via an endpoint the product also happens to expose for usage data, and ClaudeMeter reads it every poll anyway to render your subscription panel. So if you already run the menu bar app, the field is already in your chrome.storage.local under the snapshots key.
What you lose by not checking
Consequences of not reading the field
- Anthropic assigns your VAT rate from your billing address; the country it has on file is observable as subscription.payment_method.country, an ISO-3166 code captured from your card by default, not from your account email or IP.
- The Settings > Billing page does not render the VAT line. The Stripe PDF invoice does. The gap means UK and EU users routinely see a larger card charge than what the UI quoted.
- The $20 Pro base is pre-tax and uniform worldwide. VAT is added on top per country (GB 20%, DE 19%, NL 21%, FR 20%, HU 27%, etc.). A US card pays $20.00 flat.
- currency on subscription_details is usually 'usd' for individual Pro, even in Europe. Anthropic sends USD to Stripe; the bank does the FX, which is why your statement line is a different amount in local currency.
- Entering a VAT ID on Team/Enterprise moves the subscription to reverse-charge for future invoices only. Past invoices require a manual reissue by Anthropic support.
- If you change your card mid-cycle, the invoice locked at next_charge_date is the one that gets the old country's VAT rate applied. The next invoice after that uses the new country.
Common misconceptions to drop
The one case where it stops being about VAT
You can drop the VAT line entirely with a VAT ID. Per Anthropic's help center, Pro and Max subscribers may have the option to enter a Tax or VAT ID at signup depending on location, and the same field is available on Team and Console organizations; you add or update it at Settings > Billing > Update next to your payment method. Filling it in with a valid registration number, for a jurisdiction that supports reverse-charge on B2B digital services, moves the subscription into net billing: Anthropic stops adding VAT and your finance team self-accounts the tax on their end. The field is gated by region, so a subscriber in a non-supporting country still will not see it.
Two things to know about the mechanic. First, the VAT ID switch is prospective only: past invoices keep the VAT line and only future invoices are net. Second, the billing country has to be correct first; adding a VAT ID under the wrong country code returns a validation error rather than silently applying reverse-charge.
The honest caveat
The subscription_details endpoint is internal and undocumented. Field names are not in any public spec. We deserialize into a strict struct, and the names used here (status, next_charge_date, billing_interval, payment_method, currency, and payment_method's brand, country, last4, type) have been stable on every account we have sampled in the US, UK, and Europe across many months. If Anthropic reshapes it, ClaudeMeter will surface a parse error and we will ship a patch. Until then, this is the field, and this is the rule Stripe applies to your invoice.
Watch your country code and next charge live
ClaudeMeter sits in your menu bar, reads subscription_details every 60 seconds, and surfaces payment_method.country, currency, and next_charge_date alongside your usage floats. Free, MIT licensed, no cookie paste.
Install ClaudeMeterFrequently asked questions
Where does Anthropic actually store the country that decides my VAT rate?
Two layers. The authoritative input is your billing address: Anthropic's help center states 'your billing address determines how taxes are calculated on your Claude purchases.' The observable layer is one field on the subscription object, subscription.payment_method.country, an ISO-3166 two-letter code (GB, DE, FR, HU, US, and so on). That field is declared in claude-meter/src/models.rs at line 45, inside the PaymentMethod struct (lines 42 to 49), and it is populated by GET https://claude.ai/api/organizations/{your_org_uuid}/subscription_details, the same endpoint the Settings billing page calls. By default Anthropic captures your billing address from your payment card, so for most individuals the billing-address country and payment_method.country are the same value, which makes the field a fast proxy for the rate you will be charged. If it reads GB, Anthropic applies 20% UK VAT on top of the $20 Pro base; DE applies 19%; US applies none. Your account email and your IP do not enter into it; the billing address (and the card that usually sets it) does.
Why is VAT invisible in claude.ai's Settings page but visible on my card statement?
The Settings page at claude.ai/settings/billing shows your plan, your next charge date, and the card on file. It does not render the tax line on top. That line is computed by Stripe at charge time, based on the country code Anthropic passed to the Stripe Tax API, and it only appears on the PDF invoice emailed to you after the charge clears. So a UK subscriber sees '$20/month' in the Settings UI and a charge of '$24.00' (or the local currency equivalent) on the card statement, with no warning in between. Reading payment_method.country yourself is the fastest way to know in advance which rate will apply.
Is my subscription actually billed in USD, EUR, or GBP?
Check the currency field on the same subscription_details payload. It is declared at claude-meter/src/models.rs line 57 and arrives as a lowercase three-letter code, typically 'usd'. Anthropic bills every individual Pro plan in USD by default, and the card network (Visa, Mastercard, Amex) does the FX conversion on their side. So a German subscriber sees a USD charge of around $23.80 on Stripe, their bank converts that to EUR at the daily retail rate, and the statement line reads something like €22.47. The currency field almost always returns 'usd' for Pro, even in the EU and UK; Team and Enterprise plans are the accounts that sometimes flip to local currency.
Does typing a VAT ID into Settings actually remove the tax?
For business customers, yes, on future invoices. Per Anthropic's help center, when you sign up for Pro or Max you may have the option to enter a Tax or VAT ID depending on your location, and you can add or update it later at Settings > Billing > Update (next to your payment method); Team and Console organizations have the same field. So this is not Team/Enterprise-only anymore; individual Pro and Max can self-serve where the region supports it. A valid VAT ID for a jurisdiction that supports reverse-charge on B2B digital services removes VAT from future invoices, but it does not refund past VAT. Anthropic is explicit that updates apply to future billing cycles only and previously completed invoices cannot be updated retroactively, so to recover VAT already charged you email support@anthropic.com with your VAT ID and the invoice numbers and ask for a credit or amended invoice. The field's availability still depends on your billing country, so not every region exposes it.
What exact endpoint returns the country code, and do I need a special token?
GET https://claude.ai/api/organizations/{your_org_uuid}/subscription_details, with your normal claude.ai session cookies attached. No API key, no OAuth, no developer plan. The endpoint is called from claude-meter/src/api.rs at line 49, inside the desktop Rust client, and from claude-meter/extension/background.js line 28 in the browser extension. It is undocumented, but it is the same call the Settings > Billing page makes on page load; you can watch it happen in DevTools > Network on claude.ai/settings/billing.
Why does Anthropic sometimes get the country wrong?
Because the country on file is set from your billing address, and by default that address is captured from your card rather than re-confirmed per charge. If you are a UK resident paying with a US-issued corporate card (common for consultants billed through a foreign parent company), the field returns US and no VAT is applied. If you are a US resident paying with a UK-issued card because you moved, it returns GB and you get charged 20% VAT. This is standard Stripe Tax behavior, but it is invisible until you read the field. The fix is to correct what Anthropic has on file: update the billing address at Settings > Billing > Billing Addresses (it takes effect on future invoices), or switch to a payment method issued in the country you want treated as your tax residence. If you need a billing address that differs from your card, Anthropic asks you to contact support with documentation, a VAT registration certificate for non-US customers, verifying your location.
Does the $20 Pro price include VAT or is VAT added on top?
VAT is added on top for VAT jurisdictions. The $20.00 displayed on the pricing page and in Settings is the pre-tax base. On a GB country code, the invoice line is $20.00 + $4.00 (20% UK VAT) = $24.00. On DE, it is $20.00 + $3.80 (19% German VAT) = $23.80. On HU (Hungary, 27% VAT, the highest EU rate), it is $20.00 + $5.40 = $25.40. On US or any non-VAT jurisdiction, the invoice is flat $20.00. The $20 sticker price is consistent worldwide; only the add-on tax changes.
How do I get a proper VAT invoice with my company name on it?
The automated monthly invoice from Stripe (emailed to the address on your Anthropic account) already contains the VAT line and the tax amount for your region. To add a company name and a VAT ID (for reverse-charge, available on Pro and Max depending on your location, and on Team and Console organizations), go to Settings > Billing on claude.ai and add them there before the next charge cycle. Invoices issued before you added the company details will not be backdated; you have to email support@anthropic.com and ask for a reissue, which they will process manually. The per-month cadence of the charge is billing_interval on the same subscription_details response (field at models.rs line 54).
Does ClaudeMeter itself show my country code and tax currency?
It shows the data it gets from subscription_details. The current build renders next_charge_date and the masked payment method at src/format.rs lines 42 to 57. The payment_method.country field is deserialized into the struct at models.rs line 45 and is available to the UI layer, even if the default CLI output does not print it. If you run the --json flag on the desktop binary, you get the full UsageSnapshot including the subscription block, and that block contains both payment_method.country and currency. The browser extension stores the same snapshot in chrome.storage.local under the 'snapshots' key, readable from DevTools > Application.
If I switch my card from GB to US, when does the VAT stop?
From the next charge cycle. Stripe Tax computes jurisdiction at the moment the invoice is drafted, not at the moment you update the card. So if your next charge is on the 12th and you update the payment method on the 10th, the 12th invoice recomputes using the new country code and drops the VAT line. If you update on the 13th, the 12th invoice is already locked with the old country code, and the 20% UK VAT (or whatever rate applied) stays on it. To confirm the switch landed before the next cycle, re-fetch subscription_details and check that payment_method.country is the new code before next_charge_date.
What currencies have I seen Anthropic bill in for Pro subscribers?
For individual Pro, the currency field has consistently returned 'usd' on every account we have sampled in the US, UK, Germany, France, the Netherlands, Poland, and Hungary. On Team plans in the UK and EU, it sometimes returns 'eur' or 'gbp', with the plan price converted server-side and the VAT applied to the converted amount. Enterprise accounts negotiate separately and often return a third-party currency via a managed Anthropic contract. The single source of truth for your own account is the currency field on subscription_details; do not assume your plan is billed in the currency your bank shows, because your bank is showing the post-FX number.
Is there a quick one-liner to read my VAT jurisdiction without ClaudeMeter?
Yes. Open claude.ai/settings/billing with DevTools' Network panel open, filter to XHR, find the request to /api/organizations/{uuid}/subscription_details, and read the response JSON. Or, from a terminal with your cookie header captured: curl -s https://claude.ai/api/organizations/$ORG/subscription_details -H "Cookie: $COOKIES" | jq '.payment_method.country, .currency'. You will get two lines back. The first is your tax country code. The second is your billing currency. That is the entire VAT surface Anthropic exposes to you.
Keep reading
Claude Pro's 5-hour window quota is one float on a sliding clock
The same endpoint family also carries your 5-hour utilization. One float, one resets_at, no message counter.
How ClaudeMeter reads the same JSON claude.ai/settings reads
Browser extension forwards your existing session over localhost:63762 to a Rust menu bar app. No cookie paste, no scraping.
ClaudeMeter vs ccusage
ccusage totals local tokens. ClaudeMeter reads the server-truth fields: utilization, payment_method.country, currency, next_charge_date.
Seeing a country code that does not match your location?
If subscription_details returns a code that makes Anthropic charge you the wrong VAT, send the sample response (redact the UUID). We are mapping the edge cases that confuse the Stripe Tax lookup.
Comments (••)
Leave a comment to see what others are saying.Public and anonymous. No signup.