Vietnam PIT Refund Calculator
Annual personal income tax finalisation for salaries in Vietnam: tax for the year, refund or extra tax, 2026 deductions, deadlines and authorisation.
Result
Press “Run” to see the result.
Send the taxable salary of the year (income) with compulsory insurance and the tax withheld, or several incomes (employers, casual income withheld at 10%), the number of dependents (or dependent_months), charity and voluntary pension. The API applies the rules of the tax year: for 2024–2025 the 7-bracket table and 11 / 4.4 million deductions; from 2026 the 5-bracket table of Luật Thuế TNCN 109/2025/QH15, 15.5 / 6.2 million deductions (Nghị quyết 110/2025/UBTVQH15), voluntary pension up to 3 million a month and the new medical (≤ 23 million) and education (≤ 24 million) deductions of Nghị định 253/2026/NĐ-CP.
The answer gives the tax for the year bracket by bracket, the refund or the amount to pay, whether a finalisation is required (no finalisation when you do not ask for a refund; until 2025 also when the extra tax is ≤ 50,000 đ), whether the employer can finalise for you, and the deadlines (31/3 for employers, end of April for individuals, moved to the next working day when it is a holiday).
Resident employees only; business, capital and property income are out of scope. It is an estimate for planning, not tax advice.
Use this in your code
curl -X POST "https://apibox.io.vn/v1/vn-pit-annual" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"year":2026,"income":360000000,"insurance":37800000,"dependents":1,"withheld":10000000}'const res = await fetch('https://apibox.io.vn/v1/vn-pit-annual', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"year": 2026,
"income": 360000000,
"insurance": 37800000,
"dependents": 1,
"withheld": 10000000
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://apibox.io.vn/v1/vn-pit-annual",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"year": 2026, "income": 360000000, "insurance": 37800000, "dependents": 1, "withheld": 10000000},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/vn-pit-annual');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"year":2026,"income":360000000,"insurance":37800000,"dependents":1,"withheld":10000000}',
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));API documentation → Get a free API key
FAQ
Which rules apply to the finalisation done in 2026?
The 2025 tax year: 7 brackets and 11 / 4.4 million deductions. The new 5-bracket table and 15.5 / 6.2 million deductions apply from tax year 2026 (finalised in 2027).
Can my employer finalise for me?
Yes with a contract of 3 months or more and still working there, if other income is only casual income withheld at 10% and averages ≤ 15 million a month (10 million until 2025). Medical and education deductions need self-finalisation.
What is “income” here?
Taxable salary: gross pay minus exempt items such as overtime pay within legal limits, meals up to the limit and uniforms. Do not deduct insurance: send it as insurance.