Vietnam import tax & landed cost API
Import duty (MFN or FTA rate by HS code), excise, environmental tax and VAT in the legal order, with the landed cost per unit of goods imported to Vietnam.
Send an 8-digit hs_code and the value as cif (or fob / exw + freight + insurance) in any currency with an exchange_rate (otherwise today's Vietcombank buying rate is fetched). The API reads the 2026 tariff line from /v1/hs-code and computes, each tax on top of the previous base: customs value, import duty (MFN rate, the special preferential rate of an agreement with fta — a C/O form such as E, D, EUR.1, CPTPP, RCEP with origin_country — or the normal rate of 150% MFN with mfn=false), excise tax on customs value + duty (Luật Thuế TTĐB 66/2025), environmental protection tax per unit, and import VAT on the sum (8% while the reduction applies and the goods are not excluded, else 10%).
The answer has a steps table with each base, rate, amount and legal reference, the total payable at customs and the landed_cost (customs value + duties + excise + environmental tax + other_costs, adding VAT only when vat_deductible=false) per unit when quantity is sent. Any rate can be overridden (import_duty_rate, excise_rate, environmental_tax_per_unit, vat_rate, additional_import_tax for anti-dumping or safeguard duties). Excise items marked by engine size or seats need excise_rate.
Parameters
| Name | In | Type | Required | Default | |
|---|---|---|---|---|---|
hs_code | query|body | string | no | 8-digit Vietnamese tariff line (e.g. 2203.00.91); or send import_duty_rate. | |
cif | query|body | number | no | CIF value (= customs value). Or fob / exw with freight, insurance. | |
currency | query|body | string | no | VND | Currency of the values. |
exchange_rate | query|body | number | no | VND per unit of currency (default: Vietcombank transfer buying rate today). | |
fta | query|body | string | no | C/O form or agreement: E, D, AJ, VJ, AK, AANZ, AI, VK, VC, EAV, CPTPP, AHK, EUR.1, UK, S, VIFTA, RCEP. | |
origin_country | query|body | string | no | ISO alpha-2 exporting country (RCEP groups, excluded countries, CPTPP Mexico). | |
quantity | query|body | number | no | Units (for environmental tax and the cost per unit). | |
excise_rate | query|body | number | no | Override the excise rate (%). | |
environmental_tax_per_unit | query|body | number | no | Environmental tax per unit (VND). | |
other_costs | query|body | number | no | Local costs added to the landed cost (VND). | |
date | query|body | string | no | Import date (VAT reduction, excise schedule). |
Example
curl "https://apibox.io.vn/v1/vn-import-cost?hs_code=2203.00.91&fob=9000&freight=800&insurance=200¤cy=USD&exchange_rate=25000&fta=EUR.1&origin_country=DE&quantity=12000&date=2026-11-11" \
-H "Authorization: Bearer YOUR_API_KEY"const res = await fetch('https://apibox.io.vn/v1/vn-import-cost?hs_code=2203.00.91&fob=9000&freight=800&insurance=200¤cy=USD&exchange_rate=25000&fta=EUR.1&origin_country=DE&quantity=12000&date=2026-11-11', {
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-import-cost?hs_code=2203.00.91&fob=9000&freight=800&insurance=200¤cy=USD&exchange_rate=25000&fta=EUR.1&origin_country=DE&quantity=12000&date=2026-11-11",
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/vn-import-cost?hs_code=2203.00.91&fob=9000&freight=800&insurance=200¤cy=USD&exchange_rate=25000&fta=EUR.1&origin_country=DE&quantity=12000&date=2026-11-11');
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
{
"date": "2026-11-11",
"currency": "USD",
"exchange_rate": 25000,
"exchange_rate_source": "exchange_rate parameter",
"value_basis": "FOB + freight + insurance",
"value_parts": {
"fob": 9000,
"freight": 800,
"insurance": 200
},
"value_foreign": 10000,
"hs": {
"code": "22030091",
"code_formatted": "2203.00.91",
"description_vi": "Có nồng độ cồn không quá 5,8% tính theo thể tích",
"unit": "lít/kg",
"mfn_rate": 35,
"normal_rate": 52.5,
"vat": "10/8",
"special_consumption_tax": 65,
"environmental_tax": null,
"fta": {
"agreement": "EVFTA",
"cell": 22
},
"tariff_year": 2026
},
"fta": "EVFTA",
"origin_country": "DE",
"customs_value": 250000000,
"import_duty": 55000000,
"additional_import_tax": 0,
"excise_tax": 198250000,
"environmental_tax": 0,
"vat": 50325000,
"vat_rate": 10,
"total_taxes": 303575000,
"payable_at_customs": 303575000,
"other_costs": 0,
"vat_deductible": true,
"landed_cost": 503250000,
"quantity": 12000,
"landed_cost_per_unit": 41937.5,
"steps": [
{
"step": 1,
"name": "Customs value",
"name_vi": "Trị giá tính thuế (trị giá hải quan)",
"base": "10,000 USD × 25000",
"rate": null,
"amount": 250000000
},
{
"step": 2,
"name": "Import duty",
"name_vi": "Thuế nhập khẩu",
"base": 250000000,
"rate": 22,
"amount": 55000000,
"basis": "special preferential rate EVFTA"
},
{
"step": 3,
"name": "Excise tax",
"name_vi": "Thuế tiêu thụ đặc biệt",
"base": 305000000,
"rate": 65,
"amount": 198250000,
"ref": "Luật Thuế TTĐB 66/2025/QH15 Điều 6 khoản 1 điểm b"
},
{
"step": 4,
"name": "Environmental protection tax",
"name_vi": "Thuế bảo vệ môi trường",
"base": 0,
"rate": null,
"amount": 0
},
{
"step": 5,
"name": "Import VAT",
"name_vi": "Thuế GTGT hàng nhập khẩu",
"base": 503250000,
"rate": 10,
"amount": 50325000,
"basis": "10%: Không được giảm VAT theo 174/2025/NĐ-CP - PL2: Bia theo quy định của Luật Phòng, chống tác hại của rượu, bia;"
}
],
"reviewed": "2026-11-11",
"disclaimer": "Reference calculation, not legal advice; check the official text."
}
Use cases
- Quote landed cost before ordering goods from China or the EU
- Compare MFN and FTA rates when choosing a supplier country
- Estimate cash needed at customs clearance
- Compute cost of goods for import accounting
FAQ
In what order are the taxes computed?
Import duty on the customs value; excise on customs value + import duty (+ anti-dumping / safeguard); environmental tax per unit; VAT on customs value + import duty + excise + environmental tax.
Which FTA rate is used?
The rate of the agreement you send in fta from the tariff workbook, if the line has one and your origin_country is not excluded; RCEP rates depend on the exporting country. Otherwise the MFN rate is used and a note explains why.
Is this the amount on the customs declaration?
It is an estimate. Customs may adjust the value (royalties, commissions, related-party prices) and uses the exchange rate of the declaration week; check the decree for the exact tariff.
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.