Skip to content

T-VAN Compliance

T-VAN (Tax Value Added Network) compliance requirements for Vietnam tax integration.

Overview

T-VAN providers act as intermediaries between businesses and CQT (Vietnam Tax Authority) for:

  • Tax information queries
  • Invoice submission
  • Tax compliance verification

Supported Providers

ProviderStatusFeatures
ViettelSupportedTax lookup, Invoice validation
VNPTSupportedTax lookup, Invoice validation

When to Use T-VAN

Use CaseT-VAN Feature
Verify customer tax codeTax info lookup
Validate supplier invoicesInvoice validation
Check business legitimacyTax info lookup
Pre-invoice verificationTax info lookup

Compliance Requirements

Decree 123/2020

RequirementT-VAN Support
Verify buyer tax code before B2B invoiceTax info lookup
Validate received invoicesInvoice validation
Check supplier statusTax info lookup

Decree 70/2025 (Effective Jan 2026)

RequirementT-VAN Support
Real-time tax verificationTax info lookup
Invoice authenticity checkInvoice validation

Tax Code Formats

FormatDescriptionExample
10 digitsStandard company0123456789
13 digitsBranch/subsidiary0123456789-001

Best Practices

Caching

typescript
// Cache tax info (24 hours)
const CACHE_TTL = 24 * 60 * 60 * 1000;

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;
}

Batch Operations

typescript
// More efficient than individual lookups
const taxCodes = orders.map(o => o.customerTaxCode).filter(Boolean);
const uniqueTaxCodes = [...new Set(taxCodes)];

const taxInfoMap = await this.tvanService.batchGetTaxInfo({
  taxCodes: uniqueTaxCodes,
});

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