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
/^[0-9]{10}$/
ID Number
Nigeria
/^[0-9]{11}$/
First Name, Other Name, Last Name
South Africa
/^[0-9]{10}$/
First Name, Other Name, Last Name, ID Number
Tanzania
/^[0-9]{12}$/
First Name, Other Name, Last Name
Uganda
/^[0-9]{10}$/
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:
Kenya
0000000000
N/A
N/A
N/A
00000000
Nigeria
00000000000
Leo
Joe
N/A
N/A
South Africa
0000000000
Leo
Joe
Doe
0000000000000
Tanzania
000000000000
Leo
Joe
Doe
N/A
Uganda
0000000000
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. 0000000000
Varies based on match_fields
Varies based on match_fields
1 e.g0000000001
Failure, no record found
1023
2 e.g. 0000000002
Invalid phone number format
2413
3 e.g. 0000000003
Database unavailable/unknown network issue
1015
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
smileid-partner-id
Your Smile ID partner ID.
002
smileid-request-signature
A signature to authenticate the request.
sample-signature
smileid-timestamp
The timestamp of the request.
2024-07-30T19:16:56.426Z
smileid-source-sdk
The source SDK identifier.
rest_api
smileid-source-sdk-version
The version of the source SDK.
1.0.0
Request Body Example
Response
Asynchronous Endpoint (/v2/async-verify-phone
)
/v2/async-verify-phone
)Status Code
Description
Response Body
200
Success
{ "success": true }
400
Bad request
{ "success": false, "code": "2413", "error": "Invalid request" }
500
Internal server error
{ "success": false, "error": "System Error" }
Synchronous Endpoint (/v2/verify-phone-number
)
/v2/verify-phone-number
)Status Code
Description
Response Body
200
Success
Full JSON example below
400
Bad request
{ "success": false, "code": "2413", "error": "Invalid request" }
500
Internal server error
{ "success": false, "error": "System Error" }
Example JSON Response:
Result Codes
Result Code
Message
Description
1020
Exact Match
All fields provided match the record in the database.
1021
Partial Match
Some, but not all, fields match the record in the database.
1022
No Match
None of the fields match the record in the database.
1023
Record Not Found
The phone number does not exist in the database.
1015
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.
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