A Typescript/Javascript SDK for integrating with the Uganda Revenue Authority (URA) Electronic Fiscal Receipting and Invoicing System (efris) API
# URA EFRIS System-to-System Integration SDK (JavaScript)
A production-ready **JavaScript SDK** for integrating with the Uganda Revenue Authority (URA) **EFRIS** (Electronic Fiscal Receipting and Invoicing System) via the **System-to-System (S2S)** interface.
Built in accordance with official URA EFRIS technical specifications, encryption standards, device registration workflows, and Offline Mode Enabler requirements.
---
## Official URA EFRIS Documentation
📄 **Step-by-Step Guide – System-to-System Integration (v1.1)**
efris.ura.go.ug
📄 **Offline-Mode Enabler – Hardware & Software Requirements**
efris.ura.go.ug
📄 **Offline-Mode Enabler – Installation Guide**
efris.ura.go.ug
📄 **Interface Requirements for Information Management and Fiscalisation**
efris.ura.go.ug
📄 **EFRIS Thumbprint & Device Registration Guide**
efris.ura.go.ug
📄 **EFRIS Interface Design v23.7 Guide**
efris.ura.go.ug
---
> ⚠️ **Important Notice**
> This SDK implements the **URA EFRIS System-to-System (S2S)** integration model.
> Proper onboarding, certificate provisioning, and device registration with URA are required before production use.
---
## Features
✅ System-to-System (S2S) API integration
✅ AES/RSA payload encryption & digital signatures
✅ URA-compliant request/response handling
✅ Device & taxpayer authentication helpers
✅ Timezone-safe timestamp utilities (EAT / UTC)
✅ Offline Mode Enabler compatibility
✅ Axios / Fetch compatible HTTP layer
✅ Robust error handling & validation
---
## Installation
Inst …