GET
Verify a Kenya Revenue Authority (KRA) PIN and return the taxpayerβs registration status.
/api/v1/ke/kyc/kraHeaders
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Your appβs secret key, sent as-is β not Bearer. |
AppId | Yes | The App ID from your dashboard. |
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
pin | string | Yes | The KRA PIN number. |
Response
Returns anentity object with the taxpayerβs status and tax obligation.
Errors
| Code | Meaning |
|---|---|
400 | Bad request β a required parameter is missing or malformed. |
401 | Unauthorized β check your key and AppId (no Bearer prefix). |
402 | Insufficient wallet balance. Fund your wallet. |
404 | No record found for the supplied identifier. |
424 | The upstream source was unavailable β retry shortly. |
429 | Too many requests β back off and retry. |
curl --request GET \
"https://api.dojah.io/api/v1/ke/kyc/kra?pin=A1234567890" \
-H "Authorization: {{secret_key}}" \
-H "AppId: {{app_id}}"
const params = new URLSearchParams({
"pin": "A1234567890",
});
const url = "https://api.dojah.io/api/v1/ke/kyc/kra?" + params;
const res = await fetch(url, {
headers: {
Authorization: process.env.DOJAH_SECRET_KEY,
AppId: process.env.DOJAH_APP_ID,
},
});
const data = await res.json();
import os, requests
res = requests.get(
"https://api.dojah.io/api/v1/ke/kyc/kra",
headers={
"Authorization": os.environ["DOJAH_SECRET_KEY"],
"AppId": os.environ["DOJAH_APP_ID"],
},
params={ "pin": "A1234567890" },
)
data = res.json()
{
"entity": {
"current_status": "Registered",
"effective_from_date": "23/03/2006",
"effective_to_date": "",
"obligation_name": "Income Tax - Resident Individual",
"pin": "A1234567890",
"pin_status": "Active",
"taxpayer_name": "JOHN DOE"
}
}