Calculate South African PAYE, UIF and net pay
sa_paye_calculateEmployees' tax (PAYE), UIF (employee and employer, with the monthly ceiling), SDL and net pay for one South African employee and pay period, using the SARS tax deduction tables (or the exact statutory-rates formula) for the right tax year. Handles age rebates, the medical scheme fees tax credit, retirement-fund deductions (s11F cap), travel allowance (80%/20%), bonuses (annual-payment method), commission and fringe benefits.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| age | No | Age on the last day of the tax year (65+ and 75+ get extra rebates). Or give date_of_birth / id_number. | |
| bonus | No | Bonus / annual payment paid in this period (3605), taxed by the SARS annual-payment method | |
| method | No | tables = SARS monthly tax deduction tables (default); formula = exact statutory-rates calculation | |
| period | No | What the amounts are per (default monthly). Non-monthly amounts are converted to a monthly equivalent. | |
| salary | Yes | Basic salary/wage for the pay period, in rand (before deductions) | |
| overtime | No | Overtime (3607) | |
| pay_date | No | Pay date / period end, YYYY-MM-DD (default today). Decides the tax year: March onwards → next year (2026-11-30 → 2027 tax year). | |
| tax_year | No | Tax year instead of pay_date, e.g. "2027" (1 March 2026 – 28 February 2027) | |
| id_number | No | SA ID number (only used to read the date of birth; not stored) | |
| commission | No | Commission (3606) | |
| date_of_birth | No | YYYY-MM-DD | |
| employer_pension | No | Employer pension fund contribution (fringe benefit 3817) | |
| other_deductions | No | Other non-tax deductions from net pay (loans, union fees…) | |
| travel_allowance | No | Travel allowance (3701): 80% taxed through PAYE, or 20% if at least 80% business use | |
| taxable_allowance | No | Other taxable allowance — cell phone, housing, tools (3713) | |
| employer_provident | No | Employer provident fund contribution (fringe benefit 3825) | |
| retirement_annuity | No | Retirement annuity paid through payroll (4006) | |
| travel_business_80 | No | True when the employer is satisfied the vehicle is used at least 80% for business | |
| medical_aid_members | No | People on the medical aid including the employee (for the s6A tax credit) | |
| employer_medical_aid | No | Medical aid paid by the employer for the employee (fringe benefit 3810) | |
| pension_contribution | No | Employee pension fund contribution (4001) | |
| provident_contribution | No | Employee provident fund contribution (4003) | |
| medical_aid_contribution | No | Employee's own medical aid contribution deducted from pay (source code 4005) |