Verify a Lipa Na M-Pesa number

Verify a Kenyan M-Pesa paybill or till number.

Headers
  • Idempotency-Key
    Type: string
    min length:  
    1
    max length:  
    255
    required

    Required for verification mutations. Use a unique printable ASCII key per logical request; retries with the same key return the original response.

Body·
required
application/json
  • identifier
    Type: string
    min length:  
    1
    required

    Paybill or till number to verify

  • identifierType
    Type: stringenum
    required

    Whether the identifier is a paybill or till number

    values
    • paybill
    • till
  • country
    Type: string
    min length:  
    2
    max length:  
    2

    ISO 3166-1 alpha-2 country code. Defaults to KE.

  • mode
    Type: stringenum

    sync returns the verification result in the response. async returns pending and delivers the final result via your registered webhooks (configure under /webhooks).

    values
    • sync
    • async
Responses
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/verify/lipa-na-mpesa
curl https://api.lira.com/api/v1/verify/lipa-na-mpesa \
  --request POST \
  --header 'Idempotency-Key: verify-request-20260504-001' \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: YOUR_SECRET_TOKEN' \
  --data '{
  "identifier": "247247",
  "identifierType": "paybill",
  "country": "KE",
  "mode": "sync"
}'
{
  "id": "f6a7b8c9-d0e1-2345-fabc-678901234567",
  "status": "success",
  "verificationType": "LIPA_NA_MPESA",
  "identifier": "247247",
  "country": "KE",
  "verifiedAt": "2026-04-22T10:15:30.000Z",
  "verified": true,
  "origin": "api",
  "organizationShortCode": "247247",
  "organizationName": "KCB Bank Kenya",
  "identifierType": "paybill",
  "error": {
    "code": "PAYBILL_NOT_FOUND",
    "message": "Paybill or till number not found"
  }
}