We've compressed the 200+ steps of raw EFRIS integration into three simple actions. No cryptographic expertise, no engineering team, no months of development.
Sign up, enter your TIN and EFRIS credentials. Upload your RSA keys once via our guided wizard — or let us generate a compliant keypair for you.
POST your invoice in simple, human-readable JSON: buyer TIN, line items with prices, and currency. No encryption, no interface codes, no envelopes.
Receive a URA-authenticated invoice number, QR code, and fiscal receipt data in milliseconds. Complete audit trail saved automatically.
Every time you call our API, this is what happens automatically in the background.
AES key validity check
Checks if the daily AES key is fresh. If not, calls T104, RSA-decrypts the new key, and caches it automatically.
Envelope construction
Builds the 3-layer EFRIS JSON envelope with all 15+ mandatory globalInfo fields, interface code, and request reference.
AES-256 encryption
Encrypts the inner payload using the current AES session key, Base64-encodes it, and prepares the signed request.
RSA SHA-256 signing
Decrypts the private key from vault, signs the payload with SHA-256 RSA, and re-encrypts the key immediately after use.
URA submission & retry logic
Sends to URA, interprets the response code, auto-retries on 9901 concurrency limit, refreshes key on 402, and returns a clean result.
Audit log & response
Logs the full request/response cycle with timestamp and status, then returns the invoice number, QR code, and fiscal data to you.
Join businesses across Uganda who've replaced months of integration work with a simple, automated sync.