Gross-to-Net Salary Calculator (Germany & UK)
Net pay to the cent, every deduction and the employer's cost for Germany and the UK, computed with the official payroll algorithms and matching 1,552 of 1,552 official test cases.
- Price
- 1 credit / call
- Endpoints
- 5
- Sources
- BMF Programmablaufplan (DE), SV-Rechengrößen (DE), HMRC PAYE and NICs (UK), HMRC payroll test data (UK)
- Last change
- 2026-09-29
- Version
- 1.0.0
Playground
Try it, no key needed
Change any value and send. Calls here are free and limited per hour.
playground
Same request with curl
Net salary to the cent, not an approximation. Send a gross salary and a short profile, get back the net pay, every employee deduction and every employer contribution on its own line, each with the rule applied and the official source. Also works backwards (net → gross) and side by side across countries and years.
Built for job boards and salary-comparison sites that show "net per month", relocation and mobility platforms, employer-of-record and contractor-vs-employee calculators, offer-letter and HR tools, and budgeting apps (also available as an MCP server for AI agents). Payroll rules change every year; this API keeps each country and tax year callable so you don't have to maintain them.
Coverage - Germany 2025 and 2026: wage tax from our own implementation of the BMF Programmablaufplan (tax classes I–VI, child allowances, factor procedure for class IV, annual tax allowance, age relief), solidarity surcharge, church tax (8 % in BY/BW, 9 % elsewhere), health insurance with the fund's add-on rate, long-term care with the childless surcharge, child discounts and the Saxony split, pension and unemployment insurance with the contribution ceilings, and the employer's shares plus the insolvency levy. - United Kingdom 2025-26 and 2026-27: PAYE income tax with any tax code (L, K, BR, D0–D3, NT, 0T, week 1/month 1, cumulative with pay and tax to date), Scottish (S) and Welsh (C) rates, and Class 1 National Insurance for categories A, B, C, H, J, M, V and Z with the employer's NICs.
Proven, not claimed. The German engine matches 320 of 320 labelled cases from the BMF's own wage-tax calculator (2025 and 2026), and the UK engine matches all 1,232 rows of HMRC's official payroll test data (336 PAYE rows and 896 National Insurance rows). The pass rates are measured on every change and published on this page and in the dev log.
Endpoints
- POST /net – gross → net with a line-by-line breakdown, employer cost, annualised totals, notes and sources.
- POST /gross – net → gross: the smallest gross pay that yields at least the target net, using the same engine.
- POST /compare – up to 8 scenarios (countries, years, profiles) side by side.
- GET /parameters – the thresholds and rates in use for a country and year, with sources.
- GET /countries – coverage, supported years, periods and profile fields, and what is planned.
Example – POST /net with {"country": "DE", "year": 2026, "gross": 4500, "period": "month", "de": {"tax_class": 1, "state": "BY", "church": true}}:
{"country": "DE", "year": 2026, "currency": "EUR", "gross": 4500.0, "net": 2819.08,
"employee_deductions": 1680.92, "employer_cost": 5458.5, "deduction_rate": 37.35,
"lines": [
{"key": "income_tax", "label": "Lohnsteuer (wage tax)", "amount": 650.16, "payer": "employee",
"rule": "PAP 2026: tax class 1, 0 child allowances, pay period month", "source": "BMF: Programmablaufplan … 2026"},
{"key": "church_tax", "label": "Kirchensteuer", "amount": 52.01, "payer": "employee", "rate": 8.0,
"rule": "8 % (Bayern) of the church-tax base 650.16 EUR …"},
{"key": "health_insurance", "amount": 393.75, "payer": "employee", "rate": 8.75, "base": 4500.0,
"rule": "14.6 % general rate + 2.9 % add-on, split equally"},
{"key": "care_insurance", "amount": 108.0, "payer": "employee",
"rule": "3.6 % total; +0.6 % childless surcharge paid by the employee (age 23+, no children)"}],
"disclaimer": "Estimate for offers, budgeting and comparisons, not a payroll run …"}
Not yet supported and rejected with a clear 400 instead of approximated: German Minijob/Midijob pay (up to 2,000 EUR/month), private health insurance, employees above retirement age; UK student loans and pensions. Results are estimates, not a payroll run or tax advice.
Endpoints
/v1/salary-net/net
Gross to net: net pay, deductions and employer cost. Computes net pay from gross pay for one pay period with the country's official payroll algorithm. Returns every employee deduction and employer contribution as a line with the rule applied and its source, the employer's total cost, annualised figures and the assumptions made.
/v1/salary-net/gross
Net to gross: the gross pay needed for a target net. Finds the smallest gross pay (to the cent) whose net pay reaches the target, by bisection over the same engine as /net. Returns the full breakdown for that gross pay and the remaining difference to the target.
/v1/salary-net/compare
Compare net pay across countries, years and profiles. Runs up to 8 gross-to-net scenarios and returns them side by side: net, deductions, employer cost and the split into income tax and social contributions. Amounts stay in each country's currency (no FX conversion).
/v1/salary-net/parameters
Thresholds and rates used for a country and year. Allowances, tax bands, contribution rates and ceilings the engine uses for the country and year, each with its official source.
/v1/salary-net/countries
Countries, tax years and profile fields covered. Coverage: which countries and tax years are available, which pay periods and profile fields they accept, the official test data each engine is checked against, and which countries are planned next.
Connect
REST
curl "https://syntropicapi.com/v1/salary-net/net" -H "X-API-Key: $SYNTROPIC_API_KEY"
MCP, for AI agents
claude mcp add --transport http salary-net https://syntropicapi.com/mcp/salary-net/mcp \
--header "X-API-Key: $SYNTROPIC_API_KEY"
Any MCP client works with the Streamable HTTP URL https://syntropicapi.com/mcp/salary-net/mcp. Listing tools is free; each tool call costs the same as a REST call.