• Demo
  • Contact us
  • Log in
  • Sign up
  • English (US) Tiếng Việt
ERPOnline
  • Introductions
    • Features Overview
    • Integrated Apps & Modules
  • Pricing
  • Services
    • Odoo Implementation & Consultancy
    • Odoo Training
    • Odoo Customization On-demand
    • Odoo Upgrade Service
  • Solution
    Giải pháp theo nghiệp vụ Quản lý Quan hệ khách hàng Quản lý Bán Hàng/Dịch vụ Quản lý Mua sắm Hoạch định nguồn lực Sản xuất (MRP) Quản lý Nhân sự (HRM) Kế toán TC (Financial Accounting) Kế toán QT (Analytical Accounting) Bán lẻ với POS (Point of Sales) Thương mại điện tử tích hợp
    Giải pháp Chuyên Ngành ERP cho DN sản xuất ERP cho DN Thương mại & Dịch vụ ERP cho Siêu thị, Cửa hàng bán lẻ ERP cho ngành Đóng tàu ERP cho DN Du lịch & Lữ hành ERP cho Trường học ERP cho DN vận tải hành khách
  • Help
    • User Manuals
    • Helpdesk
  • Appointment
  • 0
  • 0
  • Contact Us
ERPOnline
  • 0
  • 0
    • Introductions
      • Features Overview
      • Integrated Apps & Modules
    • Pricing
    • Services
      • Odoo Implementation & Consultancy
      • Odoo Training
      • Odoo Customization On-demand
      • Odoo Upgrade Service
    • Solution
    • Help
      • User Manuals
      • Helpdesk
    • Appointment
  • Contact Us
  1. APPS
  2. Vietnamese E-Invoice Integration 19.0
Vietnamese E-Invoice Integration
Vietnamese E-Invoice Integration

Vietnamese E-Invoice Integration

by T.V.T Marine Automation (aka TVTMA) Viindoo

4.9

$ 109.76 $ 109.76
v 19.0 0
Live Demo Demo Video
Lines of Code 3336
Technical name l10n_vn_viin_edi
License OPL-1
Website https://viindoo.com/apps/modules/19.0/l10n_vn_viin_edi
Read description for v 13.0 v 14.0 v 15.0 v 16.0 v 17.0 v 18.0
Required Apps Invoicing (account) Discuss (mail)
Included Dependencies Partner Budget Code Partner Identity Information Viindoo Base Accounting Foundation API Request Logger Legal Invoice Number
Extensions E-Invoice - Viettel S-Invoice Integrator E-Invoice - MISA meInvoice Integrator Show EInvoice Information on POS Receipt E-Invoice - VNIs VN-Invoice Integrator Vietnam E-invoice - Sale Vietnam Electronic Invoice Line Grouping [TEST] Vietnamese E-Invoice Provider Test Adapter
  • Description
  • Documentation
  • License
Viindoo Logo
Odoo Community
Odoo Enterprise
Viindoo Cloud

Vietnamese E-Invoice Integration

Seamless integration with Vietnamese e-invoice providers (Viettel S-Invoice, VNInvoice, MISA E-Invoice, etc), ensuring compliance and efficiency in invoicing workflows

Vietnamese E-Invoice Integration

At a Glance

The facts of Vietnamese E-Invoice Integration, version 1.1.7, in one place. Published by Viindoo.

Technical name
l10n_vn_viin_edi
Odoo version
19.0 (Odoo Community, Odoo Enterprise, Viindoo Cloud)
Category
Accounting/Localizations/EDI
Depends on
account, l10n_vn, viin_account, to_legal_invoice_number, viin_partner_identity, viin_partner_budget_code, viin_api_request_logger
Adds
5 new models, 10 extended models, 1 menu, 1 scheduled action, 4 settings
Licence
OPL-1
Last updated
2026-09-11
Live demo
v19demo-int.viindoo.com

Key Features

Built natively on Odoo/Viindoo to streamline real business operations:

Provider Integration

Preconfigured for popular Vietnamese e-invoice providers like Viettel S-Invoice, VNInvoice, and MISA E-Invoice, with tools to extend compatibility to new providers.

Easy VietNam E-invoice configuration

config E-invoice serial, type and template with ease.

Enhanced Accounting Fields for E-Invoicing
  • In Customer Invoice:
  • E-Invoice Issuance Date: Tracks the issuance date of the electronic invoice.
  • E-invoice Transaction ID: Tracks the E-invoice Transaction ID of the electronic invoice.
  • E-Invoice Issue User: Tracks the E-Invoice Issue User of the electronic invoice.
  • E-Invoice Representation File: Stores the representation file generated for the invoice.
  • E-Invoice Converted File: Stores the printable version of the e-invoice in PDF format.
  • In Account Journal:
  • E-Invoice Provider: Specifies the e-invoice provider (e.g., MISA, VNIs, Viettel).
  • Default E-Invoice Type: Sets the default type of e-invoice (e.g., VAT Invoice, Sale Invoice).
  • Default Template: Assigns the default e-invoice template for all invoices under this journal.
  • Default E-Invoice Serial: Links to the e-invoice serial for compliance and traceability.
Real-Time Status Tracking

Monitor issuance in real time and filter every invoice by one normalized E-Invoice Status - to issue, issued, adjusted, replaced, cancelled or error - across all providers.

Benefits

Regulatory Compliance

The module ensures businesses fully comply with Vietnam's e-invoice regulations, avoiding legal violations and risks.

Cost and Time Savings

Eliminate manual processes such as printing, storing, and delivering paper invoices, helping businesses save operational time and costs.

Improved Management Efficiency

Easily issue, adjust, and cancel e-invoices directly within the system, ensuring quick and accurate processing.

Increased Transparency

Real-time tracking of invoice status minimizes errors and enhances financial transparency.

Scalability

Flexibly expand to integrate with additional e-invoice providers or customize workflows to meet specific business needs.

  • Features
  • Demo
  • Support
  • Technical Requirement
  • Changes log

Vietnam E-Invoicing settings

Vietnam E-Invoicing settings
Unified E-Invoice menu

Unified E-Invoice menu

Merged E-Invoice tab

Merged E-Invoice tab

See Vietnamese E-Invoice Integration in Action

See how this module solves real business problems in a working Viindoo environment.

User Manual Vietnamese E-Invoice Integration
Live Demo v19demo-int.viindoo.com

Need help with Vietnamese E-Invoice Integration?

For questions, implementation support, or consulting services, contact Viindoo.

Pre-Sales & Partnership

sales@viindoo.com

When contacting us, please include:

  • Odoo/Viindoo version (CE/EE).
  • Number of users and business scope.
  • Other modules currently in use.

Technical Support

apps.support@viindoo.com

For faster troubleshooting, please provide:

  • Order number or app reference.
  • Odoo/Viindoo version & edition.
  • Steps to reproduce the issue.
  • Screenshots/logs if available.

Technical Requirement

Odoo/Viindoo Version: 19.0
Required Modules: account, l10n_vn, viin_account, to_legal_invoice_number, viin_partner_identity, viin_partner_budget_code, viin_api_request_logger
Editions: Community Edition and Enterprise Edition.
License: OPL-1

Changes log

We continuously improve this module. Recent updates from the official Viindoo repository:

  • 2026-07-05 Improved Upgraded to Odoo 19.0: unified E-Invoice menu, one merged notebook tab, a single E-Invoice status filter, a consolidated Vietnam E-Invoicing settings and partner section, and the e-invoice cancel-guard.
  • 2026-02-24 Fixed TypeError: object of type 'bool' has no len() while downloading invoice on portal.
  • 2026-01-30 Improved E-Invoice validation flow: check on issuance instead of journal posting.
  • 2026-01-07 Performance Speed up the pre_init_hook method by ignoring null values.
  • 2026-01-05 Fixed Update journal dashboard view to be compatible with v17.0.
  • 2025-11-21 Improved Performance by replacing binary attachment domain with filename check.
  • 2025-09-11 Added Identification, passport, budget code for Vietnam edi.

Works Great With These Modules

Extend Vietnamese E-Invoice Integration with complementary Viindoo apps:

Vietnam Electronic Invoice Line Grouping

Provide options to issue an e-invoice on a detailed or line-grouped form

Module l10n_vn_edi_line_grouping
E-Invoice - Viettel S-Invoice Integrator

Issue Vietnamese e-invoices through Viettel S-Invoice on top of Odoo core, fully integrated with the unified E-Invoice interface

Module l10n_vn_viin_accounting_sinvoice
Show EInvoice Information on POS Receipt

General Information of EInvoice on POS Receipt

Module l10n_vn_viin_edi_pos
Vietnam E-invoice - Sale

Automatically add Vietnamese descriptions when creating invoices from sales orders for compliance and efficiency.

Module l10n_vn_viin_einvoice_sale

Who Should Use This Module?

Built for teams that need this capability fully integrated into their Odoo/Viindoo stack.

Executives & Business Owners

Need clear visibility into operations and a stack that scales without bespoke development.

Operations / Department Leaders

Want to streamline daily workflows, remove manual handoffs, and keep data consistent across teams.

Implementers & Odoo Partners

Looking for production-ready Viindoo modules to deliver projects faster and at lower risk.

Installation

  • Navigate to Apps.
  • Search with keyword l10n_vn_viin_edi.
  • Press Install.

Instruction

Instruction video: E-Invoice common

This module provides the provider-agnostic backbone for Vietnamese e-invoicing. Once a provider module is installed alongside it - Viettel S-Invoice, VNInvoice (VNIs) or MISA meInvoice - every provider is configured, issued, tracked, adjusted, replaced and cancelled from the same unified E-Invoice interface described below, instead of one separate screen per provider.

1. Set up the E-Invoice Service, Serial and default assignment.

  • Go to Accounting ‣ Configuration ‣ E-Invoice ‣ E-Invoice Services. Installing a provider's own module (MISA meInvoice, VNIs VN-Invoice or Viettel S-Invoice) adds a ready-made service row for that provider here.
E-Invoice Services list, one row per installed provider
  • Open the service row for your provider, choose the Mode (Sandbox or Production) and fill in the connection credentials - Username/Password for Production, or Sandbox Username/Sandbox Password for Sandbox. Some providers add a one-click helper on this same screen - for example MISA meInvoice's Get meInvoice template/serial button, which creates a matching template and serial automatically; see that provider's own guide for details.
  • Go to Accounting ‣ Configuration ‣ E-Invoice ‣ E-Invoice Serial and create a serial that references the service above together with an e-invoice template.
Creating an E-Invoice Serial linked to a service and a template
  • Assign the serial. An invoice takes the first serial that can be used among these, in this order:

    1. the Default Serial of its customer, in the E-Invoice section of the Invoicing tab of the customer form. It is read from the customer company, never from one of its contacts;
    2. the E-Invoice Serial of its sales journal;
    3. the company-wide Default Serial in Accounting ‣ Configuration ‣ Settings ‣ Vietnam E-Invoicing, which only serves the invoices whose customer and sales journal have no serial they can use.

    A serial that is deprecated or belongs to another company is skipped.

Vietnam E-Invoicing section of the accounting settings, with the Default Serial field E-Invoice section of the Invoicing tab of a customer, with its Default Serial

2. Use the unified E-Invoice menu.

  • A single E-Invoice menu groups every e-invoice configuration and operation - services, serials, templates and types - so no provider needs a menu of its own.
Unified E-Invoice menu

3. Fill in e-invoice information on the customer invoice.

  • Open a customer invoice. The E-Invoice notebook tab gathers, in one place, the status and identifiers, the correction information, the provider sub-group and the generated documents - no matter which provider issued the invoice.
  • Signing the e-invoice and sending it to the tax authority no later than the next working day after the invoice date is the accountant's responsibility: the software does not check it (item 7 of the Appendix, Decree 254/2026/ND-CP).
E-Invoice notebook tab on the customer invoice

4. Track e-invoice status across every provider.

  • On the customer invoice list, use the E-Invoice Status filter and group-by to see, in one normalized view, which invoices are still to issue, issued, adjusted, replaced, cancelled or in error - regardless of the underlying provider.
Invoice list grouped by E-Invoice Status
  • To bring issued e-invoices up to date with the provider - for example to fetch the legal number of an e-invoice the provider has issued - select the invoices in the list and choose Actions ‣ Synchronize E-Invoice Information. An invoice without an issued e-invoice is left out.
Synchronize E-Invoice Information in the Actions menu of the invoice list

5. Adjust or replace instead of cancelling an issued e-invoice.

  • An already-issued e-invoice can no longer be simply cancelled, regardless of when it was issued. Clicking Request Cancel on an issued e-invoice blocks the cancel action and guides you to issue an adjustment or a replacement e-invoice instead, keeping your books compliant.
  • The day this rule starts to apply is the Cancellation Blocked From setting in the Vietnam E-Invoicing section of Accounting > Configuration > Settings, shown in the settings screen above as a numeric date with its year. Its shipped value is 1 July 2026; change it only when the regulation sets a different date.
Cancel-guard message shown when requesting cancellation of an issued e-invoice
  • An adjustment e-invoice states, line by line, what it changes on the original e-invoice, so raise the credit note from the original invoice with its Credit Note button. A product line of the credit note that is not linked to a line of the original invoice is refused before anything is sent to the provider, and the message names that line.
  • The credit note window (the Credit Note button of an invoice, or Actions ‣ Reverse in the invoice list) and the Create Replacement E-Invoice window both carry the group Written Agreement or Notice: enter the Agreement Name - the written agreement with the buyer or, for an individual buyer, the notice - and its Agreement Date. The name is required for the buyer of every issued e-invoice, except where your company reports through the summary table or the transaction detail table, or the invoice is ticked Sold on an E-Commerce or Digital Platform; the Legal basis section below explains these cases.
Credit note window opened from the invoice list, with the Written Agreement or Notice group

6. Issue a forgotten invoice with its own date.

  • Enter the forgotten invoice with the date of the sale, never with today's date: the e-invoice shows that date, and the books and the VAT period follow it.
  • When e-invoices with a later date are already issued in the serial, the provider refuses an earlier-dated e-invoice in that serial. Issue the forgotten invoice in a second serial registered with the provider, chosen while the invoice is a draft; an invoice already confirmed is reset to draft first. Then confirm the invoice and send it. Once the e-invoice is issued, its serial can no longer be changed.
    • VN-Invoice: create the serial in Accounting > Configuration > E-Invoice > E-Invoice Serial; an accounting administrator then chooses it as E-Invoice Serial in the E-Invoice tab of the invoice.
    • S-Invoice: Viettel numbers the e-invoices of each invoice symbol. Create the second symbol in Accounting > Configuration > E-Invoice > Viettel S-Invoice > Symbols, then choose it as Invoice Symbol in the E-Invoice tab of the invoice; the E-Invoice Serial stays as it is.
    • MISA meInvoice: ask MISA whether its date-order check covers one serial or the whole account before you rely on a second serial.

7. Give each sending channel its own serial.

  • Invoices sent without anyone watching - after an online payment, by the scheduled batch Send, at the point of sale - stop with a note in the invoice chatter when their e-invoice cannot be issued. With Issue Earlier Invoice First on, an e-invoice waits while an earlier invoice of the same serial is not issued yet; invoices of another serial never hold it back.
  • So give each channel its own serial: one for online sales, one for the point of sale, one for the invoices you enter by hand. Set each serial on the sales journal of its channel - the Invoice Journal of the point of sale, the Invoicing Journal of online orders (the first sales journal when the order names none). Step 1 gives the order in which an invoice takes its serial: the serial set on a customer comes first in every channel - the invoices of that customer use it online, at the point of sale and by hand alike - then the serial of the journal, then the Default Serial of the settings. A late invoice entered by hand then never holds back an automatic channel.
  • A stopped send is not retried by itself, and within one channel an unissued invoice holds back the later-dated invoices of its serial. Open them with E-Invoices to Issue on the sales journal of the Accounting dashboard and send them again with Send - one by one, or several selected in the list.

8. Adjust an issued e-invoice upward.

  • An adjustment that lowers the amounts of an issued e-invoice is issued from Odoo with every provider: create the Credit Note of the invoice and send it.
  • An adjustment that raises them is issued from Odoo for S-Invoice, as the guide of the S-Invoice module explains. For MISA meInvoice and VN-Invoice:
    • With the Debit Notes module installed, open the issued invoice, choose Debit Note in its gear menu, check the lines of the debit note and confirm it. The debit note records the increase in the books and has no E-Invoice Serial, so sending it issues no e-invoice.
    • On the provider's portal, issue the increase adjustment of the original e-invoice.
    • When the debit note is in fact a new sale, an accounting administrator chooses its E-Invoice Serial in the E-Invoice tab while it is a draft: it is then issued as a new e-invoice, like any invoice.

9. When the provider cannot be reached or refuses a request.

  • A request that cannot reach the provider stops with a plain sentence in your own language: The e-invoice provider could not be reached. Try again later. Send the invoice again later.
  • When the provider refuses the login, the sentence reads The e-invoice provider refused the login. Check the username and password in the Configuration tab of the e-invoice service. Open the service in Accounting ‣ Configuration ‣ E-Invoice ‣ E-Invoice Services and correct the credentials of the Mode it runs in, as in step 1.
  • An invoice for a Vietnamese company that has no Tax ID, or no Budget Code for a budgetary entity, is stopped before anything is sent. The message names the customer and asks you to set the Tax ID on the customer form, then to issue the e-invoice again.

Legal basis

Vietnamese e-invoicing runs under two instruments in force from 1 July 2026:

  • Decree 254/2026/ND-CP (Nghị định 254/2026/NĐ-CP), which repeals Decree 123/2020/ND-CP in full, Article 1 of Decree 41/2022/ND-CP, and Decree 70/2025/ND-CP in full.
  • Circular 91/2026/TT-BTC (Thông tư 91/2026/TT-BTC), which ends Circular 32/2025/TT-BTC.

Three of their provisions shape how this module behaves.

A written agreement or a notice comes before an adjustment or a replacement. Where the buyer is an economic organisation, another organisation, a business household or an individual trader, the seller and the buyer draw up a written agreement identifying the error before the corrected e-invoice is issued; a private individual buyer receives a notice instead. This requirement applies only to a point-b) correction; a point-a) error is notify-only and never produces a corrected e-invoice. No written agreement is required when the seller transfers e-invoice data through the E-Invoice Data Summary Table, when it transfers transaction-detail data through the Transaction Detail Information Table, or for goods sold on an e-commerce platform or another digital platform. Two settings tell the module which of those applies to you. Set E-Invoice Data Transfer Method in the Vietnam E-Invoicing settings to record how your company reports to the tax authority - it is your standing registration, so it applies to every invoice until you change it. Tick Sold on an E-Commerce or Digital Platform on the invoice itself for a sale made through a platform, because the same seller trades on and off a platform on the same day. When one of them applies the wizard proceeds without an Agreement Name; otherwise it asks for one for every buyer - the name of the written agreement, or of the notice for a private individual - and will not continue until you supply it. (Point b.2, Clause 1, Article 10, Circular 91/2026/TT-BTC, whose closing paragraph refers to Points a.1 and a.2, Clause 3, Article 16, Decree 254/2026/ND-CP.)

An issued e-invoice is corrected, never cancelled. How it is corrected depends on the rules it was first issued under: an invoice first issued under Decree 123/2020/ND-CP, Decree 70/2025/ND-CP or Circular 32/2025/TT-BTC is adjusted or replaced, while an invoice first issued under Decree 51/2010/ND-CP or Decree 04/2014/ND-CP is only replaced, by a new e-invoice issued after the seller and the buyer have drawn up a written agreement stating what was wrong (Clause 2, Article 24, Circular 91/2026/TT-BTC). This is why, from 1 July 2026, the cancel action is blocked once an e-invoice has been issued. An e-invoice that the provider has created but not signed yet is not an issued e-invoice, so it can still be deleted. Clause 1, Article 10 enumerates every route open to a seller who finds an issued e-invoice wrong - notify the buyer, issue an adjustment, or issue a replacement - and cancellation is not among them (Clause 1, Article 10, Circular 91/2026/TT-BTC).

A replacement e-invoice carries the prescribed notation. The replacement states Thay thế cho hóa đơn Mẫu số... ký hiệu... số... ngày... tháng... năm, with the date written day, then month, then year. The module fills this in for you from the invoice being replaced. (Point b.2, Clause 1, Article 10, Circular 91/2026/TT-BTC.)

Keep the written agreement available: the tax authority, or another competent state agency, may ask the seller to produce it.

The form of a correction is yours to choose. On an adjustment e-invoice, an increase is written with positive amounts and a decrease with negative amounts (Point c, Clause 6, Article 10, Circular 91/2026/TT-BTC). The module lets you adjust or replace any issued e-invoice and blocks neither form. Once an e-invoice has been corrected by an adjustment or by a replacement, every later correction of it takes the same form as the first one: an e-invoice already adjusted is corrected again by an adjustment, not replaced (Point a, Clause 6, Article 10, Circular 91/2026/TT-BTC). A wrong e-invoice generated from a cash register is corrected by a replacement e-invoice (Point c, Clause 1, Article 10, Circular 91/2026/TT-BTC), while goods the buyer returns are recorded by an adjustment (Point c.1, Clause 5, Article 10, Circular 91/2026/TT-BTC).

This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software.

The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

ERPOnline
Head Office: Room 820-823, Floor 8, Thanh Dat 3 Building, No. 4 Le Thanh Tong Street, Ngo Quyen Ward, Hai Phong City, Vietnam
+84 225 730 9838
Business Code: 0201994665
Authorized by Haiphong Department of Planning and Investment
Logo Sale Noti MOIT
About Us
Information Contact Us Blogs Jobs
Resource
User Documentation Technical Documentation Github Runbot
Policy
Terms of use Privacy Policy Supporting Policies Data Security & Safety Payment Policy APGL V3 License 14 Days Refund ERPOnline Pricing ERPOnline Terms of Service Regulations on Q&A Forum
Service
Course Forum
ERPOnline is a trademark owned by Viindoo Technology Joint Stock Company
English (US) English (US)  Tiếng Việt Tiếng Việt
Powered by Viindoo - Create a free website

We use cookies to provide you a better user experience on this website. Cookie Policy

Only essentials I agree