openapi: 3.0.0 info: title: TMT Verify API specs termsOfService: https://viteza.tmtid.com/download-terms-and-conditions contact: name: TMT Support email: support@tmtid.com url: https://www.tmtid.com x-logo: url: https://www.tmtid.com/developer/verify_logo_png.png altText: TMT Verify version: '' paths: /v3/: post: tags: - Standard API Call summary: POST method operationId: POST description: '' parameters: - name: X-API-Key in: header description: The API key (obtained from https://viteza.tmtid.com or from Support during customer on-boarding). required: true schema: type: string - name: X-API-Secret in: header description: The API secret (obtained from https://viteza.tmtid.com or from Support during customer on-boarding). required: true schema: type: string - name: Content-Type in: header description: application/json required: true schema: type: string requestBody: content: application/json: schema: type: object properties: number: description: The Phone Number with the country code. type: string example: 40721987086 dpoints: description: Enumeration of the requested data points, comma separated. type: string example: originnetwork,network,type,porteddate,subscriberstatus,roaminginfo required: true responses: '200': description: Successful response format headers: {} content: application/json: examples: response: value: '40721987086': current_network: lrn: null mcc: 226 mnc: 10 name: Orange Romania spid: 4018740 is_roaming: false number: 40721987086 origin_network: mcc: 226 mnc: 1 name: Vodafone Romania spid: 4018720 ported: true ported_date: '2016-12-30 15:15:19' ported_date_type: exact present: 'yes' status: 0 status_message: Success type: mobile etype: 10 query: datapoints: network,originnetwork,porteddate,roaminginfo,subscriberstatus,type tags: - description: ' TMT ID is a leading provider of data, intelligence and analytics, helping customers find extra value from the information they hold. Our team of technology and telecommunications specialists has a proven track record empowering companies, brands and agencies around the world to better understand their businesses and their customers. TMT ID has a suite of technology and telecommunications data available, for further information, please visit [www.tmtid.com](https://www.tmtid.com) or email info@tmtid.com.' name: About TMT - description: "\nThe TMT Verify API is a fully flexible system, that allows customers to request only the parameters that they wish to see returned, on a query-by-query basis. The table below summarizes, for each type of request, the data points that will be returned against a given query\nData Points:\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
DatapointDescriptionResponse values
\"type\"The type associated with the queried number\"Fixed\" or \"Mobile\"
\"etype\"The service provides the etype (enhanced type) as well. etype information is provided in the “” block.Number from 1 to 33 indicating type.
\"network\"Indicates the current mobile operator that provides services for the queried number. Verify responds with the “current_network” block of information.MCC, MNC, name, SPID, LRN and OCN of the operator.
\"originnetwork\"The original mobile operator who issued the number. Verify responds with the “original_network” block of information.MCC, MNC, name, SPID and OCN of the operator.
\"porteddate\"The most recent date when the number was ported. Verify responds within the “” block. \"ported_date\" and \"ported_date_type\" fields.
\"porting_history\"A list of porting events since TMT ID began logging these events for the country to which the queried number belongs. Verify responds with a “porting_history” block for each porting event. The block contains “ts”, “action”, “tmtnetwork”, “i_type”.
\"subscriberstatus\"Returns the presence of a number in the current network. Verify provides the “present” field in the “” block.\"present\" is either \"yes\", \"no\", or \"n/a\".
\"roaminginfo\"Indicates if a phone number is currently roaming internationally or not. Verify always returns the field “is_roaming” in the “” block. If the number is roaming, Verify also returns the “roaming_mcc” and \"roaming_mnc\" fields\"is_roaming\" is either \"true\" or \"false\", mcc and mnc also returned if number is roaming internationally.
\"deactivation_last\"USA only. Indicates the last time a number deactivation event occurred. The service returns the “deactivation_last” block of fields.\"deactivation_last\" includes “operator”, “action”, and “ts”.
\"deactivation_history\"USA only. Provides to up to the 10 most recent deactivation events. The service will return a set of fields for each deactivation event. All sets will be provided in the “deactivation_history” block of fields.Each deactivation event returns the following fields (“operator”, “action”, “ts”, “number”, “number2”).
\"simswap\"The most recent SIM card change event connected to the number. Verify returns the “simswap” block of fields.“last_day”, “risk_indicator”, “simswap_min_threshold”, “simswap_max_threshold” and “date” fields.
\"portfraud\"Information in relation to any recent porting activity, in the “” block of fields.“present” and “portfraud” fields.
\"tmt_score\"Overall number credibility score using the TMT ID score algorithm and several data sources. Verify returns the field “tmt_score” in the “” block of fields.Integer score from \"0\" (low credibility) to \"100\" (high credibility).
\"online_presence\"Whether the provided number exists on a range of online platforms. Verify will return the \"online_presence\" block of fields.Within the \"online_presence\" block each supported platform is listed with \"true\", \"false\" or \"N/A\" as appropriate.
\"age_verification\"Indicates if the owner of a given phone number is over or under a certain age threshold. Verify will return the “verified” and “threshold” fields in the “age_verification” block of fields.\"verified\" either \"0\", \"1\", \"-1\", or \"-2\", \"threshold\" presented as an integer only when \"verified\" = \"1\".
\"kycmatch\"Offers the possibility to match the personal information provided for the holder of a given phone number against the data held by the mobile operators and other authoritative sources. Verify provides results in the “kyc_results” block of fields.“kyc_results” contains the fields “first_name_score”, “last_name_score”, “name_score”, “address_score”, “postcode_score”, “dob_score”. Each provided field contains a match score from \"0\" (no match) to \"100\" (full match).
\"normalize\" (part of \"kycmatch\")The service will normalize the address supplied against an external source or offers the option to input the address as a single continuous stringNormalised address with option to see how normalisation has modified input data.
\"call_forwarding\"The call forwarding datapoint confirms if any type of call forwarding is active for the inquired phone number.\"0\", \"1\", \"-1\", \"-2\"
\"market_segment\"The market segment datapoint offers the MNO billing segment for the inquired phone number.\"PAYG\", \"PAYM\", \"Business\", \"n/a\", \"not configured\"
\n\nNotes:\n\n - Where the subscriber number has been ported more than once, only the most recent (i.e.current) Mobile Network will be returned as part of the Ported Network Information. In all cases the Original Network Information will remain unchanged by multiple porting events.\n\n - The Enhanced Type (etype) value that is returned as part of a type query is based upon the type of number allocated (typically by the regulator) to the block of numbers in which the queried number resides. There are 33 different potential values that could be against a given number, although it should be noted that not all of the number types are used in every country. The available supported types are:\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
etypeValueetypeValueetypeValue
1Audio Text12Mobile to Mobile23Shared Cost
2Calling Cards13National Geographic24Short Codes Commercial
3Electronic Services14National Rate25Specialized Mobile Radio
4Freephone15Non inter-model CC (Portability =Y)26Telegram
5Geographic16Paging27Universal Access
6Intermodal Numbers (FIX<->MOB porting17Payphone28Videotex
7Internet Service Provider18Personal29Virtual Private Network
8Local Rate19Prefix Type Unknown (Portability =N)30Voicemail (geographic)
9Machine to Machine20Premium Rate31Voicemail (mobile)
10Mobile21Routing Code32VoIP Telephony
11Mobile (CDMA)22Satellite33Wireless geographic
\n\n - When responding to requests for Roaminginfo, the is_roaming field is always supplied. If the queried number is currently roaming, the additional fields of Roaming Country Name, Roaming Country Code, Roaming Operator MCC etc. will be provided if they are available from the live network query.\n\n - The porteddate uses data from TMT ID’s own records and is not present in Live network queries. In some markets, historic data is available to TMT ID dating back to the beginning of Number Portability in that country, in other markets this data is maintained from TMT ID’s own records going back to when that market was first on-boarded. Therefore, the combination of Port Date and Port Date Type field are provided to denote the following:\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Port Date TypePort DateNotes
ExactDD/MM/YYYYPort date shown is correct as most recent port Before DD/MM/YYYY The number has been ported in the past, but it has not been done since TMT ID onboarded that market. In this case date shown is the date on which TMT ID started to gather data.
NullNullNumber has never been ported
\n\n > This combination of the Port Date Type and Port Date can be used by the Customer to identify any recent porting activity, regardless of whether date is ‘Exact’ or ‘Before’\n\n - The porting_history field providers a full list of all documented porting events that are contained in TMT ID’s own Number Portability database. For this reason, porting_history is only available for on-net countries and the list of events will only be provided from the date on which that country was first on-boarded by TMT ID (contact your account manager for a comprehensive list of on-boarding dates). A single porting_history query for a given number will return, in reverse chronological order, all known events against that number. For each event the following information is provided:\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FieldDescription
actionEither ‘A’ for Add meaning a port of the number to a different Mobile Network Operator or ‘D’ for Delete meaning that the number has returned to the original range holder of that number and is no longer considered as ported.
tmtnetworkThe network identification of the destination Mobile Network Operator of the porting event. As with other datapoints the Mobile Network Operator is identified by MCC/MNC.
i_typeNumber type: ‘m’ – mobile, ‘f’ – fixed, ‘o’ - other
TSTimestamp of when the porting event was recorded in the TMT ID database (YYYY-MM-DDTHH:MM:SS)
\n\n > Note 1: The Timestamp is the time that the change was recorded in the TMT ID database, not the precise time on which the porting event will have occurred. Most countries provide daily movement updates so the actual porting event will have occurred within a few days of it being recorded in the database.\n\n > Note 2: Because the porting_history contains records since the country was on-boarded by TMT ID, numbers that ported before this will not return any records to a porting_history query. Therefore, it would be possible to have a given number with a porteddate of the type ‘BEFORE’ indicating a historical porting event but have a null porting_history. \n\n - The Port Fraud Risk is only provided where a Live network query is possible, and is expressed in terms of the elapsed time since the last recorded porting event. The below table summarizes the responses:\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Risk IndexDescription
Very HighNumber ported within last 24 hours
HighNumber ported within last 25-96 hours
MediumNumber ported within last 30 days
LowNumber ported outside 30 days, or not at all
-1No Live query data available for that country, network or number
-2 if several datapoints, including the Simswap were requested, indicates that the specified phone number belongs to an MNO that is either not configured or unauthorized for Simswap.
\n\n - SIM Swap is only provided where data from the appropriate Mobile Network Operator is available, and is expressed in terms of the elapsed time since the last recorded change of the SIM card (IMSI number) associated with the queried number. Because the data from the Mobile Network Operators can be provided in multiple formats, the simswap response can contain up to 4 elements. SIM Swap Risk is generated from the information supplied by the Mobile Network Operator based upon an algorithm as described in the table below:\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Risk IndexDescription
Very HighSIM/Device changed within last 24 hours
HighSIM/Device changed within last 25-96 hours
MediumSIM/Device changed within last 30 days
LowSIM/Device changed outside 30 days, or not at all
-1No data available for that country, network or number
-2 if several datapoints, including the Simswap were requested, indicates that the specified phone number belongs to an MNO that is either not configured or unauthorized for Simswap.
\n\n Some Mobile Network Operators provide the exact timestamp associated with the last SIM card change, where this is available it is provided in the SIM Swap response as SIM Swap Date.\n\n In other cases, where a Mobile Network Operator provides a time for the most recent SIM Swap that is within certain bounds (such as more than 24 hours and less than 72 hours), these min and max thresholds will be provided as SIM Swap MIN and SIM Swap MAX.\n\n - The Device Swap Risk is only provided where data from the appropriate Mobile Network Operator is available, and is expressed in terms of the elapsed time since the last recorded change of the Device associated with the queried number. The below table summarizes the responses:\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Risk IndexDescription
Very HighDevice changed within last 24 hours
HighDevice changed within last 25-96 hours
MediumDevice changed within last 30 days
LowDevice changed outside 30 days, or not at all
-1No data available for that country, network or number
-2 if several datapoints, including the Simswap were requested, indicates that the specified phone number belongs to an MNO that is either not configured or unauthorized for Simswap.
\n\n - Deactivation History is only provided for USA numbers. For the supplied number TMT Verify will scan the deactivation list for up to 10 of the most recent events in the database against the supplied number. Each event will contain the name of the Mobile Network Operator who recorded the event, together with the following 2-digit code to show the type of movement:\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
CodeMeaning
DENumber deactivated by operator (no longer belongs to subscriber)
SWNumber swapped (transferred) to a different subscriber. Available for T-mobile and Verizon subscribers only.
SUNumber suspended. Verizon subscribers only.
RENumber reactivated. Verizon subscribers only.
\n\n If the number supplied does not appear in the US Deactivation list then an N/A response will be returned. This does not mean that the number has never been subject to a deactivation, suspension or transfer, but it does mean that it has not happened since the beginning of TMT ID data for US Deactivation (June 2019).\n\n - The Status is not a customer selectable field and is provided in the response to every query. Two parameters are provided, the Status and the Status Message. The below table summarises the possible status conditions:\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Query ResultStatusStatus Message
Success0Success
Number not valid according to numbering plan for that country1Invalid Number
Country queried is not available to be queried by this service2Not Allowed Destination
The query has not been completed due to congestion (typically with upstream providers)3Congestion
The query has only been partially completed due to the unavailability of one or more data sources4Partial Reply
\n\n - The KYC Match request (name/address/dob match) is a POST request that requires at least one additional parameter sent in the payload/message body. The POST format provides an additional level of security allowing Customer queries to provide multiple parameters (that are necessary for KYC Match) as part of the query.\n\n The KYC Match API has four logical matching blocks – each block having its own challenges (data) that will be used to generate a score. The provided score ranges between 0 and 100, where 0 is equal to no match, and the higher the score, the closer the match. To assist in providing data that is useful a match score is supplied against each supplied parameter (where possible) within the block. This provides additional useful data in the event that name and address information is not correctly specified or contains minor spelling discrepancies etc. \n\n As part of the POST format used for KYC Match, the below table summarises the elements of each block, the requirements from the Customer and how the matching score is devised. Customers may request multiple blocks as part of a single query but must supply the challenge information for each block requested.\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
ChallengeTypeNotes
Block 1: Name
first_nameStringValue that will be matched against the first name on file, generating the matching score in the response.
last_nameStringValue that will be matched against the last name on file, generating the matching score in the response.
middle_nameStringIf middle name matching is available, the middle name matching score will be returned in the response. If middle name matching is not available, the submitted middle name will be matched with the submitted first_name and an overall first name match score will be returned.
Block 2: DOB
dayNumeric ValueDay of birth. This parameter will be used with month and year to generate an overall matching score for DOB.
monthNumeric ValueMonth of birth. This parameter will be used with day and year to generate an overall matching score for DOB.
yearNumeric ValueYear of birth. This parameter will be used with month and day to generate an overall matching score for DOB.
Block 3: Address
The challenge parameters associated with this block will be used to generate individual - parameter level matching scores where data is available. Otherwise, an overall address matching score will be provided.
street_noStringValue that will be matched against the street number on file, generating a street number matching score where available, otherwise having a weight in the overall address matching score.
streetStringValue that will be matched against the street name on file, generating a street name matching score where available, otherwise having a weight in the overall address matching score.
unit_nameStringhouse name
Value that will be matched against the house name on file, generating a unit number matching score where available, otherwise having a weight in the overall address matching score.
unit_noStringunit number
Value that will be matched against the unit number (building number) on file, generating a unit number matching score where available, otherwise having a weight in the overall address matching score
cityStringValue that will be matched against the city on file, generating a city name matching score where available, otherwise having a weight in the overall address matching score.
provinceStringprovince/county/region
Value that will be matched against the province on file, generating a province name matching score where available, otherwise having a weight in the overall address matching score.
postcodeStringValue that will be matched against the postal code on file, generating a postal code matching score where available, otherwise having a weight in the overall address matching score.
countryStringValue that will be matched against the country on file, generating a country name matching score where available, otherwise having a weight in the overall address matching score.
Block 4: Email Address
emailStringValue that will be matched against the email on file, generating the matching score in the response.
\n\n\n

KYC Match Response Parameters

\n\nThe below table summarises how the response format is provided for each KYC Match block. Numeric value between 0 and 100 are provided representing the match score, with code -1 provided if the parameter for the match was not provided either as part of the Customer POST or from the data provided to TMT ID from the appropriate data provider.\n\n\n \n \n \n\n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n\n \n \n \n\n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n\n \n \n \n
NameTypeNotes
Block 1: Name
first_name_scoreNumeric Value
last_name_scoreNumeric Value
middle_name_scoreNumeric ValueIf middle name was provided in the request but middle name matching was not available, the request parameter middle name was used to generate the first_name_score.
name_scoreNumeric ValueIf individual matching scores for first_name, last_name, middle_name are not available, an overall matching score will be provided.
Block 2: DOB
dob_scoreNumeric Value
Block 3: Address
street_no_scoreNumeric Value
street_scoreNumeric Value
unit_no_scoreNumeric Value
city_scoreNumeric Value
province_scoreNumeric Value
postcode_scoreNumeric Value
country_scoreNumeric Value
address_scoreNumeric ValueIf previous individual matching scores are not available, the overall address score will be provided.
Block 4: Email Address
emailNumeric Value
\n\nNotes on KYC match score:\n\n\n - Address Scores are returned individually for all available parameters, within the possible range of -1 to 100. A -1 score signifies that the Mobile Network Operator in question does not have any data in their systems for the supplied number with which to respond. This should be interpreted as a neutral result in any trust calculations undertaken by the customer, in comparison to a '0’ score which signifies that the Mobile Network Operator possesses data but that the supplied challenge data does not match (which is a negative result).\n\n - Mobile Network Operators offer a range of different response types for name and address matches. Some operators apply logical matching and return a match score of 1-10 or 1-100 whilst others respond with a more binary ‘Y’ or ‘N’. TMT Verify On-boarding respond always with a numerical score. In the event that the Mobile Network Operator provides a score, it is either passed through (0-100) or multiplied by 10 (0-10) and the binary values are converted from ‘Y’ to 100 and ‘N’ to 0. \n\n - Street and Street number score are from experience very challenging to obtain a match between the customer-supplied data and that of the Mobile Network Operator, particularly in the case of those operators who respond with a binary ‘Y’ or ‘N’. One of the significant benefits of TMT Verify is that it offers a match score against each element of the address individually, so harder to match elements can also be compared with more standardised information such as post/zip code. It is the decision of each customer how the utilise the responses provided to the KYC Match in their own logic and decision making process however many organisations who have tested the service have concluded that they should place a lower weighting on the street and street number than on other attributes such as postcode and date of birth. \n\n - United States of America street addresses conform to a standard format. This is written as street number and street name (commonly known as address line 1) and apartment or unit number (commonly known as address line 2). In order to get the highest level of matches TMT Verify customers should supply address line 1 information as street in an address match query and supply address line 2 as street_no.\n\n - Last name and first name. In common with the point above on street name and street number, it is not uncommon for last or family name to obtain a higher percentage of accurate matches than first name. There are multiple reasons for this including increased probability of miss-spelling, multiple first names etc. As before this is particularly an issue where the operator applies a binary ‘Y’ or ‘N’ match. For this reason generally customers place a much higher weighting on family name than on first name. " name: Available data - description: "\nAs previously mentioned in section 3, TMT Verify is a fully flexible API where Customers can request specific datapoints as and when required. This section gives some example queries and responses for common use cases:\n\n

type

\nProvides information on the type of a given number. This consists of two response parameters, type which allows the customer to see if the number is fixed or mobile, and enhanced type (etype) that provides more information on the allocated type of the number (e.g. premium rate, VoIP etc.):\n\nExample:\n\n\n curl -L -X POST 'https://XXXXXXXXXX/v3/' -H 'X-Api-Secret: xxxxxxxxxxx' -H 'X-Api-Key: xxxxxxxxxxx' -H 'Content-Type: application/json' --data-raw '{\"number\": \"447771000003\", \"dpoints\": \"type\"}'\n\n\nResponse:\n\n\n {\n \"447771000003\": {\n \"number\": 447771000003,\n \"type\" : \"mobile\",\n \"etype\": \"10\",\n \"status\" : 0,\n \"status_message\" : \"Success\",\n },\n \"query\" : {\n \"datapoints\" :\"type\",\n }\n }\n\n\n

Porteddate

\nTo help combat the increasing risk of so-called port-out fraud, TMT Verify can supply, for all on-net countries the exact date that the most recent porting event associated with the number happened:\n\nExample:\n\n\n curl -L -X POST 'https://XXXXXXXXXX/v3/' -H 'X-Api-Secret: xxxxxxxxxxx' -H 'X-Api-Key: xxxxxxxxxxx' -H 'Content-Type: application/json' --data-raw '{\"number\": \"40721987086\", \"dpoints\": \"porteddate\"}'\n\n\nResponse:\n\n\n {\n \"40721987086\" : {\n \"number\" : 40721987086,\n \"ported\" : true,\n \"ported_date\" : \"2016-12-30 15:15:19\",\n \"ported_date_type\" : \"exact\",\n \"status\" : 0,\n \"status_message\" : \"Success\"\n },\n \"query\" : {\n \"datapoints\" : \"porteddate\"\n }\n }\n\n\n

Porting_history

\nA more detailed history around the porting events that a given number has undergone, which can be a useful indication of the economic activity and longevity of a number.\n\nExample:\n\n\n curl -L -X POST 'https://XXXXXXXXXX/v3/' -H 'X-Api-Secret: xxxxxxxxxxx' -H 'X-Api-Key: xxxxxxxxxxx' -H 'Content-Type: application/json' --data-raw '{\"number\": \"40739521819\", \"dpoints\": \"porting_history,network\"}'\n\n\nResponse:\n\n\n {\n \"40739521819\" : {\n \"number\" : 40739521819,\n \"current_network\" : {\n \"lrn\" : null,\n \"mcc\" : \"226\",\n \"mnc\" : \"01\",\n \"name\" : \"Vodafone Romania\",\n \"spid\" : 4018720\n },\n\n \"ported\" : false,\n \"porting_history\" : [\n {\n \"action\" : \"D\",\n \"tmtnetwork\" : 4018720,\n \"i_type\" : \"m\",\n \"ts\" : \"2022-01-31T00:00:00\"\n },\n {\n \"action\" : \"A\",\n \"tmtnetwork\" : 4018740,\n \"i_type\" : \"m\",\n \"ts\" : \"2021-03-18T00:00:00\"\n },\n ],\n \"status\" : 0,\n \"status_message\" : \"Success\"\n },\n \"query\" : {\n \"datapoints\" : \"porting_history,network\"\n \"trxid\" : \"SDF8hD3\"\n }\n }\n\n\n

Deactivation_history

\nBy performing a query against the USA deactivation data, TMT Verify will look for evidence that the supplied number has any history of deactivation, and if so, will append up to the 10 most recent events to the response.\n\nExample:\n\n\n curl -L -X POST 'https://XXXXXXXXXX/v3/' -H 'X-Api-Secret: xxxxxxxxxxx' -H 'X-Api-Key: xxxxxxxxxxx' -H 'Content-Type: application/json' --data-raw '{ \"number\": \"12016572115\", \"dpoints\": \"deactivation_history\"}'\n\n\nResponse:\n\n\n {\n \"12016572115\": {\n \"number\": 12016572115,\n \"deactivation_history\": [\n {\n \"operator\": \"ATT\",\n \"action\": \"DE\",\n \"ts\": \"2021-03-10T00:11:29\",\n \"number\": 12016572115\n },\n {\n \"operator\": \"ATT\",\n \"action\": \"DE\",\n \"ts\": \"2020-01-10T00:10:55\",\n \"number\": 12016572115\n },\n {\n \"operator\": \"ATT\",\n \"action\": \"DE\",\n \"ts\": \"2019-07-01T00:10:03\",\n \"number\": 12016572115\n }\n ],\n \"status\" : 0,\n \"status_message\" : \"Success\"\n },\n \"query\": {\n \"datapoints\": \"deactivation_history\",\n }\n }\n\n\n

Roaminginfo

\nBy performing a real-time network query, TMT Verify will look for evidence that the user is roaming internationally, and if so, will append roaming details to the response. The values are obtained by querying the 3 different network signalling routes.\n\nExample:\n\n\n curl -L -X POST 'https://XXXXXXXXXX/v3/' -H 'X-Api-Secret: xxxxxxxxxxx' -H 'X-Api-Key: xxxxxxxxxxx' -H 'Content-Type: application/json' --data-raw '{ \"number\": \"40721987086\", \"dpoints\": \"roaminginfo\"}'\n\n\nResponse:\n\n\n {\n \"40721987086\" : {\n \"is_roaming\" : false,\n \"number\" : 40721987086,\n \"status\" : 0,\n \"status_message\" : \"Success\"\n },\n \"query\" : {\n \"datapoints\" : \"roaminginfo\"\n }\n }\n\n\nportfraud\n\nportfraud checks TMT ID’s own database, as well as doing a live network signalling check to determine if the queried number has undertaken any recent porting activity. Based upon that risk, portfraud returns a risk value as described in section 3.\n\nExample:\n\n\n curl -L -X POST 'https://XXXXXXXXXX/v3/' -H 'X-Api-Secret: xxxxxxxxxxx' -H 'X-Api-Key: xxxxxxxxxxx' -H 'Content-Type: application/json' --data-raw '{ \"number\": \"40721987086\", \"dpoints\": \"portfraud\"}'\n\n\nResponse:\n\n\n {\n \"40721987086\" : {\n \"portfraud\" : low,\n \"number\" : 40721987086,\n \"status\" : 0,\n \"status_message\" : \"Success\"\n },\n \"query\" : {\n \"datapoints\" : \"portfraud\"\n }\n }\n\n\n

kycmatch

\n\nKYC Match takes as input both the queried number as well as the challenges/data that need to be matched. TMT ID will use our own data to determine which MNO (Mobile Network Operator) to send the match query to. This query will be made to the operator and then the KYC Match Results will be returned for the queried data.\n\nFor each attribute an individual match score is returned, ranging from -1 to 100. This takes account of the variability in the scoring method used by different Mobile Network Operators when comparing the challenge data to their records. For example, some operators use a heuristic-type matching algorithm and provide a numeric score based upon the percentage match, whilst others provide a simple ‘MATCH/NO MATCH’ against the challenge. As described above TMT Verify normalise these responses, responding with the percentage score if one is provided or converting the MATCH/NO MATCH to 100/0 respectively.\n\nIn all cases, a -1 value is returned to signify that the Mobile Network Operator does not hold information on that number to match against. This allows customers to accurately distinguish a ‘0’ response (which means that the operator holds data but it does not match the challenge) from a less negative ‘-1’ where the operator cannot say one way or the other whether the data is correct.\n\nExample:\n\nPOST /v3/ HTTP/1.1
Host: XXXXXXXXXX
Accept: application/json
Content-Type: application/json
\n\n\n curl -L -X POST 'https://XXXXXXXXXX/v3/' \\\n -H 'X-Api-Secret: xxxxxxxxxxx' \\\n -H 'X-Api-Key: xxxxxxxxxxx' \\\n -H 'Content-Type: application/json' \\\n --data-raw '{\n \"number\": \"40721987086\",\n \"dpoints\": \"kycmatch\",\n \"kyc_challenges\": {\n \"name\": {\n \"first_name\": \"John\",\n \"middle_name\": \"Robert\",\n \"last_name\": \"Smith\"\n },\n \"dob\": {\n \"day\": \"2\",\n \"month\": \"11\",\n \"year\": \"1985\"\n },\n \"address\": {\n \"street\": \"Omnia\",\n \"street_no\": \"23\",\n \"unit_no\": \"11A\",\n \"city\": \"Toronto\",\n \"state\": \"Ontario\",\n \"postcode\": \"M4B1B3\",\n \"country\": \"CA\"\n },\n \"email\": \"john_smith@example.com\"\n }'\n\n\n**Example Response – Individual Address KYCMatch Scores:**\n\n\n {\n \"40721987086\" : {\n \"kyc_results\" : {\n \"first_name_score\": 100,\n \"last_name_score\": 100,\n \"middle_name_score\": -1,\n \"street_no_score\": 100,\n \"street_name_score\": 80,\n \"unit_no_score\": -1,\n \"city_score\": 79,\n \"province_score\": 0,\n \"postcode_score\": 100,\n \"country_score\": 100,\n \"dob\": 50,\n \"email_score\": 100,\n },\n \"number\" : 40721987086,\n \"status\" : 0,\n \"status_message\" : \"Success\"\n },\n \"query\" : {\n \"datapoints\" : \"kycmatch\"\n }\n }\n\n\n**Example Response – Overall Address KYCMatch Score:**\n\n\n {\n \"40721987086\" : {\n \"kyc_results\" : {\n \"first_name_score\": 100,\n \"last_name_score\": 100,\n \"middle_name_score\": -1,\n \"address_score\": 78,\n \"dob\": 50,\n \"email_score\": 100,\n },\n \"number\" : 40721987086,\n \"status\" : 0,\n \"status_message\" : \"Success\"\n },\n \"query\" : {\n \"datapoints\" : \"kycmatch\"\n }\n }\n\n

Online Presence

\n\n\"online_presence\" offers information regarding if the queried number is linked to an active account on a range of business and social platforms. The query returns a list of the available platforms for the corresponding country and the status of the number on that platform.\n\nFor queries against valid numbers, \"online_presence\" returns a complete list of all supported platforms with one of the following responses for each:\n\nThe service will provide the “online_presence” json block, including information related to each of the following platforms: WhatsApp, Telegram, Amazon, Google, Office365, Instagram, LinkedIn, Skype, Facebook, Viber, Twitter.\n\n**Request format:**\n\n\n curl -L -X POST 'https://api.tmtverify.com/v3/' -H 'X-Api-Key: apikey' -H 'X-Api-Secret: apisecret' -H 'Content-Type: application/json' --data '{\"number\":\"13476841xxx\",\"dpoints\":\"online_presence\"}'\n\n\n**Response (valid number):**\n\n\n {\n \"40737105xxx\": {\n \"number\": 40737105xxx,\n \"online_presence\": {\n \"whatsapp\": 1,\n \"telegram\": 0,\n \"amazon\": 1,\n \"google\": 1,\n \"office365\": 1,\n \"instagram\": 1,\n \"linkedin\": -1,\n \"twitter\": 1,\n \"skype\": 0,\n \"flipkart\": -1,\n \"viber\": 0,\n \"bukalapak\": -1\n },\n \"status\": 0,\n \"status_message\": \"Success\"\n },\n \"query\": {\n \"datapoints\": \"online_presence\",\n \"trxid\": \"LHfPR6J\"\n }\n }\n\n\n**Response (Vendor request failed):**\n\n\n {\n \"40737105xxx\": {\n \"number\": 40737105xxx, \"online_presence\": {},\n \"status\": 4,\n \"status_message\": \"Partial Reply\"\n },\n \"query\": {\n \"datapoints\": \"online_presence\",\n \"trxid\": \"J7v1ofP\"\n }\n }\n\n\n**Response (Authorization):**\n\n\n {\n \"40737105xxx\": {\n \"number\": 40737105xxx,\n \"type\": \"mobile\",\n \"etype\": \"10\",\n \"online_presence\": {\n \"error\": 2,\n \"error_description\": \"Authentication failed\"\n },\n \"status\": 4,\n \"status_message\": \"Partial Reply\"\n },\n \"query\": {\n \"datapoints\": \"online_presence,type\",\n \"trxid\": \"J7v1ofP\"\n }\n }" name: Specific Datapoint responses x-tagGroups: - name: Introduction tags: - About TMT - name: Service Specifications tags: - Standard API Call - Available data - Specific Datapoint responses servers: - url: https://api.tmtverify.com components: {}