Peleza β€” Trust built on data
πŸ‡°πŸ‡ͺ Kenya
On this page

KRA PIN by ID

Look up a KRA PIN using a taxpayer national ID via POST /api/v1/kra-pin-by-id. HTTP 200 and 404 are billable.

Request

POST/api/v1/kra-pin-by-id
{{baseUrl}}/api/v1/kra-pin-by-id
HeaderTypeDescription
AuthorizationstringBearer YOUR_ACCESS_TOKEN from the OAuth client-credentials flow
Content-Typestringapplication/json

Body Parameters

ParameterTypeDescriptionRequired
taxpayer_idstringTaxpayer national ID numberrequired
taxpayer_typestringKE | NKE | NKENR | COMP (default KE). Provider call always uses KE.optional
consentbooleanMust be true β€” confirms data-subject consent to perform this verificationrequired
customer_numberstringOptional reference for your own tracking (max 255 characters)optional

Sample request body

All verification APIs require consent: true in the JSON body.

Sample dataSample request body
{
  "taxpayer_id": "sample-value",
  "taxpayer_type": "sample-value",
  "consent": true
}

Response

200 OKSample dataExample response
{
  "success": true,
  "response_code": 200,
  "message": "KRA PIN by ID verification successful",
  "data": {
    "taxpayer_id": "1028845317",
    "taxpayer_pin": "A100284531Z",
    "taxpayer_name": "James Kamau",
    "taxpayer_type": "Individual",
    "status": "Active"
  },
  "request_id": "550e8400-e29b-41d4-a716-446655440000"
}

Response Fields

FieldTypeDescription
successbooleanWhether the request succeeded
response_codenumberApplication response code (typically mirrors HTTP)
messagestringHuman-readable status message
dataobjectPayload for the verified resource
request_idstringUUID for support and audit trails
data.taxpayer_idstringNational ID used for the lookup
data.taxpayer_pinstringKRA PIN
data.taxpayer_namestringTaxpayer name
data.taxpayer_typestringTaxpayer type (e.g. Individual)
data.statusstringPIN status (e.g. Active)

Error codes

Standard Peleza HTTP / response_code values (same across all API calls). Validation message text is endpoint-specific. Full reference: Error Codes.

CodeWhenBilled?
200KRA PIN returned successfullyYes
400Validation β€” taxpayer_id required; taxpayer_type if set must be KE|NKE|NKENR|COMPNo
401Missing or invalid Bearer tokenNo
402Insufficient wallet balance or credit limitNo
403No active wallet or billing profile (or service not enabled)No
404ID not found in KRA records (code 30002)Yes
408Not typically used for KRA β€” upstream failures map to 503No
429Rate limitedNo
502Not typically used for KRA β€” upstream failures map to 503No
503KRA connection / service unavailableNo

Set {{baseUrl}} to https://api.peleza.com (production) or https://sandbox.peleza.com (sandbox). Authenticated calls need a Bearer token from POST /api/v1/oauth/token.