Skip to main content
The Sync2Books Compliance API connects a Kenyan business to KRA eTIMS so its invoices carry a valid, KRA-signed receipt. We hold the eTIMS device credentials, speak the OSCU protocol, own the KRA sequence numbers and render the compliant receipt. You never certify with KRA, never handle a control unit, and never call KRA yourself.
This is a separate product from the Accounting API, which writes expenses, bills and invoices into accounting software. The two have different keys, different base URLs and different docs. If you are not sure which one you need, read Which API do I need?.

Who this is for

You build software for a business, or for many businesses, that invoices in Kenya and must issue eTIMS-compliant receipts. The business is onboarded once in the compliance dashboard. Your software then calls the API to register items, record stock, issue sales and credit notes, and fetch receipts.

What you can do

  • Create items and register them with KRA.
  • Issue sales and get back a KRA-signed receipt: control unit invoice number, receipt signature and a verification URL.
  • Issue a credit note that reverses a sale in full.
  • Download the receipt as a PDF, or a customer copy marked COPY.
  • Record stock movements: adjustments and transfers between branches.
  • Fetch the supplier invoices KRA holds against the business.
  • Look up KRA code lists and item classifications.
  • Get the KRA result sent to your server with a callback, instead of polling.

Dashboard and API

Setup is no-code in the dashboard. Daily operations are programmatic. In short: the dashboard handles eTIMS onboarding; your code handles invoicing. A business that does not want to integrate at all can run entirely from the dashboard.

How it works

Your application makes one kind of request, to the Compliance API, with your API key:
A key acts for one business by default, and a test key can only act on sandbox businesses while a live key can only act on production ones. A key can never act for another taxpayer or cross into the wrong eTIMS environment. See Authentication & API keys.

The path to your first receipt

The order is fixed by KRA’s own dependencies, so it is worth knowing before you start.
  1. Get a key. Create one on the business’s Integrations page in the compliance dashboard. See Authentication & API keys.
  2. Check it with GET /v1/me.
  3. Create an item with POST /v1/items, then register it with KRA with POST /v1/items/{id}/register. See Items.
  4. Add opening stock for goods with POST /v1/stock/adjustments. See Stock.
  5. Issue a sale with POST /v1/sales. See Sales.
  6. Download the receipt with GET /v1/sales/{id}/receipt.
  7. Issue a credit note with POST /v1/credit-notes if the sale has to be reversed. See Credit notes.
  8. Go live with a live key. See Going live.
When KRA rejects something, its own reason comes back with the error. See Errors & Troubleshooting.

Where to go next

Quickstart

From a key to your first KRA-signed receipt and credit note, with copy-paste calls.

Authentication & API keys

Where keys come from, what scopes do, and how test and live keys differ.

Core concepts

Businesses, branches, items, tax-inclusive pricing and the sale lifecycle.

Result callbacks

Get the KRA outcome sent to your server instead of polling for it.

Errors & Troubleshooting

The error format, every error code, and which failures are safe to retry.

Going live

A checklist for moving from the sandbox to real tax documents.

API reference

Every endpoint, with request and response examples you can try with a test key.

Codes & Values

Tax categories, units, packaging, payment types and credit note reasons.