Dự án cộng đồng · mã nguồn & dữ liệu mở

Cơ sở tri thức mở về mã HS, thuế & pháp lý xuất nhập khẩu Việt Nam

Thu thập & chuẩn hoá biểu thuế, chính sách và văn bản pháp luật XNK thành dữ liệu sạch, phơi ra API chuẩn cho ERP và cộng đồng. Toàn bộ dữ liệu pháp quy công khai — không giấu.

Chúng ta đang có gì

Số liệu cập nhật trực tiếp từ kho dữ liệu.

…
đang tải…

API làm được gì

Ba việc lõi phục vụ nghiệp vụ khai báo Hải quan.

🔎

Xác định mã HS

Nhập tên hàng → gợi ý mã HS kèm độ tin cậy, áp 6 quy tắc GIR (WCO) và đối chiếu tiền lệ. /api/suggest

💰

Tra thuế & chính sách

Tra thuế NK/ACFTA/VAT theo mã HS, kèm cảnh báo giấy phép/kiểm tra chuyên ngành + link văn bản. /api/tax

📝

Sinh mô tả khai báo

Tạo mô tả hàng hoá chuẩn Thông tư 39/2018 để khai tờ khai Hải quan. /api/describe

📦

Corpus mã Loại khác

Hàng nghìn tên sản phẩm ví dụ cho mã HS 8 số "Loại khác" — giúp tra cứu & AI hiểu phạm vi từng mã. /api/products

🗣️

Hiểu tiếng người đi khai

Tra được theo cách gọi ngoài thị trường, không chỉ lời văn biểu thuế — tấm thép làm khuôn nhựa, quạt điều hòa hơi nước, bình giữ nhiệt chân không. /api/search

Khi biểu thuế và người đi khai nói hai thứ tiếng

3.050 mã trong biểu thuế có tên đúng bằng ba chữ "Loại khác" — 25,7% tổng số mã. Không từ khoá nào chạm tới chúng.

📜

Tiền lệ tờ khai

Cụm từ này đã được khai bao nhiêu lần và có tập trung về một mã không. Bằng chứng thực tế, không phải văn bản. Trả ở precedent.

📖

Từ điển tên thương mại

Bảng soạn tay, mỗi mục dẫn nguyên văn biểu thuế. Phủ được cả những ngành chưa có tờ khai nào để đối chiếu. Trả ở tradeTerm.

🧭

Phạm vi thật của mã dư

Với mã tên là "Loại khác", chuỗi phân cấp kèm phạm vi thật và các mã anh em bị loại trừ. Trả ở breadcrumb.

⚠️

Cảnh báo VAT

1.561 mã nằm trong phụ lục loại trừ của NĐ 174/2025 — vẫn phải khai 10%. Khai 8% là bị truy thu. Trả ở vatReduction.

Hai thứ quan trọng hơn cả việc trả đúng mã

Mã bẫy bị loại HẲN, và nói rõ vì sao. Hỏi "tấm thép làm khuôn nhựa" mà hệ thống trả về bộ khuôn nhóm 8480 thì người khai rất dễ gật — tên hàng nghe khớp hoàn toàn, trong khi một bên là nguyên liệu còn bên kia là thành phẩm. Những mã như vậy bị loại khỏi kết quả và trả riêng ở avoidedCodes kèm lý do. Loại công khai, không giấu.

Chưa đủ căn cứ thì hỏi, không chốt bừa. Nhiều tên thương mại ứng với vài mã, phân biệt nhau bằng khổ rộng, dạng gia công hay thành phần hoá học. Khi đó hệ thống trả nhiều ứng viên kèm điều kiện áp dụng và clarifyingQuestionsVi — dữ kiện còn thiếu để chốt. Một mã sai mà tự tin tốn tiền hơn một câu hỏi.

Tên gọi đưa tới nhóm 4 số; lá 8 số do thuộc tính quyết định. Với nhóm đã có bảng quyết định, decisions[] hoặc chốt lá kèm luật và căn cứ biểu thuế, hoặc trả missingFacts[] — đúng thuộc tính còn thiếu (chiều dày, khổ rộng, tự hành hay không…) để hỏi người khai; trả lời bằng facts là chốt được.

Ba lớp có thể mâu thuẫn nhau, và đó là thông tin chứ không phải lỗi. Với biến tần, bảng soạn tay đề xuất một mã nhưng tiền lệ tờ khai lại chỉ sang mã khác — cả hai căn cứ đều hiện ra để người tra tự quyết.

Độ chính xác — đo trên tờ khai thật

Không tô hồng: chấm AI trên mẫu tờ khai thật, phủ mọi chương HS.

Đang tải kết quả benchmark…

Corpus sản phẩm — mã HS "Loại khác"

Hệ thống định nghĩa & mô tả sản phẩm cho nhóm mã residual (không khớp mã con cụ thể).

Đang tải corpus Loại khác…

Ví dụ thực tế trong corpus

Mã HSPhạm vi (h6En)Sản phẩm ví dụĐộ đào
Đang tải…

Sinh mô tả khai báo ECUS — tối đa 200 ký tự

Từ mã HS 8 số đã chốt → mô tả một dòng khớp ô ECUS/VNACCS, chấm compliance TT 39/2018.

Đang tải…

Ví dụ output (không cần gọi API)

Khi vượt 200 ký tự — tự cắt thông minh

Bỏ phụ kiện trước (quy cách → công dụng → thông số → thành phần → model → nhãn hiệu). Xuất xứ + tình trạng luôn giữ cuối.

Thư viện văn bản pháp luật

Văn bản được trích tự động từ chính sách của … mã HS. Ô verified = tiêu đề đã đối chiếu nguồn chính thống.

Mã văn bảnTiêu đềCơ quanTrích dẫn
Đang tải…

Cách thu thập & chuẩn hoá dữ liệu

Dữ liệu đi qua pipeline nhiều lớp, mỗi lớp làm sạch thêm.

Nguồn thô                          →  Chuẩn hoá                  →  File sạch              →  API
─────────────────────────────────────────────────────────────────────────────────────────────
Biểu thuế TCHQ (Excel)             →  import + snapshot          →  tax.json (11.871 mã)   →  /api/tax
Cột chính sách (chữ tự do)         →  Gemini bóc tách (AI)       →  tax-enriched.json      →  warnings
Mã văn bản trong chính sách        →  extract-legal-refs         →  legal-docs.json (108)  →  /api/legal-docs
Tiêu đề VB (tra tay, chính thống)  →  legal-doc-titles.json      →  apply-verified-titles  →  tiêu đề thật (50)
Mã Loại khác (residual)            →  domain template + index    →  loai-khac-products.jsonl →  /api/products
Mô tả ECUS (≤200 ký tự)            →  AI + compose + validator   →  customsDescription       →  /api/describe
Kho tri thức cũ                    →  import-legacy              →  notes/precedents/...   →  /api/notes...
Không bịa dữ liệu — tiêu đề văn bản chỉ ghi khi đã đối chiếu nguồn chính thống (congbao.chinhphu.vn, vbpl.vn, thuvienphapluat.vn…).
Minh bạch tình trạng — văn bản chưa verify để nhãn rõ, mời cộng đồng cùng bổ sung.
Bảo vệ dữ liệu riêng tư — tờ khai khách hàng không bao giờ công khai; trang này chỉ có dữ liệu pháp quy.
Có kiểm thử tự động mỗi lớp dữ liệu trước khi phát hành.

Dùng API thế nào

API mở: tra cứu và cả 4 endpoint AI (suggest, describe, classify, match) gọi được ngay, không cần token, không giới hạn lượt. Token chỉ cần cho quản trị và ghi dữ liệu. Xem tài liệu đầy đủ trên GitHub.

Dùng thử AI — không cần token

POST /api/suggest
Body JSON {"description": "Máy bơm nước ly tâm 1.5HP"} → top mã HS kèm quy tắc GIR và mức căn cứ. Tương tự: /api/classify ({"tenHang": "…"}), /api/describe ({"hsCode": "84137090", "productName": "…"}). Mỗi lượt gọi tốn chi phí mô hình nên hãy gọi có chủ đích.

Tra thuế 1 mã HS

GET /api/tax?hs=85171300
→ tên hàng, thuế NK/ACFTA/VAT, cảnh báo chính sách + văn bản liên quan.

Tra văn bản pháp luật

GET /api/legal-docs?issuer=BCT
→ danh sách văn bản kèm tiêu đề & link gốc.

Toàn bộ endpoint

Không cần token: tra cứu (GET) và 4 endpoint AI (POST). Chỉ nhóm quản trị và ghi dữ liệu mới cần header Authorization: Bearer <token>. Bấm Chi tiết ở từng dòng để xem ví dụ curl + response thực tế.

EndpointMethodTokenKhi nào dùng
Đang tải hướng dẫn API…

/api/match chỉ khớp từ khóa, không dùng để chọn mã — dùng /api/classify hoặc /api/suggest. Về hạ tầng: chạy trên server riêng của Oz; nhiều route logic được gộp qua rewrite trong routes.json (vd dataset.js gánh hàng chục resource) để repo gọn — URL công khai vẫn tách bạch.

Góp ý & bình luận

Đây là dự án cộng đồng — mọi góp ý, phát hiện sai sót, đề xuất tính năng đều quý. Góp ý gửi công khai qua GitHub (cần tài khoản GitHub, miễn phí).
Có dữ liệu muốn đóng góp? Cụm mã hay nhầm kèm cách phân biệt là đóng góp quý nhất — xem hướng dẫn đóng góp. Lưu ý: chỉ gửi cặp mô tả hàng ↔ mã HS, tuyệt đối không kèm thông tin khách hàng, số tờ khai hay trị giá.

✍️ Gửi góp ý nhanh

Nút này mở GitHub với nội dung điền sẵn để bạn xác nhận đăng.

💬 Thảo luận cộng đồng

Đặt câu hỏi, chia sẻ kinh nghiệm phân loại HS, thảo luận chính sách XNK cùng mọi người.

Mở Thảo luận (Discussions) →

Xem góp ý đã gửi →