MojaedgeStart trial
Compliance

KRA eTIMS

Auto-sign every Sales Invoice. CU number and QR appear on the receipt.

How it works

Every submitted Sales Invoice fires an `on_submit` hook that calls KRA's VSCU `saveTrnsSalesList` endpoint. We receive a CU invoice number + signature + QR URL, store them on the Sales Invoice (`etims_cu_invoice_no`, `etims_qr_url`, `etims_signed_at`), and surface them on the PDF receipt.

Sandbox vs production

Sandbox uses our deterministic mock CU numbers — invoices look real but KRA never sees them. Production needs your tenant's `communication_key` + `branch_id` issued by the KRA agent when they register your eTIMS box. Send those to us and we flip a single env var.

Credit notes

Cancelling a submitted Sales Invoice fires the `on_cancel` hook → we file a credit note with KRA. The audit trail stays clean. Don't cancel-then-resubmit; create a separate credit note in ERPNext as standard practice.

Failures

Hook failures are non-blocking — the SI still submits in ERPNext. We retry the eTIMS call up to 4 times. Persistent failures land in the eTIMS Failed Calls list (System Manager → eTIMS → Failed Calls) for manual replay.


Missing something? Tell us what you needed.