ERPNext Plugin — Kenya Compliance via Slade 360
Kenya Compliance via Slade 360 is a Frappe/ERPNext app that connects your ERPNext instance to the Kenya Revenue Authority (KRA) eTIMS platform through the Slade 360 Advantage middleware and the Virtual Sales Control Unit (VSCU).
Once installed and configured, it lets a business run its day-to-day operations in ERPNext while transactions are automatically shared with KRA for tax compliance.
| Item | Value |
|---|---|
| Source repository | github.com/navariltd/kenya-compliance-via-slade |
| App name (bench) | kenya_compliance_via_slade |
| Full guide (wiki) | Complete Guide |
| Compliance pathway | ERPNext → Slade 360 Advantage → KRA eTIMS |
How it works
The app runs inside ERPNext and communicates with the eTIMS servers. The data flow is:
Code
- Business documents (invoices, items, customers, stock movements) are created in ERPNext as normal.
- On finalisation — or on a schedule, depending on your settings — the app converts each document to the VSCU format KRA expects and submits it.
- KRA validates and signs the transaction; the app stores the returned SCU data (including the QR code on sales invoices) back on the ERPNext document.
- Every request is logged in the Integration Request DocType, and failures are captured in the Error Log DocType for troubleshooting.
What it handles
| Area | What is synced |
|---|---|
| Sales invoices | Signed tax invoices + credit notes, with SCU data and QR codes |
| Purchase invoices | Purchase submission and registered-purchase fetch from eTIMS |
| Items | Item registration with KRA classification codes; opening stock balances |
| Customers & Suppliers | Registration and updates, individually, in bulk, or automatically |
| Stock | Stock Ledger Entries submitted via background jobs for real-time inventory |
| BOMs | Bill of Materials submission |
| Imports | Fetch and map imported-goods data from eTIMS |
Note: Registration with KRA and VSCU provisioning goes through an approved third party. Contact etims@savannahinformatics.com to obtain your credentials before you configure the app.
Prerequisites
Before installing, make sure you have:
- A running ERPNext site (v14+) on a working Frappe Bench — or a Frappe Cloud bench.
- Administrator access to that site.
- Your eTIMS / Slade 360 credentials — Client Key, Client Secret, username, password, Branch ID, and Device Serial Number — issued during VSCU registration (etims@savannahinformatics.com).
- A Company already created in ERPNext with the correct KRA PIN.
Installation
Choose the path that matches your hosting setup.
Option A — Self-hosted (Frappe Bench)
Run these commands in an active Bench terminal, from your frappe-bench directory.
1. Download the app into the bench:
Code
2. Install it onto your site:
Code
3. Run migrations and restart:
Code
Replace
<your.site.name.here>with your actual site name (e.g.erp.mycompany.co.ke).
To pull a specific branch or version, append --branch <branch-name> to the get-app command.
Option B — Frappe Cloud
On Frappe Cloud you don't use bench commands directly — you add the app through the dashboard.
- Open your Bench in the Frappe Cloud dashboard and go to the Apps tab.
- Click Add App.
- If the app appears in the marketplace search, select it. Otherwise choose Install from GitHub and reference the repository:
https://github.com/navariltd/kenya-compliance-via-slade - Add the app to the bench, wait for the build to finish, then install it on your site from the site's Apps tab.
- Frappe Cloud runs the migration automatically after installation.
Verifying the installation
After install, confirm the app is present on the site:
Code
kenya_compliance_via_slade should appear in the list. In the ERPNext desk you will also see a new eTims workspace with shortcuts to the relevant DocTypes.
Post-install setup & configuration
Once installed, configure the app inside ERPNext. All configuration lives in the eTims Settings (Environment Settings) DocType.
1. Create the eTims Settings record
Open eTims Settings → New, and fill in:
- Branch ID and Device Serial Number — from your KRA VSCU registration.
- Company — the ERPNext company this branch reports under.
- Server URL and Auth Server URL — the eTIMS endpoints for your environment.
- Client Secret, Client Key, Username, Password — from Slade 360 (Authentication Details tab).
- Sandbox checkbox — tick for testing, untick for production.
- Is Active — mark the record active. Only one active record is allowed per environment + company + branch combination.
2. Fetch all codes
Click Get Codes to pull the latest classification, tax, and reference codes from the eTIMS servers.
3. Sync organisation structures
Click Sync Organisation Units to synchronise your branches, company, departments, and workstations with the Slade server.
4. Submit modes of payment
Click Submit Mode of Payments to register your payment methods.
5. Submit customers and suppliers
From the Customer and Supplier list views, use Submit Customers / Submit Suppliers to register your business partners (individually or in bulk).
6. Classify and register items
From the Item list view, classify each item against the KRA codes and submit to eTIMS. Items can also be sent automatically on create/update once the relevant setting is enabled.
You can also tune the submission frequency and auto-submission behaviour for sales, purchases, and stock in the same settings document.
Testing (self-hosted)
To run the app's test suite, enable testing on the site and run the tests:
Code
Troubleshooting
- Requests not reaching KRA? Check the Integration Request DocType for the outbound payload and response, and the Error Log DocType for exceptions.
- Token expired? The access token regenerates automatically on the next eTIMS request — no manual action needed.
- Background jobs not running? Ensure the bench workers and scheduler are active (
bench doctor,bench enable-scheduler).
Support
- Registration & VSCU setup: etims@savannahinformatics.com

