Invoice issuance validation — rules for Taiwan e-invoices (F0401)
Summary
Validation rules for tax type, B/C invoice class, sales and VAT totals, GUI (統一編號) check digit, carriers, upload deadlines, and cloud-invoice membership. Use before issuance and when implementing checks in order import, API, or ERP flows.
Legal notice
This page is a technical translation for integrators. MOF (Ministry of Finance, Taiwan) publications and your value-added center rules are authoritative. The Chinese validation document is the primary SSOT on this site.
1. Tax type (TaxType)
| Item |
Description |
| Structure |
Both Main and Details carry tax type. For a single tax type they match; if they differ, the invoice is mixed tax. |
| Codes |
1 = taxable; 2 = zero-rate; 3 = exempt; 9 = mixed. |
| Mixed tax |
Details contain more than one tax category. Only C-type invoices may use mixed tax; B-type cannot use mixed tax. |
| Validation |
For mixed tax, header Main.TaxType = 9; each line ItemTaxType must be 1, 2, or 3; line totals must reconcile with header amounts. |
2. Buyer GUI and B-type / C-type invoices (Buyer.Identifier)
| Item |
Description |
| B-type invoice |
Buyer GUI is 8 digits and passes the check-digit algorithm. For taxable B-type, compute VAT on top of taxable lines. TaxType must not be 9 (no mixed tax). Buyer invoice title is required. Line Amount is before tax; you must compute TaxAmount. |
| C-type invoice |
Buyer GUI is 0000000000. Line Amount is tax-inclusive; TaxAmount = 0 at header. Only C-type may use TaxType = 9 (mixed); each line then needs ItemTaxType (1 / 2 / 3). |
3. Sales totals and tax
3.1 Taxable / exempt / zero-rate sales totals
| Field |
How to compute |
| Taxable sales total (SalesAmount) |
Sum of line Amount where line TaxType = 1 (taxable). |
| Exempt sales total (FreeTaxSalesAmount) |
Sum of line Amount where line TaxType = 3 (exempt). |
| Zero-rate sales total (ZeroTaxSalesAmount) |
Sum of line Amount where line TaxType = 2 (zero-rate). |
3.2 VAT amount (TaxAmount)
| Scenario |
Rule |
| B-type, VAT on top |
Tax = taxable sales (SalesAmount) × 0.05, rounded to integer. |
| C-type, zero-rate, exempt |
Tax amount is 0. |
| Tolerance |
Tax difference must not exceed NT$5; otherwise treat as error. |
3.3 Grand total (TotalAmount)
| Item |
Description |
| Formula |
Taxable sales + exempt sales + zero-rate sales + tax amount. |
| Tolerance |
Difference must not exceed NT$5; otherwise treat as error. |
4. Invoice date, time, and upload deadline
| Item |
Description |
| InvoiceDate |
MOF format (e.g. YYYY-MM-DD). |
| InvoiceTime |
MOF format (e.g. HH:MM:SS). |
| Upload window |
Invoices with buyer GUI (B-type) must upload within 7 days; C-type within 48 hours (confirm current MOF / center rules). |
5. Invoice number (InvoiceNumber)
| Item |
Description |
| Format |
2 English letters + 8 digits, 10 characters total. |
6. GUI (統一編號) check digit
The Taiwan GUI identifies registered businesses; it is 8 numeric digits. Validate using the weighted product algorithm.
6.1 Weights
Multiply each digit by: 1, 2, 1, 2, 1, 2, 4, 1 (digit 7 has special handling).
6.2 Procedure
- Multiply each of the 8 digits by its weight.
- If a product is two digits, sum those two digits (digit-sum).
- Sum all results → call this Z.
- If Z mod 5 = 0, the GUI is valid.
- If digit 7 is
7, compute two sums:
- Z1: treat digit 7 as 1.
- Z2: treat digit 7 as 0.
- If either Z1 or Z2 is divisible by 5, the GUI is valid.
7. Mandatory fields
| Field |
Description |
| Seller.Name |
Required. |
| Seller.Address |
Required. |
| Buyer.Name |
Required. |
8. Customs clearance mark (CustomsClearanceMark)
| Item |
Description |
| When |
Required for zero-rate invoices. |
| Values |
1 = via customs; 2 = not via customs. |
9. Carrier type and carrier IDs (CarrierType, CarrierId1, CarrierId2)
| CarrierType |
Meaning |
Validation highlights |
| 3J0002 |
Mobile barcode |
CarrierId1 or CarrierId2: (1) Code39, total length 8; (2) first char /; (3) remaining 7 chars: digits 0-9, uppercase A-Z, allowed symbols; (4) longer carrier strings may apply per spec — case-sensitive for letters. |
| EJ1520 |
e首發票 member carrier |
Fill per center specification. |
| 89430377 |
e首發票 custodial carrier |
Note: not a cloud invoice → cannot bind to personal cloud membership in the usual way. |
10. Print mark (PrintMark)
| Item |
Description |
| C-type printed proof or B-type print not controlled |
Treated as non-cloud path for membership binding rules (cannot use cloud 歸戶 in the same way as typical cloud invoices). |
11. Cloud invoice membership (雲端發票歸戶)
A cloud invoice can be bound to a consumer account only if:
- Mobile barcode (3J0002) can bind directly; or
- At least one valid identity channel exists (email, mobile number, member id, etc.) and an EJ1520 e首發票 member carrier code is established per center rules.
Version history
| Version |
Date |
Author |
Changes |
| v1.0 |
2026-05-15 |
SystemLead |
English page aligned with Chinese 發票開立檢核作業. |