api · buyer initiated eTIMS API Kenya
Buyer-Initiated eTIMS API for Procurement Platforms
Build supplier-side tax invoicing into procurement, aggregation and marketplace workflows. Risiti is designing one integration for ordinary sales invoices and controlled buyer-initiated flows, with seller consent, audit history and KRA approval kept explicit.
Buyer-initiated invoicing lets a registered buyer prepare a tax invoice on behalf of a seller who is not positioned to issue it directly. KRA identifies small-scale farmers and informal traders supplying larger buyers as important use cases, and requires seller validation, notification and approval before an accepted invoice reaches eTIMS.
KRA's current guidance separates the eCitizen and USSD Buyer Initiated Invoicing flow from reverse invoicing for structured corporate supply chains. Reverse invoicing uses a buyer's existing billing system, system-to-system integration and KRA approval through a Know Your Customer process. Procurement platforms should establish which route KRA approves for their operating model before implementation.
Risiti's buyer-initiated API is available as a sandbox preview. It supports lifecycle testing but does not claim KRA approval, certification or production availability; live transmission remains locked until the buyer's approved KRA route is configured.
Designed for high-volume supplier networks
The opportunity is strongest where a platform already knows what was delivered, by whom, in what quantity and at what agreed price. Instead of re-keying that purchase into a separate invoicing tool, the platform can prepare the tax-invoice request from the procurement event and keep its state visible until the seller and eTIMS complete the process.
- Agricultural aggregators collecting tea, coffee, dairy, grain, horticulture or livestock products.
- Manufacturers buying raw materials from distributed small suppliers.
- Commodity buyers, cooperatives and outgrower-management platforms.
- Marketplaces that already control order, delivery and settlement records.
- Logistics and collection platforms connecting verified suppliers to enterprise buyers.
One integration, two invoice directions
The Risiti sandbox keeps ordinary sales invoices and buyer-initiated invoices under the same merchant, authentication, idempotency, webhook and audit conventions. Buyer invoices use a dedicated resource because seller consent and procurement evidence require a distinct lifecycle, without creating a second authentication or operations stack.
An ordinary sales invoice can move from received to eTIMS processing immediately after validation. A buyer-initiated request must first establish seller eligibility and consent. It therefore needs additional states such as awaiting_seller_consent, seller_rejected and consent_expired before eTIMS submission can begin.
- Shared merchant and environment model across ordinary and buyer-initiated workflows.
- Stable external IDs and Idempotency-Key handling for procurement events and retries.
- Explicit seller identity, eligibility evidence and consent references.
- Signed webhooks for consent, rejection, expiry, submission and failure events.
- Separate invoice sequences and correction rules where KRA requires them.
The sandbox buyer-initiated lifecycle
A platform creates a buyer-initiated invoice request from a completed procurement event. Risiti validates required buyer, seller, item, quantity, price and tax fields, then records the request without treating it as a submitted tax invoice.
The seller must be validated against the applicable KRA rules and notified through the approved consent channel. KRA's current BII guidance gives the seller 30 days to approve or reject a request; an unanswered request is automatically rejected after that period. Only an approved request proceeds to eTIMS, and every initiation, approval, change and submission must remain in the audit trail.
- draft or received: the platform has supplied the procurement record.
- awaiting_seller_consent: the seller has been notified and no tax invoice has been submitted yet.
- seller_rejected or consent_expired: terminal consent outcomes that must not be submitted to eTIMS.
- pending or retrying: an approved request is being processed by the integration.
- submitted: eTIMS receipt and control-unit fields are available for reconciliation.
Controls enterprise buyers should expect
Buyer-initiated invoicing affects tax records for another party, so production access cannot be a client-side switch. Risiti keeps live capability disabled until the organization, KRA approval route, supplier population, consent mechanism, webhook receiver and operational ownership have been reviewed.
- KRA approval and KYC evidence where the reverse-invoicing route applies.
- Seller eligibility checks, including the treatment of VAT-registered sellers under current KRA guidance.
- A versioned buyer-seller agreement and evidence of seller consent or rejection.
- Role-based access, least-privilege API scopes and immutable operator audit events.
- Idempotent corrections, credit-note ownership and retention of supporting records.
- Monitoring for old consent requests, repeated failures and webhook dead letters.
What a design partner should prepare
Risiti is looking for procurement and supply-chain teams willing to map a real workflow before the API is finalized. The most useful input is not a feature list; it is a sample procurement event, supplier-onboarding process, approval model, expected volume and the operational team responsible when a seller disputes an invoice.
- Buyer legal entity, KRA PIN, branches and current eTIMS solution.
- Supplier categories, identifiers, VAT status and expected monthly volume.
- The event that proves delivery, acceptance, quantity and agreed price.
- Consent and notification channels already used with suppliers.
- Rejection, correction, dispute, settlement and reconciliation procedures.
- Named compliance and technical owners for sandbox and production review.
Availability and product boundary
The Risiti v1 sandbox now supports buyer-invoice creation, seller-consent simulation, signed events and audit inspection. It does not send live buyer invoices to KRA. Live access will be exposed only after the applicable KRA integration route, approval evidence, production gates and end-to-end pilot are complete.
KRA remains the authority for taxpayer eligibility, BII rules, reverse-invoicing approval, technical specifications and production certification. A Risiti design-partner conversation does not constitute approval by KRA.
Official sources
Product guidance on this page is separated from KRA's official requirements. Use the current KRA documents below for regulatory and certification decisions.
Questions Kenyan businesses ask
Design partnership
Map your procurement workflow with Risiti before the contract is finalized.
Share your supplier categories, monthly volume, consent model and KRA integration status. We will use that workflow to shape the sandbox contract and production controls.