Phone Number Verification in Ethiopia

Verify an Ethiopian mobile-wallet subscriber and retrieve the wallet holder's full name.

Ethiopia phone verification routes through the national interoperability hub, which covers Telebirr and M-Pesa wallets.

Prerequisites

You'll need an API key. See Quickstart or Authentication if you don't have one yet.

Note: Verification endpoints use an API key in the X-API-Key header โ€” not a Bearer token. Verification POST requests also require an Idempotency-Key header.


Make the verification request

Ethiopia requires a networkCode to identify the mobile-wallet operator.

curl -X POST https://api.lira.com/api/v1/verify/phone \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Idempotency-Key: YOUR_IDEMPOTENCY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phoneNumber": "+251911000001",
    "country": "ET",
    "networkCode": "TELEBIRR"
  }'

Request body fields

Field Type Required Description
phoneNumber string Yes Ethiopian phone number in E.164 format (e.g. +251911000001).
country string Yes Always ET.
networkCode string Yes Mobile-wallet operator. Must be exactly TELEBIRR or MPESA.

Important: networkCode is required for all Ethiopia phone verifications. Omitting it returns NETWORK_CODE_REQUIRED. Values other than TELEBIRR or MPESA return INVALID_NETWORK_CODE.


Supported operators

Operator networkCode
Telebirr (Ethio Telecom) TELEBIRR
M-Pesa MPESA

Read the result

Successful verification

{
  "id": "d4e5f6g7-...-...-...-...",
  "status": "success",
  "verificationType": "PHONE_NUMBER",
  "identifier": "+251911000001",
  "country": "ET",
  "verifiedAt": "2026-05-08T10:08:00.000Z",
  "verified": true,
  "phoneNumber": "+251911000001",
  "fullName": "Almaz Kebede Tadesse"
}

Failed verification

{
  "id": "d4e5f6g7-...-...-...-...",
  "status": "failed",
  "verificationType": "PHONE_NUMBER",
  "identifier": "+251911000002",
  "country": "ET",
  "verifiedAt": "2026-05-08T10:08:00.000Z",
  "verified": false,
  "error": {
    "code": "ACCOUNT_NOT_FOUND",
    "message": "Wallet holder not found"
  }
}

Note: A 200 OK HTTP response does not mean the verification succeeded. Always check the status field.


Error handling

error.code Cause Action
ACCOUNT_NOT_FOUND Phone number not registered with the selected wallet operator Ask the user to verify the number and try the other operator if applicable
INVALID_PHONE_NUMBER Phone number format is invalid Validate format (E.164) before submitting
INVALID_NETWORK_CODE networkCode not TELEBIRR or MPESA Use one of the two supported values
NETWORK_CODE_REQUIRED Verification submitted without networkCode Add networkCode to the request
PROVIDER_ERROR Upstream system returned an error Retry with exponential backoff

For the full error code reference, see Errors.


Next steps