Vietnam vehicle fees API
Recurring costs of a car or motorbike in Vietnam: road-use fee (NĐ 364/2025), compulsory insurance (NĐ 67/2023), inspection price, plus on-road cost.
Returns the yearly running costs fixed by law for a vehicle: the road-use fee collected at inspection (phí sử dụng đường bộ, NĐ 364/2025/NĐ-CP from 1/1/2026, periods of 1, 3, 6, 12, 24 or 36 months, rows by seats, gross weight and business use), the compulsory third-party insurance premium (bảo hiểm TNDS bắt buộc, NĐ 67/2023/NĐ-CP, with VAT, taxi and driving-school surcharges) and the inspection cost (maximum prices of QĐ 1838/QĐ-BXD from 26/10/2026, clean-energy rates, plus the 40,000 đ certificate fee of TT 156/2025/TT-BTC).
Send price (and province) to get the on-road cost (giá lăn bánh): the registration fee and the plate fee are computed by /v1/vn-registration-fee and added to the recurring items.
Inspection prices are ceilings, insurers may adjust premiums by up to 15%, and motorbikes pay no national road fee. Each item names its decree and the review date.
Parameters
| Name | In | Type | Required | Default | |
|---|---|---|---|---|---|
vehicle | query|body | string | no | car | car (passenger car / bus), pickup, truck, tractor, motorbike. |
seats | query|body | number | no | 5 | Registered seats including the driver. |
use | query|body | string | no | private | private, commercial, taxi, training, public_bus, ambulance. |
months | query|body | number | no | 12 | Road-fee period: 1, 3, 6, 12, 24 or 36. |
gross_weight_kg | query|body | number | no | Gross weight (trucks, tractors, pick-ups). | |
payload_tonnes | query|body | number | no | Payload in tonnes for the truck insurance rows. | |
axles | query|body | number | no | 2 | Number of axles (truck inspection price). |
clean_energy | query|body | boolean | no | Electric / clean-energy vehicle (lower inspection price, EV registration fee). | |
engine_cc | query|body | number | no | Motorbike engine size (≤ 50 cc cheaper insurance). | |
price | query|body | number | no | Vehicle price: adds the on-road cost. | |
province | query|body | string | no | Province for the registration and plate fees. |
Example
curl "https://apibox.io.vn/v1/vn-vehicle-fees?vehicle=car&seats=5&months=12&price=700000000&province=Ha%20Noi" \
-H "Authorization: Bearer YOUR_API_KEY"const res = await fetch('https://apibox.io.vn/v1/vn-vehicle-fees?vehicle=car&seats=5&months=12&price=700000000&province=Ha%20Noi', {
method: 'GET',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
},
});
const data = await res.json();
console.log(data);import requests
res = requests.get(
"https://apibox.io.vn/v1/vn-vehicle-fees?vehicle=car&seats=5&months=12&price=700000000&province=Ha%20Noi",
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/vn-vehicle-fees?vehicle=car&seats=5&months=12&price=700000000&province=Ha%20Noi');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Response
{
"vehicle": "car",
"vehicle_vi": "Ô tô chở người",
"use": "private",
"seats": 5,
"road_fee": {
"row": 1,
"monthly": 130000,
"months": 12,
"amount": 1560000,
"exempt": false,
"ref": "NĐ 364/2025/NĐ-CP Phụ lục I (from 1/1/2026)"
},
"insurance": {
"premium": 437000,
"vat": 43700,
"total": 480700,
"years": 1,
"category": "non-commercial, 5 seats",
"ref": "NĐ 67/2023/NĐ-CP Phụ lục I"
},
"inspection": {
"category": "Passenger car up to 8 seats (excl. driver)",
"max_price_before_vat": 281800,
"clean_energy": false,
"certificate_fee": 40000,
"total_before_vat": 321800,
"ref": "QĐ 1838/QĐ-BXD (26/10/2026) maximum prices; certificate fee TT 156/2025/TT-BTC"
},
"total_recurring": 2362500,
"on_road": {
"price": 700000000,
"province": {
"code": "01",
"name": "Thành phố Hà Nội"
},
"items": [
{
"item": "Registration fee (lệ phí trước bạ) 10%",
"item_vi": "Lệ phí trước bạ 10%",
"amount": 70000000,
"ref": "NĐ 10/2022/NĐ-CP Điều 8 khoản 5 (mức chung 10%); no higher provincial resolution on record"
},
{
"item": "Registration and plate fee (area I)",
"item_vi": "Lệ phí đăng ký, cấp biển số (khu vực I)",
"amount": 14000000,
"ref": "TT 155/2025/TT-BTC"
},
{
"item": "Road-use fee, 12 month(s)",
"item_vi": "Phí sử dụng đường bộ 12 tháng",
"amount": 1560000,
"ref": "NĐ 364/2025/NĐ-CP"
},
{
"item": "Compulsory third-party insurance, 1 year (incl. 10% VAT)",
"item_vi": "Bảo hiểm TNDS bắt buộc 1 năm (gồm VAT 10%)",
"amount": 480700,
"ref": "NĐ 67/2023/NĐ-CP"
},
{
"item": "Periodic inspection (maximum price before VAT + certificate fee)",
"item_vi": "Kiểm định định kỳ (giá tối đa chưa VAT + lệ phí cấp giấy chứng nhận)",
"amount": 321800,
"ref": "QĐ 1838/QĐ-BXD; TT 156/2025/TT-BTC"
}
],
"total": 786362500
},
"reviewed": "2026-11-11"
}
Use cases
- Show the on-road price of a car on a dealer or marketplace page
- Budget yearly fleet costs by vehicle
- Remind owners what they will pay at the next inspection
- Sell compulsory insurance with the correct premium
FAQ
Which seat count do I send?
The registered seats including the driver. The road-fee rows count seats without the driver, the insurance table counts them with it; the API converts.
Why can a centre charge less than the inspection price?
QĐ 1838/QĐ-BXD sets maximum prices; each centre publishes its own price within the ceiling.
Is the 18-month road fee still available?
No. NĐ 364/2025 removed it; the periods are 1, 3, 6, 12, 24 and 36 months.
Related APIs
JSON Validator
Check JSON syntax with exact line and column of errors, and validate data against a JSON Schema (draft 4, 7, 2019-09 or 2020-12).
{ }JSON Formatter
Pretty print JSON with 0-8 spaces or tabs, minify it, or sort object keys recursively. Syntax errors are reported with line and column.
CSVCSV to JSON
Convert CSV into an array of JSON objects using the header row, with delimiter auto-detection, number and boolean typing, and row-level errors.