openapi: 3.0.3 info: title: Network Biometrics™ by TMT ID version: 1.20.0 description: "TMT ID is the creator of Network Biometrics™. We make customer signups and transactions smoother while reducing exposure to fraud and related risks. With most online transactions now being made on mobile devices, an individual’s mobile number is often the best starting point for establishing their digital identity and managing their ongoing relationship with your organisation. \n\nBecause of the close relationship between number, handset, and SIM, it is possible to identify and authenticate users without interrupting the customer journey quickly and transparently. However, there are many ways of compromising mobile numbers for fraud, including identity theft, account takeover and man-in-the-middle attacks. \n\nNetwork Biometrics™ provides additional capabilities for your existing security and fraud detection systems. Through our APIs you can instantly validate the personal data that is being given to you, check for SIM swap or device change events and obtain other fraud indicators.\n\n---" contact: name: support@phronesis.net email: support@phronesis.net url: https://phronesis.net/contact/ servers: - url: https://ea.api.phronesis.tech description: early access - url: https://api.phronesis.tech description: production paths: /network-biometrics: parameters: [] post: summary: Network Biometrics™ operationId: post-network-biometrics description: Network Biometrics™️ is for identifying, verifying and assuring customers. We make customer signups and transactions smoother while reducing exposure to fraud and related risks across the entire customer lifecycle. parameters: - in: header name: Correlation-Id schema: type: string maxLength: 64 readOnly: true description: An optional user-generated string that will be returned in the response to allow the matching of request requestBody: content: application/json: schema: $ref: '#/components/schemas/NetworkBiometricProductRequest' examples: Discover request: $ref: '#/components/examples/DiscoverRequest' Number Recycle request: $ref: '#/components/examples/NumberRecycleRequest' UK Assure request: $ref: '#/components/examples/AssureRequest' Assure Device Info request: $ref: '#/components/examples/AssureDeviceInfoRequest' Protect request: $ref: '#/components/examples/ProtectRequest' UK - Protect Device Info - Request: $ref: '#/components/examples/ProtectDeviceInfoRequest' UK - Age Eligibility - Request: $ref: '#/components/examples/AgeEligibilityRequest' UK - All Network Biometrics Services - Request: $ref: '#/components/examples/AllServicesRequest' France - Assure - Request: $ref: '#/components/examples/AssureRequestFrance' description: '' responses: '200': description: "**200 - HTTP OK** \nCheck `transaction.status.value` for further detail on the success of the request:\n\n| Code | Message |\n|:----:|:------------------------------------------------:|\n| 0 | transaction successful |\n| 2 | transaction successful but partial data returned |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NetworkBiometricProductResponse' examples: Discover - transaction successful - 0: $ref: '#/components/examples/DiscoverResponse' UK - All Network Biometrics services - transaction successful - 0: $ref: '#/components/examples/AllProductSuccessResponse' France - Assure - transaction successful - 0: $ref: '#/components/examples/AssureSuccessResponseFrance' UK - Assure - transaction successful but partial data returned - 2: $ref: '#/components/examples/AssurePartialResponseUK' headers: Correlation-Id: $ref: '#/components/headers/Correlation-Id' '202': description: "**202 - HTTP Accepted** \nCheck `transaction.status.value` for possible reasons such as:\n\n| Code | Message |\n| ---- | -----------------------------:|\n| 300 | call Forward check failed |\n| 301 | SIM swap check failed |\n| 302 | country check failed |\n| 303 | user information check failed |\n| 304 | vicinity check failed |\n\n---" content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' examples: 300 - call Forward check failed: value: transaction: status: value: 300 message: call Forward check failed reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 301 - datasource temporarily not available: value: transaction: status: value: 301 message: SIM swap check failed reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 302 - country check failed: value: transaction: status: value: 302 message: country check failed reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 303 - user information check failed: value: transaction: status: value: 303 message: user information check failed reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 304 - vicinity check failed: value: transaction: status: value: 304 message: vicinity check failed reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e headers: Correlation-Id: $ref: '#/components/headers/Correlation-Id' '400': description: "**400 - HTTP Bad Request** \nCheck `transaction.status.value` for possible reasons such as:\n\n| Code | Message |\n|:----:|:---------------------------:|\n| 103 | bad request |\n| 104 | invalid Content-Type header |\n| 207 | invalid parameters |\n| 208 | invalid postcode parameter |\n| 209 | invalid name parameter |\n| 210 | invalid address parameter |\n| 211 | invalid birthdate parameter |\n| 213 | invalid use case identifier |\n| 214 | invalid number parameter |\n| 215 | invalid IMEI parameter |\n\n---" content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' examples: 103 - bad request: value: transaction: status: value: 103 message: bad request reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 104 - invalid Content-Type header: value: transaction: status: value: 104 message: invalid Content-Type header reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 207 - invalid parameters: value: transaction: status: value: 207 message: invalid parameters reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 208 - invalid postcode parameter: value: transaction: status: value: 208 message: invalid postcode parameter reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 209 - invalid name parameter: value: transaction: status: value: 209 message: invalid name parameter reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 210 - invalid address parameter: value: transaction: status: value: 210 message: invalid address parameter reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 211 - invalid birthdate parameter: value: transaction: status: value: 211 message: invalid birthdate parameter reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 213 - invalid use case identifier: value: transaction: status: value: 213 message: invalid use case identifier reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 214 - invalid number parameter: value: transaction: status: value: 214 message: invalid number parameter reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 215 - invalid IMEI parameter: value: transaction: status: value: 215 message: invalid IMEI parameter reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e headers: Correlation-Id: $ref: '#/components/headers/Correlation-Id' '401': description: "**401 - HTTP Unauthorized** \nCheck `transaction.status.value` for possible reasons such as:\n\n| Code | Message |\n| ---- | ----------------------------------------------- |\n| 100 | user account not found |\n| 101 | authentication failed |\n| 102 | user account suspended |\n| 106 | admin privileges required for this API |\n| 200 | IP address not whitelisted |\n| 204 | product not provisioned for your account | \n| 206 | product availability suspended for your account |\n\n---" content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' examples: 100 - user account not found: value: transaction: status: value: 100 message: user account not found reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 101 - authentication failed: value: transaction: status: value: 101 message: authentication failed reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 102 - user account suspended: value: transaction: status: value: 102 message: user account suspended reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 106 - admin privileges required for this API: value: transaction: status: value: 106 message: admin privileges required for this API reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 200 - IP address not whitelisted: value: transaction: status: value: 200 message: IP address not whitelisted reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 204 - product not provisioned for your account: value: transaction: status: value: 204 message: product not provisioned for your account reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 206 - product availability suspended for your account: value: transaction: status: value: 206 message: product availability suspended for your account reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e headers: Correlation-Id: $ref: '#/components/headers/Correlation-Id' '403': description: "**403 - HTTP Forbidden** \nCheck `transaction.status.value` for possible reasons such as:\n\n| Code | Message |\n| ---- | ------------------------------------ |\n| 212 | MNO access not authorised |\n| 802 | datasource temporarily not available |\n\n---" content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' examples: 212 - MNO access not authorised: value: transaction: status: value: 212 message: MNO access not authorised reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 802 - datasource temporarily not available: value: transaction: status: value: 802 message: datasource temporarily not available reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e headers: Correlation-Id: $ref: '#/components/headers/Correlation-Id' '404': description: "**404 - HTTP Not Found** \nCheck `transaction.status.value` for possible reasons such as:\n\n| Code | Message |\n| ---- | --------------------------------------------- |\n| 306 | unknown subscriber, data may be incomplete |\n| 307 | no coverage for country |\n| 404 | subscriber opted out of service |\n| 405 | invalid number |\n| 406 | subscriber is unregistered prepay |\n| 407 | unknown routing information |\n| 408 | unknown number range |\n| 409 | device or brand not supported |\n| 804 | resource not found |\n| 807 | subscriber data unavailable |\n| 817 | datasource data not found |\n\n---" content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' examples: 306 - unknown subscriber, data may be incomplete: value: transaction: status: value: 306 message: unknown subscriber, data may be incomplete reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 307 - no coverage for country: value: transaction: status: value: 307 message: no coverage for country reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 404 - subscriber opted out of service: value: transaction: status: value: 404 message: subscriber opted out of service reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 405 - invalid number: value: transaction: status: value: 405 message: invalid number reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 406 - subscriber is unregistered prepay: value: transaction: status: value: 406 message: subscriber is unregistered prepay reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 407 - unknown routing information: value: transaction: status: value: 407 message: unknown routing information reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 408 - unknown number range: value: transaction: status: value: 408 message: unknown number range reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 804 - resource not found: value: transaction: status: value: 804 message: resource not found reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 807 - subscriber data unavailable: value: transaction: status: value: 807 message: subscriber data unavailable reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 817 - datasource data not found: value: transaction: status: value: 817 message: datasource data not found reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e headers: Correlation-Id: $ref: '#/components/headers/Correlation-Id' '405': description: "**405 - HTTP Method Not Allowed** \nCheck `transaction.status.value` for possible reasons such as:\n\n| Code | Message |\n| ---- | -------------------- |\n| 105 | method not allowed |\n\n---" content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' examples: 105 - method not allowed: value: transaction: status: value: 105 message: method not allowed reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e headers: Correlation-Id: $ref: '#/components/headers/Correlation-Id' '408': description: "**408 - HTTP Request Timeout** \nMay be returned without a body\n\n---\n" '500': description: "**500 - HTTP Internal Server Error** \nMay be returned without a body\n\n---" '502': description: "**502 - HTTP Bad Gateway** \nCheck `transaction.status.value` for possible reasons such as:\n\n| Code | Message |\n| ---- | --------------------------------------- |\n| 803 | datasource query failed |\n| 805 | database subsystem error |\n| 812 | datasource returned unexpected response |\n\n---" content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' examples: 803 - datasource query failed: value: transaction: status: value: 803 message: datasource query failed reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 805 - database subsystem error: value: transaction: status: value: 805 message: database subsystem error reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 812 - datasource returned unexpected response: value: transaction: status: value: 812 message: datasource returned unexpected response reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e headers: Correlation-Id: $ref: '#/components/headers/Correlation-Id' '503': description: "**503 - HTTP Service Unavailable** \nCheck `transaction.status.value` for possible reasons such as:\n\n| Code | Message |\n| ---- | ----------------------------------------------------------- |\n| 201 | request was throttled. submission per second limit exceeded |\n| 202 | request was throttled. submission per day limit exceeded |\n| 203 | request was throttled. submission per month limit exceeded |\n| 800 | database subsystem unavailable |\n| 801 | datasource permanently unavailable |\n| 806 | datasource connection error |\n| 808 | service not available for MNO or MVNO |\n| 809 | datasource capacity exceeded |\n| 810 | internal server error |\n| 811 | datasource called too early |\n| 813 | datasource quota exceeded |\n| 814 | problem connecting to datasource |\n| 815 | datasource requires further data |\n| 816 | datasource query error |\n\n---" content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' examples: 201 - request was throttled. submission per second limit exceeded: value: transaction: status: value: 201 message: request was throttled. submission per second limit exceeded reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 202 - request was throttled. submission per day limit exceeded: value: transaction: status: value: 202 message: request was throttled. submission per day limit exceeded reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 203 - request was throttled. submission per month limit exceeded: value: transaction: status: value: 203 message: request was throttled. submission per month limit exceeded reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 800 - database subsystem unavailable: value: transaction: status: value: 800 message: database subsystem unavailable reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 801 - datasource permanently unavailable: value: transaction: status: value: 801 message: datasource permanently unavailable reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 806 - datasource permanently unavailable: value: transaction: status: value: 806 message: datasource connection error reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 808 - service not available for MNO or MVNO: value: transaction: status: value: 808 message: service not available for MNO or MVNO reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 809 - datasource capacity exceeded: value: transaction: status: value: 809 message: datasource capacity exceeded reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 810 - internal server error: value: transaction: status: value: 810 message: internal server error reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 811 - datasource called too early: value: transaction: status: value: 811 message: datasource called too early reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 813 - datasource quota exceeded: value: transaction: status: value: 813 message: datasource quota exceeded reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 814 - problem connecting to datasource: value: transaction: status: value: 814 message: problem connecting to datasource reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 815 - datasource requires further data: value: transaction: status: value: 815 message: datasource requires further data reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e 816 - datasource configuration error: value: transaction: status: value: 816 message: datasource configuration error reference: https://developer.api.v3.phronesis.tech/ id: 600005e8-bb33-4a42-bb23-65aa70c3ec6e headers: Correlation-Id: $ref: '#/components/headers/Correlation-Id' /core/v2/NumberAssurance/AssuredRegistration: post: deprecated: true summary: Assured Registration operationId: post-assured-registration description: Validate that the mobile phone number provided by a customer at the point of account registration / creation is associated with the same person’s mobile network billing identity. tags: - v2 (deprecated) requestBody: content: application/json: schema: $ref: '#/components/schemas/AssuredRegistrationRequest' responses: '200': description: "**200 - HTTP OK** \nCheck `status` and `status_message` for further details on the success of the request:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 0 | transaction successful |\n| 305 | subscriber absent, data may be incomplete |\n| 306 | unknown subscriber, data may be incomplete |\n| 308 | teleservice not provisioned for subscriber |\n| 309 | call or SMS facility barred for subscriber |\n| 310 | call or SMS facility not currently supported in serving network |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' '202': description: "**202 - HTTP Accepted** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 300 | call Forward check failed |\n| 301 | SIM swap check failed |\n| 302 | country check failed |\n| 303 | user information check failed |\n| 304 | vicinity check failed |\n| 307 | no coverage for country |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 300 status_message: call Forward check failed transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 202 '400': description: "**400 - HTTP Bad Request** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 103 | bad request |\n| 104 | invalid Content-Type header |\n| 207 | invalid parameters |\n| 208 | invalid postcode parameter |\n| 209 | invalid name parameter |\n| 210 | invalid address parameter |\n| 211 | invalid birthdate parameter |\n| 213 | invalid use case identifier |\n| 214 | invalid number parameter |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 103 status_message: bad request transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 400 '401': description: "**401 - HTTP Unauthorized** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 100 | user account not found |\n| 101 | authentication failed |\n| 102 | user account suspended |\n| 106 | admin privileges required for this API |\n| 200 | IP address not whitelisted |\n| 204 | product not provisioned for your account |\n| 206 | product availability suspended for your account |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 100 status_message: user account not found transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 401 '403': description: "**403 - HTTP Forbidden** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 212 | MNO access not authorised |\n| 802 | datasource temporarily not available |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 212 status_message: MNO access not authorised transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 403 '404': description: "**404 - HTTP Not Found** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 404 | subscriber opted out of service |\n| 405 | invalid number |\n| 804 | resource not found |\n| 807 | subscriber data unavailable |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 404 status_message: subscriber opted out of service transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 404 '405': description: "**405 - HTTP Method Not Allowed** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 105 | method not allowed |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 105 status_message: method not allowed transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 405 '408': description: "**408 - HTTP Request Timeout** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 806 | datasource query time out |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 806 status_message: datasource query time out transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 408 '502': description: "**502 - HTTP Bad Gateway** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 803 | datasource query failed |\n| 805 | database subsystem error |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 803 status_message: datasource query failed transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 502 '503': description: "**503 - HTTP Service Unavailable** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 201 | request was throttled. submission limits exceeded |\n| 202 | request was throttled. submission limits exceeded |\n| 203 | request was throttled. submission limits exceeded |\n| 800 | database subsystem unavailable |\n| 801 | datasource permanently unavailable |\n| 808 | service not available for MVNO |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 800 status_message: database subsystem unavailable transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 503 security: - {} /core/v2/NumberAssurance/AssuredAge: post: deprecated: true summary: Assured Age operationId: post-assured-age description: Verify that the mobile phone number provided by a customer is registered to them and they meet certain age requirements. tags: - v2 (deprecated) requestBody: content: application/json: schema: $ref: '#/components/schemas/AssuredAgeRequest' responses: '200': description: "**200 - HTTP OK** \nCheck `status` and `status_message` for further details on the success of the request:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 0 | transaction successful |\n| 305 | subscriber absent, data may be incomplete |\n| 306 | unknown subscriber, data may be incomplete |\n| 308 | teleservice not provisioned for subscriber |\n| 309 | call or SMS facility barred for subscriber |\n| 310 | call or SMS facility not currently supported in serving network |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' '202': description: "**202 - HTTP Accepted** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 300 | call Forward check failed |\n| 301 | SIM swap check failed |\n| 302 | country check failed |\n| 303 | user information check failed |\n| 304 | vicinity check failed |\n| 307 | no coverage for country |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 300 status_message: call Forward check failed transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 202 '400': description: "**400 - HTTP Bad Request** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 103 | bad request |\n| 104 | invalid Content-Type header |\n| 207 | invalid parameters |\n| 208 | invalid postcode parameter |\n| 209 | invalid name parameter |\n| 210 | invalid address parameter |\n| 211 | invalid birthdate parameter |\n| 213 | invalid use case identifier |\n| 214 | invalid number parameter |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 103 status_message: bad request transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 400 '401': description: "**401 - HTTP Unauthorized** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 100 | user account not found |\n| 101 | authentication failed |\n| 102 | user account suspended |\n| 106 | admin privileges required for this API |\n| 200 | IP address not whitelisted |\n| 204 | product not provisioned for your account |\n| 206 | product availability suspended for your account |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 100 status_message: user account not found transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 401 '403': description: "**403 - HTTP Forbidden** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 212 | MNO access not authorised |\n| 802 | datasource temporarily not available |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 212 status_message: MNO access not authorised transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 403 '404': description: "**404 - HTTP Not Found** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 404 | subscriber opted out of service |\n| 405 | invalid number |\n| 804 | resource not found |\n| 807 | subscriber data unavailable |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 404 status_message: subscriber opted out of service transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 404 '405': description: "**405 - HTTP Method Not Allowed** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 105 | method not allowed |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 105 status_message: method not allowed transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 405 '408': description: "**408 - HTTP Request Timeout** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 806 | datasource query time out |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 806 status_message: datasource query time out transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 408 '502': description: "**502 - HTTP Bad Gateway** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 803 | datasource query failed |\n| 805 | database subsystem error |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 803 status_message: datasource query failed transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 502 '503': description: "**503 - HTTP Service Unavailable** \nCheck `status` and `status_message` for further details about why the request failed:\n\n| Code | Message |\n|:----:|:---------------------------------------------------------------:|\n| 201 | request was throttled. submission limits exceeded |\n| 202 | request was throttled. submission limits exceeded |\n| 203 | request was throttled. submission limits exceeded |\n| 800 | database subsystem unavailable |\n| 801 | datasource permanently unavailable |\n| 808 | service not available for MVNO |\n\n---" content: application/json: schema: $ref: '#/components/schemas/NumberAssuranceResponse' example: status: 800 status_message: database subsystem unavailable transaction_id: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: '1677155591' HTTP_status: 503 security: - {} components: headers: Correlation-Id: schema: type: string example: 251250b0-05a5-44b1-9d6d-6d1c78e8d994 description: A user-generated string to aid in matching requests; this is echoed back in the response headers securitySchemes: token: name: API-Token type: apiKey in: header description: API Token provided to you during the onboarding process secret: name: API-Secret type: apiKey in: header description: API Secret provided to you during the onboarding process examples: DiscoverRequest: description: '## Discover Supports input of a mobile phone number and/or a device IMEI number. When supplied with a mobile phone number, it validates the number is correctly formatted, genuine, and reachable. Similarly, the IMEI is validated and is used to retrieve the requested device information. > The `discover` product is **required in every request** but additional products such as `assure` or `protect` can be added to the request object - the ordering is not significant (***see examples***).' value: discover: number: '447700900702' hasMVNOInfo: filterMVNO: true hasHomeNetworkInfo: for: - roaming device: IMEI: '351498789456123' for: - serialNo - model - activation - purchaseDate - blacklist - retail NumberRecycleRequest: description: "## Number recycle \nUsed to confirm if a customer's mobile number is presently active and has not been recently deactivated or recycled, to prevent false number declarations." value: discover: number: '447700900704' hasNumberBeenRecycled: inSeconds: 900 AssureRequest: description: "## Assure\nStep up the protection and verify the mobile number a user is providing to assert their identity is registered to them and does not carry any suspicious activity flags. \nAdd confidence with Know Your Customer (**KYC**) matching." value: discover: number: '447700900704' assure: matchingName: firstName: Katharine lastName: Parsons matchingAddress: houseNumber: '10' houseName: Michael Faraday House postcode: SG1 2AY matchingBirthDate: dateOfBirth: '1859-01-01' AssureRequestFrance: description: "## Assure France\nStep up the protection and verify the mobile number a user is providing to assert their identity is registered to them and does not carry any suspicious activity flags. \nAdd confidence with Know Your Customer (**KYC**) matching. \n> Be aware of the differences on the properties supplied for `matchingAddress` and that email validation is available consistently across the French market" value: discover: number: '33609666039' assure: matchingName: firstName: Jean-Yves lastName: Lafesse email: jy.lafess@humour.com matchingAddress: streetAddress: 64 Le Grand Détournement locality: Pontivy postcode: '56300' country: France matchingBirthDate: dateOfBirth: '1957-03-13' AssureDeviceInfoRequest: description: '## Assure Device Information Check that the device ID (i.e. IMEI) you''re expecting is the same one associated with the provided mobile number.' value: discover: number: '447700900601' assure: matchingDeviceInfo: IMEI: '306772992380426' ProtectRequest: description: "## Protect\nBe certain that the information your customer is providing is true and that they aren't currently being impersonated. \nIdentify **SIM** or **Device** swap events and detect **Account Takeover**." value: discover: number: '447700900602' protect: hasSimChanged: inSeconds: 900 hasDeviceChanged: inSeconds: 900 hasCallForwarding: for: unconditional hasAccountTenure: greaterThanDate: '2020-03-21' hasActiveCall: withMinimumDuration: inSeconds: 120 with: - callDirection - callDuration - callingNumberWithheld ProtectDeviceInfoRequest: description: '## Protect Device Information Return details about the device currently connected to the supplied mobile number' value: discover: number: '447700900600' protect: hasDeviceInfo: for: - IMEI - serialNo - model - activation - purchaseDate AgeEligibilityRequest: description: "### Age Eligibility \nUse the Age Eligibility feature to validate if a mobile subscriber is known to be at least 18 years of age and help control access to age-restricted products and services. \n> In using this feature, please note that some datasource restrictions might apply, including: \n > - the number must be associated with an active subscription on a supported mobile network (**MVNOs excluded**),\n > - the number must belong to the subscription holder and bill-payer,\n > - the subscription must be a pay monthly contract (**PAYM**)." value: discover: number: '447700900704' assure: matchingAge: greaterThanYears: 18 hasServiceRestriction: for: - adultContent AllServicesRequest: description: '## All available service Summery of all Network Biometrics™ services' value: discover: number: '447700900604' hasNumberBeenRecycled: inSeconds: 900 hasMVNOInfo: filterMVNO: true device: IMEI: '351490789456123' for: - serialNo - model - activation - blacklist hasHomeNetworkInfo: for: - roaming assure: matchingName: firstName: William lastName: Herschel matchingAddress: houseNumber: '10' houseName: Herschel Museum of Astronomy postcode: BA1 2BL matchingBirthDate: dateOfBirth: '1738-11-15' matchingAge: greaterThanYears: 18 hasServiceRestriction: for: - adultContent matchingDeviceInfo: IMEI: '306772992380426' matchingAccountInfo: for: - isActive - contractType - lostOrStolen protect: hasSimChanged: inSeconds: 900 hasDeviceChanged: inSeconds: 900 hasAccountTenure: greaterThanDate: '2020-03-21' hasContractInfo: for: - startDate hasCallForwarding: for: unconditional hasActiveCall: withMinimumDuration: inSeconds: 120 with: - callDirection - callDuration - callingNumberWithheld hasDeviceInfo: for: - IMEI - serialNo - model - activation wasReportedLostOrStolen: inDate: '2020-03-03' wasBlacklisted: inDate: '2023-01-24' DiscoverResponse: value: discover: number: is: '447700900501' isCorrectFormat: true isValid: true country: name: United Kingdom of Great Britain and Northern Ireland code: GB dialCode: '44' onNetwork: MCC: '001' MNC: '04' networkName: Phronesis (H3G UK) isPorted: false hasNumberBeenRecycled: isRecycled: true changedInTimePeriod: true lastChange: '2022-10-20T11:36:26+00:00' hasMVNOInfo: isMVNO: true brand: iD mobile isDataAvailable: true hasHomeNetworkInfo: isRoaming: true isDataAvailable: true device: IMEI: is: '969455279101647' serialNo: value: DX3ZJ7LRKXK7 isDataAvailable: true model: brand: Apple name: iPhone XR code: iPhone XR (A2105) isDataAvailable: true activation: isActivated: true isDataAvailable: true date: null estimatedPurchase: date: '2020-01-28' isDataAvailable: true blacklist: status: true isDataAvailable: true addEvent: date: '2023-01-24 08:32:08' by: Hutchison 3G UK reason: Stolen Or Lost removeEvent: date: '2023-01-24 15:32:08' by: Hutchison 3G UK reason: Found history: blacklistedCount: 30 removedCount: 29 operators: 2 retail: currency: USD prices: - '1247' - '1366' - '1604' - '1842' storageOptions: - 128 GB - 256 GB - 512 GB - 1 TB releaseDate: '2021-09-01' isDataAvailable: true transaction: status: value: 0 message: transaction successful reference: https://developer.api.v3.phronesis.tech/ id: b196fe72-49f7-4888-abc2-66bc14b5ca3f AllProductSuccessResponse: value: discover: number: is: '447700900501' isCorrectFormat: true isValid: true country: name: United Kingdom of Great Britain and Northern Ireland code: GB dialCode: '44' onNetwork: MCC: '001' MNC: '04' networkName: Phronesis (H3G UK) isPorted: false hasNumberBeenRecycled: isRecycled: false changedInTimePeriod: false lastChange: null hasMVNOInfo: isMVNO: true brand: iD mobile isDataAvailable: true hasHomeNetworkInfo: isRoaming: true isDataAvailable: true device: IMEI: is: '969455279101647' serialNo: value: DX3ZJ7LRKXK7 isDataAvailable: true model: brand: Apple name: iPhone XR code: iPhone XR (A2105) isDataAvailable: true activation: isActivated: true isDataAvailable: true blacklist: status: true isDataAvailable: true addEvent: date: '2023-01-24 08:32:08' by: Hutchison 3G UK reason: Stolen Or Lost removeEvent: date: '2023-01-24 15:32:08' by: Hutchison 3G UK reason: Found history: blacklistedCount: 30 removedCount: 29 operators: 2 retail: currency: USD prices: - '1247' - '1366' - '1604' - '1842' storageOptions: - 128 GB - 256 GB - 512 GB - 1 TB releaseDate: '2021-09-01' isDataAvailable: true assure: matchingName: firstName: isDataAvailable: true isMatched: true matchConfidence: 100 lastName: isDataAvailable: true isMatched: true matchConfidence: 100 fullName: isMatched: true isDataAvailable: true matchConfidence: 100 email: isMatched: true isDataAvailable: true matchConfidence: 100 matchingAddress: fullAddress: isDataAvailable: true isMatched: true matchConfidence: 100 houseNameOrNumber: isDataAvailable: false isMatched: false matchConfidence: 100 postcode: isDataAvailable: true isMatched: true matchConfidence: 100 matchingBirthDate: isDataAvailable: true isMatched: true matchConfidence: 100 matchingAge: isDataAvailable: true isMatched: true hasServiceRestriction: adultContent: isUnlocked: true isDataAvailable: true matchingDeviceInfo: IMEI: isMatched: true checked: '353090101175010' matchingAccountInfo: account: isActive: true isDataAvailable: true contractType: is: PAYM isDataAvailable: true lostOrStolen: isReportedLostOrStolen: false isDataAvailable: true protect: hasSimChanged: changedInTimePeriod: true lastChange: '2022-10-20T11:36:26+00:00' hasDeviceChanged: changedInTimePeriod: false lastChange: '2020-02-19T17:42:14+00:00' hasCallForwarding: unconditional: false hasAccountTenure: longerThanPeriod: false isDataAvailable: true hasContractInfo: startDate: '2021-03-15' isDataAvailable: true hasActiveCall: isDataAvailable: true isOnCallNow: true callDuration: isDataAvailable: true seconds: 1234 started: '2022-01-01T10:57:57' exceedsDuration: true callDirection: isReceived: true isDataAvailable: true callingNumber: isWithheld: true isDataAvailable: true hasDeviceInfo: IMEI: value: '353090101175010' isDataAvailable: true serialNo: value: DX3ZJ7LRKXK7 isDataAvailable: true model: brand: Apple name: iPhone XR code: iPhone XR (A2105) isDataAvailable: true activation: isActivated: true isDataAvailable: true wasReportedLostOrStolen: inPeriod: true isDataAvailable: true isLostOrStolen: true lostOrStolenDate: '2023-02-12T17:42:14+00:00' wasBlacklisted: inPeriod: true blacklistStatus: true isDataAvailable: true blacklistEvent: date: '2023-01-24 08:32:08' by: Hutchison 3G UK reason: Stolen Or Lost removeEvent: date: '2023-01-24 15:32:08' by: Hutchison 3G UK reason: Found history: blacklistedCount: 30 removedCount: 29 operators: 2 transaction: status: value: 0 message: transaction successful reference: https://developer.api.v3.phronesis.tech/ id: b196fe72-49f7-4888-abc2-66bc14b5ca3f AssureSuccessResponseFrance: value: discover: number: is: '33609666039' isCorrectFormat: true isValid: true country: name: France code: FR dialCode: '33' onNetwork: MCC: '208' MNC: '10' networkName: SFR France isPorted: false assure: matchingName: firstName: isDataAvailable: true isMatched: false matchConfidence: 40 lastName: isDataAvailable: true isMatched: false matchConfidence: 0 fullName: isDataAvailable: true isMatched: false matchConfidence: 20 email: isDataAvailable: true isMatched: true matchConfidence: 59 matchingAddress: fullAddress: isDataAvailable: true isMatched: false matchConfidence: 0 streetAddress: isDataAvailable: true isMatched: false matchConfidence: 66 locality: isDataAvailable: true isMatched: false matchConfidence: 0 postcode: isDataAvailable: true isMatched: true matchConfidence: 93 country: isDataAvailable: false isMatched: false matchConfidence: 0 matchingBirthDate: isDataAvailable: true isMatched: false matchConfidence: 74 transaction: status: value: 0 message: transaction successful reference: https://developer.api.v3.phronesis.tech/ id: b196fe72-49f7-4888-abc2-66bc14b5ca3f AssurePartialResponseUK: value: discover: number: is: '447700900501' isCorrectFormat: true isValid: true country: name: United Kingdom of Great Britain and Northern Ireland code: GB dialCode: '44' onNetwork: MCC: '001' MNC: '04' networkName: Phronesis (H3G UK) isPorted: true wasOnNetwork: MCC: '001' MNC: '02' networkName: Phronesis (EE UK) assure: matchingName: status: value: 808 message: service not available for MNO or MVNO matchingAddress: status: value: 808 message: service not available for MNO or MVNO matchingBirthDate: status: value: 808 message: service not available for MNO or MVNO transaction: status: value: 2 message: transaction successful but partial data returned reference: https://developer.api.v3.phronesis.tech/ id: b196fe72-49f7-4888-abc2-66bc14b5ca3f AssureSuccessResponse: value: assure: matchingName: firstName: isDataAvailable: true isMatched: true matchConfidence: 100 lastName: isDataAvailable: true isMatched: true matchConfidence: 100 fullName: isMatched: true isDataAvailable: true matchConfidence: 100 email: isMatched: true isDataAvailable: true matchConfidence: 100 matchingAddress: fullAddress: isDataAvailable: true isMatched: true matchConfidence: 100 houseNameOrNumber: isDataAvailable: false isMatched: false matchConfidence: 100 postcode: isDataAvailable: true isMatched: true matchConfidence: 100 matchingBirthDate: isDataAvailable: true isMatched: true matchConfidence: 100 matchingAge: isDataAvailable: true isMatched: true matchingDeviceInfo: IMEI: isMatched: true checked: '353090101175010' matchingAccountInfo: account: isActive: true isDataAvailable: true contractType: is: PAYM isDataAvailable: true lostOrStolen: isReportedLostOrStolen: false isDataAvailable: true hasServiceRestriction: adultContent: isUnlocked: true isDataAvailable: true TransactionResponseSuccess: value: transaction: status: value: 0 message: transaction successful reference: https://developer.api.v3.phronesis.tech/ id: b196fe72-49f7-4888-abc2-66bc14b5ca3f schemas: DiscoverProductRequest: title: Discover Product Request type: object description: 'The following is the schema of a call to all Discover products for a mobile number and/or device IMEI number. To request more information about a mobile number, include the Discover product''s optional features. These are subject to an additional charge and require specific access.' additionalProperties: false minProperties: 1 properties: discover: oneOf: - additionalProperties: false title: number properties: number: type: string pattern: ^\+?[1-9]\d{1,14}$ minLength: 5 maxLength: 15 example: '447700900704' description: Phone number (MSISDN) to be validated, including country code per [E.164](https://en.wikipedia.org/wiki/E.164) standard hasMVNOInfo: description: Retrieve additional information about a virtual mobile network (MVNO) if available type: object properties: filterMVNO: type: boolean example: true description: Apply MVNO pre-filtering on Assure and Protect features where they are likely to fail required: - filterMVNO hasNumberBeenRecycled: description: Determine if the number has been recycled within the specified time period type: object oneOf: - additionalProperties: false title: inSeconds properties: inSeconds: type: integer example: 120 description: set look-back period in past seconds - additionalProperties: false title: inMinutes properties: inMinutes: type: integer example: 40 description: set look-back period in past minutes - additionalProperties: false title: inHours properties: inHours: type: integer example: 12 description: set look-back period in past hours - additionalProperties: false title: inDays properties: inDays: type: integer example: 30 description: set look-back period in past days - additionalProperties: false title: inDate properties: inDate: type: string format: date example: '2021-03-01' description: set look-back period to a fixed date hasHomeNetworkInfo: description: 'Retrieve additional information about the home network ' type: object properties: for: type: array description: list of home network information to lookup items: type: string example: roaming required: - for device: description: Retrieve additional information about a device using IMEI type: object properties: IMEI: type: string pattern: ^\d{14,15}$ example: '969455279101647' minLength: 14 maxLength: 15 description: 15-digit code that identifies a device calculateCheckDigit: type: boolean x-stoplight: id: irc102lzvjhhi description: calculate check digit for 14-digit IMEI default: false for: type: array minItems: 1 example: - serialNo - model - activation - blacklist - purchaseDate - retail description: list of device information to lookup items: type: string enum: - serialNo - model - activation - blacklist - purchaseDate - retail required: - IMEI - for required: - number - additionalProperties: false title: device properties: device: description: Retrieve additional information about a device using IMEI number lookup type: object required: - IMEI - for properties: IMEI: type: string pattern: ^\d{14,15}$ example: '969455279101647' minLength: 14 maxLength: 15 description: 15-digit code that identifies a device calculateCheckDigit: type: boolean x-stoplight: id: 8og6ptuh25aim default: false description: calculate check digit for 14-digit IMEI for: type: array minItems: 1 example: - serialNo - model - activation - blacklist - purchaseDate - retail description: list of device information to lookup items: type: string enum: - serialNo - model - activation - blacklist - purchaseDate - retail required: - device type: object AssureProductRequest: title: Assure Product Request type: object description: "The following is the schema of a call to all Assure products on a mobile number \nAssure comes with matchingName, matchingAddress, and matchingBirthDate. matchingAge and matchingDeviceInfo are additional features that require specific access \nNone of the features are required, but at least one must be present in the body to make a successful Assure call \nNote: KYC matching in Spain requires a positive match response for matchingIdentityDocument" properties: assure: type: object description: To make a call to Assure you will need at least one of the product features below in the body additionalProperties: false minProperties: 1 properties: matchingName: type: object description: Verify the first and last name of the subscriber properties: firstName: type: string description: First name example: Katharine lastName: type: string description: Last name example: Parsons email: type: string pattern: ^\S+@\S+$ minLength: 3 maxLength: 320 description: Email required: - firstName - lastName matchingIdentityDocument: description: Verify the national identity number for the subscriber - required for KYC matching in Spain type: object minProperties: 1 properties: nationalIdentity: type: object properties: reference: type: string description: National identity document number example: 99999999R required: - reference matchingAddress: description: Verify the address data of the subscriber. Address feature availability is on a per country basis, see [here](https://developer.api.v3.phronesis.tech/docs/network-biometrics/igp7apeu9g4tk-calling-network-biometrics#assure) for details. type: object minProperties: 1 properties: houseNumber: type: string description: House number without street name example: '20' houseName: type: string description: House name example: Michael Faraday House streetAddress: type: string description: Street address including house name/number example: 20 Michael Faraday House postcode: type: string example: SG1 2AY description: Postal code locality: type: string example: Paris description: Town/City province: type: string example: Minnesota description: State/region name country: type: string example: England description: country name in [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) matchingBirthDate: type: object description: Verify the birthdate of the subscriber minProperties: 1 properties: dateOfBirth: type: string example: '1859-01-01' format: date pattern: ^([1|2]{1}[0-9]{3})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])$ description: Date of birth as yyyy-mm-dd required: - dateOfBirth matchingAge: type: object description: Verify the age of the subscriber minProperties: 1 properties: greaterThanYears: type: integer example: 18 minimum: 18 maximum: 18 default: 18 description: Fixed value of 18. required: - greaterThanYears hasServiceRestriction: type: object description: Check subscriber restriction settings e.g. Content Lock properties: for: type: array minItems: 1 example: - adultContent items: type: string enum: - adultContent required: - for matchingDeviceInfo: type: object description: Confirm the connected device is as expected minProperties: 1 properties: IMEI: type: string example: '969455279101647' minLength: 14 maxLength: 15 description: 15-digit code that identifies a device pattern: ^\d{14,15}$ calculateCheckDigit: type: boolean x-stoplight: id: 67cfyeta5o5q9 default: false description: calculate check digit for 14-digit IMEI required: - IMEI matchingAccountInfo: type: object description: Retrieve additional information about the subscriber account properties: for: type: array minItems: 1 example: - isActive - contractType - lostOrStolen items: type: string enum: - isActive - contractType - lostOrStolen required: - for required: - assure ProtectProductRequest: title: Protect Product Request type: object description: None of the features are required, but at least one must be present in the body to make a successful Protect call properties: protect: type: object description: To make a call to Protect you will need at least one of the product features below in the body additionalProperties: false minProperties: 1 properties: hasSimChanged: oneOf: - additionalProperties: false title: inSeconds description: Determine if a customer or third party has swapped SIM cards in the specified time period properties: inSeconds: type: integer example: 120 description: set look-back period in past seconds required: - inSeconds - additionalProperties: false title: inMinutes description: Determine if a customer or third party has swapped SIM cards in the specified time period properties: inMinutes: type: integer example: 40 description: set look-back period in past minutes required: - inMinutes - additionalProperties: false title: inHours description: Determine if a customer or third party has swapped SIM cards in the specified time period properties: inHours: type: integer example: 12 description: set look-back period in past hours required: - inHours - additionalProperties: false title: inDays description: Determine if a customer or third party has swapped SIM cards in the specified time period properties: inDays: type: integer example: 30 description: set look-back period in past days required: - inDays - additionalProperties: false title: inDate description: Determine if a customer or third party has swapped SIM cards in the specified time period properties: inDate: type: string format: date example: '2021-03-01' description: set look-back period to a fixed date required: - inDate type: object hasDeviceChanged: oneOf: - additionalProperties: false title: inSeconds description: Determine if the customer or a third party has changed device within the specified time period properties: inSeconds: type: integer example: 120 description: set look-back period in past seconds required: - inSeconds - additionalProperties: false title: inMinutes description: Determine if the customer or a third party has changed device within the specified time period properties: inMinutes: type: integer example: 40 description: set look-back period in past minutes required: - inMinutes - additionalProperties: false title: inHours description: Determine if the customer or a third party has changed device within the specified time period properties: inHours: type: integer example: 12 description: set look-back period in past hours required: - inHours - additionalProperties: false title: inDays description: Determine if the customer or a third party has changed device within the specified time period properties: inDays: type: integer example: 30 description: set look-back period in past days required: - inDays - additionalProperties: false title: inDate description: Determine if the customer or a third party has changed device within the specified time period properties: inDate: type: string format: date example: '2021-03-01' description: set look-back period to a fixed date required: - inDate type: object wasReportedLostOrStolen: oneOf: - additionalProperties: false title: inSeconds description: Determine if the subscriber account had a device/SIM reported lost or stolen in the specified time period properties: inSeconds: type: integer example: 120 description: set look-back period in past seconds required: - inSeconds - additionalProperties: false title: inMinutes description: Determine if the subscriber account had a device/SIM reported lost or stolen in the specified time period properties: inMinutes: type: integer example: 40 description: set look-back period in past minutes required: - inMinutes - additionalProperties: false title: inHours description: Determine if the subscriber account had a device/SIM reported lost or stolen in the specified time period properties: inHours: type: integer example: 12 description: set look-back period in past hours required: - inHours - additionalProperties: false title: inDays description: Determine if the subscriber account had a device/SIM reported lost or stolen in the specified time period properties: inDays: type: integer example: 30 description: set look-back period in past days required: - inDays - additionalProperties: false title: inDate description: Determine if the subscriber account had a device/SIM reported lost or stolen in the specified time period properties: inDate: type: string format: date example: '2021-03-01' description: set look-back period to a fixed date required: - inDate type: object hasAccountTenure: oneOf: - additionalProperties: false title: greaterThanDays description: Determine if a customer or a third party has held an account on network within the specified time period properties: greaterThanDays: type: integer example: 30 description: Period of time in days required: - greaterThanDays - additionalProperties: false title: greaterThanMonths description: Determine if a customer or a third party has held an account on network within the specified time period properties: greaterThanMonths: type: integer example: 1 description: Period of time in months required: - greaterThanMonths - additionalProperties: false title: greaterThanYears description: Determine if a customer or a third party has held an account on network within the specified time period properties: greaterThanYears: type: integer example: 1 description: Period of time in years required: - greaterThanYears - additionalProperties: false title: greaterThanDate description: Determine if a customer or a third party has held an account on network within the specified time period properties: greaterThanDate: type: string example: '2021-03-10' description: Period of time given with an date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) required: - greaterThanDate type: object hasContractInfo: description: Retrieve additional information about the account contract type: object properties: for: type: array minItems: 1 example: - startDate default: - startDate items: type: string enum: - startDate required: - for hasCallForwarding: type: object description: Verify if call diverts are set properties: for: type: string enum: - unconditional example: unconditional default: unconditional description: Type of call forwarding required: - for hasActiveCall: type: object minProperties: 1 additionalProperties: false description: Determine if the subscriber is in an active call and further detail about that call properties: withMinimumDuration: oneOf: - additionalProperties: false title: inSeconds properties: inSeconds: type: integer example: 120 description: set look-back period in past seconds required: - inSeconds - additionalProperties: false title: inMinutes properties: inMinutes: type: integer example: 40 description: set look-back period in past minutes required: - inMinutes - additionalProperties: false title: inHours properties: inHours: type: integer example: 12 description: set look-back period in past hours required: - inHours - additionalProperties: false title: inDays properties: inDays: type: integer example: 30 description: set look-back period in past days required: - inDays - additionalProperties: false title: inDate properties: inDate: type: string format: date example: '2021-03-01' description: set look-back period to a fixed date type: object with: type: array uniqueItems: true minItems: 1 description: Optional additional datapoints to request items: type: string enum: - callDirection - callDuration - callingNumberWithheld hasDeviceInfo: type: object description: Retrieve additional information about the currently connected device properties: for: type: array minItems: 1 example: - IMEI - serialNo - model - activation - purchaseDate default: - IMEI description: list of device information to lookup e.g. IMEI items: type: string enum: - IMEI - serialNo - model - activation - purchaseDate required: - for wasBlacklisted: oneOf: - additionalProperties: false title: inSeconds description: 'Determine if a device has been blacklisted by GSMA within the specified time period ' properties: inSeconds: type: integer example: 120 description: set look-back period in past seconds required: - inSeconds - additionalProperties: false title: inMinutes description: 'Determine if a device has been blacklisted by GSMA within the specified time period ' properties: inMinutes: type: integer example: 40 description: set look-back period in past minutes required: - inMinutes - additionalProperties: false title: inHours description: 'Determine if a device has been blacklisted by GSMA within the specified time period ' properties: inHours: type: integer example: 12 description: set look-back period in past hours required: - inHours - additionalProperties: false title: inDays description: 'Determine if a device has been blacklisted by GSMA within the specified time period ' properties: inDays: type: integer example: 30 description: set look-back period in past days required: - inDays - additionalProperties: false title: inDate description: 'Determine if a device has been blacklisted by GSMA within the specified time period ' properties: inDate: type: string format: date example: '2021-03-01' description: set look-back period to a fixed date required: - inDate type: object required: - protect NetworkBiometricProductRequest: type: object example: discover: number: '447700900604' hasNumberBeenRecycled: inSeconds: 900 hasMVNOInfo: filterMVNO: true device: IMEI: '351490789456123' for: - serialNo - model - activation - blacklist hasHomeNetworkInfo: for: - roaming assure: matchingName: firstName: William lastName: Herschel matchingAddress: houseNumber: '10' houseName: Herschel Museum of Astronomy postcode: BA1 2BL matchingBirthDate: dateOfBirth: '1738-11-15' matchingAge: greaterThanYears: 18 hasServiceRestriction: for: - adultContent matchingDeviceInfo: IMEI: '306772992380426' matchingAccountInfo: for: - isActive - contractType - lostOrStolen protect: hasSimChanged: inSeconds: 900 hasDeviceChanged: inSeconds: 900 hasAccountTenure: greaterThanDate: '2020-03-21' hasContractInfo: for: - startDate hasCallForwarding: for: unconditional hasActiveCall: withMinimumDuration: inSeconds: 120 with: - callDirection - callDuration - callingNumberWithheld hasDeviceInfo: for: - IMEI - serialNo - model - activation wasReportedLostOrStolen: inDate: '2020-03-03' wasBlacklisted: inDate: '2023-01-24' description: The schema for the Network Biometrics request additionalProperties: false required: - discover properties: discover: $ref: '#/components/schemas/DiscoverProductRequest/properties/discover' assure: $ref: '#/components/schemas/AssureProductRequest/properties/assure' protect: $ref: '#/components/schemas/ProtectProductRequest/properties/protect' DiscoverProductResponse: title: Discover Product Response type: object description: 'Schema of a successful response for Discover features. Note: the discover.device.blacklist syntax has subtle differences from protect.wasBlacklisted, these are distinct products with different use cases."' additionalProperties: false example: discover: number: is: '447700900501' isCorrectFormat: true isValid: true country: name: United Kingdom of Great Britain and Northern Ireland code: GB dialCode: '44' onNetwork: MCC: '001' MNC: '04' networkName: Phronesis (H3G UK) isPorted: false hasNumberBeenRecycled: isRecycled: true changedInTimePeriod: true lastChange: '2022-10-20T11:36:26+00:00' hasMVNOInfo: isMVNO: true brand: iD mobile isDataAvailable: true hasHomeNetworkInfo: isRoaming: true isDataAvailable: true device: IMEI: is: '969455279101647' serialNo: value: DX3ZJ7LRKXK7 isDataAvailable: true model: brand: Apple name: iPhone XR code: iPhone XR (A2105) isDataAvailable: true activation: isActivated: true isDataAvailable: true date: null estimatedPurchase: date: '2020-01-28' isDataAvailable: true blacklist: status: true isDataAvailable: true addEvent: date: '2023-01-24 08:32:08' by: Hutchison 3G UK reason: Stolen Or Lost removeEvent: date: '2023-01-24 15:32:08' by: Hutchison 3G UK reason: Found history: blacklistedCount: 30 removedCount: 29 operators: 2 retail: currency: USD prices: - '1247' - '1366' - '1604' - '1842' storageOptions: - 128 GB - 256 GB - 512 GB - 1 TB releaseDate: '2021-09-01' isDataAvailable: true transaction: status: value: 0 message: transaction successful reference: https://developer.api.v3.phronesis.tech/ id: b196fe72-49f7-4888-abc2-66bc14b5ca3f properties: discover: type: object additionalProperties: false minProperties: 1 properties: number: type: object additionalProperties: false properties: is: type: string example: '447700900501' description: Echoes the input number in [E.164](https://en.wikipedia.org/wiki/E.164) format isCorrectFormat: type: boolean description: Indicates if the subscriber's number is in correct format (true) or not (false) example: true isValid: type: boolean description: Indicates if the subscriber's number is valid (true) or not (false) example: true country: type: object description: Country the subscriber is registered in additionalProperties: false properties: name: type: string description: Name of the country the subscriber is registered in example: United Kingdom of Great Britain and Northern Ireland code: type: string description: '[ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) code for the country the subscriber is registered in' example: GB dialCode: type: string description: Dial code for the country of registration example: '44' required: - name - code - dialCode onNetwork: type: object description: Subscriber network information additionalProperties: false properties: MCC: type: string description: The subscriber's [mobile country code](https://en.wikipedia.org/wiki/Mobile_country_code) example: '234' MNC: type: string description: The subscriber's [mobile network code](https://en.wikipedia.org/wiki/Mobile_country_code) example: '30' networkName: type: string description: The current network operator for the subscriber example: EE UK required: - MCC - MNC - networkName isPorted: type: boolean description: "A true value indicates that a number is no longer served by the original number range owner or \nhas been ported since this allocation where data is available to determine this from the mobile operators" example: true wasOnNetwork: type: object description: Previous network, if ported additionalProperties: false properties: MCC: type: string description: The prior [mobile country code](https://en.wikipedia.org/wiki/Mobile_country_code) of the MSISDN example: '234' MNC: type: string description: The prior [mobile network code](https://en.wikipedia.org/wiki/Mobile_country_code) example: '15' networkName: type: string description: The prior network operator of the MSISDN example: Vodafone UK required: - MCC - MNC - networkName hasNumberBeenRecycled: oneOf: - additionalProperties: false title: Successful hasNumberBeenRecycled response properties: isRecycled: type: boolean description: Indicates if the number been recycled example: true changedInTimePeriod: type: boolean description: Indicates if the state has changed in the requested time period example: false lastChange: type: string description: Date of last change, if known example: '2020-03-28T13:07:12Z' format: date-time nullable: true required: - isRecycled - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object hasMVNOInfo: oneOf: - additionalProperties: false title: Successful hasMVNOInfo response properties: isMVNO: type: boolean description: Indicates if the number is allocated to a virtual mobile network (MVNO) or not example: true nullable: true brand: type: string description: The (virtual) network brand, if available example: iD mobile nullable: true isDataAvailable: type: boolean example: true required: - isMVNO - brand - isDataAvailable - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object hasHomeNetworkInfo: oneOf: - type: object additionalProperties: false properties: isRoaming: type: boolean description: TRUE if the device is known to be in a roaming state isDataAvailable: type: boolean required: - isDataAvailable - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status device: oneOf: - additionalProperties: false title: Successful discover.device response properties: IMEI: type: object required: - is properties: is: type: string example: '969455279101641' description: Echoes the input IMEI serialNo: type: object properties: value: type: string example: 12A34BCD description: A unique code assigned by the manufacturer to help identify an individual device nullable: true isDataAvailable: type: boolean example: true required: - value - isDataAvailable model: type: object properties: code: type: string example: iPhone XR (A2105) description: Technical model name given by the manufacturer nullable: true name: type: string example: iPhone XR description: Consumer model name given by the manufacturer nullable: true brand: type: string example: Apple description: Name of the manufacturer / companies nullable: true isDataAvailable: type: boolean example: true required: - code - name - brand - isDataAvailable activation: type: object properties: isActivated: type: boolean example: true description: Indicates if the phone has been activated nullable: true isDataAvailable: type: boolean example: true date: type: string format: date-time example: '2022-07-11T20:08:04+00:00' description: The date that the device was activated, if known nullable: true required: - isActivated - isDataAvailable - date estimatedPurchase: type: object required: - date - isDataAvailable properties: date: type: string format: date example: '2021-03-15' description: The estimated date of purchase in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Calendar_dates) format nullable: true isDataAvailable: type: boolean example: true blacklist: type: object properties: status: type: boolean example: true description: Indicates if the device is currently blacklisted nullable: true isDataAvailable: type: boolean example: true addEvent: type: object required: - date - by - reason nullable: true properties: date: type: string example: '2023-01-24 08:32:08' description: The most recent date the device was reported blacklisted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format if within specified time nullable: true by: type: string example: Hutchison 3G UK description: The operator or other party who last updated blacklist status nullable: true reason: type: string example: stolen or lost description: The reason given for the blacklist event nullable: true removeEvent: type: object required: - date - by - reason nullable: true properties: date: type: string example: '2023-01-24 08:32:08' description: The most recent date the device was remove from the blacklisted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format if within specified time nullable: true by: type: string example: Hutchison 3G UK description: The operator or other party who last requested the removal from the blacklist nullable: true reason: type: string example: found description: The reason given for the removal from the blacklist nullable: true history: type: object required: - blacklistedCount - removedCount - operators nullable: true properties: blacklistedCount: type: integer example: 10 description: Number of times device has been blacklisted nullable: true removedCount: type: integer example: 2 description: Number of times the device has been removed from the GSMA blacklist nullable: true operators: type: integer example: 2 description: Number of unique operators or other parties who have blacklisted the device nullable: true required: - status - isDataAvailable - addEvent - removeEvent - history retail: type: object properties: currency: type: string example: USD description: Indicates the currency used for the retail price nullable: true prices: type: array example: - '1247' - '1366' - '1604' - '1842' description: Array containing the various retail prices for device model releases storageOptions: type: array example: - 128 GB - 256 GB - 512 GB - 1 TB description: Array containing the device model variants releaseDate: type: string example: '2021-09-01' description: The release date for the device model nullable: true isDataAvailable: type: boolean example: true required: - isDataAvailable required: - IMEI - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object required: - discover AssureProductResponse: title: Assure Product Response type: object example: assure: matchingName: firstName: isDataAvailable: true isMatched: true matchConfidence: 100 lastName: isDataAvailable: true isMatched: true matchConfidence: 100 fullName: isMatched: true isDataAvailable: true matchConfidence: 100 email: isMatched: true isDataAvailable: true matchConfidence: 100 matchingAddress: fullAddress: isDataAvailable: true isMatched: true matchConfidence: 100 houseNameOrNumber: isDataAvailable: false isMatched: false matchConfidence: 100 postcode: isDataAvailable: true isMatched: true matchConfidence: 100 matchingBirthDate: isDataAvailable: true isMatched: true matchConfidence: 100 matchingAge: isDataAvailable: true isMatched: true matchingDeviceInfo: IMEI: isMatched: true checked: '353090101175010' matchingAccountInfo: account: isActive: true isDataAvailable: true contractType: is: PAYM isDataAvailable: true lostOrStolen: isReportedLostOrStolen: false isDataAvailable: true hasServiceRestriction: adultContent: isUnlocked: true isDataAvailable: true description: assure product response data properties: assure: type: object additionalProperties: false minProperties: 1 properties: matchingName: oneOf: - additionalProperties: false title: Successful matchingName response properties: firstName: type: object additionalProperties: false required: - isDataAvailable - isMatched - matchConfidence properties: isDataAvailable: type: boolean example: true isMatched: type: boolean example: true matchConfidence: type: integer example: 100 description: measure of similarity, the higher the value, the more similar the strings are. The score is normalized so that 0 represents no similarities, and 100 is an exact match lastName: type: object additionalProperties: false required: - isDataAvailable - isMatched - matchConfidence properties: isDataAvailable: type: boolean example: true isMatched: type: boolean example: true matchConfidence: type: integer example: 100 description: Integer between 0-100 representing a percentage score of how similar the request data matches with user data email: type: object additionalProperties: false properties: isDataAvailable: type: boolean example: true isMatched: type: boolean example: true matchConfidence: type: integer example: 100 description: "Integer between 0-100 representing a percentage score of how similar the request data matches with user data \n***For date-of-birth matching, only a 100% match will trigger the isMatched flag to become true***" required: - isDataAvailable - isMatched - matchConfidence fullName: type: object additionalProperties: false required: - isDataAvailable - isMatched - matchConfidence properties: isDataAvailable: type: boolean example: true isMatched: type: boolean example: true matchConfidence: type: integer example: 100 description: Integer between 0-100 representing a percentage score of how similar the request data matches with user data required: - firstName - lastName - fullName - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object matchingIdentityDocument: oneOf: - additionalProperties: false title: Successful matchingIdentityDocument response minProperties: 1 properties: nationalIdentity: type: object properties: isDataAvailable: type: boolean example: true isMatched: type: boolean example: true matchConfidence: type: integer example: 100 required: - isDataAvailable - isMatched - matchConfidence - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object matchingAddress: oneOf: - additionalProperties: false title: Successful matchingAddress response required: - fullAddress minProperties: 2 properties: fullAddress: type: object additionalProperties: false description: 'Aggregated from all available address data, e.g. house name/number and postcode in the UK or street, locality and postcode for France and **locality**, **streetAddress**, **postcode** for French lookup' required: - isDataAvailable - isMatched - matchConfidence properties: isDataAvailable: type: boolean example: true isMatched: type: boolean example: true matchConfidence: type: integer example: 100 description: Integer between 0-100 representing a percentage score of how similar the request data matches with user data houseNameOrNumber: type: object additionalProperties: false properties: isDataAvailable: type: boolean example: true isMatched: type: boolean example: true matchConfidence: type: integer example: 100 description: Integer between 0-100 representing a percentage score of how similar the request data matches with user data required: - isDataAvailable - isMatched - matchConfidence locality: type: object additionalProperties: false properties: isDataAvailable: type: boolean example: true isMatched: type: boolean example: true matchConfidence: type: integer example: 100 description: Integer between 0-100 representing a percentage score of how similar the request data matches with user data required: - isDataAvailable - isMatched - matchConfidence streetAddress: type: object additionalProperties: false properties: isDataAvailable: type: boolean example: true isMatched: type: boolean example: true matchConfidence: type: integer example: 100 description: Integer between 0-100 representing a percentage score of how similar the request data matches with user data required: - isDataAvailable - isMatched - matchConfidence province: type: object additionalProperties: false properties: isDataAvailable: type: boolean example: true isMatched: type: boolean example: true matchConfidence: type: integer example: 100 description: Integer between 0-100 representing a percentage score of how similar the request data matches with user data required: - isDataAvailable - isMatched - matchConfidence country: type: object additionalProperties: false properties: isDataAvailable: type: boolean example: true isMatched: type: boolean example: true matchConfidence: type: integer example: 100 description: Integer between 0-100 representing a percentage score of how similar the request data matches with user data required: - isDataAvailable - isMatched - matchConfidence postcode: type: object additionalProperties: false required: - isDataAvailable - isMatched - matchConfidence properties: isDataAvailable: type: boolean example: true isMatched: type: boolean example: true matchConfidence: type: integer example: 100 description: Integer between 0-100 representing a percentage score of how similar the request data matches with user data - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object matchingBirthDate: oneOf: - additionalProperties: false title: Successful matchingBirthDate response properties: isDataAvailable: type: boolean example: true isMatched: type: boolean example: true matchConfidence: type: integer example: 100 description: Integer between 0-100 representing a percentage score of how similar the request data matches with user data required: - isDataAvailable - isMatched - matchConfidence - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object matchingAge: description: '***matchingAge aka age eligibility is a stand-alone feature of Assure and requires specific access to be used***' oneOf: - additionalProperties: false title: Successful matchingAge response properties: isDataAvailable: type: boolean example: true isMatched: type: boolean description: Indicates that the data provider agrees that the subscriber is of adult age example: true required: - isDataAvailable - isMatched - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object matchingDeviceInfo: oneOf: - additionalProperties: false title: Successful matchingDeviceInfo response properties: IMEI: type: object required: - isMatched - checked properties: isMatched: type: boolean example: true description: Whether the provided IMEI of the device is correct checked: type: string x-stoplight: id: y1s88b8c2cblo minLength: 15 maxLength: 15 pattern: ^\d{15}$ description: confirmation of the IMEI that was checked required: - IMEI - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object matchingAccountInfo: oneOf: - additionalProperties: false title: Successful matchingAccountInfo response properties: account: type: object properties: isActive: type: boolean example: true description: Operator recognises subscription as live or active, false meaning account is suspended or deactivated isDataAvailable: type: boolean example: true required: - isActive - isDataAvailable contractType: type: object properties: is: type: string example: PAYM enum: - PAYG - PAYM - Business - Consumer description: The subscriber account type or billing segment nullable: true isDataAvailable: type: boolean example: true required: - is - isDataAvailable lostOrStolen: type: object properties: isReportedLostOrStolen: type: boolean example: false description: Indicates if the subscriber account has been reported compromised with the device and/or SIM either lost or stolen isDataAvailable: type: boolean example: true required: - isReportedLostOrStolen - isDataAvailable - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object hasServiceRestriction: oneOf: - additionalProperties: false title: Successful hasServiceRestriction response properties: adultContent: type: object description: Subscriber content lock status properties: isUnlocked: type: boolean example: true description: Subscriber has opted in to enable adult content on their device isDataAvailable: type: boolean example: true required: - isUnlocked - isDataAvailable - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object ProtectProductResponse: title: Protect Product Response type: object description: 'All the features are stand-alone and require the correct access to be used. Note: the protect.wasBlacklisted syntax has subtle differences from discover.device.blacklist, these are distinct products with different use cases.' additionalProperties: false properties: protect: type: object minProperties: 1 properties: hasSimChanged: oneOf: - additionalProperties: false title: Successful hasSimChanged response properties: changedInTimePeriod: type: boolean example: true description: Has a change taken place in the specified time lastChange: type: string example: '2022-10-19T10:44:35+00:00' format: date-time description: The time of last known sim change in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format if within specified time nullable: true required: - changedInTimePeriod - lastChange - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object hasDeviceChanged: oneOf: - additionalProperties: false title: Successful hasDeviceChanged response properties: changedInTimePeriod: type: boolean example: false description: Has a change taken place in the specified time lastChange: type: string example: null format: date-time description: The time of last known device change in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format if within specified time nullable: true required: - changedInTimePeriod - lastChange - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object wasReportedLostOrStolen: oneOf: - additionalProperties: false title: Successful wasReportedLostOrStolen response properties: inPeriod: type: boolean example: true description: Has been reported for lost or stolen in the specified time nullable: true isDataAvailable: type: boolean example: true isLostOrStolen: type: boolean example: true nullable: true lostOrStolenDate: type: string format: date-time example: '2023-02-12T17:42:14+00:00' description: some description nullable: true required: - inPeriod - isDataAvailable - isLostOrStolen - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object hasAccountTenure: oneOf: - additionalProperties: false title: Successful hasAccountTenure response properties: longerThanPeriod: type: boolean nullable: true example: false description: Has the account been associated with the current subscriber for the specified time or longer isDataAvailable: type: boolean example: true required: - longerThanPeriod - isDataAvailable - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object hasContractInfo: oneOf: - additionalProperties: false title: Successful hasContractInfo response properties: startDate: type: string format: date example: '2021-03-15' description: The date of the account creation in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format nullable: true isDataAvailable: type: boolean example: true required: - startDate - isDataAvailable - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object hasCallForwarding: oneOf: - additionalProperties: false title: Successful hasCallForwarding response minProperties: 1 properties: unconditional: type: boolean example: false description: Indicates if the subscriber has unconditional call forwarding enabled - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object hasActiveCall: oneOf: - properties: isDataAvailable: type: boolean isOnCallNow: type: boolean description: the subscriber is currently on a call nullable: true callDuration: type: object additionalProperties: false description: duration of the active call, if any properties: isDataAvailable: type: boolean seconds: type: integer example: 1234 minimum: 0 description: call duration is seconds nullable: true started: type: string format: date-time example: '2022-01-01T10:57:57' description: approximate time call started, if available exceedsDuration: type: boolean description: the call exceeds the specified duration nullable: true required: - isDataAvailable - seconds callDirection: type: object additionalProperties: false description: direction of the originating call properties: isDataAvailable: type: boolean isReceived: type: boolean description: the call was received nullable: true required: - isDataAvailable - isReceived callingNumber: type: object additionalProperties: false description: 'about the calling number ' properties: isDataAvailable: type: boolean isWithheld: type: boolean description: the calling number was withheld nullable: true required: - isDataAvailable - isWithheld required: - isDataAvailable - isOnCallNow - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object hasDeviceInfo: oneOf: - additionalProperties: false minProperties: 1 title: Successful hasDeviceInfo response properties: IMEI: type: object properties: value: type: string example: '545720379182608' minLength: 15 maxLength: 15 pattern: ^\d{15}$ description: A unique 15-digit code that identifies a device nullable: true isDataAvailable: type: boolean example: true required: - value - isDataAvailable serialNo: type: object properties: value: type: string example: 12A34BCD description: A unique code assigned by the manufacturer to help identify an individual device nullable: true isDataAvailable: type: boolean example: true required: - value - isDataAvailable model: type: object properties: code: type: string example: iPhone XR (A2105) description: Technical model name given by the manufacturer nullable: true name: type: string example: iPhone XR description: Consumer model name given by the manufacturer nullable: true brand: type: string example: Apple description: Name of the manufacturer / companies nullable: true isDataAvailable: type: boolean example: true required: - code - name - brand - isDataAvailable activation: type: object properties: isActivated: type: boolean example: true description: Indicates if the phone has been activated nullable: true isDataAvailable: type: boolean example: true date: type: string format: date-time example: '2022-07-11T20:08:04+00:00' description: The date that the device was activated, if known nullable: true required: - isActivated - isDataAvailable - date estimatedPurchase: type: object required: - date - isDataAvailable properties: date: type: string format: date example: '2021-03-15' description: The estimated date of purchase in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Calendar_dates) format nullable: true isDataAvailable: type: boolean example: true - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object wasBlacklisted: oneOf: - additionalProperties: false title: Successful wasBlacklisted response properties: inPeriod: type: boolean example: true description: Has been blacklisted in the specified time blacklistStatus: type: boolean example: true description: Indicates if the device is currently blacklisted nullable: true isDataAvailable: type: boolean example: true blacklistEvent: type: object required: - date - by - reason nullable: true properties: date: type: string example: '2023-01-24 08:32:08' description: The most recent date the device was reported blacklisted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format if within specified time nullable: true by: type: string example: Hutchison 3G UK description: The operator or other party who last updated blacklist status nullable: true reason: type: string example: stolen or lost description: The reason given for the blacklist event nullable: true removeEvent: type: object required: - date - by - reason nullable: true properties: date: type: string example: '2023-01-24 08:32:08' description: The most recent date the device was remove from the blacklisted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format if within specified time nullable: true by: type: string example: Hutchison 3G UK description: The operator or other party who last requested the removal from the blacklist nullable: true reason: type: string example: found description: The reason given for the removal from the blacklist nullable: true history: type: object required: - blacklistedCount - removedCount - operators nullable: true properties: blacklistedCount: type: integer example: 10 description: Number of times device has been blacklisted nullable: true removedCount: type: integer example: 2 description: Number of times the device has been removed from the GSMA blacklist nullable: true operators: type: integer example: 2 description: Number of unique operators or other parties who have blacklisted the device nullable: true required: - inPeriod - blacklistStatus - isDataAvailable - blacklistEvent - removeEvent - history - additionalProperties: false title: Feature error status properties: status: $ref: '#/components/schemas/TransactionResponse/properties/transaction/properties/status' required: - status type: object required: - protect TransactionResponse: title: Transaction Response example: transaction: status: value: 0 message: transaction successful reference: https://developer.api.v3.phronesis.tech/ id: b196fe72-49f7-4888-abc2-66bc14b5ca3f properties: transaction: type: object required: - status - reference - id properties: status: required: - value - message properties: value: type: integer description: Outcome of the request, 0 on success or an error code example: 808 message: type: string description: A textual representation of the transaction status. example: service not available for MNO or MVNO reference: type: string description: Link to documentation about this API example: https://developer.api.v3.phronesis.tech/ id: type: string description: A unique transaction identifier to track the request and response in UUID V4 format example: dacb3020-495f-41ae-9303-72d43c817e3a description: Provides validation of the request process NetworkBiometricProductResponse: type: object example: discover: number: is: '447700900501' isCorrectFormat: true isValid: true country: name: United Kingdom of Great Britain and Northern Ireland code: GB dialCode: '44' onNetwork: MCC: '001' MNC: '04' networkName: Phronesis (H3G UK) isPorted: false hasNumberBeenRecycled: isRecycled: false changedInTimePeriod: false lastChange: null hasMVNOInfo: isMVNO: true brand: iD mobile isDataAvailable: true hasHomeNetworkInfo: isRoaming: true isDataAvailable: true device: IMEI: is: '969455279101647' serialNo: value: DX3ZJ7LRKXK7 isDataAvailable: true model: brand: Apple name: iPhone XR code: iPhone XR (A2105) isDataAvailable: true activation: isActivated: true isDataAvailable: true blacklist: status: true isDataAvailable: true addEvent: date: '2023-01-24 08:32:08' by: Hutchison 3G UK reason: Stolen Or Lost removeEvent: date: '2023-01-24 15:32:08' by: Hutchison 3G UK reason: Found history: blacklistedCount: 30 removedCount: 29 operators: 2 retail: currency: USD prices: - '1247' - '1366' - '1604' - '1842' storageOptions: - 128 GB - 256 GB - 512 GB - 1 TB releaseDate: '2021-09-01' isDataAvailable: true assure: matchingName: firstName: isDataAvailable: true isMatched: true matchConfidence: 100 lastName: isDataAvailable: true isMatched: true matchConfidence: 100 fullName: isMatched: true isDataAvailable: true matchConfidence: 100 email: isMatched: true isDataAvailable: true matchConfidence: 100 matchingAddress: fullAddress: isDataAvailable: true isMatched: true matchConfidence: 100 houseNameOrNumber: isDataAvailable: false isMatched: false matchConfidence: 100 postcode: isDataAvailable: true isMatched: true matchConfidence: 100 matchingBirthDate: isDataAvailable: true isMatched: true matchConfidence: 100 matchingAge: isDataAvailable: true isMatched: true hasServiceRestriction: adultContent: isUnlocked: true isDataAvailable: true matchingDeviceInfo: IMEI: isMatched: true checked: '353090101175010' matchingAccountInfo: account: isActive: true isDataAvailable: true contractType: is: PAYM isDataAvailable: true lostOrStolen: isReportedLostOrStolen: false isDataAvailable: true protect: hasSimChanged: changedInTimePeriod: true lastChange: '2022-10-20T11:36:26+00:00' hasDeviceChanged: changedInTimePeriod: false lastChange: '2020-02-19T17:42:14+00:00' hasCallForwarding: unconditional: false hasAccountTenure: longerThanPeriod: false isDataAvailable: true hasContractInfo: startDate: '2021-03-15' isDataAvailable: true hasActiveCall: isDataAvailable: true isOnCallNow: true callDuration: isDataAvailable: true seconds: 1234 started: '2022-01-01T10:57:57' exceedsDuration: true callDirection: isReceived: true isDataAvailable: true callingNumber: isWithheld: true isDataAvailable: true hasDeviceInfo: IMEI: value: '353090101175010' isDataAvailable: true serialNo: value: DX3ZJ7LRKXK7 isDataAvailable: true model: brand: Apple name: iPhone XR code: iPhone XR (A2105) isDataAvailable: true activation: isActivated: true isDataAvailable: true wasReportedLostOrStolen: inPeriod: true isDataAvailable: true isLostOrStolen: true lostOrStolenDate: '2023-02-12T17:42:14+00:00' wasBlacklisted: inPeriod: true blacklistStatus: true isDataAvailable: true blacklistEvent: date: '2023-01-24 08:32:08' by: Hutchison 3G UK reason: Stolen Or Lost removeEvent: date: '2023-01-24 15:32:08' by: Hutchison 3G UK reason: Found history: blacklistedCount: 30 removedCount: 29 operators: 2 transaction: status: value: 0 message: transaction successful reference: https://developer.api.v3.phronesis.tech/ id: b196fe72-49f7-4888-abc2-66bc14b5ca3f description: Schema for a successful Network Biometrics request additionalProperties: false required: - discover - transaction properties: discover: $ref: '#/components/schemas/DiscoverProductResponse/properties/discover' assure: $ref: '#/components/schemas/AssureProductResponse/properties/assure' protect: $ref: '#/components/schemas/ProtectProductResponse/properties/protect' transaction: $ref: '#/components/schemas/TransactionResponse/properties/transaction' AssuredRegistrationRequest: title: Assured Registration Request description: Assured Registration request type: object required: - API_token - API_secret - number - user_info properties: API_token: type: string description: Your API key example: CLIENT API_secret: type: string description: Your API secret example: u07ta73b0a001e9038 correlation_id: type: string description: A correlation identifier provided by the customer and used to uniquely track the transactions end to end. The value provided will be echoed back in the responses. example: '1677155591' number: type: string description: A valid number in E.164 format pattern: ^\+?[1-9]\d{1,14}$ minLength: 5 maxLength: 15 example: '447700900704' user_info: type: object additionalProperties: false minProperties: 1 properties: first_name: type: string description: the subscriber's first name example: Katharine surname: type: string description: the subscriber's surname example: Parsons house_number: type: string description: the subscriber's house number example: '20' house_name: type: string description: the subscriber's house name (if house number is not available) example: Michael Faraday House postcode: type: string description: the subscriber's postcode example: SG1 2AY AssuredAgeRequest: title: Assured Age Request description: Assured Age request type: object required: - API_token - API_secret - number - user_info properties: API_token: type: string description: Your API key example: CLIENT API_secret: type: string description: Your API secret example: u07ta73b0a001e9038 correlation_id: type: string description: A correlation identifier provided by the customer and used to uniquely track the transactions end to end. The value provided will be echoed back in the responses. example: '1677155591' number: type: string description: A valid number in E.164 format pattern: ^\+?[1-9]\d{1,14}$ minLength: 5 maxLength: 15 example: '447700900704' user_info: type: object additionalProperties: false minProperties: 1 properties: first_name: type: string description: the subscriber's first name example: Katharine surname: type: string description: the subscriber's surname example: Parsons date_of_birth: type: string description: date of birth as dd-mm-yyyy example: 01-01-1859 pattern: ^(3[01]|0[1-9]|[12][0-9])-(1[0-2]|0[1-9])-([1|2]{1}[0-9]{3})$ house_number: type: string description: the subscriber's house number example: '20' house_name: type: string description: the subscriber's house name (if house number is not available) example: Michael Faraday House postcode: type: string description: the subscriber's postcode example: SG1 2AY NumberAssuranceResponse: title: Number Assurance Response type: object description: V2 Number Assurance response additionalProperties: false required: - status - status_message - transaction_id - HTTP_status properties: status: type: integer description: outcome of the request, 0 on success or an error code example: 0 user_info_match: type: object description: user_info_match object will only be returned if transaction is successful (status = 0) additionalProperties: true properties: first_name_match: type: boolean description: whether the first name of the subscriber is correct (true) or not (false) example: true first_name_data_available: type: boolean description: whether the first name of the subscriber is available to match (true) or not (false) example: true last_name_match: type: boolean description: whether the last name of the subscriber is correct (true) or not (false) example: false last_name_data_available: type: boolean description: whether the last name of the subscriber is available to match (true) or not (false) example: true name_match: type: boolean description: whether the name of the subscriber is correct (true) or not (false) example: false name_data_available: type: boolean description: whether the name of the subscriber is available to match (true) or not (false) example: true house_number_or_house_name_match: type: boolean nullable: true description: whether the house number or name of the subscriber is correct (true) or not (false) example: false house_number_or_house_name_data_available: type: boolean description: whether the house number or name of the subscriber is available to match (true) or not (false) example: true postcode_match: type: boolean description: whether the postcode of the subscriber is correct (true) or not (false) example: true postcode_data_available: type: boolean description: whether the postcode of the subscriber is available to match (true) or not (false) example: true address_match: type: boolean description: whether the address of the subscriber is correct (true) or not (false) example: false address_data_available: type: boolean description: whether the address of the subscriber is available to match (true) or not (false) example: true birthdate_match: type: boolean description: whether the date of birth of the subscriber is correct (true) or not (false) example: false birthdate_data_available: type: boolean description: whether the date of birth of the subscriber is available to match (true) or not (false) example: false contract_type: type: string description: the contract type of the subscriber example: PAYM enum: - PAYG - PAYM - Business is_lost_or_stolen: type: boolean description: indicates if the subscriber number is lost or stolen (true) or not (false) example: false is_active: type: boolean description: indicates if the subscriber is on the network (true) or not (false) example: true status_message: type: string description: a textual representation of the transaction status example: transaction successful transaction_id: type: string description: A unique transaction identifier to track the request and response in UUID V4 format example: 24163639-0b81-4101-9bfe-e5e5fe7d5064 correlation_id: type: string description: echo of the user-generated string if provided in the request to correlate request with response example: '1677155591' HTTP_status: type: integer description: HTTP response status code to indicate whether the request has been successfully completed example: 200 tags: - name: API Overview description: "\n\n\nThe API provides three distinct areas of functionality:\n### Number Discovery™\n\n The `discover` product is designed to provide instant checks as a user enters their information or before you attempt to send a message or place a call.\n Check if a `number` is correctly formatted, genuine, active, reachable and if it was recently assigned to a new user (Number Recycle).\n\n The `discover.device` product feature takes an IMEI as an input and provides a range of information related to the device such as device serial number and model, activation status, blacklist status, estimated purchase date, and retail information.\n\n > `discover.device` and `protect.hasDeviceInfo` are not to be used in the same API request. If the IMEI is known use `discover.device`, if the IMEI is not known use `protect.hasDeviceInfo`.\n\n### Number Assurance™\n\n The `assure` product verifies that the `number` and personal details provided to you can be linked together, and match those held by our data partners and there are no suspicious activity flags.\n Perform data matches for Know Your Customer (KYC), proof of age, email addresses and prevent identity fraud.\n\n### Number Protect™\n\n The `protect` product is used to identify suspicious behaviour in real time.\n Use live mobile network data to highlight potential fraud, identity theft, account takeovers, false claims and defend against sophisticated crime, including Authorised Push Payment (APP) fraud and One-Time Password (OTP) interception.\n\n The `protect.hasDeviceInfo` product feature provides infomation about a device, where the IMEI number is not known and is discoverable via the mobile `number`.\n\n > `discover.device` and `protect.hasDeviceInfo` are not to be used in the same API request. If the IMEI is known use `discover.device`, if the IMEI is not known use `protect.hasDeviceInfo`.\n\n---\n## Requesting API access\n\n A combination of API token and secret is required to send a request to the API. Access to some API features requires the pre-approval of a suitable use case with our data partners. To apply for API access and use case permission, please visit our [contact page](https://phronesis.net/contact/).\n\n---\n## API endpoints\n\n Depending on your account plan you will be granted access to one or more of the following API platforms:\n\n\n\n| Account plan | API endpoint | Response |\n| -- | -- | -- |\n| early access | https://ea.api.phronesis.tech | full responses using latest early access code base |\n| production | https://api.phronesis.tech | full responses using latest stable code base |\n\n\n\n *The API will only accept and respond to secure communications using HTTPS*\n\n---\n## API Security and Authentication\n\n All requests to the **Network Biometrics** API require these headers:\n\n\n\n| Header | Description |\n| -- | -- |\n| API-Token | The API Token |\n| API-Secret | The API Secret |\n\n\n\n The values required for authentication will have been provided to you during the onboarding process after requesting API access.\n *Authentication errors will result in a `401 Unauthorised` response code with a transaction status object in the JSON body giving further feedback on the error.*\n\n > For the deprecated v2 services in the **Number Assurance** family, the `API_token` and `API_secret` are required in the body of the request rather than the header.\n\n---\n## Header Parameters\n\n The API only accepts requests with the `Content-Type` header set to `application/json`. All responses are made using the same format. An invalid JSON body or unsupported content type will result in a `400: Bad request` response.\n The API consumer may optionally provide a unique string (with a 64-character limit) to aid in matching requests, this must be supplied as the `Correlation-Id` request header and is echoed back in the response headers as `Correlation-Id`.\n\n > For the deprecated v2 services in the **Number Assurance** family, the optional `correlation_id` should be in the body of the request rather than the header." - name: Calling Network Biometrics™ description: "\n\n\n## Discover \n With our **Number Discovery™** feature set, verify that a customer's mobile phone `number` is correctly formatted, genuine, active, reachable and if it was recently assigned to a new and different subscriber (Number Recycle).\n\n > **Please note** the `discover` product is **required in EVERY request** but additional products such as `assure` or `protect` can be added to the request object - the ordering is not significant. ***Please refer to the examples provided***. \n\n - ### Number Recycle \n Check if a customer's mobile `number` remains active on a network operator, or if it was recently deactivated or recycled (`hasNumberBeenRecycled`), to prevent false number declarations and providing information or access to an authorised user.\n\n - ### MVNO Pre-filtering\n Check if a customer's mobile `number` is allocated to a virtual mobile network (MVNO) or not using `hasMVNOInfo`, and additionally allow pre-filtering on features where they are likely to fail for MVNO customers, e.g. Assure Age Eligibility.\n\n## Assure\n With our **Number Assurance™** feature set, step up the protection and add confidence with Know Your Customer (**KYC**) data matching to verify the `number` provided by a customer, as part of their identity, is registered to them and does not carry any suspicious activity flags. \n\n - ### Address Info\n Use the `matchingAddress` feature to check that the address information supplied matches that of the subscriber associated with the mobile `number`. \n The address features vary from country to country, below is a table highlighting the availability:\n\n| Address feature | UK | France | Italy | Spain | Germany | Netherlands | US |\n| -- | -- | -- | -- | -- | -- | -- | -- |\n| houseNumber | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| houseName | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| streetAddress | ⬜️ | ✅* | ✅ | ✅ | ✅ | ✅ | ✅ |\n| postcode | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| locality | ⬜ | ✅ | ✅ | ⬜ | ⬜ | ⬜ | ✅ |\n| province | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ |\n| country | ⬜ | ✅ | ✅ | ⬜ | ⬜ | ✅ | ✅ |\n\n ***streetAddress match in France takes an input of house name/number followed by street name (e.g. 26 Rue du Labrador)**\n\n - ### Age Eligibility\n Use the `matchingAge` feature to check if the mobile subscriber associated with the `number` is at least 18 years of age (i.e. 18+) and help control access to age-restricted products and services in accordance with legislation.\n > **Please note** that some datasource restrictions might apply to `matchingAge` including:\n > - the number must be associated with an active subscription on a supported mobile network (**MVNOs excluded**),\n > - the number must belong to the subscription holder and bill-payer,\n > - the subscription must be a pay monthly contract (**PAYM**).\n\n - ### Device Info\n Use the `matchingDeviceInfo` feature to check that the identity of the mobile device (i.e. IMEI) you are expecting in transaction is the same and associated with the provided `number`.\n\n - ### Account Info\n Use the `matchingAccountInfo` feature to obtain details on the subscriber account linked to `number`. This feature allows you to request specific information to check:\n * the contract type of the account,\n * if the subscriber account is active, and/or\n * if the device, or more specifically the SIM card, connected to the account has been reported lost or stolen.\n\n > Additional account information may only be available on some networks when you are making a call to `assure.matchingName` and you generate a match, and may incur an additional charge on some networks\n\n## Protect\n With our **Number Protect™** feature set, identify suspicious behaviour in real time and be certain your customer is not the victim of identity theft, account takeover or sophisticated crime, including Authorised Push Payment (APP) fraud and One-Time Password (OTP) interception. Defend against fraudulent claims.\n\n > Identify **SIM card** `hasSimChanged` and **device** `hasDeviceChanged` swap events and detect suspicious call activity and patterns.\n\n - ### Tenure\n Use the `hasAccountTenure` feature to determine if the account linked to the provided MSISDN has been held for a minimum amount of time.\n To provide flexibility, this can be checked using a measure of days, months, or years, or by providing a fixed date.\n The service will return true if the account has been held at least as long as the period given.\n\n > In some cases, the maximum period you can check is 90 days. Your account manager will confirm where this applies." - name: Calling Number Assurance description: "\n\n\n> **Number Assurance** is a deprecated product family and is available only to existing customers. All features and MNO coverage are included and extended within the **Network Biometrics™** product family.\nPlease [contact us](https://phronesis.net/contact/) if you would like to migrate to the more feature rich **Network Biometrics™** product family. \n## Assured Registration and Assured Age\nWith our **Assured Registration** and **Assured Age** feature sets, step up the protection and add confidence with Know Your Customer (**KYC**) data matching to verify the `number` provided by a customer is registered to them, as part of their identity. **Assured Age** adds basic age verification by confirming date of birth. > **Please note** that some datasource restrictions might apply, including: > - the number *must* be associated with an active subscription on a supported mobile network (**MVNOs excluded**) > - the number *must* belong to the subscription holder and bill-payer > - the subscription *must* be a pay monthly contract (**PAYM**)" - name: Response Overview description: "\n\n\nCall **Network Biometrics™** services as specified in the request body.\n## Response Headers\n The API call will respond with appropriate HTTP status codes set in the header and additional detail within the JSON body.\n\n## Feature Responses\n\n There are 3 types of responses that can be returned from each feature requested:\n\n 1. a successful call to the feature (i.e., data is held about the number in question and has been returned within the matching response object).\n 2. a successful call to the feature, however the requested data is unavailable, which is indicated by the `isDataAvailable` flag set to `false` (where applicable).\n 3. a failed call, which could be for a number of reasons - in this case the feature response will contain a status object indicating the error.\n\n## Assure isDataAvailable & isMatched Responses\n\n All successful `assure` features will return `isDataAvailable` & `isMatched`\n\n - `isDataAvailable` indicates if the subscriber data is available.\n - `isMatched` indicates if the data provided in the request matches the data held about the subscriber.\n\n> The `isMatched` flag is directly linked with `matchConfidence` as further explained below.\nSimilarly, the deprecated v2 services in the **Number Assurance** family, will respond with `*_match` and `*_data_available` for the requested data points, e.g. `first_name_match` and `first_name_data_available`\n## Assure matchConfidence Responses\n\n As part of the `assure` features `matchingName`, `matchingAddress`, and `matchingBirthDate` we will return\n a `matchConfidence` property as an integer between 0-100 (representing a percentage score of how much the requested data\n matches with data held about the subscriber).\n\n > **Match thresholds** : for **email** and **date of birth** matching, a **100%** match is required to trigger\n > the `isMatched` flag as `true`. All other fields are considered to be `isMatched` `true` at or above **90%**.\n\n > **Please note** that for some user data we may only be able to respond with a `matchConfidence` of **100**\n > for `isMatched` `true` or **0** for `isMatched` `false`, and no intermediate scores will be provided.\n >\n > *For more information see the `200: OK` example for UK and France `assure` responses.*\n\n## Event Date Responses\n\n Some features of our product allow you to specify a time period to verify if the relevant event happened during that\n time (i.e. `hasNumberBeenRecycled`, `hasSimChanged`, `hasDeviceChanged`, `wasReportedLostOrStolen`, `hasAccountTenure`,\n `wasBlacklisted`)\n\n Those features all at a minimum return a flag indicating if the event happened within the requested period, e.g.\n `changedInTimePeriod`, and the date of the last registered event, e.g. `lastChange`, however that field will only return\n a date/time value if the event took place during the same time period\n\n > Scenario: we want to check that a SIM change event happened during the last 15 minutes (900 seconds)\n\n {\n \"discover\": {\n \"number\": \"447700900501\"\n },\n \"protect\": {\n \"hasSimChanged\": {\n \"inSeconds\": 900\n }\n }\n } \n\n > If the event has occurred during the last 15 minutes the Network Biometrics™ API will return:\n\n {\n \"discover\": {\n \"number\": {\n \"is\": \"447700900501\",\n \"isCorrectFormat\": true,\n \"isValid\": true,\n \"country\": {\n \"name\": \"United Kingdom of Great Britain and Northern Ireland\",\n \"code\": \"GB\",\n \"dialCode\": \"44\"\n },\n \"onNetwork\": {\n \"MCC\": \"001\",\n \"MNC\": \"04\",\n \"networkName\": \"Phronesis (H3G UK)\"\n },\n \"isPorted\": false\n }\n },\n \"protect\": {\n \"hasSimChanged\": {\n \"changedInTimePeriod\": true,\n \"lastChange\": \"2023-05-26T12:19:11+00:00\"\n }\n },\n \"transaction\": {\n \"status\": {\n \"value\": 0,\n \"message\": \"transaction successful\"\n },\n \"reference\": \"https://developer.api.v3.phronesis.tech/\",\n \"id\": \"dad42be1-fdcd-49ee-bd4c-c153befbff35\"\n }\n }\n\n> However, if the event did not occur during the specified time the field `lastChange` will be null:\n\n {\n \"discover\": {\n \"number\": {\n \"is\": \"447700900501\",\n \"isCorrectFormat\": true,\n \"isValid\": true,\n \"country\": {\n \"name\": \"United Kingdom of Great Britain and Northern Ireland\",\n \"code\": \"GB\",\n \"dialCode\": \"44\"\n },\n \"onNetwork\": {\n \"MCC\": \"001\",\n \"MNC\": \"04\",\n \"networkName\": \"Phronesis (H3G UK)\"\n },\n \"isPorted\": false\n }\n },\n \"protect\": {\n \"hasSimChanged\": {\n \"changedInTimePeriod\": false,\n \"lastChange\": null\n }\n },\n \"transaction\": {\n \"status\": {\n \"value\": 0,\n \"message\": \"transaction successful\"\n },\n \"reference\": \"https://developer.api.v3.phronesis.tech/\",\n \"id\": \"bd843246-1eed-4519-9869-a7fdc72a260e\"\n }\n }" - name: Test Personas description: ' The following numbers with associated personas are provided for testing purposes and will generate scenarios as described without making costly calls to the mobile network operators (MNO). Each number can be tested on any of our platforms to which you have been granted access during your onboarding. --- EE UK | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 447539272271 | James | Trenholme | n/a | Livingstone Lodge | BA2 5EF | 14-10-1974 | 969455279101641 | James'' number to test EE UK | --- O2 UK | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 447392844732 | Alex | Ferreira | n/a | Livingstone Lodge | BS3 2NQ | 14-10-1974 | n/a | Alex''s number to test O2 UK | | 447700900007 | Alfred | Middlemass | 117 | n/a | MP23 5RF | 22-08-1978 | n/a | O2 UK - test number | | 447100000847 | Bernadine | Worthington-Smith | n/a | Worlds End | HY20 7DM | 19-01-1989 | n/a | O2 UK - number recycle | | 447700900006 | Augustus | Willmington | 297 | n/a | JY34 1DT | 24-10-1970 | n/a | O2 UK - test number | | 447700600287 | John | Smith | 321 | n/a | FB05 7BR | 08-04-1999 | n/a | O2 UK - always responds with subscriber not found | | 447700900107 | John | Smith | 321 | n/a | FB05 7BR | 08-04-1999 | n/a | O2 UK - always responds with MSISDN not found | | 447700900005 | Madeline | Hamiltone | 30 | n/a | CD29 8PH | 25-12-1985 | n/a | O2 UK - always responds with MSISDN not found | --- H3G UK | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 447412697906 | Matthew | Hornsey | n/a | Broadwood | JE2 7NH | 02-07-1980 | 291702647925014 | Matt''s number to test H3G UK | | 440000000001 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | | 447898180149 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | | 447898180160 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | | 447898180146 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | | 447898180342 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | | 447898180144 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | | 447898180158 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | | 447898180155 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | | 447898180159 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | | 447898180157 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | | 447898180463 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | | 447898180488 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | | 447898180464 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | | 447898180461 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | | 447898180490 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | | 447472828364 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | | 447472814683 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | | 447472814682 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | H3G - test number | --- Phronesis (H3G UK) | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 447700900500 | Bob | Lemon | 225 | drizzle cake | EH2 4RT | 01-01-1700 | 868368053484111 | simulates lost or stolen (yesterday) with 16 digit IMEI & device information for OnePlus | | 447700900501 | Chicken | chorizo | 180 | jambalaya | ML7 4HR | 01-01-1849 | 868620064561687 | simulates sim change in the last 10min with 14 digit IMEI & device information for Xiaomi | | 447700900502 | Brownie | Chocolate | 20 | recipe | WA13 0TP | 01-01-1893 | 356133080448029 | simulates device change during the last 10min with valid IMEI & device information for HTC | | 447700900503 | Brownie | Chocolate | 20 | recipe | WA13 0TP | 01-01-1893 | n/a | simulates call forwarding with invalid IMEI | | 447700900504 | Banana | Bread | 30 | Peanuts | TN38 0JU | 01-01-1870 | n/a | simulates number recycle during the last 10min with empty IMEI | | 447700900505 | Fennel | Balsamic | 40 | recipe | M32 8LJ | 01-01-1880 | 351981064726629 | simulates H3G UK error: ''Rate limit exceeded'' | | 447700900506 | James | Karrman | 49 | Karoline | BS3 2LQ | 15-09-1972 | n/a | H3G MVNO Smarty for testing identity filtering | | 447700900507 | Subscriber | Unavailable | n/a | n/a | n/a | n/a | n/a | simulates H3G error: ''User unknown'' | | 447700900508 | James | Karrman | 49 | Karoline | BS3 2LQ | 15-09-1972 | 356528090553652 | H3G persona & device information for DoCoMo | | 447700900509 | Fruit | Scone | n/a | Restormel | PL22 0EE | 01-01-2000 | 351475465491024 | H3G persona with Motorola device info & roaming | | 447700900510 | Brownie | Chocolate | 20 | recipe | WA13 0TP | 01-01-1893 | 867358040780060 | H3G persona with Optus device info | --- Phronesis (WindTre IT) | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 396490000100 | Sandro | Botticelli | 5 | n/a | 00197 | 01-05-1470 | n/a | WindTre Italy, KYC test persona | | 396490000101 | Michelangelo | di Lodovico Buonarroti Simoni | 6 | n/a | 50122 | 06-03-1475 | n/a | WindTre Italy, KYC test persona | | 396490000102 | Gian Lorenzo | Bernini | 4 | n/a | 50122 | 07-12-1598 | n/a | WindTre Italy, KYC test persona | --- Phronesis (Vodafone UK) | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 447700900600 | Uberto | Rapizzi | n/a | Theatre Royal | BA1 1ET | 27-03-1908 | n/a | simulates lost or stolen | | 447700900601 | Robert | Adam | n/a | Pulteney Bridge | BA2 4AT | 03-07-1728 | n/a | simulates sim change during the last 10min | | 447700900602 | Jane | Austen | n/a | Sydney Place | BA2 6NF | 16-12-1775 | n/a | simulates device change during the last 10min | | 447700900603 | Ralph | Allen | n/a | Prior Park | BA2 5AH | 01-01-1693 | n/a | simulates call forwarding | | 447700900604 | William | Herschel | n/a | Herschel Museum of Astronomy | BA1 2BL | 15-11-1738 | n/a | simulates number recycle during the last 10min | | 447700900605 | Roger | Bannister | n/a | Beechen Cliff | BA2 4RE | 23-03-1929 | n/a | simulates Vodafone UK error: ''Resources not available'' | | 447700900606 | Subscriber | Unavailable | n/a | n/a | n/a | n/a | n/a | simulates Vodafone error: ''MSISDN is not available'' | | 447700900607 | Isaac | Newton | n/a | Woolsthorpe Manor House | NG33 5NR | 04-01-1643 | n/a | simulates Vodafone UK MVNO - Talk Mobile | | 447700900608 | unknown | MCC/MNC combination | n/a | n/a | n/a | n/a | n/a | simulates number with known prefix but unknown MCC/MNC combination | | 447700900609 | Henry | Cole | 1 | n/a | BA1 2LR | 15-07-1808 | n/a | Vodafone UK persona with roaming | --- Phronesis (Vodafone NL) | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 31699109010 | Johannes | Vermeer | 41 | n/a | 2517 HV | 31-10-1632 | n/a | Vodafone Netherlands, KYC test persona | | 31699109011 | Rembrandtt | Danaë | 6 | n/a | 1071 DJ | 15-07-1606 | n/a | Vodafone Netherlands, KYC test persona | | 31699109012 | Vincent | van Gogh | 18 | n/a | 3015 CX | 30-03-1853 | n/a | Vodafone Netherlands, KYC test persona | --- Phronesis (Vodafone DE) | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 4931700900200 | Paule | Klee | 27 | n/a | 80333 | 18-12-1879 | n/a | Vodafone Germany, KYC test persona | | 4931700900201 | George | Baselitz | 40 | n/a | 80333 | 23-01-1938 | n/a | Vodafone Germany, KYC test persona | | 4931700900202 | Gerhard | Richter | 33 | n/a | 80333 | 09-02-1932 | n/a | Vodafone Germany, KYC test persona | --- Phronesis (EE UK) | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 447700900700 | Dina | St Johnston | n/a | Senate House | WC1E 7HU | 20-09-1930 | 353090101175010 | simulates lost or stolen & device information for Apple | | 447700900701 | Ada | Lovelace | 12 | n/a | SW1Y 4LB | 10-12-1815 | 355657110807193 | simulates SIM change during the last 10min with 14 digit IMEI & device information for LG | | 447700900702 | Mary | Coombs | n/a | Queen Mary University | E1 4NS | 04-02-1929 | 355502292399173 | simulates device change during the last 10min with valid IMEI & device information for Samsung | | 447700900703 | Henrietta | Vansittart | n/a | Bourne Hall | KT17 1UF | 01-01-1833 | n/a | simulates call forwarding with invalid IMEI | | 447700900704 | Katharine | Parsons | n/a | Michael Faraday House | SG1 2AY | 01-01-1859 | 351182299619628 | simulates number recycle during the last 10min & device information for Huawei | | 447700900705 | Amy | Johnson | n/a | University of Sheffield | S10 2TN | 01-07-1903 | 860998045818162 | simulates EE UK error: ''general error, resource error'' on number recycle | | 447700900706 | Subscriber | Unavailable | n/a | n/a | n/a | n/a | n/a | simulates EE error: ''No record found'' | | 447700900707 | Virgine | Mobile | n/a | n/a | n/a | n/a | 987651870084644 | simulates EE MVNO for identity filtering | | 447700900708 | Dina | St Johnston | n/a | Senate House | WC1E 7HU | 20-09-1930 | 356785114975663 | simulates lost or stolen & device information for Apple with GSM blacklist status | | 447700900709 | Margaret | Allan | 4 | Bletchley Park | MK3 6EB | 26-07-1909 | n/a | EE UK persona with roaming | | 447700900710 | Hedy | Lamarr | 85 | n/a | EX22 6UC | 09-11-1914 | 067737453896935 | EE UK persona with Blacklist Error trigger | --- Phronesis (O2 UK) | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 447700900900 | Henry | The First | n/a | Normandy | BB18 6JH | 03-08-1068 | n/a | simulates lost or stolen | | 447700900901 | Edward | The Elder | n/a | Wessex | TA11 9AS | 01-04-1871 | n/a | simulates SIM change event during the last 10min | | 447700900903 | James V | Scotland | n/a | Stewart | EH49 7EY | 10-04-1512 | n/a | simulates call forwarding | | 447700900904 | George | The second | n/a | Hanover | SW1A 1BA | 30-10-1683 | n/a | simulates number recycle during the last 10min | | 447700900905 | George | The Fifth | n/a | Windsor | EH49 7EY | 03-06-1865 | n/a | simulates O2 UK error: ''resource removed or disabled'' | | 447700900906 | Subscriber | Unavailable | n/a | n/a | n/a | n/a | n/a | simulates TEF error: ''Subscriber info not found'' | | 447700900909 | Harold | Godwinson | 1 | n/a | SW1P 3PA | 26-07-1909 | n/a | O2 UK persona with roaming | --- Phronesis (invalid or unknown) | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 447700900999 | Invalid | Number | n/a | n/a | n/a | n/a | n/a | n/a | --- Phronesis (Telefonica DE) | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 4931700900100 | Albrecht | Dürer | 63 | n/a | 60596 | 21-05-1471 | n/a | Telefonica Germany, KYC test persona | | 4931700900101 | Max | Ernst | n/a | n/a | 50667 | 02-04-1891 | n/a | Telefonica Germany, KYC test persona | | 4931700900102 | Otto | Dix | 1 | n/a | 01067 | 02-12-1891 | n/a | Telefonica Germany, KYC test persona | --- Phronesis (SFR) | Number | First Name | Last Name | Street Address | Postcode | Locality | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 33639980100 | Jean-Ive | Lafesse | 64 Le Grand Détournement | 56300 | Pontivy | 13-03-1957 | n/a | not implemented ! (simulates sim change during the last 10min) | | 33639980101 | Francois | chevaux | Champ de Mars, 5 Av. Anatole France | 75007 | Paris | 31-03-1889 | n/a | not implemented ! (simulates device change during the last 10min) | | 33639980102 | Aimée | Frank | Rue de Rivoli | 75001 | Paris | 12-03-1950 | n/a | not implemented ! (simulates number recycle during the last 10min) | | 33639980103 | Antoinette | Beau | 6 Parvis Notre-Dame - Pl. Jean-Paul II | 75004 | Paris | 09-09-1945 | n/a | not implemented ! (simulates number ported) | | 33639980104 | Bernadette | Bread | 1 Rue de la Légion d''Honneur | 75007 | Paris | 04-10-1952 | n/a | no specific effects | | 33639980105 | Chloé | leclair | 6 Parvis Notre-Dame - Pl. Jean-Paul II | 75004 | Paris | 04-06-1972 | n/a | simulates SFR error: ''cannot deliver the scope for this MVNO '' | | 33639980106 | Subscriber | Unavailable | n/a | n/a | n/a | n/a | n/a | simulates SFR error: ''invalid_user'' | | 33639980107 | DEBITEL | SFR MVNO | n/a | n/a | n/a | n/a | n/a | simulates SFR MVNO for identity filtering | --- Phronesis (Bouygues) | Number | First Name | Last Name | Street Address | Postcode | Locality | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 33639980200 | Danielle | Peter | 3 Av. de l''Aérodrome de Montaudran | 31400 | Toulouse | 02-02-1987 | n/a | not implemented ! (simulates sim change during the last 10min) | | 33639980201 | Jack | Fromage | 18 bis Gd Rue Saint-Michel | 31400 | Toulouse | 09-09-1937 | n/a | not implemented ! (simulates device change during the last 10min) | | 33639980202 | Jean-Hubert | Tourette | 2 Pl. Saint-Sernin | 31000 | Toulouse | 07-07-1977 | n/a | not implemented ! (simulates number recycle during the last 10min) | | 33639980203 | Jean-François | lelouttre | 118 Rte de Narbonne | 31062 | Toulouse | 20-07-1997 | n/a | not implemented ! (simulates number ported) | | 33639980204 | Edouard | Montmiraille | 18 bis Gd Rue Saint-Michel | 31400 | Toulouse | 10-03-1927 | n/a | no specific effects | | 33639980205 | Estel | Florence | 1 All. Gabriel Biénès | 31000 | Toulouse | 10-10-1947 | n/a | simulate Bouygues error: ''UNKNOWN_PUBLIC_KEY'' | | 33639980206 | Subscriber | Unavailable | n/a | n/a | n/a | n/a | n/a | simulates Bouygues error: ''MSISDN_NOT_FOUND'' | | 33639980207 | Văn | Phạm Phương Nguyễn | 42 Avenue des Champs-Élysées | 69002 | Lyon | 04-04-1984 | n/a | persona to test encoding behaviour, ensuring encoded character is counted as 1 | | 33639980208 | Invalid | Token | n/a | n/a | n/a | n/a | n/a | simulates Bouygues error: ''invalid_token'' | --- Phronesis (Orange) | Number | First Name | Last Name | Street Address | Postcode | Locality | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 33639980300 | Charle | René | 3 Bd Jard. Zoologique | 13004 | Marseille | 05-05-1985 | n/a | not implemented ! (simulates sim change during the last 10min) | | 33639980301 | Léo | Bet | 59 Av. de Saint Menet | 13011 | Marseille | 08-08-1988 | n/a | not implemented ! (simulates device change during the last 10min) | | 33639980302 | Raphaël | Jambon | 132 Av. Clot Bey | 13008 | Marseille | 06-06-1966 | n/a | not implemented ! (simulates number recycle during the last 10min) | | 33639980303 | Arthur | Patouf | 30 Pl. de la Major | 13002 | Marseille | 01-02-1963 | n/a | not implemented ! (simulates number ported) | | 33639980304 | Adam | Eve | 1 Rue de Lodi | 13006 | Marseille | 18-06-1945 | n/a | no specific effects | | 33639980305 | Dominique | Joux | 91 Av. Jean Compadieue | 13012 | Marseille | 02-02-1987 | n/a | simulate Orange error: ''The MSISDN does not match the user tied to the access token'' | | 33639980306 | Subscriber | Unavailable | n/a | n/a | n/a | n/a | n/a | simulates Orange error: ''sub authenticate false'' | | 33639980307 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | simulates no source data available | --- Phronesis (Free Mobile) | Number | First Name | Last Name | Street Address | Postcode | Locality | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 33639980400 | Georges | Le Curieux | 87 Rue de la Baie Fleurie | 24120 | Dordogne | 04-09-1989 | n/a | simulates sim change during the last 10min | | 33639980401 | Annette | Barbapapa | 87 allée de canne à sucre | 21290 | Essarois | 21-02-1990 | n/a | no specific effects | | 33639980402 | Babar | des éléphants | 78 rue de Brunhoff | 04200 | sisteron | 26-02-1999 | n/a | no specific effects | | 33639980403 | Azalée | Margote | 5 Le Manège enchanté | 75001 | Paris | 02-02-2005 | n/a | no specific effects | | 33639980404 | Esteban | Soleil | 39 avenue de l''or | 06620 | Cipiéres | 29-06-1982 | n/a | no specific effects | | 33639980405 | Subscriber | Unavailable | n/a | n/a | n/a | n/a | n/a | simulates Free Mobile error: ''LINE_NOT_FOUND_WITH_EXPECTED_STATE'' | | 33639980406 | Subscriber | Unavailable | n/a | n/a | n/a | n/a | n/a | simulates Free Mobile error: ''UNKNOWN_PHONE_NUMBER'' | --- Phronesis (KPN) | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 31699108000 | Johan | de Witt | 33 | n/a | 2513AH | 24-09-1625 | n/a | KPN NL - Phronesis test person for KYC | | 31699108001 | Abraham | Kuyper | 1105 | Main Building | 1081HV | 29-10-1837 | n/a | KPN NL - Phronesis test person for KYC | --- Phronesis (Odido) | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 31699107000 | Anne | Frank | 20 | n/a | 1016GV | 12-06-1929 | n/a | T-Mobile NL - TMT test person for KYC | | 31699107001 | Eddie | Van Halen | 42 | n/a | 3151XP | 21-03-1975 | n/a | T-Mobile NL - TMT test person for KYC | --- Virgin Mobile Telecoms Limited | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 447700900238 | n/a | n/a | n/a | n/a | n/a | 01-01-1970 | n/a | EE MVNO Virgin Mobile Telecoms Limited for testing identity filtering | --- | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 447700900002 | Amelia | Bronklehurst | 3 | n/a | KG24 7PG | 30-09-1972 | n/a | O2 UK - test number | --- Vodafone UK | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 447772000001 | Will | Smith | 12 | Trinitee House | S11 8JN | 09-07-1891 | n/a | Vodafone UK - test number | | 447772000002 | Will | Smith | 12 | Trinitee House | S11 8JN | 09-07-2000 | n/a | Vodafone UK - test number | | 447772000003 | Will | Smith | 12 | Trinitee House | S11 8JN | 09-07-1891 | n/a | Vodafone UK - test number | | 447772000004 | Will | Smith | 12 | Trinitee House | S11 8JN | 09-07-2010 | n/a | Vodafone UK - test number | | 447772000005 | Will | Smith | 12 | Trinitee House | S11 8JN | 09-07-1891 | n/a | Vodafone UK - test number | | 447772000006 | Will | Smith | 12 | Trinitee House | S11 8JN | 09-07-2010 | n/a | Vodafone UK - test number | | 447772000007 | Will | Smith | 12 | Trinitee House | S11 8JN | 09-07-1891 | n/a | Vodafone UK - test number | | 447772000008 | Will | Smith | 12 | Trinitee House | S11 8JN | 09-07-2010 | n/a | Vodafone UK - test number | | 447772000009 | Will | Smith | 12 | Trinitee House | S11 8JN | 09-07-1891 | n/a | Vodafone UK - test number | | 447771000005 | Will | Smith | 12 | Trinitee House | S11 8JN | 09-07-1891 | n/a | Vodafone UK - sandbox number | | 447470543097 | Fuzz | Owens | 295a | n/a | TW9 3LU | 28-12-1949 | n/a | Vodafone UK - production number | | 447555394680 | Peter | Parker | 22 | Browenhaven House | KT6 4SS | 28-12-1949 | n/a | Vodafone UK - production number | | 447393668296 | Casey | Cortez | 1023 | n/a | CB62AG | 01-06-1960 | n/a | Vodafone UK - production number | --- Vodafone Enabler Espana SL | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 34600080001 | Lui Francisco | Garcia | n/a | n/a | 28410 | 12-12-1984 | n/a | Vodafone KYC Spain sandbox persona | | 34600080004 | Maria Jose | Luna | n/a | n/a | 28410 | 12-12-1984 | n/a | Vodafone KYC Spain sandbox persona | --- Vodafone | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 34600080002 | Bebé Valentina | Ana | n/a | n/a | 08028 | 10-05-1991 | n/a | Vodafone KYC Spain sandbox persona | --- Vodafone D2 | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 491722100001 | Gäöüldstein | Weber | 3 | n/a | 40236 | 02-09-1988 | n/a | Vodafone KYC Germany sandbox persona | | 491722100003 | Steve | Becker | 26 | n/a | 40210 | 17-01-1965 | n/a | Vodafone KYC Germany sandbox persona | | 491722100006 | Adélaïde | Sterling | n/a | n/a | 40210 | 01-01-2000 | n/a | Vodafone KYC Germany sandbox persona | --- Vodafone Libertel | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 31777100001 | Hendricus Johannes | van der Vorst-Boomgaard | 237 | n/a | 1012 SB | 23-11-1953 | n/a | Vodafone KYC Netherlands sandbox persona | | 31777100002 | Jacques | van ‘t Schip | 45 | n/a | 3912 XB | 25-11-2002 | n/a | Vodafone KYC Netherlands sandbox persona | | 31777100003 | Marianne Corola | Müller | 1024 | n/a | 3912 XB | 23-11-1999 | n/a | Vodafone KYC Netherlands sandbox persona | --- Orange France | Number | First Name | Last Name | Street Address | Postcode | Locality | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 33600000000 | Christine | Dumontel | 11 rue des Lilas | 75018 | Paris | 25-11-1978 | n/a | Orange France - sandbox number | | 33772665825 | Marina | Quatremaifictif | 93 RUE FELIX PYAT ORANGE DSI CEPC BATIMENT D ÉTG 05 | 13003 | Marseille | 15-10-1972 | n/a | Orange France - provided by Orange France support team (production) | | 33673188201 | Yann | Serquin | 2 rue de la voie verte | 92140 | Clamart | 15-03-1969 | n/a | Orange France - provided by Orange France support team (production) | | 33786896808 | Gaëlle | Serquin | 2 rue de la voie verte | 92140 | Clamart | 14-05-1970 | n/a | Orange France - provided by Orange France support team (production) | | 33787187773 | Carole | Benoist | Boite au lettre 13 5 avenue du Général Leclerc | 75014 | Paris | 22-05-1968 | n/a | Orange France - provided by Orange France support team (production) | | 33648123649 | Joan | Buesnel | Rue d''Embaques | 32000 | Auch | n/a | n/a | Orange France - Nana Hornsey personal information | --- Bouygues France | Number | First Name | Last Name | Street Address | Postcode | Locality | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 33762106526 | Mustapha | Poulain | 1 Chemin des fontaines | 76350 | Oissel | 11-07-1979 | n/a | Bouygues France - will get 100 score on all field (production & sandbox) | | 33612345678 | Mustapha | Poulain | 1 Chemin des fontaines | 76350 | Oissel | 11-07-1979 | n/a | Bouygues France - will get bad score on all field (production & sandbox) | --- Free Mobile | Number | First Name | Last Name | Street Address | Postcode | Locality | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 33799999999 | Jean | Dupont | 12 rue de la perle | 75000 | Paris | 01-01-1980 | n/a | Free Mobile preprod test persona | --- T-Mobile US-SVR-10X/2 | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 16469817679 | William | Moon | 1899 | n/a | 56075 | 25-11-1957 | n/a | T-Mobile USA - TMT test person for KYC | | 12403505473 | Maggie | Coleman | 1019 | n/a | 7102 | 13-04-1993 | n/a | T-Mobile USA - TMT test person for KYC | | 12403505474 | Invalid | Request | n/a | n/a | n/a | n/a | n/a | simulates TMT error: ''Invalid request'' | --- Cingular Wireless-NSR/2 | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 16469798053 | Vera | Mathes | 779 | n/a | 94539 | 29-05-1986 | n/a | T-Mobile USA - TMT test person for KYC | --- Vodafone (former Omnitel Pronto Italia) | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 393490086224 | Zelida | Basile | 20 | n/a | 50144 | 22-10-2007 | n/a | Vodafone Italy - TMT test person for KYC | | 393803275568 | Luigi | Battaglia | 1 | n/a | 56121 | 03-03-1983 | n/a | Vodafone Italy - TMT test person for KYC | --- Noverca - full mvno TIM | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 393760743161 | Cleopatra | Rossetti | 10 | n/a | 43123 | 29-02-1992 | n/a | Noverca Italy - TMT test person for KYC | --- KPN B.V. | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 31104100000 | Ashley | Scholten | 6 | n/a | 1071DJ | 13-05-1980 | n/a | KPN NL - TMT test person for KYC | --- T-Mobile Netherlands B.V. | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 31104100001 | Mirthe | Velden | 428 | n/a | 3084LL | 21-03-1975 | n/a | T-Mobile NL - TMT test person for KYC | --- Telefónica Móviles España, SAU | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 34629255833 | Federica | Sánchez-Arjona Garza | 500 | n/a | 28003 | 22-08-1978 | n/a | Tef Match v5 sandbox persona | | 34649300097 | Daniel Adrian | Fermonsel Muñoz | 324 | n/a | 46004 | 19-01-1989 | n/a | Tef Match v5 sandbox persona | | 34649300099 | María del Carmen | Bonachera | s/n | n/a | 08037 | 24-10-1970 | n/a | Tef Match v5 sandbox persona | | 34649300098 | Aurelio | Urriaga Vital | 150 | n/a | 28004 | 30-09-1972 | n/a | Tef Match v5 sandbox persona - This MSISDN will always respond with 404 1 MSISDN not found | --- Telefonica Germany GmbH & Co. oHG | Number | First Name | Last Name | House Number | House Name | Postcode | Date of Birth | IMEI | Description | | -- | -- | -- | -- | -- | -- | -- | -- | -- | | 491767234567 | Dagmar | Mustermann | 28 | n/a | 80335 | 22-04-1950 | n/a | Tef Match v5 sandbox persona | | 491767987221 | Ilse | Schmidt | 53 | n/a | 44139 | 05-09-1980 | n/a | Tef Match v5 sandbox persona | | 491767878439 | Orland | Müller | 15 | n/a | 22599 | 09-01-1990 | n/a | Tef Match v5 sandbox persona | | 491767675498 | Maria | Schulz | 99 | n/a | 90451 | 14-04-1999 | n/a | Tef Match v5 sandbox persona | | 491767199237 | Amwolf | Braun-Feldweg | 73 | n/a | 68259 | 24-10-1987 | n/a | Tef Match v5 sandbox persona | | 491767554388 | Rollan | Bauer | 16 | n/a | 40629 | 03-05-1985 | n/a | Tef Match v5 sandbox persona - This MSISDN will always respond with 404 1 MSISDN not found |' - name: v2 (deprecated) security: - token: [] secret: []