A valid request URL is required to generate request examples{
"success": true,
"message": "Phone number validated successfully.",
"data": {
"isValid": true,
"isSupported": true,
"accountType": "mobile_money",
"requiresInternationalization": false,
"countryCode": "KE",
"countryName": "Kenya",
"callingCode": "<string>",
"internationalNumber": "+254712345678",
"nationalNumber": "0712345678",
"bankName": "<string>",
"currency": "KES",
"network": "MTN",
"mno": "SAFARICOM KENYA",
"message": "<string>",
"accountName": "JANE MARY DOE",
"nameLookupStatus": "MATCHED",
"nameLookupReason": "Name lookup is not available for this payout corridor.",
"matchScore": 95,
"accountStatus": "ACTIVE",
"nameMatch": {
"provided": "Jane Doe",
"score": 100,
"matched": true,
"threshold": 70,
"masked": false
}
}
}{
"success": false,
"message": "Invalid request",
"data": {}
}{
"success": false,
"message": "Unauthorized",
"data": {}
}Validate Mobile Money Account
Validates a phone number in any format (with or without country code). Returns validation status, country information, formatted number, and whether the country is supported for mobile money.
A valid request URL is required to generate request examples{
"success": true,
"message": "Phone number validated successfully.",
"data": {
"isValid": true,
"isSupported": true,
"accountType": "mobile_money",
"requiresInternationalization": false,
"countryCode": "KE",
"countryName": "Kenya",
"callingCode": "<string>",
"internationalNumber": "+254712345678",
"nationalNumber": "0712345678",
"bankName": "<string>",
"currency": "KES",
"network": "MTN",
"mno": "SAFARICOM KENYA",
"message": "<string>",
"accountName": "JANE MARY DOE",
"nameLookupStatus": "MATCHED",
"nameLookupReason": "Name lookup is not available for this payout corridor.",
"matchScore": 95,
"accountStatus": "ACTIVE",
"nameMatch": {
"provided": "Jane Doe",
"score": 100,
"matched": true,
"threshold": 70,
"masked": false
}
}
}{
"success": false,
"message": "Invalid request",
"data": {}
}{
"success": false,
"message": "Unauthorized",
"data": {}
}phoneNumber is required unless accountType is paybill or till, in which case shortCode is required instead. This can’t be expressed as a flat “required” list — see the field descriptions below.accountName to get back a nameMatch score against the account’s real, resolved name — useful for confirming you have the right recipient before a payout.Reading the result
nameLookupStatus tells you whether the name resolved, and nameLookupReason
says why when it didn’t — so you can tell a number that doesn’t exist from a
corridor that can’t resolve names from something worth retrying.
isValid reports the number format, and flips to false once a lookup proves the
destination unusable. A name mismatch is different: the number is real, so
isValid stays true and nameMatch.matched is what tells you the holder isn’t
who you expected.
/name-lookup endpoint. That endpoint still works and isn’t scheduled for removal, but new integrations should use this one instead.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
phoneNumber is required unless accountType is 'paybill' or 'till'; shortCode is required when accountType is 'paybill' or 'till'.
What to validate. Defaults to mobile_money; paybill and till take shortCode instead of phoneNumber.
mobile_money, paybill, till Required unless accountType is paybill or till. Send in international format, including the country code.
"+254712345678"
Required when accountType is paybill or till. The M-PESA shortcode.
"247247"
Account number on a paybill — what a payer would enter. Paybill only.
"0670179741746"
Country code (ISO-2). Only needed for paybill and till, where it defaults to KE.
"KE"
Mobile network, used to route the name lookup. Optional — resolved from the phone number prefix when omitted.
MTN, AIRTEL, VODAFONE, TIGO, YAS, ORANGE, NOT_SUPPORTED, ZAMTEL, MPESA, CHECKOUT, BKTRX, CRDTRX, MOOV, TMONEY, FREE, EXPRESSO, HALOPESA, VODACOM, WAVE "MPESA"
Name you expect on this account. Returns a nameMatch score against the real one.
"Jane Doe"