Seller in Ireland, customer in Romania, electronically supplied service. Answers below are live responses from a working API, not written from memory.
Charge RO VAT at 21% (customer's country) and report via the One-Stop Shop (OSS).
No VAT charged. Reverse charge applies — the customer accounts for VAT in their country. State 'VAT reverse charged' and show the customer's VAT number on the invoice.
For digital goods sold to EU consumers the place of supply is where the customer belongs, so the customer's national rate applies and it is reported through the One-Stop Shop. Applying the seller's own rate is the single most common mistake in hand-rolled checkouts.
B2C electronically supplied services taxed where the customer belongs (Art. 58); reported via OSS.
| Case | Charge VAT? | Rate | Mechanism |
|---|---|---|---|
| Consumer (B2C) | Yes | 21% | standard |
| Business with VAT ID (B2B) | No | 0% | reverse_charge |
| Standard digital rate in Romania | 21% (VAT) | ||
curl "https://checkout-tax-api.pages.dev/decide?seller_country=IE&buyer_country=RO&product_type=digital"
Free, no key. A valid VAT number in buyer_vat_id flips it to reverse charge.
The decision above — place of supply, reverse charge, out of scope, and the invoice wording for each — is about 30 branches once you cover the EU, UK, US, Canada and Australia. It also ships as a one-time $49 self-host kit — full source, tests, and a one-command deploy to your own Cloudflare Worker. The hosted API is free either way.