| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Point of Sale (point_of_sale) • Discuss (mail) • Inventory (stock) |
| Lines of code | 1412 |
| Technical Name |
l10n_rw_ebm_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)
• Point of Sale (point_of_sale) • Discuss (mail) • Inventory (stock) |
| Lines of code | 1412 |
| Technical Name |
l10n_rw_ebm_pos |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
Rwanda RRA EBM 2.1 â Point of Sale Fiscalisation
Real-time fiscal receipts for Rwandan retail: signature, Internal Data, MRC and verification QR â sent through your own certified VSDC
What it does
The Rwanda Revenue Authority (RRA) requires every retail sale to be fiscalised through the Electronic Billing Machine (EBM 2.1) model. Each Point of Sale receipt must be processed by a certified Secure Data Controller (SDC) reached through the Virtual Sales Data Controller (VSDC), which returns the receipt's Internal Data and Receipt Signature records together with the SDC ID and Machine Registration Code (MRC) that must be printed on the slip.
This module turns Odoo Point of Sale into an EBM-ready front office. It
builds the exact trnsSalesSaveWr payload the VSDC expects,
computes the VAT breakdown across the four RRA categories, transmits the
receipt to your own certified VSDC, stores the returned records and
renders the RRA verification QR code.
Real-time POS fiscalisation
Every POS order is queued and sent to the VSDC. The returned 26-character Internal Data and 16-character Receipt Signature are stored and grouped into the printed 4-character blocks.
Correct VAT arithmetic
POS prices are VAT-inclusive in Rwanda. Each line is split into a taxable base and an 18% VAT amount, then aggregated per RRA category A/B/C/D for the receipt summary.
Verification QR code
A QR code resolving to the RRA EBM public receipt verificator is generated for every fiscalised receipt, carrying the seller TIN, receipt number and signature.
TIN validation
Company and customer 9-digit RRA TINs are structurally validated before a receipt is sent, so malformed numbers never reach the VSDC.
RRA EBM 2.1 codes implemented
| Area | Codes |
|---|---|
| VAT categories (taxTyCd) | A = Exempt (0%), B = Taxable (18% standard VAT), C = Export (0%), D = Non-taxable (0%) |
| Receipt type (rcptTyCd) | S = Sale, R = Refund |
| Transaction type (salesTyCd) | N = Normal, C = Copy, T = Training, P = Proforma |
| Payment type (pmtTyCd) | 01 Cash, 02 Credit, 03 Cash/Credit, 04 Bank cheque, 05 Card, 06 Mobile money, 07 Other |
| SDC records | Internal Data (26 Base-32 chars), Receipt Signature (16 Base-32 chars), grouped in 4-char blocks |
| Timestamps | yyyyMMddHHmmss (cfmDt), yyyyMMdd (salesDt) |
Feature list
- POS order EBM status (To Fiscalise / Fiscalised / Rejected / Error / Offline preview) with batch and scheduled retry.
- VSDC
trnsSalesSaveWrsales payload builder with full per-line and per-category tax breakdown. - Per-product RRA VAT category override (A/B/C/D) for exports and non-taxable supplies.
- Refund receipts that reference the original receipt number.
- Internal Data + Receipt Signature normalisation, length validation and printed grouping.
- Local SHA-256 verification digest of the canonical signing data-string for tamper detection.
- BYOK VSDC connection profile with connection test, SDC ID / MRC discovery and full transport logging.
- Business-rule validation (TIN, category/rate consistency, totals reconciliation) before transmission.
Boundary & disclosure
This module performs format generation and transmits the receipt to your own certified VSDC/SDC using your credentials (BYOK). It is not a certified Secure Data Controller and does not supply, proxy or impersonate one: the legal fiscal signature is produced by your RRA-registered device. The VSDC base URL and device identifiers are your configuration and stay in your database; no receipt data is sent anywhere other than the VSDC endpoint you configure.
Screenshots
Vsdc Connections
Fiscalise 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