Salami Gateway

API Documentation
Back to Dashboard

KRA Tax Compliance API

Apply for Tax Compliance Certificates (TCC) through the KRA developer.go.ke API. A TCC confirms that a taxpayer is compliant with KRA tax obligations and is required for government tenders, certain business transactions, and regulatory approvals.

Table of Contents

  1. Overview
  2. Apply for TCC
  3. TCC Application Fields
  4. Reason Codes
  5. Status Codes

Overview

Required Scope

Scope Description
kra:compliance Apply for Tax Compliance Certificates

Endpoint Summary

Method Endpoint KRA Path Description
POST /api/kra/compliance/tcc-application /application/v1/tcc Apply for a TCC

Note: To validate an existing TCC, use the TCC Validation checker endpoint under kra:checkers.

Apply for TCC

Submit a Tax Compliance Certificate application to KRA.

Endpoint: POST /api/kra/compliance/tcc-application

Required Scope: kra:compliance

Request Body:

You can submit the body in either flat or nested format. Salami will wrap flat fields inside TAXPAYERDETAILS automatically.

Flat Format

{
  "TaxpayerPIN": "P051234567A",
  "ReasonForTCC": "Government Tender"
}

Nested Format

{
  "TAXPAYERDETAILS": {
    "TaxpayerPIN": "P051234567A",
    "ReasonForTCC": "Government Tender"
  }
}

Parameter Table

Field Type Required Description
TaxpayerPIN string Yes KRA PIN of the applicant
ReasonForTCC string Yes Purpose for the TCC application

Request:

curl -X POST \
  https://yourtenant.salami.dgl.co.ke/api/kra/compliance/tcc-application \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "TaxpayerPIN": "P051234567A",
    "ReasonForTCC": "Government Tender"
  }'

Success Response:

{
  "success": true,
  "data": {
    "AckNumber": "ACK/2026/0045678",
    "TCCNumber": "TCC/2026/0001234",
    "TaxpayerPIN": "P051234567A",
    "TaxpayerName": "ACME LIMITED",
    "Status": "Approved",
    "IssueDate": "2026-03-29",
    "ExpiryDate": "2026-12-31",
    "ReasonForTCC": "Government Tender"
  },
  "message": "TCC application processed successfully"
}

Pending Response (processing):

{
  "success": true,
  "data": {
    "AckNumber": "ACK/2026/0045679",
    "TCCNumber": null,
    "TaxpayerPIN": "P051234567A",
    "Status": "Pending",
    "Message": "Application received. TCC will be processed within 2 working days."
  },
  "message": "TCC application submitted for processing"
}

Rejection Response:

{
  "success": true,
  "data": {
    "AckNumber": "ACK/2026/0045680",
    "TCCNumber": null,
    "TaxpayerPIN": "P051234567A",
    "Status": "Rejected",
    "RejectionReason": "Outstanding tax obligations. Please file pending returns."
  },
  "message": "TCC application was rejected by KRA"
}

Response Fields

Field Type Description
AckNumber string Application acknowledgement number (always returned)
TCCNumber string/null TCC number if instantly approved, null if pending
TaxpayerPIN string The applicant's KRA PIN
TaxpayerName string Registered taxpayer name
Status string Approved, Pending, or Rejected
IssueDate string/null Date TCC was issued (if approved)
ExpiryDate string/null TCC expiry date (if approved)
ReasonForTCC string The stated reason
RejectionReason string/null Reason for rejection (if rejected)
Message string/null Additional information from KRA

TCC Application Fields

Required Fields

Field Format Example Notes
TaxpayerPIN A000000000B P051234567A Must be a valid, active KRA PIN
ReasonForTCC Free text Government Tender Purpose of the TCC

Prerequisites for Approval

KRA will automatically check these conditions before issuing a TCC:

  1. All tax returns filed -- No outstanding return periods
  2. No pending tax debts -- All assessed taxes paid
  3. Active KRA PIN -- PIN must not be deactivated or suspended
  4. Valid obligations -- At least one active tax obligation

Reason Codes

Common reasons accepted by KRA:

Reason Use Case
Government Tender Bidding on government contracts
Business Transaction Required by a business partner
Regulatory Compliance Regulatory body requirement
Licensing Professional or business licensing
Immigration Work permit or visa application
Education Scholarship or education sponsorship
Export Export trade facilitation
Banking Financial institution requirement
General Purpose General compliance verification

Status Codes

Code Description
200 Application processed (check Status field for result)
401 Invalid or missing Salami token
403 Token lacks kra:compliance scope
422 Missing required fields (TaxpayerPIN, ReasonForTCC)
502 KRA server error or timeout

Validation Errors

{
  "success": false,
  "message": "Required fields missing: TAXPAYERDETAILS.TaxpayerPIN, TAXPAYERDETAILS.ReasonForTCC",
  "error": "validation_error"
}

Best Practices

  1. Always store the AckNumber -- Use it to track the application status
  2. Check obligations first -- Use the Tax Obligations checker before applying
  3. File pending returns -- Ensure all returns are filed before applying
  4. Handle pending status -- Not all TCCs are instant; implement polling or manual follow-up
  5. Track expiry dates -- TCCs expire; set reminders to renew before expiry

Related Documentation


Back to: KRA Overview | KRA Checkers


Need help? Contact us at support@dgl.co.ke
© 2026 Deadan Group Limited. All rights reserved.
⚡ API Explorer
LIVE
// Response will appear here...