| Recurso | Descripción |
|---|---|
| Device Swap | API operation of device API. |
| KycMatch | Operations to match a customer identity against the account data bound to their phone number. |
| Kyc Age Verification | Operations to verify the age of a user. |
| KycTenure | Check details about the length of tenure of the subscriber |
| Consent Info | API operation of Consent Info API |
| Recurso | Descripción |
|---|---|
| Device Swap | API operation of device API. |
| KycMatch | Operations to match a customer identity against the account data bound to their phone number. |
| Kyc Age Verification | Operations to verify the age of a user. |
| KycTenure | Check details about the length of tenure of the subscriber |
| Consent Info | API operation of Consent Info API |
Get timestamp of last device swap for a mobile user account provided with phone number.
PATH PARAMETERS
Create a device swap date request for a phone number.
{
"phoneNumber": "+34666111333"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
phoneNumber* | string | A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, prefixed with '+'. | pattern: ^\+[1-9][0-9]{4,14}$ |
OK Contains information about Device swap change
{
"latestDeviceChange": "2023-07-03T14:27:08.312+02:00"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
latestDeviceChange* | string (date-time) | null | Timestamp of latest device swap performed. It must follow [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and must have time zone. Recommended format is yyyy-MM-dd'T'HH:mm:ss.SSSZ (i.e. which allows 2023-07-03T14:27:08.312+02:00 or 2023-07-03T12:27:08.312Z) |
Bad Request Bad Request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Forbidden
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Not Found Not found
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unprocessable Entity Unprocessable Content
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Internal Server Error Internal Server Error
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Service Unavailable Service Unavailable
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Gateway Timeout
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
x-correlatorstringCorrelation id for the different services
curl -X POST 'https://opengateway.masstack.com/v0/orgs/masmovil/device-swap/retrieve-date' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"phoneNumber": "+34666111333"
}' Check if device swap has been performed during a past period
PATH PARAMETERS
Create a check device swap request for a phone number.
{
"phoneNumber": "+34666111333",
"maxAge": 240
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
phoneNumber* | string | A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, prefixed with '+'. | pattern: ^\+[1-9][0-9]{4,14}$ | |
maxAge | integer (int32) | Period in hours to be checked for device swap. Valid range: 1-2400 hours. | 240 |
OK Returns whether a device swap has been performed during a past period
{
"swapped": true
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
swapped* | boolean | Indicates whether the device has been swapped during the period within the provided age. |
Bad Request Bad Request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Forbidden
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Not Found Not found
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unprocessable Entity Unprocessable Content
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Internal Server Error Internal Server Error
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Service Unavailable Service Unavailable
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Gateway Timeout
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
x-correlatorstringCorrelation id for the different services
curl -X POST 'https://opengateway.masstack.com/v0/orgs/masmovil/device-swap/check' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"phoneNumber": "+34666111333",
"maxAge": 240
}' Verify matching of a number of attributes related to a customer identity against the verified data bound to their phone number in the Operator systems. Regardless of whether the phoneNumber is explicitly stated in the request body, at least one of the other fields must be provided, otherwise a HTTP 400 - KNOW_YOUR_CUSTOMER.INVALID_PARAM_COMBINATION error will be returned. The API will return the result of the matching process for each requested attribute. This means that the response will only contain the attributes for which validation has been requested. Possible values are: - true: the attribute provided matches with the one in the Operator systems. - false: the attribute provided does not match with the one in the Operator systems. - not_available: the attribute is not available to validate.
PATH PARAMETERS
{
"phoneNumber": "+34629255833",
"idDocument": "66666666q",
"name": "Federica Sanchez Arjona",
"givenName": "Federica",
"familyName": "Sanchez Arjona",
"nameKanaHankaku": "federica",
"nameKanaZenkaku": "Federica",
"middleNames": "Sanchez",
"familyNameAtBirth": "YYYY",
"address": "Tokyo-to Chiyoda-ku Iidabashi 3-10-10",
"streetName": "Nicolas Salmeron",
"streetNumber": 4,
"postalCode": 1028460,
"region": "Tokyo",
"locality": "ZZZZ",
"country": "JP",
"houseNumberExtension": "VVVV",
"birthdate": "1978-08-22",
"email": "abc@example.com",
"gender": "MALE"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
phoneNumber | string | A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, prefixed with '+'. | pattern: ^\+[1-9][0-9]{4,14}$ | |
idDocument | string | Id number associated to the official identity document in the country. It may contain alphanumeric characters. | pattern: ^(?!.*(;|'|"|\\|alert\(|%|prompt\(|\.\./|<|>|\[|\]|!|#|--)).*$ | |
name | string | Complete name of the customer, usually composed of first/given name and last/family/sur- name in a country. Depending on the country, the order of first/give name and last/family/sur- name varies, and middle name could be included. It can use givenName, middleNames, familyName and/or familyNameAtBirth. For example, in ESP, name+familyName; in NLD, it can be name+middleNames+familyName or name+middleNames+familyNameAtBirth, etc. | pattern: ^(?!.*(;|'|"|\\|alert\(|%|prompt\(|\.\./|<|>|\[|\]|!|#|--)).*$ | |
givenName | string | First/given name or compound first/given name of the customer. | pattern: ^(?!.*(;|'|"|\\|alert\(|%|prompt\(|\.\./|<|>|\[|\]|!|#|--)).*$ | |
familyName | string | Last name, family name, or surname of the customer. | pattern: ^(?!.*(;|'|"|\\|alert\(|%|prompt\(|\.\./|<|>|\[|\]|!|#|--)).*$ | |
nameKanaHankaku | string | Complete name of the customer in Hankaku-Kana format (reading of name) for Japan. | pattern: ^(?!.*(;|'|"|\\|alert\(|%|prompt\(|\.\./|<|>|\[|\]|!|#|--)).*$ | |
nameKanaZenkaku | string | Complete name of the customer in Zenkaku-Kana format (reading of name) for Japan. | pattern: ^(?!.*(;|'|"|\\|alert\(|%|prompt\(|\.\./|<|>|\[|\]|!|#|--)).*$ | |
middleNames | string | Middle name/s of the customer. | pattern: ^(?!.*(;|'|"|\\|alert\(|%|prompt\(|\.\./|<|>|\[|\]|!|#|--)).*$ | |
familyNameAtBirth | string | Last/family/sur- name at birth of the customer. | pattern: ^(?!.*(;|'|"|\\|alert\(|%|prompt\(|\.\./|<|>|\[|\]|!|#|--)).*$ | |
address | string | Complete billingAddress of the customer. For some countries, it is built following the usual concatenation of parameters in a country, but for other countries, this is not the case. For some countries, it can use streetName, streetNumber and/or houseNumberExtension. For example, in ESP, streetName+streetNumber; in NLD, it can be streetName+streetNumber or streetName+streetNumber+houseNumberExtension. | pattern: ^(?!.*(;|'|"|\\|alert\(|%|prompt\(|\.\./|<|>|\[|\]|!|#|--)).*$ | |
streetName | string | Name of the street of the customer's billingAddress. It should not include the type of the street. | pattern: ^(?!.*(;|'|"|\\|alert\(|%|prompt\(|\.\./|<|>|\[|\]|!|#|--)).*$ | |
streetNumber | string | The street number of the customer's billingAddress. Number identifying a specific property on the 'streetName'. | pattern: ^(?!.*(;|'|"|\\|alert\(|%|prompt\(|\.\./|<|>|\[|\]|!|#|--)).*$ | |
postalCode | string | Zip code or postal code | pattern: ^(?!.*(;|'|"|\\|alert\(|%|prompt\(|\.\./|<|>|\[|\]|!|#|--)).*$ | |
region | string | Region/prefecture of the customer's billingAddress | pattern: ^(?!.*(;|'|"|\\|alert\(|%|prompt\(|\.\./|<|>|\[|\]|!|#|--)).*$ | |
locality | string | Locality of the customer's billingAddress | pattern: ^(?!.*(;|'|"|\\|alert\(|%|prompt\(|\.\./|<|>|\[|\]|!|#|--)).*$ | |
country | string | Country of the customer's billingAddress. Format ISO 3166-1 alpha-2 | pattern: ^[A-Z]{2}$ | |
houseNumberExtension | string | Specific identifier of the house needed depending on the property type. For example, number of apartment in an apartment building. | pattern: ^(?!.*(;|'|"|\\|alert\(|%|prompt\(|\.\./|<|>|\[|\]|!|#|--)).*$ | |
birthdate | string (date) | The birthdate of the customer, in RFC 3339 / ISO 8601 calendar date format (YYYY-MM-DD). | ||
email | string (email) | Email billingAddress of the customer in the RFC specified format (local-part@domain). | pattern: ^(?!.*(;|'|"|\\|alert\(|%|prompt\(|\.\./|<|>|\[|\]|!|#|--)).*$ | |
gender | string
()
MALEFEMALEOTHER | Gender of the customer (Male/Female/Other). |
OK OK
{
"idDocumentMatch": "true",
"nameMatch": "true",
"givenNameMatch": "not_available",
"familyNameMatch": "not_available",
"nameKanaHankakuMatch": "true",
"nameKanaZenkakuMatch": "false",
"middleNamesMatch": "true",
"familyNameAtBirthMatch": "false",
"familyNameAtBirthMatchScore": 90,
"addressMatch": "true",
"streetNameMatch": "true",
"streetNumberMatch": "true",
"postalCodeMatch": "true",
"regionMatch": "true",
"localityMatch": "not_available",
"countryMatch": "true",
"houseNumberExtensionMatch": "not_available",
"birthdateMatch": "false",
"emailMatch": "false",
"emailMatchScore": 87,
"genderMatch": "false"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
idDocumentMatch | string
()
truefalsenot_available | Indicates whether Id number associated to the ID document of the customer matches with the one on the Operator's system. | ||
nameMatch | string
()
truefalsenot_available | Indicates whether the complete name of the customer matches with the one on the Operator's system. | ||
nameMatchScore | integer | Indicates the similarity score assigned to the input value when it does not exactly match the value stored in the operator's system. This property shall only be returned when the value of the corresponding match field is `false`. | min: 0, max: 100 | |
givenNameMatch | string
()
truefalsenot_available | Indicates whether First name/given name of the customer matches with the one on the Operator's system. | ||
givenNameMatchScore | integer | Indicates the similarity score assigned to the input value when it does not exactly match the value stored in the operator's system. This property shall only be returned when the value of the corresponding match field is `false`. | min: 0, max: 100 | |
familyNameMatch | string
()
truefalsenot_available | Indicates whether last name/ family name/ surname of the customer matches with the one on the Operator's system. | ||
familyNameMatchScore | integer | Indicates the similarity score assigned to the input value when it does not exactly match the value stored in the operator's system. This property shall only be returned when the value of the corresponding match field is `false`. | min: 0, max: 100 | |
nameKanaHankakuMatch | string
()
truefalsenot_available | Indicates whether complete name of the customer in Hankaku-Kana format (reading of name) for Japan matches with the one on the Operator's system. | ||
nameKanaHankakuMatchScore | integer | Indicates the similarity score assigned to the input value when it does not exactly match the value stored in the operator's system. This property shall only be returned when the value of the corresponding match field is `false`. | min: 0, max: 100 | |
nameKanaZenkakuMatch | string
()
truefalsenot_available | Indicates whether complete name of the customer in Zenkaku-Kana format (reading of name) for Japan matches with the one on the Operator's system. | ||
nameKanaZenkakuMatchScore | integer | Indicates the similarity score assigned to the input value when it does not exactly match the value stored in the operator's system. This property shall only be returned when the value of the corresponding match field is `false`. | min: 0, max: 100 | |
middleNamesMatch | string
()
truefalsenot_available | Indicates whether the middle names of the customer matches with the one on the Operator's system. | ||
middleNamesMatchScore | integer | Indicates the similarity score assigned to the input value when it does not exactly match the value stored in the operator's system. This property shall only be returned when the value of the corresponding match field is `false`. | min: 0, max: 100 | |
familyNameAtBirthMatch | string
()
truefalsenot_available | Indicates whether the Family Name At Birth of the customer matches with the one on the Operator's system. | ||
familyNameAtBirthMatchScore | integer | Indicates the similarity score assigned to the input value when it does not exactly match the value stored in the operator's system. This property shall only be returned when the value of the corresponding match field is `false`. | min: 0, max: 100 | |
addressMatch | string
()
truefalsenot_available | Indicates whether complete billingAddress of the customer matches with the one on the Operator's system. | ||
addressMatchScore | integer | Indicates the similarity score assigned to the input value when it does not exactly match the value stored in the operator's system. This property shall only be returned when the value of the corresponding match field is `false`. | min: 0, max: 100 | |
streetNameMatch | string
()
truefalsenot_available | Indicates whether the street name of the customer matches with the one on the Operator's system. | ||
streetNameMatchScore | integer | Indicates the similarity score assigned to the input value when it does not exactly match the value stored in the operator's system. This property shall only be returned when the value of the corresponding match field is `false`. | min: 0, max: 100 | |
streetNumberMatch | string
()
truefalsenot_available | Indicates whether the street number of the customer matches with the one on the Operator's system. | ||
streetNumberMatchScore | integer | Indicates the similarity score assigned to the input value when it does not exactly match the value stored in the operator's system. This property shall only be returned when the value of the corresponding match field is `false`. | min: 0, max: 100 | |
postalCodeMatch | string
()
truefalsenot_available | Indicates whether the postal code / zip code of the customer matches with the one on the Operator's system. | ||
regionMatch | string
()
truefalsenot_available | Indicates whether the region of the customer's billingAddress matches with the one on the Operator's system. | ||
regionMatchScore | integer | Indicates the similarity score assigned to the input value when it does not exactly match the value stored in the operator's system. This property shall only be returned when the value of the corresponding match field is `false`. | min: 0, max: 100 | |
localityMatch | string
()
truefalsenot_available | Indicates whether the locality of the customer's billingAddress matches with the one on the Operator's system. | ||
localityMatchScore | integer | Indicates the similarity score assigned to the input value when it does not exactly match the value stored in the operator's system. This property shall only be returned when the value of the corresponding match field is `false`. | min: 0, max: 100 | |
countryMatch | string
()
truefalsenot_available | Indicates whether the country of the customer's billingAddress matches with the one on the Operator's system. | ||
houseNumberExtensionMatch | string
()
truefalsenot_available | Indicates whether the house number extension of the customer's billingAddress matches with the one on the Operator's system. | ||
birthdateMatch | string
()
truefalsenot_available | Indicates whether the birthdate of the customer matches with the one on the Operator's system. | ||
emailMatch | string
()
truefalsenot_available | Indicates whether the email billingAddress of the customer matches with the one on the Operator's system. | ||
emailMatchScore | integer | Indicates the similarity score assigned to the input value when it does not exactly match the value stored in the operator's system. This property shall only be returned when the value of the corresponding match field is `false`. | min: 0, max: 100 | |
genderMatch | string
()
truefalsenot_available | Indicates whether the gender of the customer matches with the one on the Operator's system. |
Bad Request Problem with the client request.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Authentication problem with the client request. Unauthorized error. Access Token related errors.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Client does not have sufficient permission.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Not Found Not Found error. Error if URL is wrong / user is not found.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Internal Server Error Server error. Problem with MNO's server side. Some processing error within MNO's servers.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Service Unavailable Service unavailable. Typically the server is down. Problem with MNO's server side. Any unexpected error within MNO's servers.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Request time exceeded. If it happens repeatedly, consider reducing the request complexity
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
x-correlatorstringCorrelation id for the different services
curl -X POST 'https://opengateway.masstack.com/v0/orgs/masmovil/kyc-match/match' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"phoneNumber": "+34629255833",
"idDocument": "66666666q",
"name": "Federica Sanchez Arjona",
"givenName": "Federica",
"familyName": "Sanchez Arjona",
"nameKanaHankaku": "federica",
"nameKanaZenkaku": "Federica",
"middleNames": "Sanchez",
"familyNameAtBirth": "YYYY",
"address": "Tokyo-to Chiyoda-ku Iidabashi 3-10-10",
"streetName": "Nicolas Salmeron",
"streetNumber": 4,
"postalCode": 1028460,
"region": "Tokyo",
"locality": "ZZZZ",
"country": "JP",
"houseNumberExtension": "VVVV",
"birthdate": "1978-08-22",
"email": "abc@example.com",
"gender": "MALE"
}' Verify that the age of the subscriber associated with a phone number is equal to or greater than the specified age threshold value.
As it is possible that the person holding the contract and the end-user of the subscription may not be the same, the endpoint also admits a list of optional properties to be included in the request to improve the identification. The response may optionally include the identityMatchScore property with a value that indicates how certain it is that the information returned relates to the person that the API Client is requesting. To increase the reliability of the information returned, the API Provider may include in the response the verifiedStatus property, indicating whether the identity information in its possession has been verified against an identification document legally accepted as an age verification document (Note). Note: Depending on the country, credit-check or other mechanism can be used instead of official identification for Age Verification. For details, please contact API Provider.
If the API Client indicates request properties includeContentLock or includeParentalControl with value true and the API Provider implements this functionality, then the response will also include contentLock and parentalControl properties to indicate if the subscription has any kind of content filtering enabled. On the other hand, if the request properties are not included or the API Client specifies value false, then the response properties will not be returned. If the API Provider doesn't implement this functionality, request properties will be ignored and response properties won't be returned in any case.
PATH PARAMETERS
{
"ageThreshold": 18,
"phoneNumber": "+34629255833",
"idDocument": "66666666q",
"name": "Federica Sanchez Arjona",
"givenName": "Federica",
"familyName": "Sanchez Arjona",
"middleNames": "Sanchez",
"familyNameAtBirth": "YYYY",
"birthdate": "1978-08-22",
"email": "federicaSanchez.Arjona@example.com",
"includeContentLock": true,
"includeParentalControl": true
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
ageThreshold* | integer | The age to be verified. The indicated range is a global definition of maximum and minimum values allowed to be requested. It is important to note that this range might be more restrictive in some implementations due to local regulations of a country i.e. A country does not allow to request for an age under 18. This limitation must be informed during the onboarding process. | min: 0, max: 120 | |
phoneNumber* | string | A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, prefixed with '+'. | pattern: ^\+[1-9][0-9]{4,14}$ | |
idDocument | string | Id number associated to the official identity document in the country. It may contain alphanumeric characters. | ||
name | string | Complete name of the customer, usually composed of first/given name and last/family/sur- name in a country. Depending on the country, the order of first/give name and last/family/sur- name varies, and middle name could be included. It can use givenName, middleNames, familyName and/or familyNameAtBirth. For example, in ESP, name+familyName; in NLD, it can be name+middleNames+familyName or name+middleNames+familyNameAtBirth, etc. | ||
givenName | string | First/given name or compound first/given name of the customer. | ||
familyName | string | Last name, family name, or surname of the customer. | ||
middleNames | string | Middle name/s of the customer. | ||
familyNameAtBirth | string | Last/family/sur- name at birth of the customer. | ||
birthdate | string (date) | The birthdate of the customer, in RFC 3339 / ISO 8601 calendar date format (YYYY-MM-DD). | ||
email | string (email) | Email address of the customer in the RFC specified format (local-part@domain). | ||
includeContentLock | boolean | If this parameter is included in the request with value `true`, the response property `contentLock` will be returned. If it is not included or its value is `false`, the response property will not be returned. | false | |
includeParentalControl | boolean | If this parameter is included in the request with value `true`, the response property `parentalControl` will be returned. If it is not included or its value is `false`, the response property will not be returned. | false |
OK OK
{
"ageCheck": "true",
"verifiedStatus": true,
"identityMatchScore": 90,
"contentLock": "false",
"parentalControl": "true"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
ageCheck* | string
()
truefalsenot_available | Indicate `"true"` when the age of the user is the same age or older than the age threshold (age >= age threshold), and `"false"` if not (age < age threshold). If the API Provider doesn't have enough information to perform the validation, a `not_available` can be returned. | ||
verifiedStatus | boolean | Indicate `true` if the information provided has been compared against information based on an identification document legally accepted as an age verification document (Note), otherwise indicate `false`. Note: Depending on the country, credit-check or other mechanism can be used instead of official identification for Age Verification. For details, please contact API Provider. | ||
identityMatchScore | integer | The overall score of identity information available in the API Provider, information either provided in the request body comparing it to the one that the API Provider holds or directly using internal API Provider's information. It is optional for the API Provider to return the Identity match score. | min: 0, max: 100 | |
contentLock | string
()
truefalsenot_available | Indicate `"true"` if the subscription associated with the phone number has any kind of content lock (i.e certain web content blocked) and `"false"` if not. If the information is not available the value `not_available` can be returned. | ||
parentalControl | string
()
truefalsenot_available | Indicate `"true"` if the subscription associated with the phone number has any kind of parental control activated and `"false"` if not. If the information is not available the value `not_available` can be returned. |
Bad Request Problem with the client request.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Authentication problem with the client request. Unauthorized error. Access Token related errors.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Client does not have sufficient permission.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Not Found Not Found error. Error if URL is wrong / user is not found.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unprocessable Entity Unprocessable entity. The server understands the content type of the request entity and the syntax of the request entity is correct, but it was unable to process the contained instructions. For example, this error can be returned when the subject of the API cannot be identified from the provided parameters or when there is a mismatch between the subject identified from the access token and the one provided in the request.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Internal Server Error Server error. Problem with MNO's server side. Some processing error within MNO's servers.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Service Unavailable Service unavailable. Typically the server is down. Problem with MNO's server side. Any unexpected error within MNO's servers.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Request time exceeded. If it happens repeatedly, consider reducing the request complexity
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
x-correlatorstringCorrelation id for the different services
curl -X POST 'https://opengateway.masstack.com/v0/orgs/masmovil/kyc-age-verification/verify' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"ageThreshold": 18,
"phoneNumber": "+34629255833",
"idDocument": "66666666q",
"name": "Federica Sanchez Arjona",
"givenName": "Federica",
"familyName": "Sanchez Arjona",
"middleNames": "Sanchez",
"familyNameAtBirth": "YYYY",
"birthdate": "1978-08-22",
"email": "federicaSanchez.Arjona@example.com",
"includeContentLock": true,
"includeParentalControl": true
}' Verifies a specified length of tenure, based on a provided date, for a network subscriber to establish a level of trust for the network subscription identifier.
PATH PARAMETERS
{
"phoneNumber": "+123456789",
"tenureDate": "2023-07-03"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
phoneNumber* | string | A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, prefixed with '+'. | pattern: ^\+[1-9][0-9]{4,14}$ | |
tenureDate* | string (date) | The date, in RFC 3339 / ISO 8601 compliant format "YYYY-MM-DD", from which continuous tenure of the identified network subscriber is required to be confirmed. The date must not be in the future (i.e., it must be less than or equal to the current date). If a future date is provided, a `400 INVALID_ARGUMENT` error will be returned. |
OK Respond with tenure information
{
"tenureDateCheck": true,
"contractType": "PAYM"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
tenureDateCheck* | boolean | `true` when the identified mobile subscription has had valid tenure since `tenureDate`, otherwise `false` | ||
contractType | string
()
PAYGPAYMBusiness | If exists, populated with: - `PAYG` - prepaid (pay-as-you-go) account - `PAYM` - contract account - `Business` - Business (enterprise) account This attribute may be omitted from the response set if the information is not available |
Bad Request Problem with the client request.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Authentication problem with the client request. Unauthorized error. Access Token related errors.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Client does not have sufficient permission.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Not Found Not Found error. Error if URL is wrong / user is not found.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unprocessable Entity Unprocessable entity. The server understands the content type of the request entity and the syntax of the request entity is correct, but it was unable to process the contained instructions. For example, this error can be returned when the subject of the API cannot be identified from the provided parameters or when there is a mismatch between the subject identified from the access token and the one provided in the request.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
x-correlatorstringCorrelation id for the different services
curl -X POST 'https://opengateway.masstack.com/v0/orgs/masmovil/kyc-tenure/check-tenure' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"phoneNumber": "+123456789",
"tenureDate": "2023-07-03"
}' Create a request to retrieve the validity status of the API Consumer data processing for a given User, scope(s) and Purpose. The API Consumer is identified by the client_id parameter deduced from the access token.
PATH PARAMETERS
Retrieve status request
{
"phoneNumber": "+123456789",
"clientId": "api-consumer",
"scopes": [
"location-verification:verify"
],
"purpose": "dpv:FraudPreventionAndDetection",
"requestCaptureUrl": true
} {
"phoneNumber": "+123456789",
"clientId": "api-consumer",
"scopes": [
"quality-on-demand:sessions:create",
"quality-on-demand:sessions:read",
"quality-on-demand:sessions:update",
"quality-on-demand:sessions:delete",
"quality-on-demand:sessions:retrieve-by-device"
],
"purpose": "dpv:RequestedServiceProvision",
"requestCaptureUrl": true
} {
"phoneNumber": "+123456789",
"clientId": "api-consumer",
"scopes": [
"location-verification:verify",
"device-roaming-status:read"
],
"purpose": "dpv:FraudPreventionAndDetection",
"requestCaptureUrl": true
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
phoneNumber* | string | A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, prefixed with '+'. | pattern: ^\+[1-9][0-9]{4,14}$ | |
clientId* | string | The client identifier of the API Consumer, as registered with the API Provider. | ||
scopes* | string[] | List of requested scopes. The scope is a string that represents the access rights that the API Consumer is requesting from the User. | minItems: 1 | |
purpose* | string | The reason for which personal data will be processed by the API Consumer. CAMARA defines a standard set of Purposes which can be used by API Consumers to specify the reason for their intended personal data processing. CAMARA uses the [W3C Data Privacy Vocabulary](https://w3c.github.io/dpv/2.0/dpv/) (DPV) to represent these purposes e.g. `dpv:FraudPreventionAndDetection` or `dpv:RequestedServiceProvision`. | pattern: ^dpv:[a-zA-Z0-9]+$ | |
requestCaptureUrl* | boolean | A boolean flag indicating whether the API Consumer requests API Provider to return a Consent capture URL. * `true` - If set to `true` the API will include a `captureUrl` in the response body if applicable. * `false` - The API will omit the Consent capture URL from the response. |
OK OK
{
"statusInfo": [
{
"scopes": [
"number-verification:verify"
],
"purpose": "dpv:FraudPreventionAndDetection",
"statusValidForProcessing": true
}
]
} | Property | Type | Description | Constraints | Default | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
statusInfo* | object[] | Provides information about the validity status of the requested data processing for the specified scope(s) and Purpose. It contains details of whether the processing of the data is currently valid and, if not, the reason why. The expiration date of the validity may be also provided if applicable. More than one array item may be required for the requested scope(s) and Purpose, e.g. when the requested scopes relate to multiple APIs. | minItems: 1 | |||||||||||||||||||||||||||||||
Array items:
| ||||||||||||||||||||||||||||||||||
captureUrl | string (url) | URL where the User can provide the necessary Consent. This field is only present in the API response if the API Consumer requests it and if the following conditions are met: - `statusInfo[*].statusValidForProcessing` is `false`, and - `statusInfo[*].statusReason` is `PENDING`, `REQUESTED` or `EXPIRED`. Please note that this field is only applicable when the User Consent is required to enable valid data processing. A unique URL is provided to authorise all items in the statusInfo list that require user action. | ||||||||||||||||||||||||||||||||
Bad Request Problem with the client request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Client does not have sufficient permission.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unprocessable Entity Unprocessable Content
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Internal Server Error Server error
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Service Unavailable Service unavailable. Typically the server is down.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Request time exceeded. If it happens repeatedly, consider reducing the request complexity
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
x-correlatorunknowncurl -X POST 'https://opengateway.masstack.com/v0/orgs/masmovil/consent-info/retrieve' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"phoneNumber": "+123456789",
"clientId": "api-consumer",
"scopes": [
"location-verification:verify"
],
"purpose": "dpv:FraudPreventionAndDetection",
"requestCaptureUrl": true
}'