Skip to main content
Product details are displayed in English. Translations coming soon.
Tanzania TRA EFD Compliance for ERPNext — A build-to-order Frappe app that fiscalizes ERPNext Sales Invoices against Tanzania — 1/1مثالی پیش منظر

A build-to-order Frappe app that fiscalizes ERPNext Sales Invoices against Tanzania Revenue Authority EFD/VFD

requirements, returning the fiscal receipt number, verification code and QR back onto the invoice.

ECOSIRE builds, installs and supports it for your ERPNext v15/v16 site after a scoping call.

Tanzania TRA EFD Compliance for ERPNext کیا ہے؟

A build-to-order Frappe app that fiscalizes ERPNext Sales Invoices against Tanzania Revenue Authority EFD/VFD requirements, returning the fiscal receipt number, verification code and QR back onto the invoice. ECOSIRE builds, installs and supports it for your ERPNext v15/v16 site after a scoping call. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

اہم خصوصیات

Dedicated Frappe app with its own module, DocTypes and git repository — installed with `bench get-app` and `bench --site <site> install-app`, never as loose customisations scattered across your site
`TRA EFD Settings` single DocType per company: VFD/EFD registration details, endpoint URLs, certificate material and credentials stored as encrypted `Password` fieldtype
`TRA Fiscal Document` DocType recording every attempt — request payload, raw response, fiscal receipt number, verification code, verification URL, TRA timestamp and status
`hooks.py` `doc_events` on `Sales Invoice.on_submit` that enqueues fiscalization via `frappe.enqueue`, so an unreachable device never blocks the cashier's submit
`on_cancel` guard blocking cancellation of any Sales Invoice holding a successful fiscal receipt, forcing correction through a credit note instead
Tax mapping driven from `Item Tax Template` and `Sales Taxes and Charges Template` to TRA tax codes (standard, zero-rated, exempt, special) — master data changes, not code changes
Line-level rounding computed to the endpoint's tolerance rather than ERPNext display precision — the most common cause of first-week rejections, handled up front
Customised Print Format rendering the fiscal receipt number, verification code and TRA verification QR onto the customer-facing invoice from the same posting
Rejection workflow: TRA error code and message parsed onto named fields, an indicator on the linked invoice, and a permissioned retry exposed as an `@frappe.whitelist()` method
Hourly `scheduler_events` job sweeping pending and stuck fiscal documents, refreshing device tokens before expiry and ageing unresolved items into an exception report
`TRA Compliance Officer` role plus Role Profile — operators fiscalize and retry without gaining edit rights on device credentials
Client Script on Sales Invoice surfacing fiscal status, receipt number and a one-click view of the underlying fiscal document without leaving the invoice
Full Frappe REST API surface over the fiscal DocTypes plus whitelisted methods for headless fiscalization from POS, e-commerce or a middleware layer
Immutable archive of every request/response pair with Frappe versioning and audit trail, plus an export for TRA audit and internal VAT reconciliation
Built and tested against Frappe/ERPNext v15 and v16, with the app branch pinned to your deployed version

آرڈر پر تیار، مکمل طور پر آپ کے لیے

خود سیٹ اپ کی ضرورت نہیں — ایک کام کرنے والی ایپ جو ECOSIRE بناتا، انسٹال اور سپورٹ کرتا ہے۔

  1. 1

    آپ آرڈر دیتے ہیں

    ایک بار کی تعمیر کی قیمت سے آغاز کریں۔ آغاز پر ہم آپ کے ساتھ مل کر دائرہ کار طے کرتے ہیں۔

  2. 2

    ہم بناتے اور انسٹال کرتے ہیں

    ECOSIRE اسے آپ کے ERPNext پر بناتا، ترتیب دیتا اور انسٹال کرتا ہے۔

  3. 3

    لائیو + معاونت

    آپ تقریباً ایک کاروباری ہفتے میں لائیو ہو جاتے ہیں، گو لائیو کے بعد دو ہفتوں کی معاونت کے ساتھ۔ ہمارے فراہم کردہ کوڈ کی خرابیاں مفت درست کی جاتی ہیں۔

تکنیکی تفصیلات

ERPNext ہم آہنگی
—
لائسنس
لائسنس کی تصدیق درکار ہے
Python کی ضرورت
Python 3.10+
ڈیٹابیس
MariaDB 10.6+

اس مصنوع کے بارے میں

Finance teams invoicing in Tanzania run a split process: the sale is recorded in ERPNext, but the fiscal receipt is produced somewhere else — a physical EFD terminal on the counter, a vendor portal, or a spreadsheet the accountant re-keys at month end. ERPNext core has no concept of a fiscal device. A Sales Invoice submits happily whether or not TRA ever saw it, the naming series bears no relationship to the fiscal receipt number, and the Tanzanian VAT breakdown lives in Sales Taxes and Charges in a shape no fiscal endpoint accepts. The result is the familiar pattern: invoices posted in the ERP that were never fiscalized, fiscal receipts issued that were never posted, and a reconciliation exercise before every VAT return that nobody enjoys.

We build a proper Frappe app — its own module, its own DocTypes, its own git repository — that makes fiscalization a first-class step of the ERPNext posting lifecycle rather than a parallel process. A TRA EFD Settings single DocType holds the per-company device credentials, VFD registration details, endpoint URLs and certificate material, with secrets stored as Password fieldtype so they are encrypted at rest and never rendered back to the browser. A TRA Fiscal Document DocType is created for each fiscalization attempt and carries the full request payload, the raw response, the fiscal receipt number, verification code, verification URL, TRA timestamp and the resulting status. A hooks.py doc_events handler on Sales Invoice on_submit enqueues the fiscalization through frappe.enqueue so a slow or unreachable device never blocks a cashier's submit, and a companion handler blocks on_cancel for any invoice that already holds a successful fiscal receipt — because a fiscalized document is corrected with a credit note, never quietly cancelled.

Tax mapping is driven from your existing ERPNext master data rather than a hard-coded table. We map each Item Tax Template and Sales Taxes and Charges Template to the TRA tax code it represents — standard-rated, zero-rated, exempt, special rate — so a change in the master data changes the fiscal output without touching code. Line-level rounding is computed to the tolerance the endpoint expects rather than inherited from ERPNext's display precision, which is the single most common cause of rejection on first go-live. Human-readable and machine formats come out of the same posting: the signed payload goes to TRA, and a customised Print Format renders the fiscal receipt number, verification code and a QR code pointing at the TRA verification URL onto the customer-facing invoice, so one submit produces both the fiscal record and the document the customer actually receives.

Rejections are treated as a workflow, not an exception in a log. A failed fiscalization leaves the TRA Fiscal Document in a Failed state with the TRA error code and message parsed onto named fields, an indicator on the linked Sales Invoice, and a retry action exposed as a whitelisted method (@frappe.whitelist()) so an authorised finance user can re-attempt after correcting the underlying data. A scheduler_events hourly job sweeps stuck and pending documents, refreshes the device token before expiry, and raises an exception report of anything that has aged past your tolerance. Permissions ship as a dedicated TRA Compliance Officer role with a matching Role Profile, so operators can fiscalize and retry without gaining rights to edit the credentials in Settings. Everything is reachable over the standard Frappe REST API for your own integrations, and archiving is real archiving — every request and response is retained immutably against the fiscal document with a versioned audit trail, exportable for a TRA audit.

This is build-to-order, not a marketplace download. We start with a short scoping call to confirm your TRA registration and device model, your ERPNext version (v15 or v16), your VAT template structure and your branch or POS topology. From confirmed scope, typical delivery is one working week: we build against a staging copy of your site, run UAT with your finance team on real invoice shapes, then install on production with a documented rollback. You receive the installable source for your version, the git repository, technical and user documentation, a training session, and a post-go-live support window while the first VAT period runs through the new flow.

What you get

  • Installable source code for your exact Frappe/ERPNext version (v15 or v16), branch-pinned and bench-installable
  • Installation and configuration on your site, including `TRA EFD Settings` populated with your registration and device details
  • Technical documentation: DocType reference, hooks and scheduler map, tax-code mapping table, API endpoints and error-code catalogue
  • User guide plus a live training session for finance and cashier users covering fiscalization, rejection handling and credit-note correction
  • UAT on a staging copy of your site using your own invoice shapes, signed off before any production install
  • Documented production install with a tested rollback plan and a pre-install site backup
  • Post-go-live support window covering defect fixes through your first full VAT period on the new flow
  • Handover of the private git repository so your team owns the source outright

Who this is for

Finance Manager / Chief Accountant

Owns the VAT return and signs off the numbers. Needs every posted Sales Invoice to have a matching TRA fiscal receipt with no manual reconciliation, and a defensible audit trail when TRA asks for the underlying request and response.

ERP / IT Manager running ERPNext

Responsible for the site's stability and upgrade path. Wants a proper Frappe app in its own repository with hooks and scheduler events they can read, not a pile of Server Scripts and Custom Fields that break on the next `bench update`.

Accounts Receivable / Billing Team Lead

Issues invoices daily and absorbs the pain when a fiscalization fails. Needs the rejection reason visible on the invoice itself, a retry they are permitted to run, and a clear rule about when to raise a credit note rather than cancel.

Group Controller with Tanzanian operations

Runs multiple companies or branches where only some entities are TRA-registered. Needs per-company settings, correct behaviour on non-Tanzanian entities, and consolidated visibility of fiscalization exceptions across all branches.

How Tanzania TRA EFD Compliance for ERPNext Compares

CriterionECOSIRECustom BuildCompetitorERPNext نیٹو
Fiscalization trigger`on_submit` doc event on Sales Invoice, queued via `frappe.enqueue` so a slow device never blocks the userUsually a Server Script fired synchronously — the cashier waits, and a timeout aborts the submitOften a manual button the user must remember to press after postingNone — ERPNext has no concept of a fiscal device
Tax mapping to TRA codesDriven from `Item Tax Template` and `Sales Taxes and Charges Template`, editable as master dataTypically hard-coded rates in the script, reopened for every rate changeFixed mapping tuned to the vendor's reference chart of accountsTax templates exist but carry no TRA tax-code concept
Rejection handling`Failed` state with parsed TRA error code, an invoice indicator and a permissioned retry actionUsually an entry in the Error Log nobody reads until the VAT returnRetry exists, but the reason is often a raw response dumpNot applicable
Cancellation safety`on_cancel` guard forces a credit note once a fiscal receipt existsRarely implemented — cancelled invoices drift out of sync with TRAVaries by vendor; frequently unguardedCancels freely, with no fiscal awareness
Audit archiveImmutable request/response pairs on `TRA Fiscal Document` with Frappe versioning and an audit exportWhatever the developer chose to log, often truncatedResponse stored, request frequently discardedStandard document versioning only, no fiscal payloads
Permissions model`TRA Compliance Officer` role and Role Profile separating fiscalize/retry from credential edit rightsUsually runs as System Manager because it was quickerGeneric role; credentials often visible to anyone who can fiscalizeStandard Accounts roles, no fiscal separation
Upgrade pathProper Frappe app in its own repo, branch-pinned to v15/v16 and handed to youCustom Fields and Server Scripts that survive `bench update` only by luckVendor-controlled release cadence; you wait for their version supportUpgrades cleanly, but delivers no fiscalization at all
Source ownershipPrivate git repository handed over — your team can maintain itYou own it, but the person who wrote it may not still be thereLicensed or vendor-hosted app; source usually not providedOpen source, but the capability does not exist

Frequently Asked Questions about Tanzania TRA EFD Compliance

Can I download and install this today?

No — this is build-to-order, and we say so plainly. There is no instant download and no existing Frappe Cloud Marketplace listing. We build the app against your ERPNext version, your TRA registration and your VAT template structure, then install and support it.

How long does delivery take?

Typical delivery is one working week from confirmed scope. The clock starts once the scoping call has settled your ERPNext version, TRA/VFD registration and device details, tax mapping and branch topology — not from the day you enquire. Wider scope such as multi-company, POS lanes or a middleware layer is quoted separately.

Which ERPNext versions are supported?

Frappe/ERPNext v15 and v16. We build and test against the version you actually run and pin the app branch to it. If you are mid-upgrade, say so on the scoping call and we will target the version you will be on at go-live.

What happens when TRA rejects an invoice?

The `TRA Fiscal Document` moves to a `Failed` state with the TRA error code and message parsed onto named fields, the linked Sales Invoice shows a clear indicator, and an authorised user can correct the underlying data and trigger a retry. An hourly scheduler job ages anything that stays unresolved into an exception report, so nothing is silently lost.

Can I still cancel a fiscalized invoice in ERPNext?

Deliberately not. Once a Sales Invoice holds a successful fiscal receipt, an `on_cancel` guard blocks cancellation and directs you to raise a credit note instead — the correct treatment for a document TRA has already seen. Invoices that failed or were never fiscalized cancel normally.

What support and updates do I get after go-live?

A post-go-live support window covering defect fixes runs through your first full VAT period on the new flow. Beyond that we offer an annual support and maintenance agreement covering TRA specification changes, ERPNext version compatibility and enhancements. You also receive the git repository, so your own team can maintain the source if you prefer.

Do you touch our production site during the build?

Not until UAT is signed off. We build and test against a staging copy, run acceptance with your finance team on real invoice shapes, and only then perform the production install — with a site backup taken first and a documented rollback plan in hand.

آرڈر پر تیار
Tap & PayTabs Payment Gateway for MENA
قیمت کا تخمینہ طلب کریں

Tanzania TRA EFD Compliance

A build-to-order Frappe app that fiscalizes ERPNext Sales Invoices against Tanzania Revenue Authority EFD/VFD requirements, returning the fiscal receipt number, verification code and QR back onto the invoice. ECOSIRE builds, installs and supports it for your ERPNext v15/v16 site after a scoping call.

  • Dedicated Frappe app with its own module, DocTypes and git repository — installed with `bench get-app` and `bench --site <site> install-app`, never as loose customisations scattered across your site
  • `TRA EFD Settings` single DocType per company: VFD/EFD registration details, endpoint URLs, certificate material and credentials stored as encrypted `Password` fieldtype
  • `TRA Fiscal Document` DocType recording every attempt — request payload, raw response, fiscal receipt number, verification code, verification URL, TRA timestamp and status
  • `hooks.py` `doc_events` on `Sales Invoice.on_submit` that enqueues fiscalization via `frappe.enqueue`, so an unreachable device never blocks the cashier's submit

قیمت کا تخمینہ طلب کریں

ہمیں Tanzania TRA EFD Compliance کے لیے اپنی ضروریات بتائیں اور ہم آپ کو قیمتیں، لائسنس کے اختیارات اور ایک مخصوص تجویز بھیجیں گے — عام طور پر ایک کاروباری دن میں۔

ابھی کوئی ادائیگی نہیں۔ یہ ہماری ٹیم کو قیمت کی درخواست بھیجتا ہے — ہم قیمت اور اگلے اقدامات کے ساتھ ای میل کے ذریعے رابطہ کریں گے۔