Phone Number Verification
Overview
The Phone Number Verification product is a low-friction solution designed to verify customer identities using their phone numbers. This product is especially beneficial for businesses targeting the unbanked population or those needing to comply with basic KYC regulations. The service is currently available in Kenya, Nigeria, South Africa, Tanzania and Uganda covering over 330 million phone numbers across these regions.
Integration Options
Only available via the REST APIs. There are two endpoints available: synchronous and asynchronous, but we strongly recommend using the asynchronous endpoint for most use cases due to its efficiency and ability to handle network delays better.
Supported Countries
Country | Phone Number Regex | Match Fields |
Kenya |
| ID Number |
Nigeria |
| First Name, Other Name, Last Name |
South Africa |
| First Name, Other Name, Last Name, ID Number |
Tanzania |
| First Name, Other Name, Last Name |
Uganda |
| First Name, Other Name, Last Name |
Testing the Product in Sandbox
You can evaluate the Phone Number Verification product in Sandbox by utilizing the test data provided below:
Country | Test Phone Number | Test Last Name | Test First Name | Test Other Name | Test ID Number |
---|---|---|---|---|---|
Kenya |
| N/A | N/A | N/A |
|
Nigeria |
| Leo | Joe | N/A | N/A |
South Africa |
| Leo | Joe | Doe |
|
Tanzania |
| Leo | Joe | Doe | N/A |
Uganda |
| Leo | Joe | Doe | N/A |
How to Use the Test Data
There are four simulated Results to test your integration:
Final Digit | Simulated Result | Code |
0 e.g. | Varies based on | Varies based on |
1 e.g | Failure, no record found |
|
2 e.g. | Invalid phone number format |
|
3 e.g. | Database unavailable/unknown network issue |
|
Endpoints
Asynchronous vs. Synchronous Endpoints
Endpoint:
/v2/async-verify-phone
Method: POST
Description: This endpoint allows you to verify a phone number asynchronously. The recommended approach for most integrations, it enables better handling of requests and is less prone to network-related issues.
API Documentation
This section provides a detailed overview of all available API endpoints for the Phone Number Verification service.
Request Headers
Header | Description | Example |
| Your Smile ID partner ID. |
|
| A signature to authenticate the request. |
|
| The timestamp of the request. |
|
| The source SDK identifier. |
|
| The version of the source SDK. |
|
Request Body Example
Response
Asynchronous Endpoint (/v2/async-verify-phone
)
/v2/async-verify-phone
)Status Code | Description | Response Body |
| Success |
|
| Bad request |
|
| Internal server error |
|
Synchronous Endpoint (/v2/verify-phone-number
)
/v2/verify-phone-number
)Status Code | Description | Response Body |
| Success | Full JSON example below |
| Bad request |
|
| Internal server error |
|
Example JSON Response:
Result Codes
Result Code | Message | Description |
| Exact Match | All fields provided match the record in the database. |
| Partial Match | Some, but not all, fields match the record in the database. |
| No Match | None of the fields match the record in the database. |
| Record Not Found | The phone number does not exist in the database. |
| ID Authority Unavailable | The verification could not be completed because the ID authority was unavailable. |
How Field Matching is Managed
Due to the unique characteristics of databases in different markets, the method we use to compare match fields with phone number records may vary.
Field | Kenya | Nigeria | South Africa | Tanzania | Uganda |
---|---|---|---|---|---|
First Name | Not Applicable | Exact Match, Partial Match & No Match | Exact Match, Partial Match & No Match | Exact Match, Partial Match & No Match | Exact Match, Partial Match & No Match |
Other Name | Not Applicable | Not Applicable | Exact Match, Partial Match & No Match | Exact Match, Partial Match & No Match | Exact Match, Partial Match & No Match |
Last Name | Not Applicable | Exact Match, Partial Match & No Match | Exact Match, Partial Match & No Match | Exact Match, Partial Match & No Match | Exact Match, Partial Match & No Match |
ID Number | Exact Match & No Match only | Not Applicable | Exact Match, Partial Match & No Match | Not Applicable | Not Applicable |
Exact Match: Fields match exactly
Partial Match: Fields are a levenshtein distance of
<=2
apartNo Match: All other cases
Last updated