za:ref
zaref / docs / income-tax-api

SARS income tax tables API

The current-year SARS personal income tax brackets, rebates and age thresholds as machine-readable JSON, cited to the official National Treasury tax guide, with effective dates and history.

Calculators compose the tables into answers: annual and monthly tax, net take-home salary, provisional tax payments and retirement lump-sum tax, each returning its sources alongside the numbers.

Series

GET /v1/income-tax

Personal income tax brackets, rebates and thresholds for the current SA tax year.

$0.005 per call · updates: annual (National Budget) · effective 2026-03-01 · history at /v1/income-tax/history ($0.01)
GET /v1/tax-rates-other

Corporate tax, dividends WHT, CGT inclusion, transfer duty brackets, retirement caps, medical tax credits, interest exemptions, estate/donations tax.

$0.005 per call · updates: annual (Budget) · effective 2026-03-01 · history at /v1/tax-rates-other/history ($0.01)
GET /v1/retirement-limits

Retirement contribution deduction cap, tax-free savings limits, retirement and withdrawal lump-sum tax tables, living-annuity thresholds.

$0.005 per call · updates: annual (Budget) · effective 2026-03-01 · history at /v1/retirement-limits/history ($0.01)

Calculators

GET /calc/income-tax

SA personal income tax for the current tax year: annual and monthly tax, effective rate, age rebates applied.

Parameters: annual, age

$0.01 per call · example: /calc/income-tax?annual=750000&age=40
GET /calc/net-salary

Net take-home from a gross monthly salary: PAYE plus employee UIF at the current tables.

Parameters: monthly, age

$0.01 per call · example: /calc/net-salary?monthly=50000&age=35
GET /calc/provisional-tax

Estimated first and second provisional tax payments (50/50 split) net of employees' tax already withheld, with the current filing deadlines.

Parameters: annual_taxable_income, age, employees_tax_paid

$0.01 per call · example: /calc/provisional-tax?annual_taxable_income=900000&employees_tax_paid=180000
GET /calc/lump-sum-tax

Tax on a retirement fund lump sum or withdrawal using the cumulative SARS method (prior lump sums aggregate).

Parameters: amount, type, previous_lump_sums

$0.01 per call · example: /calc/lump-sum-tax?amount=1200000&type=retirement

How agents pay

No account, no API key. Paid endpoints reply HTTP 402 with exact payment requirements; an x402 client pays USDC on Base (about two seconds to settle) and retries automatically. Invalid input is rejected free with a 400 before any payment is challenged. See the x402 quickstart.

Questions

Which tax year do the tables reflect?
The current year of assessment, with the effective date on every response. Prior-year values remain reachable through the history endpoint and the as_at parameter.
Can I compute PAYE from the API?
Yes. GET /calc/income-tax and /calc/net-salary apply the current tables, age rebates and UIF, and return the composed result with citations.
Are unrecognised inputs rejected?
Yes. Unknown parameters and out-of-range values return an explicit 400 with the accepted values. The API never silently substitutes a default where money maths is involved.

Related

South African repo and prime rate API South Africa fuel price API South Africa VAT API and free calculator South African public holidays API ZARONIA rate API