Gross ↔ Net Salary (Vietnam) API

Convert Vietnamese gross and net salaries with social, health and unemployment insurance, family deductions and personal income tax, by period.

GETPOSThttps://apibox.io.vn/v1/vn-salary

The salary API computes a monthly salary in Vietnam both ways: from gross to net (gross=30000000) and from the net amount an employee should receive back to the gross to put in the contract (net=26215000). It returns every step: compulsory insurance of the employee (BHXH 8%, BHYT 1.5%, BHTN 1%) with their caps, income before tax, family deductions, taxable income, tax per bracket and the employer’s cost (BHXH 17%, TNLĐ-BNN 0.5%, BHYT 3%, BHTN 1%, optional 2% union fund).

Rules are stored with their effective dates and the period is a parameter (date or month), so payroll for past months is computed with the rules of that time: the 7-bracket table and 11 / 4.4 million deductions until 2025; the 5-bracket table of Law 109/2025/QH15 and 15.5 / 6.2 million deductions (Resolution 110/2025/UBTVQH15) from tax year 2026; the base salary (2.34 → 2.53 million from 1/7/2026) for the 20× insurance cap and the regional minimum wages for the unemployment insurance cap. The legal reference of each value is returned in rules.

insurance_salary sets a different salary for insurance (it defaults to gross), non_taxable excludes tax-free allowances, region (1–4) selects the minimum-wage region and resident=false applies the flat 20% of non-residents. The result is an estimate for planning and checking payroll; special cases (overtime, bonuses, foreigners’ insurance) need your own rules.

Parameters

NameInTypeRequiredDefault
grossbody|querynumbernoMonthly gross salary in VND (send gross or net).
netbody|querynumbernoMonthly net salary in VND, to find the gross.
dependentsbody|querynumberno0Number of registered dependants.
regionbody|querynumberno1Minimum-wage region 1–4 (for the BHTN cap).
datebody|querystringnoSalary period, YYYY-MM-DD or month=YYYY-MM (default: today). From 2020-07.
insurance_salarybody|querynumbernoSalary used for insurance (default: gross).
non_taxablebody|querynumberno0Tax-free part of gross (meal allowance…).
insurancebody|querybooleannotruefalse: no compulsory insurance.
residentbody|querybooleannotruefalse: non-resident, flat 20%.
union_fundbody|querybooleannofalseAdd the 2% union fund to the employer cost.

Example

curl "https://apibox.io.vn/v1/vn-salary?gross=30000000&dependents=1&month=2026-11" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

{
  "period": "2026-11",
  "mode": "gross_to_net",
  "region": 1,
  "gross": 30000000,
  "net": 26592500,
  "insurance": {
    "salary": 30000000,
    "bhxh": 2400000,
    "bhyt": 450000,
    "bhtn": 300000,
    "total": 3150000,
    "caps": {
      "bhxh_bhyt": 50600000,
      "bhtn": 106200000
    }
  },
  "income_before_tax": 26850000,
  "deductions": {
    "personal": 15500000,
    "dependents": 6200000,
    "dependent_count": 1,
    "non_taxable_income": 0,
    "total": 21700000
  },
  "taxable_income": 5150000,
  "personal_income_tax": 257500,
  "tax_brackets": [
    {
      "from": 0,
      "to": 10000000,
      "rate": 0.05,
      "amount": 5150000,
      "tax": 257500
    }
  ],
  "employer": {
    "bhxh": 5100000,
    "tnld_bnn": 150000,
    "bhyt": 900000,
    "bhtn": 300000,
    "total": 6450000,
    "total_cost": 36450000
  },
  "rules": {
    "personal_deduction": 15500000,
    "dependent_deduction": 6200000,
    "deduction_ref": "Nghị quyết 110/2025/UBTVQH15",
    "tax_table": "Luật Thuế TNCN 109/2025/QH15 (5 bậc, áp dụng từ kỳ tính thuế 2026)",
    "base_salary": 2530000,
    "region_min_wage": 5310000,
    "…": "…"
  },
  "notes": []
}

Use cases

  • Salary calculators on job boards and HR websites
  • Check payslips and payroll exports
  • Offer letters: find the gross that gives an agreed net
  • Estimate the total employer cost of a hire

FAQ

Which tax table is used in 2026?

The 5-bracket table (5%, 10%, 20%, 30%, 35%) of Law 109/2025/QH15 applies to salaries of tax year 2026, with the 15.5 million personal and 6.2 million dependant deductions. Periods in 2025 and earlier use the 7-bracket table.

Why is the insurance lower than 10.5% for high salaries?

BHXH and BHYT are capped at 20 × the base salary (50.6 million from 1/7/2026) and BHTN at 20 × the regional minimum wage. The caps used are in insurance.caps.

How is net → gross computed?

By searching the smallest gross that gives at least the requested net with the same rules, so the result is exact to the dong.

Related APIs

Start with 1,000 free requests every month. Get free API key →