openapi: 3.2.0 info: title: Nokia Network As Code KYC Age Verification v0.1 API version: 1.0.0 termsOfService: https://developer.networkascode.nokia.io/legal/terms-of-service x-refined-note: - x-badges differs across the merged source definitions and was not carried - x-camara-commonalities differs across the merged source definitions and was not carried - x-category differs across the merged source definitions and was not carried - x-collections differs across the merged source definitions and was not carried - x-long-description differs across the merged source definitions and was not carried - x-public differs across the merged source definitions and was not carried - x-thumbnail differs across the merged source definitions and was not carried - x-version-lifecycle differs across the merged source definitions and was not carried - x-website differs across the merged source definitions and was not carried description: 'Operations tagged KYC Age Verification v0.1 across 2 of this provider''s published API definitions: nokia-network-as-code-camara-openapi.yml, nokia-network-as-code-platform-openapi.json. Each path carries the servers of the definition it was published in.' servers: - url: '{apiRoot}/geofencing-subscriptions/v0.3' variables: apiRoot: default: http://localhost:9091 description: API root - url: '{apiRoot}/geofencing-subscriptions/v0.4' variables: apiRoot: default: http://localhost:9091 description: API root - url: https://network-as-code.p-eu.rapidapi.com tags: - name: KYC Age Verification v0.1 paths: /passthrough/camara/v1/kyc-age-verification/kyc-age-verification/v0.1/verify: post: tags: - KYC Age Verification v0.1 summary: Verify Age Threshold description: '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. 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. ' operationId: verifyAge security: - openId: - kyc-age-verification:verify parameters: - $ref: '#/components/parameters/x-correlator-KYC-AV-V0' - in: header name: authorization required: false description: authorization header for token schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/VerifyRequestBody-KYC-AV-V0' examples: KYC_AGE_VERIFICATION: value: ageThreshold: 18 phoneNumber: '+99999991000' 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 KYC_AGE_VERIFICATION_3_LEGGED_FLOW: value: ageThreshold: 18 idDocument: 66666666q name: Federica Sanchez Arjona givenName: Federica familyName: Sanchez Arjona middleNames: Sanchez familyNameAtBirth: YYYY birthdate: '1978-08-22' email: federicaSanchez.Arjona@gmail.com includeContentLock: true includeParentalControl: true responses: '200': description: OK headers: x-correlator: $ref: '#/components/headers/x-correlator-KYC-AV-V0' content: application/json: schema: $ref: '#/components/schemas/VerifyResponseBody-KYC-AV-V0' examples: KYC_200Example: value: ageCheck: 'true' verifiedStatus: true identityMatchScore: 90 contentLock: 'false' parentalControl: 'true' '400': $ref: '#/components/responses/Generic400-KYC-AV-V0' '401': $ref: '#/components/responses/Generic401-KYC-AV-V0' '403': $ref: '#/components/responses/Generic403-KYC-AV-V0' '404': $ref: '#/components/responses/Generic404-KYC-AV-V0' '422': $ref: '#/components/responses/Generic422-KYC-AV-V0' servers: - url: '{apiRoot}/geofencing-subscriptions/v0.3' variables: apiRoot: default: http://localhost:9091 description: API root - url: '{apiRoot}/geofencing-subscriptions/v0.4' variables: apiRoot: default: http://localhost:9091 description: API root components: schemas: AgeCheck-KYC-AV-V0: type: string description: 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. enum: - 'true' - 'false' - not_available ErrorInfo-KYC-AV-V0: type: object required: - status - code - message properties: status: type: integer description: HTTP response status code code: type: string description: Code given to this error message: type: string description: Detailed error description Birthdate-KYC-AV-V0: type: string format: date description: The birthdate of the customer, in RFC 3339 / ISO 8601 calendar date format (YYYY-MM-DD). IncludeContentLock-KYC-AV-V0: type: boolean default: false description: 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. AgeThreshold-KYC-AV-V0: type: integer minimum: 0 maximum: 120 description: 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. VerifyRequestBody-KYC-AV-V0: type: object description: Request to verify the age threshold provided. required: - ageThreshold properties: ageThreshold: $ref: '#/components/schemas/AgeThreshold-KYC-AV-V0' phoneNumber: $ref: '#/components/schemas/PhoneNumber-KYC-AV-V0' idDocument: $ref: '#/components/schemas/IdDocument-KYC-AV-V0' name: $ref: '#/components/schemas/Name-KYC-AV-V0' givenName: $ref: '#/components/schemas/GivenName-KYC-AV-V0' familyName: $ref: '#/components/schemas/FamilyName-KYC-AV-V0' middleNames: $ref: '#/components/schemas/MiddleNames-KYC-AV-V0' familyNameAtBirth: $ref: '#/components/schemas/FamilyNameAtBirth-KYC-AV-V0' birthdate: $ref: '#/components/schemas/Birthdate-KYC-AV-V0' email: $ref: '#/components/schemas/Email-KYC-AV-V0' includeContentLock: $ref: '#/components/schemas/IncludeContentLock-KYC-AV-V0' includeParentalControl: $ref: '#/components/schemas/IncludeParentalControl-KYC-AV-V0' Name-KYC-AV-V0: type: string description: 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. VerifyResponseBody-KYC-AV-V0: type: object description: Response to an age verification request required: - ageCheck properties: ageCheck: $ref: '#/components/schemas/AgeCheck-KYC-AV-V0' verifiedStatus: $ref: '#/components/schemas/VerifiedStatus-KYC-AV-V0' identityMatchScore: $ref: '#/components/schemas/IdentityMatchScore-KYC-AV-V0' contentLock: $ref: '#/components/schemas/ContentLock-KYC-AV-V0' parentalControl: $ref: '#/components/schemas/ParentalControl-KYC-AV-V0' FamilyName-KYC-AV-V0: type: string description: Last name, family name, or surname of the customer. VerifiedStatus-KYC-AV-V0: type: boolean description: Indicate `true` if the information provided has been compared against information based on an identification document legally accepted as an age verification document, otherwise indicate `false`. GivenName-KYC-AV-V0: type: string description: First/given name or compound first/given name of the customer. MiddleNames-KYC-AV-V0: type: string description: Middle name/s of the customer. PhoneNumber-KYC-AV-V0: description: 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 '+'. type: string pattern: ^\+[1-9][0-9]{4,14}$ example: '+99999991000' Email-KYC-AV-V0: type: string format: email description: Email address of the customer in the RFC specified format (local-part@domain). FamilyNameAtBirth-KYC-AV-V0: type: string description: Last/family/sur- name at birth of the customer. ParentalControl-KYC-AV-V0: type: string description: 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. enum: - 'true' - 'false' - not_available IncludeParentalControl-KYC-AV-V0: type: boolean default: false description: 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. IdDocument-KYC-AV-V0: type: string description: Id number associated to the official identity document in the country. It may contain alphanumeric characters. ContentLock-KYC-AV-V0: type: string description: 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. enum: - 'true' - 'false' - not_available IdentityMatchScore-KYC-AV-V0: type: integer minimum: 0 maximum: 100 description: 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. responses: Generic400-KYC-AV-V0: description: Bad Request headers: x-correlator: $ref: '#/components/headers/x-correlator-KYC-AV-V0' content: application/json: schema: allOf: - $ref: '#/components/schemas/ErrorInfo-KYC-AV-V0' - type: object properties: status: enum: - 400 code: enum: - INVALID_ARGUMENT - OUT_OF_RANGE examples: GENERIC_400_INVALID_ARGUMENT: description: Invalid Argument. Generic Syntax Exception value: status: 400 code: INVALID_ARGUMENT message: Client specified an invalid argument, request body or query param. GENERIC_400_OUT_OF_RANGE: description: Out of Range. Specific Syntax Exception used when a given field has a pre-defined range or a invalid filter criteria combination is requested value: status: 400 code: OUT_OF_RANGE message: Client specified an invalid range. Generic422-KYC-AV-V0: description: Unprocessable Content headers: x-correlator: $ref: '#/components/headers/x-correlator-KYC-AV-V0' content: application/json: schema: allOf: - $ref: '#/components/schemas/ErrorInfo-KYC-AV-V0' - type: object properties: status: enum: - 422 code: enum: - SERVICE_NOT_APPLICABLE - MISSING_IDENTIFIER - UNNECESSARY_IDENTIFIER examples: GENERIC_422_SERVICE_NOT_APPLICABLE: description: Service is not applicable for the provided phone number value: status: 422 code: SERVICE_NOT_APPLICABLE message: The service is not applicable for the provided phone number GENERIC_422_MISSING_IDENTIFIER: description: No phone number has been provided either explicitly or associated with the access token value: status: 422 code: MISSING_IDENTIFIER message: No phone number has been provided GENERIC_422_UNNECESSARY_IDENTIFIER: description: An explicit phone number has been provided when one is already associated with the access token value: status: 422 code: UNNECESSARY_IDENTIFIER message: An explicit phone number has been provided when one is already associated with the access token Generic403-KYC-AV-V0: description: Forbidden headers: x-correlator: $ref: '#/components/headers/x-correlator-KYC-AV-V0' content: application/json: schema: allOf: - $ref: '#/components/schemas/ErrorInfo-KYC-AV-V0' - type: object properties: status: enum: - 403 code: enum: - PERMISSION_DENIED examples: GENERIC_403_PERMISSION_DENIED: description: Permission denied. OAuth2 token access does not have the required scope or when the user fails operational security value: status: 403 code: PERMISSION_DENIED message: Client does not have sufficient permissions to perform this action. Generic401-KYC-AV-V0: description: Unauthorized headers: x-correlator: $ref: '#/components/headers/x-correlator-KYC-AV-V0' content: application/json: schema: allOf: - $ref: '#/components/schemas/ErrorInfo-KYC-AV-V0' - type: object properties: status: enum: - 401 code: enum: - UNAUTHENTICATED - AUTHENTICATION_REQUIRED examples: GENERIC_401_UNAUTHENTICATED: description: Request cannot be authenticated value: status: 401 code: UNAUTHENTICATED message: Request not authenticated due to missing, invalid, or expired credentials. GENERIC_401_AUTHENTICATION_REQUIRED: description: New authentication is needed, authentication is no longer valid value: status: 401 code: AUTHENTICATION_REQUIRED message: New authentication is required. Generic404-KYC-AV-V0: description: Not found headers: x-correlator: $ref: '#/components/headers/x-correlator-KYC-AV-V0' content: application/json: schema: allOf: - $ref: '#/components/schemas/ErrorInfo-KYC-AV-V0' - type: object properties: status: enum: - 404 code: enum: - IDENTIFIER_NOT_FOUND examples: GENERIC_404_IDENTIFIER_NOT_FOUND: description: The phone number is not associated with a CSP customer account value: status: 404 code: IDENTIFIER_NOT_FOUND message: The phone number provided is not associated with a customer account parameters: x-correlator-KYC-AV-V0: name: x-correlator in: header description: Correlation id for the different services schema: type: string pattern: ^[a-zA-Z0-9-]{0,55}$ example: b4333c46-49c0-4f62-80d7-f0ef930f1c46 x-rapidapi-host: name: x-rapidapi-host in: header required: true description: The API's Host value as defined in the RapidAPI Hub. schema: type: string example: network-as-code.p-eu.rapidapi.com headers: x-correlator-KYC-AV-V0: description: Correlation id for the different services schema: type: string pattern: ^[a-zA-Z0-9-]{0,55}$ securitySchemes: openId: description: OpenID Connect authentication type: openIdConnect openIdConnectUrl: https://example.com/.well-known/openid-configuration ApiKeyAuth: type: apiKey in: header name: x-rapidapi-key description: Your RapidAPI key externalDocs: description: Project documentation at Camara url: https://github.com/camaraproject/DeviceLocation x-refined-from: - nokia-network-as-code-camara-openapi.yml - nokia-network-as-code-platform-openapi.json