Skip to content

Tra cứu Thông tin Thuế

Truy vấn chi tiết đăng ký kinh doanh trực tiếp từ Cơ quan Thuế Việt Nam (CQT) thông qua các nhà cung cấp T-VAN.

Tổng quan

Tính năngMô tả
Dịch vụTVanService.getTaxInfo()
Nguồn Dữ liệuCQT (Cơ quan Thuế)
Trường hợp Sử dụngXác minh mã số thuế khách hàng/nhà cung cấp

Trường hợp Sử dụng

  • Xác minh mã số thuế khách hàng trước khi xuất hóa đơn GTGT
  • Kiểm tra tính hợp pháp của nhà cung cấp
  • Xác thực trạng thái đăng ký kinh doanh
  • Xác minh trước hóa đơn

Tra cứu Đơn lẻ

typescript
import { inject } from '@venizia/ignis';
import { TVanService } from '@nx-3rd/t-van';

class TaxController {
  constructor(
    @inject({ key: 'services.TVanService' })
    private tvanService: TVanService,
  ) {}

  async lookupTaxInfo(taxCode: string) {
    const result = await this.tvanService.getTaxInfo({
      taxCode: taxCode,
    });

    return {
      taxCode: result.taxCode,
      companyName: result.companyName,
      address: result.address,
      representative: result.representative,
      status: result.status,
      registrationDate: result.registrationDate,
    };
  }
}

Cấu trúc Phản hồi

json
{
  "taxCode": "0123456789",
  "companyName": "CÔNG TY TNHH ABC",
  "address": "123 Nguyễn Huệ, Quận 1, TP.HCM",
  "representative": "Nguyễn Văn A",
  "status": "ACTIVE",
  "registrationDate": "2020-01-15",
  "businessType": "Bán lẻ",
  "phoneNumber": "028-1234-5678"
}

Trạng thái Doanh nghiệp

Trạng tháiMô tảCó thể Xuất Hóa đơn
ACTIVEHoạt động bình thường
SUSPENDEDTạm ngừng hoạt độngKhông
CLOSEDĐã giải thểKhông
PENDINGĐang chờ đăng kýKhông

Tra cứu Hàng loạt

Truy vấn nhiều doanh nghiệp cùng lúc:

typescript
async batchLookup(taxCodes: string[]) {
  const results = await this.tvanService.batchGetTaxInfo({
    taxCodes: taxCodes,
  });

  return results.map(r => ({
    taxCode: r.taxCode,
    companyName: r.companyName,
    status: r.status,
    found: r.found,
  }));
}

Chiến lược Caching

Thông tin thuế không thay đổi thường xuyên - hãy cache nó:

typescript
const CACHE_TTL = 24 * 60 * 60 * 1000; // 24 giờ

async getTaxInfoCached(taxCode: string) {
  const cached = await this.cache.get(`tax:${taxCode}`);
  if (cached) return cached;

  const info = await this.tvanService.getTaxInfo({ taxCode });
  await this.cache.set(`tax:${taxCode}`, info, CACHE_TTL);

  return info;
}

REST API

http
GET /api/t-van/tax-info/:taxCode

# Tra cứu hàng loạt
POST /api/t-van/tax-info/batch
Content-Type: application/json

{
  "taxCodes": ["0123456789", "9876543210"]
}

Xử lý Lỗi

Mã lỗiMô tảGiải pháp
TVAN_001Định dạng không hợp lệMã số thuế phải có 10 hoặc 13 chữ số
TVAN_002Không tìm thấyMã số thuế chưa được đăng ký
TVAN_003Quá hạnThử lại hoặc kiểm tra mạng

Liên quan

Proprietary and Confidential. Unauthorized copying, distribution, or use of this software is strictly prohibited.