Know Your Customer Age Verification
The Know Your Customer (KYC) Age verification functionality allows applications to perform an ID-less age verification of a customer based on their teleoperator records. The records the operator has on file for the user can then be used to establish whether a user exceeds a necessary threshold, for example to ensure that certain services or products are only offered to people of a given age.
Performing an age verification
The following example shows how to make an age verification request:
import network_as_code as nac
# Initialize the client object with your application key
client = nac.NetworkAsCodeClient(
token="<your-application-key-here>"
)
# Then, you can use the age_verify method with the customer's phone number.
# Add age_threshold in the request to check if the age of the subscriber is older than that
# Other additional identifying parameters can be used to confirm that the subscriber is the contract's owner
result = client.kyc.verify_age(
age_threshold=18,
phone_number="+99999991000",
id_document="123456",
name="Federica Sanchez Arjona",
given_name="Federica",
family_name="Sanchez Arjona",
family_name_at_birth="YYYY",
middle_names="Sanchez",
birthdate="1978-08-22",
email="[email protected]",
include_content_lock=True,
include_parental_control=True
)
# If successful, you can access the results like so:
print(result)Following parameters can be supplied to the age verification request:
| Property | Description | Mandatory or Optional |
|---|---|---|
age_threshold | Global verification age limit, an integer within [0, 120] inclusive, subject to local regulations; some countries do not allow requests under 18. | Mandatory |
phone_number | A globally unique telephone number in E.164 format (prefixed with '+'), example: "+99999991000". | Mandatory |
id_document | An official identity document number for customer national identification, containing alphanumeric characters. | Optional |
name | Full name of the customer. The order of the names may vary by country. | Optional |
given_name | The first/given name of the customer, which may be compound if necessary. | Optional |
family_name | The last/family/surname of the customer. | Optional |
middle_names | The list of middle names of the customer, if any. | Optional |
family_name_at_birth | The family name at birth of the customer. | Optional |
birthdate | The date of birth in RFC 3339 / ISO 8601 format (YYYY-MM-DD). | Optional |
email | An email address formatted according to RFC specifications (local-part@domain). | Optional |
include_content_lock | Optional boolean parameter indicating whether the content_lock response property should be included; defaults to false, becomes true if present in request with value of true. If absent or set as false, content_lock will not appear in the response. | Optional |
include_parental_control | Optional boolean parameter indicating whether the parental_control response property should be included; defaults to false, becomes true if present in request with value of true. If absent or set as false, parental_control will not appear in the response. | Optional |
The response will be an object containing the following field:
| Property Name | Description |
|---|---|
age_check | Boolean indicating if the user's age exceeds or meets the specified age threshold. Possible values are True or False. |
verified_status | An optional field signifying whether the provided information has been cross-checked against an acceptable identification document (like a legally recognized age verification document) and is either verified to be true or false. |
identity_match_score | An integer between 0 and 100 inclusive, reflecting the overall score of the identity information available in the API Provider, derived from comparing with an acceptable identification document legally recognized as a valid age verification document or by directly using internal provider's documentation. This field is optional for the API Provider to include. |
content_lock | Boolean indicating if the subscription associated with the phone number has any form of content lock (such as blocking certain web content). |
parental_control | Boolean signifying if parental controls are activated for the subscription associated with the phone number. |
Last updated December 19, 2025