Peleza — Trust built on data
🇰🇪 KYB
On this page

Business

Search Kenyan business registrations via POST /api/v1/business/ke. All of registration_number, search_type, and consent (must be true) are required. Use search_type: pvt (company — shares & encumbrances), bn (sole proprietor — partners only), llp (limited liability partnership), or bo (beneficial owner — partners only). Registration format is validated per type. Fresh registry snapshots are reused for up to 7 days. Success and not-found (404) are billable; validation (422) and unsupported countries are not. Other country codes are not supported yet.

Test data

Sandbox test data

Use these values against the sandbox host. Click a value to copy it.

Sandbox registration numbers

Verify business registration

POST/api/v1/business/ke
{{baseUrl}}/api/v1/business/ke
HeaderTypeDescription
AuthorizationstringBearer YOUR_ACCESS_TOKEN from the OAuth client-credentials flow
Content-Typestringapplication/json

Body Parameters

ParameterTypeDescriptionRequired
registration_numberstringCompany / BN / LLP registration number. Format rules: bn → BN-prefixed or numeric (≥3 digits); pvt → starts with PVT, PLC, or C; llp → starts with LLP; bo → any of those formatsrequired
search_typestringOne of: pvt | bn | llp | bo (also accepts GENERAL / BENEFICIAL_OWNER). Billing: bn → business; pvt/GENERAL → company; llp → limitted; bo → business-ownershiprequired
consentbooleanMust be true — confirms data-subject consent to perform this verificationrequired
customer_numberstringOptional reference for your own tracking (max 255 characters)optional

Company search (pvt / llp)

Sample request body for Company search (pvt / llp):

Sample dataSample request body
{
  "registration_number": "CPV/2019/184726H",
  "search_type": "pvt",
  "consent": true
}

Sample response for Company search (pvt / llp):

200 OKSample dataSample response
{
  "success": true,
  "response_code": 200,
  "message": "Company Search verification successful",
  "country": "ke",
  "data": {
    "registration_number": "CPV/2019/184726H",
    "business_name": "Horizon Capital Holdings Limited",
    "status": "Registered",
    "registration_date": "2019-03-18",
    "postal_address": "P.O. Box 47261-00100, Nairobi",
    "physical_address": "14 Riverside Drive, Nairobi",
    "phone_number": "0712845631",
    "branch": null,
    "email": "info@horizoncapital.co.ke",
    "kra_pin": "P051847261X",
    "verified": true,
    "partners": [
      {
        "type": "Director",
        "shares": [],
        "postal_code": "",
        "postal_address": "",
        "phone_number": "+254712845631",
        "name": "James Otieno Kamau",
        "id_type": "National ID",
        "id_number": "1028845317",
        "gender": "Male",
        "email": "james.kamau@horizonmail.co.ke"
      }
    ],
    "shares": [
      { "shares": 1000, "value": 1.0, "name": "Ordinary Shares" }
    ],
    "encumbrances": []
  },
  "request_id": "550e8400-e29b-41d4-a716-446655440000"
}

Sole proprietor (bn) / beneficial owner (bo)

Sample request body for Sole proprietor (bn) / beneficial owner (bo):

Sample dataSample request body
{
  "registration_number": "BN/2019/847261K",
  "search_type": "bn",
  "consent": true
}

Sample response for Sole proprietor (bn) / beneficial owner (bo):

200 OKSample dataSample response
{
  "success": true,
  "response_code": 200,
  "message": "Sole Proprietor verification successful",
  "country": "ke",
  "data": {
    "registration_number": "BN/2019/847261K",
    "business_name": "Kamau & Associates Consultancy",
    "status": "Active",
    "registration_date": "2020-01-15",
    "postal_address": "P.O. Box 12345, Nairobi",
    "physical_address": "123 Business Street, Nairobi",
    "phone_number": "+254712845631",
    "branch": null,
    "email": "info@johnsbusiness.com",
    "kra_pin": "P100000001T",
    "verified": true,
    "partners": [
      {
        "type": "Owner",
        "shares": [],
        "postal_code": "",
        "postal_address": "",
        "phone_number": "+254712845631",
        "name": "James Otieno Kamau",
        "id_type": "National ID",
        "id_number": "1028845317",
        "gender": "Male",
        "email": "james.kamau@horizonmail.co.ke"
      }
    ]
  },
  "request_id": "550e8400-e29b-41d4-a716-446655440001"
}

Response Fields

FieldTypeDescription
successbooleanWhether the request succeeded
response_codenumberApplication response code (typically mirrors HTTP)
messagestringHuman-readable status message (varies by search_type)
countrystringCountry code from the path (ke)
data.registration_numberstringBusiness registration number
data.business_namestringRegistered business / company name
data.statusstringRegistry status (e.g. Registered, Active)
data.registration_datestringRegistration date when available
data.postal_addressstringPostal address
data.physical_addressstringPhysical address
data.phone_numberstringContact phone when available
data.branchboolean|nullBranch flag when provided by the registry
data.emailstringContact email when available
data.kra_pinstringKRA PIN when available
data.verifiedboolean|nullRegistry verified flag when available
data.partnersarrayDirectors / partners / owners
data.sharesarrayShare capital (pvt / llp only — omitted for bn / bo)
data.encumbrancesarrayEncumbrances (pvt / llp only — omitted for bn / bo)
request_idstringUUID for support and audit trails

Error codes

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

CodeWhenBilled?
200Business details returned — billed as business (bn), company (pvt/GENERAL), limitted (llp), or business-ownership (bo)Yes
422Validation — missing/invalid registration_number, search_type, or consent (must be true)No
401Missing or invalid Bearer tokenNo
402Insufficient wallet balance or credit limitNo
403No active wallet or billing profile (or service not enabled)No
404Business not found in the registry — or unsupported country (not billed for unsupported)Yes (found path) / No (unsupported country)
429Rate limitedNo
500Unexpected server error during verificationNo

Invalid registration format

422Sample dataInvalid registration format
{
  "success": false,
  "response_code": 422,
  "message": "Validation failed",
  "country": "ke",
  "errors": {
    "registration_number": [
      "Company registration numbers must start with PVT, PLC, or C and include a valid suffix"
    ]
  },
  "data": null,
  "request_id": "550e8400-e29b-41d4-a716-446655440010"
}

Business not found

404Sample dataBusiness not found
{
  "success": false,
  "response_code": 404,
  "message": "Business not found",
  "country": "ke",
  "data": null,
  "request_id": "550e8400-e29b-41d4-a716-446655440011"
}

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.