Quyết toán thuế TNCN năm API
Quyết toán thuế TNCN từ tiền lương, tiền công: thuế cả năm, số được hoàn hoặc phải nộp thêm, giảm trừ mới năm 2026, hạn nộp và điều kiện ủy quyền.
Gửi thu nhập chịu thuế cả năm (income), số tiền bảo hiểm bắt buộc (insurance) và số thuế đã khấu trừ (withheld), hoặc nhiều nguồn qua incomes (nhiều nơi trả lương, thu nhập vãng lai đã khấu trừ 10%), số người phụ thuộc (dependents hoặc dependent_months), khoản từ thiện và bảo hiểm hưu trí tự nguyện. API áp dụng quy định của năm tính thuế: năm 2024–2025 dùng biểu 7 bậc và giảm trừ 11 / 4,4 triệu đồng; từ năm 2026 dùng biểu 5 bậc của Luật Thuế TNCN 109/2025/QH15, giảm trừ 15,5 / 6,2 triệu đồng (Nghị quyết 110/2025/UBTVQH15), hưu trí tự nguyện tối đa 3 triệu đồng/tháng và các khoản giảm trừ mới về chi phí khám chữa bệnh (tối đa 23 triệu) và giáo dục (tối đa 24 triệu) theo Nghị định 253/2026/NĐ-CP.
Kết quả gồm số thuế cả năm theo từng bậc, số được hoàn hoặc phải nộp thêm, có bắt buộc quyết toán không (không phải quyết toán nếu không đề nghị hoàn; đến năm 2025 còn miễn khi số nộp thêm không quá 50.000 đồng), có ủy quyền cho tổ chức trả thu nhập được không, và hạn nộp hồ sơ (31/3 với tổ chức, cuối tháng 4 với cá nhân, lùi sang ngày làm việc tiếp theo khi trùng ngày nghỉ).
Chỉ áp dụng cho cá nhân cư trú có thu nhập từ tiền lương, tiền công; thu nhập kinh doanh, đầu tư vốn, bất động sản nằm ngoài phạm vi. Kết quả để ước tính, không thay thế tư vấn thuế.
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
year | query|body | number | không | Năm tính thuế 2024–2027 (mặc định năm trước). | |
income | query|body | number | không | Thu nhập chịu thuế cả năm (một nơi trả). | |
insurance | query|body | number | không | Bảo hiểm bắt buộc người lao động đã đóng trong năm. | |
withheld | query|body | number | không | Số thuế đã khấu trừ. | |
incomes | body | array | không | Nhiều nguồn: [{"name":"A","income":300000000,"insurance":31500000,"withheld":5000000},{"kind":"casual","income":60000000,"withheld":6000000}]; nguồn đầu tiên là nơi đang làm việc. | |
dependents | query|body | number | không | Số người phụ thuộc cả năm (hoặc tổng dependent_months). | |
charity | query|body | number | không | Khoản đóng góp từ thiện, nhân đạo hợp lệ. | |
voluntary_pension | query|body | number | không | Bảo hiểm hưu trí tự nguyện, nhân thọ (có trần). | |
medical | query|body | number | không | Chi phí khám chữa bệnh thuộc danh mục BHYT (từ 2026, tối đa 23 triệu). | |
education | query|body | number | không | Chi phí giáo dục, đào tạo trong nước (từ 2026, tối đa 24 triệu). |
Ví dụ
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));Kết quả trả về
{
"year": 2026,
"result": "refund",
"tax_due": 3090000,
"withheld": 10000000,
"refund": 6910000,
"deductions": {
"personal": 186000000,
"personal_months": 12,
"dependents": 74400000,
"dependent_months": 12,
"insurance": 37800000,
"voluntary_pension": 0,
"charity": 0,
"medical": 0,
"education": 0,
"total": 298200000
},
"taxable_income": 61800000,
"brackets": [
{
"from": 0,
"to": 120000000,
"rate_percent": 5,
"amount": 61800000,
"tax": 3090000
}
],
"finalisation": {
"required": true,
"can_authorise_employer": true,
"form": "Tờ khai 02/QTT-TNCN (+ phụ lục 02-1/BK-QTT-TNCN for dependants)",
"deadline_individual": "2027-05-04",
"deadline_employer": "2027-03-31"
},
"legal": [
"Luật Thuế TNCN 109/2025/QH15 (biểu 5 bậc, áp dụng từ kỳ tính thuế 2026)",
"Nghị quyết 110/2025/UBTVQH15 (giảm trừ 15,5 / 6,2 triệu đồng)",
"Nghị định 253/2026/NĐ-CP Điều 49, 51 (giảm trừ y tế, giáo dục; quyết toán)",
"Nghị định 252/2026/NĐ-CP Điều 10 (thời hạn quyết toán)"
],
"reviewed": "2026-11-11"
}
Ứng dụng
- Hiển thị số thuế dự kiến được hoàn trong ứng dụng lương, nhân sự
- Kiểm tra trước khi ủy quyền quyết toán cho công ty
- Chuẩn bị quyết toán năm 2026 với các khoản giảm trừ mới
- Ước tính thuế cho người làm hai nơi hoặc có thu nhập vãng lai
Hỏi đáp
Quyết toán làm trong năm 2026 dùng quy định nào?
Đó là kỳ tính thuế 2025: biểu 7 bậc và giảm trừ 11 / 4,4 triệu đồng. Biểu 5 bậc và giảm trừ 15,5 / 6,2 triệu áp dụng từ kỳ tính thuế 2026 (quyết toán năm 2027).
Khi nào được ủy quyền cho công ty quyết toán?
Khi có hợp đồng lao động từ 3 tháng trở lên và đang làm việc tại đó, thu nhập nơi khác chỉ là vãng lai đã khấu trừ 10% và bình quân không quá 15 triệu đồng/tháng (10 triệu đến năm 2025). Muốn giảm trừ chi phí y tế, giáo dục thì phải tự quyết toán.
“income” là khoản nào?
Thu nhập chịu thuế: tổng lương trừ các khoản miễn thuế như tiền làm thêm giờ trong giới hạn luật định, tiền ăn trong mức quy định, đồng phục. Không trừ bảo hiểm, hãy gửi riêng ở insurance.
API liên quan
Kiểm tra JSON
Kiểm tra cú pháp JSON, báo đúng dòng và cột bị lỗi, và validate dữ liệu theo JSON Schema (draft 4, 7, 2019-09 hoặc 2020-12).
{ }Định dạng JSON
Làm đẹp JSON với thụt lề 0-8 dấu cách hoặc tab, rút gọn (minify) hoặc sắp xếp key theo bảng chữ cái. Báo lỗi cú pháp kèm dòng và cột.
CSVCSV sang JSON
Chuyển CSV thành mảng object JSON theo dòng tiêu đề, tự nhận dấu phân cách, tự chuyển số và boolean, báo lỗi từng dòng.