VAT calculation API · self-serve

Keep your Stripe account.
Keep your accountant.
Just get the VAT math right.

Duty27 is a calculation layer, not a Merchant of Record. It plugs into checkout you already control — Stripe, Mollie, Klarna, or your own — no revenue cut, no new payment processor, no giving up the customer relationship.

No credit card required.

Sourced directly from the European Commission's TEDB. Every response carries its rate source and effective date — built to hold up under audit, not just at checkout.

calculate · try it
net price — VAT added on top
Demo showing primary markets. API supports all 30 official ECB daily reference currencies (SEK, DKK, CZK, etc.).
✓ calculated
EUR 19.00
net_amount100.00
vat_amount19.00
gross_amount119.00
rate19.0%
date2026-10-01
sourceTEDB
api.duty27.com/v1/calculateVAT-number check here is informational — the full API requires successful validation before reverse charge applies
27 EU member states coveredB2C + B2B in one APIdate-effective rate resolution
Why "as of" matters

A rate isn't one number. It's a number with a start date.

Rates change. Refunds and credit notes issued against a past sale need the rate that applied then — not the rate that applies today. Duty27 is built around effective-dated windows from the start, so a correction six months later resolves to the same rate the original sale used.

Real example · Estonia's standard VAT rate history
20.0%
2023-01-01
22.0%
2024-01-01
24.0%
2025-07-01
24.0%
2026-10-01
today
A refund processed today against a sale from an earlier window is calculated at that window's rate, with its own source and effective-date stamp — not silently recalculated at today's rate.
The calculation flow

Every entry in the ledger, accounted for.

§ calc.core

Real-time rate calculation, all 27 member states

One call, correct rate — for digital goods and services, across every EU member state.

§ calc.b2b

B2C and B2B in one API

Reverse-charge is determined automatically for validated business buyers — no separate B2B code path to maintain.

§ calc.threshold

€10,000 threshold, handled for you

On accounts with transaction tracking enabled, applies your home-country rate or the buyer's destination rate correctly, based on cumulative EU-wide sales — you don't track the threshold yourself. Opt-out available, per Article 59c(3).

§ calc.rate

Reduced-rate categories

Country-specific exceptions for e-books, newspapers, and periodicals — instead of a blanket standard-rate assumption that's wrong for them.

§ calc.input

Tax-inclusive or tax-exclusive, explicitly

You state which one you're sending. No silent assumption either direction.

§ val.number

VAT number validation, built into the flow

Not a bolted-on separate step, and not a bare yes/no. If the validation service is down, that's returned as its own explicit outcome — so checkout can hold and retry instead of guessing wrong in either direction.

§ val.audit

An audit trail, not just a number

Every response carries the rate's source and effective date, sourced directly from the European Commission's TEDB — not a resold or aggregated feed.

How we're different

A calculation layer, not a new checkout.

Merchant of Record

Paddle, Dodo Payments, and similar

They become the legal seller of your product. Checkout routes through them — replacing your existing Stripe setup — and they take a cut, commonly 3.5–7%+ per transaction, in exchange for handling tax, invoicing, payment processing, and remittance end to end.

Best below ~€20k MRR, when you'd rather not handle filings yourself
Compliance & accounting services

Registrations, filings, bookkeeping

Real, valuable, human-assisted work. But it's not a developer tool, and it's not something a checkout flow can call in real time — you onboard over weeks, not an afternoon.

Best for registration & filing, not runtime
Stripe's native add-on

Stripe Tax

Calculates tax within Stripe Checkout or Billing. Costs 0.5% of transaction value (no-code) or €0.50/transaction via API — on top of Stripe's normal processing fees. You still configure registrations, product tax codes, and tax-ID collection yourself.

Convenient if you're already all-in on Stripe Billing; costly at volume
Pricing

Usage-based pricing. Zero revenue share.

Metered by calculation volume, never by revenue.

Your bill moves with usage, not with your product price or your margins.

Upgrade or downgrade anytime: no sales calls, no contractsSelf-serve dashboard: usage, API keys, and add-ons, always visibleRates verified against official EU sources