tax_id_type, such as eu_vat or gb_vat, and the number itself. You send tax IDs in two places. On an account, a tax ID also records that the business is registered for tax in that country. On a payment quote, the buyer’s tax ID prices a business purchase. This page covers the format each type expects, what Whop changes in a number you send, and what it rejects.
All EU member states share the
eu_vat type. Whop works out the country from the first two letters of the number, so a VAT number from an EU country must start with its country code.Add a tax ID to an account
Send each tax ID as atax_id_type and tax_id_value. Whop stores DE 123.456.789 below as DE123456789.
tax_id_type. Sending a type the account already has replaces its value instead of adding a second tax ID. All EU countries share eu_vat, so an account holds one VAT number for the whole EU.
The eu_vat type
An eu_vat number starts with the two-letter code of the member state that issued it, followed by the national number.
- Greece uses
EL, notGR:EL123456789. On an account, a number sent withGRis stored withEL. On a payment quote, sendELyourself. - Northern Ireland uses
XIwith theeu_vattype:XI123456789. On an account, anXInumber counts as the business’s registration in the UK, but checkout doesn’t use it for UK tax. Add agb_vatnumber for that. - Spaces, dots, and dashes are removed. On an account, letters are also uppercased, so
de 123.456.789andDE-123-456-789both becomeDE123456789.
eu_oss_vat, for example EU123456789. On an account, one eu_oss_vat number counts as registered in every EU country.
On an account, Whop checks an eu_vat number against its country’s format. The number has to start with an EU member state’s VAT prefix or XI, and the rest has to be the length and characters that country issues. For example, a Belgian number is BE followed by 10 digits starting with 0 or 1, so BE123456789 is rejected. Whop doesn’t add a missing prefix, because an eu_vat number doesn’t say which country it’s from.
On a payment quote, Whop only rejects a number that doesn’t start with two letters followed by at least two letters or digits.
Both endpoints respond with a 400. On an account, the error has a code you can match on:
tax_ids.value is not a valid eu_vat registration.
Other tax ID types
Every other type keeps the punctuation and letter case from its published format. A Swiss UID staysCHE-123.456.789, and a Brazilian CNPJ stays 12.345.678/0001-00. Send the number the way the tax authority prints it. On a payment quote, spaces are still removed, so CHE-123.456.789 MWST becomes CHE-123.456.789MWST.
In Canada, a ca_gst_hst number counts as registered in every province. A provincial number, such as ca_qst or ca_pst_bc, counts only in its province, and a ca_bn business number on its own doesn’t count anywhere.
Examples by country
These match the examples shown in the Whop dashboard, which useseu_vat for Poland and Northern Ireland. The Update Account reference lists the other accepted tax_id_type values. A payment quote also accepts pl_nip and xi_vat.
Next steps
Update an account
Set an account’s tax IDs and how it remits tax.
Quote a business purchase
Price a purchase with the buyer’s tax ID before charging it.

