Free, open-source API for calculating self-employed and contractor taxes across 50 countries. Built for AI agents.
Base URL: https://rel.tax
Endpoints
GET/v1/calculate/:country?paramsCalculate taxes (query params)
POST/v1/calculate/:countryCalculate taxes (JSON body)
GET/v1/countriesList supported countries
GET/v1/countries/:countryCountry-specific docs
GET/openapi.jsonOpenAPI 3.1 specification
GET/.well-known/ai-plugin.jsonAI plugin manifest
GET/healthHealth check
Quick Example
curl "https://rel.tax/v1/calculate/de?income=60000"
POST Example
curl -X POST https://rel.tax/v1/calculate/us \
-H "Content-Type: application/json" \
-d '{"income": 100000, "qbiDeduction": true}'
All endpoints return JSON. CORS enabled for all origins. No authentication required.
Supported Countries
50 countries live. Click any card to see full parameter docs below.
๐ต๐ฑ
PLPoland
ZUS, Health, PIT
๐ฉ๐ช
DEGermany
ESt, Soli, Church, Social
๐ณ๐ฑ
NLNetherlands
Box 1, ZVW, MKB
๐ฌ๐ง
GBUnited Kingdom
Income Tax, NIC
๐ช๐ธ
ESSpain
IRPF, RETA
๐ต๐น
PTPortugal
IRS, SS, Simplified
๐ช๐ช
EEEstonia
FIE, Social Tax
๐ท๐ธ
RSSerbia
Preduzetnik, Pausalac
๐บ๐ธ
USUnited States
SE Tax, Federal ISR
๐จ๐ฆ
CACanada
CPP, EI, Provincial
๐ฒ๐ฝ
MXMexico
RESICO, ISR
๐ฆ๐บ
AUAustralia
Income Tax, Medicare
๐ณ๐ฟ
NZNew Zealand
PAYE, ACC, KiwiSaver
๐ฏ๐ต
JPJapan
Income, Resident, NHI
๐ฌ๐ช
GEGeorgia
SBS 1% Turnover
๐ฆ๐ฒ
AMArmenia
IT 1%, Turnover Tax
๐ง๐ฌ
BGBulgaria
10% flat, 25% NPR
๐จ๐ฟ
CZCzech Republic
OSVฤ, 15%/23%, Pauลกรกl
๐ท๐ด
RORomania
PFA, SRL 1% micro
๐ฆ๐ช
AEUAE
0% PIT, 9% corp
๐ฒ๐ช
MEMontenegro
Progressive 0/9/15%
๐จ๐พ
CYCyprus
Progressive, GESY
๐ธ๐ฌ
SGSingapore
Progressive, MediSave
๐ญ๐ท
HRCroatia
Obrt, Pauลกalni
๐ญ๐บ
HUHungary
KATA, EV
๐น๐ญ
THThailand
Progressive brackets
๐ฒ๐พ
MYMalaysia
Progressive, Personal relief
๐จ๐ท
CRCosta Rica
Territorial tax, CCSS
๐ฎ๐ฉ
IDIndonesia
UMKM 0.5%, Progressive
๐จ๐ด
COColombia
UVT progressive, IBC
๐ง๐ช
BEBelgium
Progressive, Tiered social
๐ซ๐ท
FRFrance
Micro-BNC, VL
๐ต๐ญ
PHPhilippines
8% flat, Graduated
๐ฎ๐น
ITItaly
Forfettario, IRPEF
๐ฑ๐น
LTLithuania
Progressive, Sodra
๐ฌ๐ท
GRGreece
Progressive, EFKA
๐ฎ๐ช
IEIreland
Income Tax, USC, PRSI
๐ฆ๐น
ATAustria
Progressive, SVS
๐ธ๐ช
SESweden
Egenavgifter, Municipal
๐ฎ๐ฑ
ILIsrael
Progressive, NI, Health
๐ฎ๐ณ
INIndia
44ADA, New/Old Regime
๐ฉ๐ฐ
DKDenmark
AM-bidrag, Bundskat
๐ซ๐ฎ
FIFinland
YEL, Progressive
๐ณ๐ด
NONorway
Trinnskatt, Trygdeavgift
๐จ๐ญ
CHSwitzerland
Federal, Cantonal, AHV
๐ฑ๐ป
LVLatvia
PIT progressive, Micro
๐ธ๐ฐ
SKSlovakia
SZฤO, 15% flat, Pauลกรกl
๐ธ๐ฎ
SISlovenia
Normiranec, Progressive
๐ฒ๐น
MTMalta
Progressive, Class 2 SSC
๐น๐ท
TRTurkey
BAฤ-KUR, Progressive
๐
Try the API interactively
WhereTo.Work lets you compare take-home pay across countries side by side โ powered by this API. Free, no signup required.
๐ต๐ฑ Poland
Tax Year 2026 ยท Polish B2B: ZUS, Health Insurance, PIT
Example
GET /v1/calculate/pl?income=10000&taxationType=lumpsum&lumpSumRate=12
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Monthly gross income PLN |
taxationType | string | lumpsum | lumpsum, linear, scale |
lumpSumRate | number | 12 | One of: 2, 3, 5.5, 8.5, 10, 12, 14, 15, 17 |
zusRate | string | normal | normal, preferential, start, none |
sickInsurance | boolean | false | Include chorobowe (2.45%) |
costs | number | 0 | Monthly business costs PLN |
paidDaysOff | number | 26 | Vacation days/year |
weeklyHours | number | 40 | Weekly working hours |
zusBase | number | 60 | ZUS base as % of avg salary |
sickDays | number | 0 | Days on sick leave |
vatPayer | boolean | true | Include VAT calculation (23%) |
๐ณ๐ฟ New Zealand
Tax Year 2026 (Apr 2025 - Mar 2026) ยท PAYE, ACC, KiwiSaver
Example
GET /v1/calculate/nz?income=75000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Gross income NZD |
incomePeriod | string | yearly | monthly or yearly |
kiwiSaverRate | number | 3 | One of: 0, 3, 4, 6, 8, 10 |
studentLoan | boolean | false | Has student loan |
acc | boolean | true | Include ACC earners' levy (1.67%) |
gstRegistered | boolean | false | GST registered (15%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ฆ๐บ Australia
Tax Year 2026 (Jul 2025 - Jun 2026) ยท Income Tax, Medicare, HELP/HECS
Example
GET /v1/calculate/au?income=100000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Taxable income AUD |
incomePeriod | string | yearly | monthly or yearly |
helpDebt | boolean | false | Has HELP/HECS student loan |
medicareLevyExempt | boolean | false | Full Medicare levy exemption |
privateHealth | boolean | false | Has private hospital cover |
superRate | number | 0 | Self-funded super % (0 = employer default 12%) |
gstRegistered | boolean | false | GST registered (10%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ฌ๐ง United Kingdom
Tax Year 2026 (Apr 2025 - Apr 2026) ยท Income Tax, Class 4 NIC, Student Loans
Example
GET /v1/calculate/gb?income=50000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income GBP |
incomePeriod | string | yearly | monthly or yearly |
region | string | england | england or scotland |
studentLoan | string | none | none, plan1, plan2, plan4, plan5, postgrad |
vatRegistered | boolean | false | VAT registered (20%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 28 | Annual leave days |
๐บ๐ธ United States
Tax Year 2025 ยท Federal Self-Employment Tax & Income Tax (Single Filer)
Example
GET /v1/calculate/us?income=100000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Net self-employment income USD |
incomePeriod | string | yearly | monthly or yearly |
filingStatus | string | single | single |
qbiDeduction | boolean | true | Apply QBI deduction (20%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐จ๐ฆ Canada
Tax Year 2025 ยท Federal + Provincial: CPP, EI, Income Tax
Example
GET /v1/calculate/ca?income=100000&province=ON
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Net self-employment income CAD |
incomePeriod | string | yearly | monthly or yearly |
province | string | ON | ON, BC, AB, QC, MB, SK, NS, NB, PE, NL, YT, NT, NU |
eiOptIn | boolean | false | Opted into EI (maternity/compassionate only) |
gstRegistered | boolean | false | GST/HST registered |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ฉ๐ช Germany
Tax Year 2025 ยท Einkommensteuer, Solidarity Surcharge, Church Tax, Social Insurance
Example
GET /v1/calculate/de?income=60000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income EUR |
incomePeriod | string | yearly | monthly or yearly |
churchTax | string | none | none, 8 (BW/BY), 9 (other states) |
hasChildren | boolean | true | Affects Pflegeversicherung rate |
healthInsurance | string | statutory | statutory or none |
zusatzbeitrag | number | 2.5 | GKV supplementary rate % |
pensionInsurance | boolean | false | Voluntary pension insurance |
gewerbesteuer | boolean | false | Subject to trade tax (Gewerbetreibende) |
hebesatz | number | 400 | Municipal trade tax multiplier % |
vatRegistered | boolean | false | VAT registered (19%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 30 | Annual leave days |
๐ช๐ธ Spain
Tax Year 2025 ยท IRPF (Income Tax), Autonomo Social Security (RETA)
Example
GET /v1/calculate/es?income=40000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income EUR |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Annual deductible business expenses EUR |
newAutonomo | boolean | false | New autonomo (tarifa plana SS + 20% IRPF reduction) |
vatRegistered | boolean | false | IVA registered (21%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 22 | Annual leave days |
๐ช๐ช Estonia
Tax Year 2026 ยท FIE (Sole Proprietor): Income Tax, Social Tax, II Pillar Pension
Example
GET /v1/calculate/ee?income=60000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Gross business income EUR |
incomePeriod | string | yearly | monthly or yearly |
pensionPillarRate | number | 2 | II pillar: 0, 2, 4, or 6% |
vatRegistered | boolean | false | VAT registered (22%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ฏ๐ต Japan
Tax Year 2025 ยท Income Tax, Resident Tax, Business Tax, NHI, National Pension
Example
GET /v1/calculate/jp?income=5000000
GET /v1/calculate/jp?income=10000000&blueReturn=none&businessTaxRate=3
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross business income JPY |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Annual deductible business expenses JPY |
blueReturn | string | full | Blue return tier: full (650k), paper (550k), basic (100k), none |
businessTaxRate | number | 5 | Business tax rate: 3, 4, or 5% |
nhiRate | number | 10 | NHI income-based rate % (varies by municipality) |
consumptionTax | boolean | false | Consumption tax registered (10%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 15 | Annual leave days |
๐ท๐ธ Serbia
Tax Year 2025 ยท Preduzetnik (licna zarada) & Pausalac (lump-sum)
Example
GET /v1/calculate/rs?income=60000
GET /v1/calculate/rs?income=50000&taxModel=pausalac&pausalnaOsnovica=50000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income |
incomePeriod | string | yearly | monthly or yearly |
currency | string | EUR | EUR or RSD (input/output currency) |
expenses | number | 0 | Annual deductible expenses (preduzetnik only) |
taxModel | string | preduzetnik | preduzetnik or pausalac |
pausalnaOsnovica | number | 0 | Monthly lump-sum base in RSD (required for pausalac) |
vatRegistered | boolean | false | PDV registered (20%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ฌ๐ช Georgia
Tax Year 2025 ยท Small Business Status (SBS) Turnover Tax, Pension
Example
GET /v1/calculate/ge?income=100000
GET /v1/calculate/ge?income=100000&taxRegime=regular&expenses=20000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Gross business income GEL |
incomePeriod | string | yearly | monthly or yearly |
taxRegime | string | sbs | sbs (1% turnover) or regular (20% flat) |
expenses | number | 0 | Business expenses GEL (regular regime only) |
vatRegistered | boolean | false | VAT registered (18%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ฆ๐ฒ Armenia
Tax Year 2025 ยท IT Turnover Tax (1%), General Turnover (10%), Social Payments
Example
GET /v1/calculate/am?income=50000000&taxRegime=turnover_it
GET /v1/calculate/am?income=20000000&taxRegime=turnover_it
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Gross business income AMD |
incomePeriod | string | yearly | monthly or yearly |
currency | string | AMD | AMD or USD (label only) |
taxRegime | string | turnover_it | turnover_it (1%), turnover_general (10%), regular (20%) |
expenses | number | 0 | Business expenses AMD (regular regime only) |
vatRegistered | boolean | false | VAT registered (20%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ฒ๐ฝ Mexico
Tax Year 2025 ยท RESICO (Simplified Trust) & General ISR
Example
GET /v1/calculate/mx?income=1000000
GET /v1/calculate/mx?income=500000&taxRegime=general&expenses=100000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Gross business income MXN |
incomePeriod | string | yearly | monthly or yearly |
taxRegime | string | resico | resico (1-2.5% tiered) or general (ISR progressive) |
expenses | number | 0 | Business expenses MXN (general regime only) |
imssOptIn | boolean | false | Voluntary IMSS social security |
vatRegistered | boolean | true | IVA registered (16%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 15 | Annual leave days |
๐ต๐น Portugal
Tax Year 2025 ยท IRS (Income Tax), Social Security, Simplified Regime
Example
GET /v1/calculate/pt?income=60000
GET /v1/calculate/pt?income=60000&accountingRegime=organized&expenses=15000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income EUR |
incomePeriod | string | yearly | monthly or yearly |
activityType | string | services_listed | services_listed, services_other, sales |
expenses | number | 0 | Business expenses EUR (organized regime only) |
accountingRegime | string | simplified | simplified or organized |
newFreelancer | boolean | false | First 12 months (social security exempt) |
vatRegistered | boolean | false | IVA registered (23%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 22 | Annual leave days |
๐ง๐ฌ Bulgaria
Tax Year 2025 ยท Freelancer (ัะฒะพะฑะพะดะฝะฐ ะฟัะพัะตัะธั) & Sole Trader (ะะข): Social, Health, Income Tax
Example
GET /v1/calculate/bg?income=60000
GET /v1/calculate/bg?income=60000&activityType=sole_trader&expenses=20000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Gross business income BGN |
incomePeriod | string | yearly | monthly or yearly |
activityType | string | freelancer | freelancer (10%, 25% NPR) or sole_trader (15%, actual expenses) |
expenses | number | 0 | Business expenses BGN (sole_trader only) |
includeOzm | boolean | false | Include illness & maternity (3.5%) |
vatRegistered | boolean | false | VAT registered (20%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐จ๐ฟ Czech Republic
Tax Year 2025 ยท OSVฤ: Income Tax (15%/23%), Social Insurance (29.2%), Health Insurance (13.5%), Flat-Rate Expenses
Example
GET /v1/calculate/cz?income=1000000
GET /v1/calculate/cz?income=1000000&expenseMethod=flat_80
GET /v1/calculate/cz?income=1000000&expenseMethod=actual&expenses=300000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Gross business income CZK |
incomePeriod | string | yearly | monthly or yearly |
expenseMethod | string | flat_60 | flat_80 craft, flat_60 trades (default), flat_40 professionals, flat_30 rental, actual |
expenses | number | 0 | Actual business expenses CZK (expenseMethod=actual only) |
vatRegistered | boolean | false | DPH registered (21%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 25 | Annual leave days |
๐ท๐ด Romania
Tax Year 2025 ยท PFA (Freelancer) & SRL Micro-Enterprise (1%/3% Turnover Tax)
Example
GET /v1/calculate/ro?income=120000&expenses=20000
GET /v1/calculate/ro?income=120000&entityType=srl_micro
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross revenue RON |
incomePeriod | string | yearly | monthly or yearly |
entityType | string | pfa | pfa (freelancer) or srl_micro (micro-enterprise) |
expenses | number | 0 | Annual business expenses RON (PFA only) |
microRate | number | 1 | Micro tax %: 1 (with employee) or 3 (without) |
optInCas | boolean | false | Opt into CAS pension when below threshold (PFA only) |
vatRegistered | boolean | false | TVA registered (19%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 21 | Annual leave days |
๐ฆ๐ช United Arab Emirates
Tax Year 2025 ยท 0% Personal Income Tax / 9% Corporate Tax (Free Zone)
Example
GET /v1/calculate/ae?income=500000&entityType=freezone&expenses=50000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross revenue AED |
incomePeriod | string | yearly | monthly or yearly |
entityType | string | freelancer | freelancer (0% PIT) or freezone (9% corp tax) |
expenses | number | 0 | Business expenses AED (freezone only) |
vatRegistered | boolean | false | VAT registered (5%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 30 | Annual leave days |
๐ฒ๐ช Montenegro
Tax Year 2025 ยท Progressive Income Tax (0/9/15%) + Social Contributions (26%)
Example
GET /v1/calculate/me?income=60000&expenses=5000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross revenue EUR |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Annual business expenses EUR |
vatRegistered | boolean | false | PDV registered (21%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐จ๐พ Cyprus
Tax Year 2025 ยท Progressive Income Tax (0โ35%) + Social Insurance (16.6%) + GESY (2.65%)
Example
GET /v1/calculate/cy?income=80000&expenses=5000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross revenue EUR |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Annual business expenses EUR |
vatRegistered | boolean | false | FPA registered (19%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ธ๐ฌ Singapore
Tax Year 2025 ยท Progressive Income Tax (0โ24%) + MediSave (8โ10.5%)
Example
GET /v1/calculate/sg?income=120000&expenses=10000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross revenue SGD |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Deductible business expenses SGD |
ageGroup | string | below35 | below35, age35to44, age45to49, age50plus |
vatRegistered | boolean | false | GST registered (9%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 14 | Annual leave days |
๐ญ๐ท Croatia
Tax Year 2025 ยท Obrt (20/30% + Surtax) & Pauลกalni Obrt (Fixed โฌ230/mo)
Example
GET /v1/calculate/hr?income=60000&expenses=10000&taxModel=obrt
GET /v1/calculate/hr?income=35000&taxModel=pausalni
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross revenue EUR |
incomePeriod | string | yearly | monthly or yearly |
taxModel | string | obrt | obrt (real income) or pausalni (flat-rate) |
expenses | number | 0 | Business expenses EUR (obrt only) |
surtax | string | zagreb | zagreb (18%), split (10%), rijeka/osijek (13%), none |
vatRegistered | boolean | false | PDV registered (25%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ญ๐บ Hungary
Tax Year 2025 ยท KATA (HUF 50k/mo flat tax) & EV (15% SZJA + 31.5% social)
Example
GET /v1/calculate/hu?income=12000000&taxModel=kata
GET /v1/calculate/hu?income=12000000&taxModel=ev&expenses=2000000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross revenue HUF |
incomePeriod | string | yearly | monthly or yearly |
taxModel | string | kata | kata (flat tax) or ev (individual entrepreneur) |
expenses | number | 0 | Business expenses HUF (EV only) |
vatRegistered | boolean | false | รFA registered (27%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ณ๐ฑ Netherlands
Tax Year 2026 ยท Box 1 Income Tax, ZVW, Zelfstandigenaftrek, MKB-winstvrijstelling
Example
GET /v1/calculate/nl?income=60000
GET /v1/calculate/nl?income=60000&starter=true
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual business profit EUR |
incomePeriod | string | yearly | monthly or yearly |
starter | boolean | false | First 3 years (startersaftrek โฌ2,123) |
hoursExempt | boolean | false | Does NOT meet 1,225-hour criterion |
vatRegistered | boolean | true | BTW registered (21%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 25 | Annual leave days |
๐น๐ญ Thailand
Tax Year 2025 ยท Progressive 0โ35%, Expense deduction, Personal allowance
Example
GET /v1/calculate/th?income=1200000
GET /v1/calculate/th?income=100000&incomePeriod=monthly&vatRegistered=true
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income THB |
incomePeriod | string | yearly | monthly or yearly |
vatRegistered | boolean | false | VAT registered (7%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 6 | Annual leave days |
๐ฒ๐พ Malaysia
Tax Year 2025 ยท Progressive 0โ30%, Personal relief RM 9,000
Example
GET /v1/calculate/my?income=120000
GET /v1/calculate/my?income=10000&incomePeriod=monthly
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income MYR |
incomePeriod | string | yearly | monthly or yearly |
vatRegistered | boolean | false | SST registered (8%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 11 | Annual leave days |
๐จ๐ท Costa Rica
Tax Year 2025 ยท Territorial tax, Progressive 0โ25%, CCSS 10%
Example
GET /v1/calculate/cr?income=24000000
GET /v1/calculate/cr?income=24000000&expenses=5000000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income CRC |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Deductible business expenses CRC |
vatRegistered | boolean | false | IVA registered (13%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 15 | Annual leave days |
๐ฎ๐ฉ Indonesia
Tax Year 2025 ยท UMKM 0.5% final tax & Progressive 5โ35%
Example
GET /v1/calculate/id?income=1000000000&taxModel=umkm
GET /v1/calculate/id?income=300000000&taxModel=progressive
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross revenue IDR |
incomePeriod | string | yearly | monthly or yearly |
taxModel | string | umkm | umkm (0.5% final) or progressive (5โ35%) |
vatRegistered | boolean | false | PPN registered (12%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 12 | Annual leave days |
๐จ๐ด Colombia
Tax Year 2025 ยท UVT-based progressive, IBC social contributions
Example
GET /v1/calculate/co?income=100000000
GET /v1/calculate/co?income=100000000&expenses=20000000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income COP |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Deductible business expenses COP |
vatRegistered | boolean | false | IVA registered (19%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 15 | Annual leave days |
๐ง๐ช Belgium
Tax Year 2025 ยท Progressive 25โ50%, Tiered social, Tax-free credit
Example
GET /v1/calculate/be?income=80000
GET /v1/calculate/be?income=80000&expenses=15000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income EUR |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Deductible business expenses EUR |
vatRegistered | boolean | false | BTW registered (21%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ซ๐ท France
Tax Year 2025 ยท Micro-BNC (23.1% social + progressive) & Versement Libรฉratoire (25.3% flat)
Example
GET /v1/calculate/fr?income=60000&taxModel=micro_bnc
GET /v1/calculate/fr?income=60000&taxModel=versement_liberatoire
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual turnover EUR |
incomePeriod | string | yearly | monthly or yearly |
taxModel | string | micro_bnc | micro_bnc or versement_liberatoire |
vatRegistered | boolean | false | TVA registered (20%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 25 | Annual leave days |
๐ต๐ญ Philippines
Tax Year 2025 ยท 8% Flat Rate or Graduated Progressive Income Tax
Example
GET /v1/calculate/ph?income=1500000&taxModel=flat_8
GET /v1/calculate/ph?income=1500000&taxModel=graduated
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross receipts PHP |
incomePeriod | string | yearly | monthly or yearly |
taxModel | string | flat_8 | flat_8 (8% above 250K) or graduated (progressive + 3% percentage tax) |
vatRegistered | boolean | false | VAT registered (12%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 5 | Annual leave days |
๐ฎ๐น Italy
Tax Year 2025 ยท Forfettario (15%/5% substitute tax) or Ordinario (IRPEF progressive) + INPS 26.07%
Example
GET /v1/calculate/it?income=60000&taxModel=forfettario
GET /v1/calculate/it?income=60000&taxModel=ordinario
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income EUR |
incomePeriod | string | yearly | monthly or yearly |
taxModel | string | forfettario | forfettario or ordinario |
startup | boolean | false | First 5 years startup rate (5%, forfettario only) |
profitabilityCoefficient | number | 0.78 | Taxable income as % of gross (forfettario) |
vatRegistered | boolean | false | IVA registered (22%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ฑ๐น Lithuania
Tax Year 2025 ยท Individual Activity: 3-bracket progressive (5/15/20%) + Sodra 19.5% + PSD health
Example
GET /v1/calculate/lt?income=60000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income EUR |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Annual business expenses EUR |
vatRegistered | boolean | false | PVM registered (21%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ฌ๐ท Greece
Tax Year 2025 ยท 5-bracket progressive (9-44%) + EFKA social + optional 50% relocator regime
Example
GET /v1/calculate/gr?income=60000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income EUR |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Annual business expenses EUR |
newBusiness | boolean | false | First 5 years (reduced EFKA) |
specialRegime | boolean | false | 50% income exemption for relocators (7 years) |
vatRegistered | boolean | false | FPA registered (24%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ฎ๐ช Ireland
Tax Year 2025 ยท Income Tax (20/40%) + USC (5-bracket) + PRSI Class S (4.1%) - Tax Credits
Example
GET /v1/calculate/ie?income=80000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income EUR |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Annual business expenses EUR |
vatRegistered | boolean | false | VAT registered (23%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ฆ๐น Austria
Tax Year 2025 ยท 7-bracket progressive (0-55%) + SVS social 26.83% + Gewinnfreibetrag 15%
Example
GET /v1/calculate/at?income=80000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income EUR |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Annual business expenses EUR |
vatRegistered | boolean | false | USt registered (20%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 25 | Annual leave days |
๐ธ๐ช Sweden
Tax Year 2025 ยท Egenavgifter 28.97% + municipal ~32% + state 20% above SEK 613,900
Example
GET /v1/calculate/se?income=600000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income SEK |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Annual business expenses SEK |
municipalRate | number | 0.3237 | Municipal tax rate (varies by kommun) |
vatRegistered | boolean | false | Moms registered (25%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 25 | Annual leave days |
๐ฎ๐ฑ Israel
Tax Year 2025 ยท 7-bracket progressive (10-50%) + National Insurance + Health Tax + Credit Points
Example
GET /v1/calculate/il?income=300000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income ILS |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Annual business expenses ILS |
vatRegistered | boolean | false | Ma'am registered (18%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 12 | Annual leave days |
๐ฎ๐ณ India
Tax Year 2025 ยท Presumptive 44ADA | New Regime (7-bracket) | Old Regime (4-bracket) + 4% Cess
Example
GET /v1/calculate/in?income=3000000&taxModel=presumptive
GET /v1/calculate/in?income=2000000&taxModel=new_regime
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross receipts INR |
incomePeriod | string | yearly | monthly or yearly |
taxModel | string | presumptive | presumptive (44ADA), new_regime, or old_regime |
vatRegistered | boolean | false | GST registered (18%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 15 | Annual leave days |
๐ฉ๐ฐ Denmark
Tax Year 2025 ยท AM-bidrag 8% + Bundskat + Municipal + Topskat
Example
GET /v1/calculate/dk?income=600000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income DKK |
incomePeriod | string | yearly | monthly or yearly |
municipalRate | number | 0.251 | Municipal tax rate (varies by kommune) |
churchTax | boolean | false | Include church tax |
churchRate | number | 0.007 | Church tax rate |
vatRegistered | boolean | false | Moms registered (25%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 25 | Annual leave days |
๐ซ๐ฎ Finland
Tax Year 2025 ยท State Progressive + Municipal + YEL Pension 24.10% + Health 2.10%
Example
GET /v1/calculate/fi?income=60000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income EUR |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Annual business expenses EUR |
municipalRate | number | 0.0928 | Municipal tax rate |
vatRegistered | boolean | false | ALV registered (25.5%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 25 | Annual leave days |
๐ณ๐ด Norway
Tax Year 2025 ยท Ordinary 22% + Trinnskatt (6-tier) + Trygdeavgift 10.9%
Example
GET /v1/calculate/no?income=700000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income NOK |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Annual business expenses NOK |
vatRegistered | boolean | false | MVA registered (25%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 25 | Annual leave days |
๐จ๐ญ Switzerland
Tax Year 2025 ยท Federal Progressive + Cantonal + AHV/IV/EO 10%
Example
GET /v1/calculate/ch?income=120000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income CHF |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Annual business expenses CHF |
cantonalRate | number | 0.12 | Cantonal+municipal rate (default: Zurich approx) |
vatRegistered | boolean | false | MWST registered (8.1%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 25 | Annual leave days |
๐ฑ๐ป Latvia
Tax Year 2025 ยท Standard PIT (20/23/31%) + SSC 31.07% | Micro-enterprise 25%
Example
GET /v1/calculate/lv?income=40000
GET /v1/calculate/lv?income=30000&taxModel=micro
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income EUR |
incomePeriod | string | yearly | monthly or yearly |
taxModel | string | standard | standard (progressive) or micro (25% flat) |
expenses | number | 0 | Business expenses EUR (standard only) |
vatRegistered | boolean | false | PVN registered (21%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ธ๐ฐ Slovakia
Tax Year 2025 ยท SZฤO: 15% (revenue โค 100K) or 19/25% + Social 33.15% + Health 15%
Example
GET /v1/calculate/sk?income=60000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income EUR |
incomePeriod | string | yearly | monthly or yearly |
useFlatExpenses | boolean | true | 60% flat expenses (max EUR 20,000) |
actualExpenses | number | 0 | Actual expenses (when flat=false) |
vatRegistered | boolean | false | DPH registered (23%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ธ๐ฎ Slovenia
Tax Year 2025 ยท Normiranec (eff. 4%) or Progressive (16-50%) + Social 38.20%
Example
GET /v1/calculate/si?income=80000&taxModel=normiranec
GET /v1/calculate/si?income=60000&taxModel=standard
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income EUR |
incomePeriod | string | yearly | monthly or yearly |
taxModel | string | normiranec | normiranec (80% norm. expenses) or standard |
expenses | number | 0 | Business expenses (standard only) |
vatRegistered | boolean | false | DDV registered (22%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 20 | Annual leave days |
๐ฒ๐น Malta
Tax Year 2025 ยท Progressive (0-35%) + Class 2 SSC 15% (capped)
Example
GET /v1/calculate/mt?income=50000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income EUR |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Annual business expenses EUR |
vatRegistered | boolean | false | VAT registered (18%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 24 | Annual leave days |
๐น๐ท Turkey
Tax Year 2025 ยท Non-employment Progressive (15-40%) + BAฤ-KUR 34.5%
Example
GET /v1/calculate/tr?income=500000
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
income | number | required | Annual gross income TRY |
incomePeriod | string | yearly | monthly or yearly |
expenses | number | 0 | Annual business expenses TRY |
bagkurBase | string | minimum | minimum, actual, or maximum |
vatRegistered | boolean | false | KDV registered (20%) |
weeklyHours | number | 40 | Weekly working hours |
paidDaysOff | number | 14 | Annual leave days |
Response Format
All /v1/calculate/:country endpoints return a consistent JSON structure with country-specific details.
Response Structure
{
"country": "de",
"taxYear": 2025,
"input": { /* echoed input parameters */ },
"monthly": {
"gross": 5000.00,
"vat": 0,
"grossWithVat": 5000.00,
"socialInsurance": 846.89,
"healthInsurance": 0,
"incomeTax": 671.83,
"totalDeductions": 1518.72,
"net": 3481.28
},
"yearly": {
"gross": 60000.00,
"socialInsurance": 10162.68,
"healthInsurance": 0,
"incomeTax": 8061.92,
"totalDeductions": 18224.60,
"net": 41775.40
},
"rates": {
"effectiveTaxRate": 0.3037,
"dailyRate": 189.03,
"hourlyRate": 23.63,
"workingDays": 221
},
"details": { /* country-specific calculation details */ }
}
Field Reference
| Field | Description |
|---|---|
monthly.gross | Monthly gross income in local currency |
monthly.vat | VAT/GST amount (0 if not registered) |
monthly.socialInsurance | Social/pension contributions per month |
monthly.healthInsurance | Health insurance per month (some countries fold this into socialInsurance) |
monthly.incomeTax | Income tax per month |
monthly.net | Take-home pay per month |
yearly.* | Same fields annualized |
rates.effectiveTaxRate | Total deductions as fraction of gross (0-1) |
rates.dailyRate | Net income per working day |
rates.hourlyRate | Net income per hour (based on weeklyHours) |
rates.workingDays | Working days minus paid days off |
details | Country-specific breakdown (brackets, bases, intermediate values) |
Error Response
{ "error": "income is required and must be a positive number" }
Errors return HTTP 400 with a descriptive message. Unsupported country codes return HTTP 404.
Agent Integration Guide
Instructions for AI agents that need to calculate taxes programmatically.
MCP Server (Claude Desktop / Claude Code)
Use rel.tax as a native tool in Claude Desktop or Claude Code via Model Context Protocol:
npx @reltax/mcp-server
Add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"reltax": {
"command": "npx",
"args": ["@reltax/mcp-server"]
}
}
}
Three tools are available:
reltax_list_countriesโ List all 50 supported countriesreltax_get_country_infoโ Get tax parameters for a countryreltax_calculate_taxโ Calculate B2B taxes with full breakdown
Auto-Import
Import the OpenAPI 3.1 spec into your framework of choice:
- LangChain โ
OpenAPIToolkit.from_openapi_spec(url) - OpenAI function calling โ import as tool definitions
- Claude tool use โ convert paths to tool schemas
- ChatGPT Plugin โ discovered via
/.well-known/ai-plugin.json
Step 1: Determine the Country
Use the two-letter ISO country code. Call /v1/countries for the full list of 50 supported countries.
Step 2: Build the Request
Only income is required. All other parameters have sensible defaults. Use GET with query params for simplicity:
GET https://rel.tax/v1/calculate/de?income=75000&churchTax=9
Step 3: Parse the Response
The key fields you likely need:
yearly.netโ annual take-home paymonthly.netโ monthly take-home payrates.effectiveTaxRateโ total tax burden as decimalrates.hourlyRateโ effective hourly rate after all deductionsyearly.totalDeductionsโ total annual taxes and contributions
Tips
- Income is always in the country's local currency unless the country supports currency selection (Serbia: EUR or RSD)
- All countries support
incomePeriod(monthly/yearly). Poland defaults to monthly; most others default to yearly - To compare countries, normalize to yearly income first
- The
detailsobject contains intermediate calculation values useful for explaining results - Fetch
/v1/countries/:codefor machine-readable parameter docs at runtime
Copied to clipboard