| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 1641 |
| Technical Name |
l10n_tz_vfd_pos |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 1641 |
| Technical Name |
l10n_tz_vfd_pos |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
Tanzania TRA VFD Receipts
Real-time fiscalisation of B2C point-of-sale receipts with the Tanzania Revenue Authority (TRA) Electronic Fiscal Device Management System (EFDMS)
Turn Odoo into a TRA-compliant Virtual Fiscal Device (VFD) front end. Every customer receipt is built into the EFDMS XML format, RSA-signed with your own TRA-issued key, transmitted to the EFDMS in real time, and stamped with a receipt verification number (RCTVNUM) and a verification QR code your customers can check with the TRA.
What it does
EFDMS receipt generator
Builds the exact TRA <RCT> body â DATE, TIME, TIN, REGID, EFDSERIAL, customer
identification (CUSTIDTYPE 1-6), the GC / DC / ZNUM counters, ITEMS, TOTALS, PAYMENTS and the per-rate
VATTOTALS â wrapped in the signed <EFDMS> envelope.
Verification code & QR
Computes the verification number RCTVNUM = RECEIPTCODE + GC and renders the public TRA
verification URL as a QR code, ready to print on the fiscal receipt.
RSA-SHA1 signing (BYOK)
Signs every receipt, Z-report and registration body with your own TRA-issued private key using RSA over SHA-1, base64 encoded, exactly as the VFD specification mandates. Paste the PEM or upload the PKCS#12 (.pfx) directly.
Statutory counters
Maintains the global counter (GC, lifetime, equal to RCTNUM), the daily counter (DC, resets each day) and the Z-number (ZNUM) on the company, enforcing the EFDMS rule that counters never repeat or go backwards.
Tanzania VAT categories handled
| Letter | TAXCODE | Rate | Treatment |
|---|---|---|---|
| A | 1 | 18% | Standard Rate |
| B | 2 | 0% | Special Rate |
| C | 3 | 0% | Zero Rated |
| D | 4 | 0% | Special Relief |
| E | 5 | 0% | Exempt |
Map each Odoo tax to its VFD VAT category letter; the module reports the net/tax split per rate in the VATTOTALS block.
Feature highlights
- One-step onboarding wizard (identifiers, credentials, signing key).
- PKCS#12 (.pfx) loader that extracts the key and the Cert-Serial header.
- Real-time EFDMS submission with token authentication.
- ACKCODE / ACKMSG parsing with a full transport log per receipt.
- Daily Z-report builder.
- TIN (9-digit) and VRN structural validation on company and partners.
- Validate / Generate / Fiscalise buttons on the customer invoice.
- Optional scheduled action to auto-fiscalise queued receipts.
How fiscalisation works
- Configure your TRA identifiers and upload your signing key in the onboarding wizard.
- Post a customer invoice / receipt; it is queued for fiscalisation.
- The module builds and RSA-SHA1 signs the EFDMS receipt envelope.
- The signed envelope is transmitted to the TRA EFDMS; the ACK is recorded.
- The receipt verification number and QR code are stored and printed.
Bring your own keys â you stay the taxpayer of record
This module is a format generator and transmitter. It uses your own TRA-issued VFD credentials and signing key to build, sign and send the receipts that your registered fiscal identity submits. It is not a certified fiscal device and does not act as one on your behalf; your credentials never leave your own database and are sent only to the TRA endpoint you configure.
Technical
- Odoo 18 and 19, Community-compatible (depends only on
account). - Python:
cryptography,requests,qrcode. - Framework-free, fully unit-tested fiscalisation core (tax, validation, signing, XML, QR).
Screenshots
Connections
Onboarding
Fiscal Receipts
Odoo Proprietary License v1.0 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.
Please log in to comment on this module