Device Ownership
Overview - Device Ownership

Trust Score

Introduction

Trust Score API (“Trust Score”) is a real-time indicator of a phone number’s trustworthiness. It accurately measures the real-time risk of authenticating a consumer using a specific phone number.

Trust Score achieves this by analyzing and scoring daily life cycle change events, along with leveraging carrier signals and core telecom infrastructure signals, enabling us to manage the tenure identity behind the phone number.

Most consumers have had their phone number for many years. Customer verification increasingly relies on “something you have” authentication using phones and phone numbers, an integral aspect of a consumer’s daily life. In an increasingly digital economy, accelerated by COVID-19, an amplified focus on fraud prevention is essential for many of our customers. Trust Score provides banks, financial institutions, insurance companies, retail companies, and other customers with a tool that can be applied to multiple use cases where knowing the fraud risk of a transaction is critical.

Features

Trust Score establishes the Reputation portion of  PRO model of identity verification:

Possession–Confirm possession of the phone with “something-you-have” authentication Reputation–Screen for risk to ensure the phone being used to authenticate is not compromised or used by a bad actor. Ownership–Verifying the phone number associated with the rightful owner or actual consumer.

To make a Trust Score call, the phone number is the only piece of information required. Our proprietary algorithm then consumes carrier signals and uses our managed identity intelligence to generate a Trust Score for the phone number, a numerical value ranging from 0 to 1,000 (the higher the number, the more trustworthy). In addition to the score itself, reason codes are returned in the API response, signifying the factors that affected the score.

Depending on the parameter passed in the API and the end-user mobile consent obtained, some of the attributes used to calculate the Trust Score can be returned as well, representing more specific data and fields. The reason codes and line attributes can be interpreted independently of the Trust Score, should you want to establish further rules for risk tolerance.

Score Component Framework

There are several inputs and variables that affect the Trust Score of a phone number, some that increase the score and some that decrease it. Although specifics cannot be shared for security purposes, below are some general guidelines that may be shared that indicate how the Trust Score may be affected:

Increase score:

  • Found long tenure with
    • SIM
    • Device
    • Phone number
    • Signzy managing identity
    • Carrier
    • Clients inquiring on the phone

Decrease score:

  • Inactive status (cannot place phone calls or send and receive texts)
  • Recent changes to the SIM or device
  • Many changes in a short amount of time to SIM, device, port, phone number
  • Higher risk line types (e.g., VoIPs not connected to a physical location)
  • No data was supplied from the carrier/telecom

The method used to calculate Trust Score is a point-based deduction. The process evaluates all of the heuristic-based business rules in the model, and for those that meet their conditions, several points are either deducted or added, starting with the perfect score of 1,000.

The number of points deducted or added depends on the components’ criteria being met. The final score can range between 0–1,000, with the highest level of trust being 1,000 and the lowest level of trust being 0. More information on applying these levels of trust can be found in the Trust Score Interpretation section below.

For example, if a given phone number meets two rules, one deducting 150 points and another deducting 100 points, the resulting score will be 750 (1,000 – 150 – 100=750).

Trust Score Interpretation

Signzy generally recommends the following integer thresholds for mobile line-type numbers when using Trust Score:

  • 0-300: Low Trust
  • 301-629: Medium Trust
  • 630-1000: High Trust

Trust Score Flow

Document image


Response Versions

The application of the Trust Score API allows for a degree of customization to best suit your organization’s needs, with two different request and response versions that can control the amount of information returned from the API call. There are also three ways you can analyze a Trust Score: using only the Trust Score integer, the integer and the returned reason codes, or the integer plus the reason codes plus the carrier’s phone line attributes.

The response body contains the Trust Score integer, the reason codes and the carrier’s phone line attributes as a standard response. Additionally, if you pass the details field as true, additional phone line attributes and change events values are returned, potentially including:

  • carrier status
  • velocity (or the number of changes within the last 90 days) for:
    • phone number
    • port
    • SIM
    • device
  • tenure (or length of time seen, shown by MinDate and MaxDate) for:
    • SIM
    • Our Subscriber records
    • phone number
    • carrier
    • device

For all these attributes, standard response will store null value for these fields but when details is set to true and consent status is provided then the values will be shown for the above attributes in response.

Note, as mentioned in the Consumer Consent section above, all phone line attributes listed above are only available from the carrier when consent is obtained from your consumer.

minimumDate & maximumDate Tenure

In order to protect consumer's data and keep from sharing exact dates for tenure calculations, the minimumDate and maximumDate fields indicate ranges of time that the most recent date of activation or change could have occurred in. The minimumDate is the most recent date/time of that range, and the maximumDate is the earliest date/time. See the Minimum/Maximum Logic section for more details.



API Details

You must first login before sending the request. The authorization header in the request must include the access token obtained from the login API call.

Sample cURL

Production
Pre-Production
Curl


Request Body Parameters

Key

Type

Mandatory

Description

consentStatus

string

true

The consent status of the phone number. Possible values are:

optedIn - The end user has provided consent for the collection of their personal data. optedOut - The end user has refused to allow collection of their personal data. notCollected - No attempt has been made to obtain consent from the end user. unknown - The status of consent collection is unknown. Note: This value must be optedIn in order to access MNO data.

phoneNumber

string

true

The phone number being queried.

(without leading plus sign & country code)

details

String

false

Specifies whether to include additional details in the response. Input is "true" or "false"

countryCode

string

true

The country code associated with the phone number.

"US" or "CA"



Response Body Parameters

Key

Type

Description

status

integer

The status of the request. A response of 0 indicates success. Any non-0 response is an error indication.

description

string

A text string that defines the cause of the status code.

response

object

The response object containing trust score details.

transactionId

string

Unique transaction identifier used to identify the results of the request.

payfoneAlias

string

A persistent ID that uniquely identifies a telephone subscriber.

phoneNumber

string

The phone number associated with the subscriber.

lineType

string

Line type associated with the phone number. Possible values are: Mobile, Landline, FixedVoIP, NonFixedVoIP.

carrier

string

The carrier related to the phone number.

countryCode

string

The country code associated with the phone number.

statusIndex

string

A bitmapped value that represents networkStatus, accountType, accountRole, and customerType.

isBaselined

boolean

An indicator to communicate whether Signzy has ever transacted with the input phone number before the current transaction.

trustScore

number

An integer value ranging from 0–1000 that denotes the real-time trustworthiness of a phone number.

reasonCodes

string[]

An array of indicators providing additional context about the transaction.

carrierStatus

string

Carrier status associated with the phone number.

Values include: Active Suspended Disconnected Unknown null Value is returned only if consentStatus=optedIn, details=true, else it will be null in standard response.

phoneNumberVelocity

integer

The number of times the subscriber has changed their phone number. Value is returned only if consentStatus=optedIn, details=true & if phoneNumber is changed, else it will be null in standard response.

portVelocity

integer

The number of times the subscriber has changed their carrier within the last 90 days. Value is returned only if consentStatus=optedIn, details=true & if carrier is changed, else it will be null in standard response.

simVelocity

integer

The number of times the mobile subscriber has changed their SIM within the last 90 days. Value is returned only if consentStatus=optedIn, details=true & if SIM is changed, else it will be null in standard response.

deviceVelocity

integer

The number of times the mobile subscriber has changed their device within the last 90 days. Value is returned only if consentStatus=optedIn, details=true & if device is changed, else it will be null in standard response.

payfoneTenure

object

The amount of time Signzy has been able to track the subscriber. Defined with a minimum and maximum date. Only returns if details=true

minimumDate

date-time

Payfone Tenure Object Attribute

carrierTenure

object

The amount of time Signzy has been able to track the carrier associated with the subscriber. Defined with a minimum and maximum date.

Only returns if consentStatus=optedIn, details=true

minimumDate

date-time

Carrier Tenure Object Attribute

maximumDate

date-time

Carrier Tenure Object Attribute

phoneNumberTenure

object

The amount of time Signzy has been able to track the phone number associated with the subscriber. Defined with a minimum and maximum date. Only returns if details=true

minimumDate

date-time

Phone Number Tenure Object Attribute

simTenure

object

The amount of time Signzy has been able to track the SIM association with the subscriber. Defined with a minimum and maximum date. Only returns if consentStatus=optedIn, details=true

minimumDate

date-time

Sim Tenure Object Attribute

maximumDate

date-time

Sim Tenure Object Attribute

deviceTenure

object

The amount of time Signzy has been able to track the device association with the subscriber. Defined with a minimum and maximum date. Only returns if consentStatus=optedIn, details=true

minimumDate

date-time

Device Tenure Object Attribute

maximumDate

date-time

Device Tenure Object Attribute

portedDate



The date associated with a port of the phone number. Defined with a minimum and maximum date.

Only returns if details=true

minimumDate

date-time

Ported Date Object Attribute

maximumDate

date-time

Ported Date Object Attribute

Sample Responses (US)

JSON


Sample Responses (CA)

JSON


Consent Status Response Comparisons

The table below shows which attributes return for optedIn versus the attributes returned for optedOut, notCollected, and unknown. Note again that the details field must be set as true to see these detailed attributes.

optedIn

optedOut, notCollected, Unknown

countryCode

countryCode

carrierStatus



phoneNumberVelocity

phoneNumberVelocity

portVelocity

portVelocity

simVelocity



deviceVelocity



payfoneTenure

payfoneTenure

phoneNumberTenure

phoneNumberTenure

carrierTenure



simTenure



deviceTenure



portedDate

portedDate

Response parameters can be null based on the data availability from the API sources.

Reason Codes

Reason Code

Description

Additional Details

CU





Carrier call was unsuccessful

Returned when change data was/is not available, which includes: - We do not support subscriber management for a carrier, which is needed for change events. - We do not receive IMSI, or IMEI changes from a carrier (e.g., US cellular). - We did not get a response from the carrier during the transaction (timeout, for example).

D2

The phone number was recently deactivated.

A disconnect event has been detected in the last 2 days.

DR

The device date returned was not obtained real-time; there could be a more recent device change.

Returned for a phone number if the MNO is a carrier that does not provide IMEI change events in real-time but we can derive an IMEI change. (e.g., Sprint) This can be used to determine that a device change occurred since the last time it was checked, but the date is ambiguous and could have happened at any point between the max date and the min date.

DV

High device change velocity

This may indicate a higher risk of authenticating the consumer, especially during customer onboarding.

FF





Call forwarding is not enabled on the consumer’s phone.

The call forwarding check and mobile consent must be enabled on your account, and consentStatus passed optedIn, for this reason code to be returned.

FO





Call forwarding is enabled on the consumer’s phone.

The call forwarding check and mobile consent must be enabled on your account, and consentStatus passed optedIn, for this reason code to be returned.

HV

High velocity of change events associated with phone

This may indicate a higher risk of authenticating the consumer, especially during customer onboarding.

I5

Indicates zero Instant Link transactions in the last 90 days for the phone number being queried.

This reason code only returns if enabled for you, and a higher level of IL transaction within the period could indicate a higher risk factor.

I6

Indicates 1–3 Instant Link transactions in the last 90 days for the phone number being queried.

This reason code only returns if enabled for you, and a higher level of IL transaction within the period could indicate a higher risk factor.

I7

Indicates 4–7 Instant Link transactions in the last 90 days for the phone number being queried.

This reason code only returns if enabled for you, and a higher level of IL transaction within the period could indicate a higher risk factor.

I8





Indicates 8–15 Instant Link transactions in the last 90 days for the phone number being queried.

This reason code only returns if enabled for you, and a higher level of IL transaction within the period could indicate a higher risk factor.

I9

Indicates more than 15 Instant Link transactions in the last 90 days for the phone number being queried.

This reason code only returns if enabled for you, and a higher level of IL transaction within the period could indicate a higher risk factor.

LP

Low tenure device

This may indicate a higher risk due to low tenure. Normal circumstances may be a device upgrade if the reason code LT is not present.

LS

Low Tenure SIM

This may indicate higher risk due to low tenure on SIM. Pair this with your high-risk events to mitigate the phone takeover at the carrier.

LT

Low tenure mobile identity

This may indicate a higher risk of identity theft or synthetic ID fraud, especially at account opening or customer onboarding.

ND

Phone number network status information is not available.

While this may mean no data is available, this may not necessarily be indicative of risk.

NM

Not a mobile line type

It may not indicate risk but is intended to filter mobiles from non-mobile line types.

NP

Non-personal line

It could signify a business or government phone line

PN

Mobile phone number is not active.

The phone number provided is either suspended or deactivated; it cannot place or receive voice calls or SMS text messages transmitted over a cell tower.

PT

Phone number is currently in a ported state.

The phone number has been ported outside of the carrier that owns the phone number. This reason code will continue to fire while the phone is in the ported state. Use the ported date field to determine if the port was recent (rather than just relying on the return of this reason code) to manage the risk of carrier takeover via a port attack.

RL





Phone number is associated with a high-risk line type (Non-Fixed VoIP or Prepaid MVNO).

This may indicate higher fraud risk.

RN





Phone number is at low risk for fraud as a mobile line listed on the Override Services Registry (OSR).

It may indicate lower risk. For mobile line-type phone numbers, carriers must authenticate their subscriber to add their number to the OSR. Only the owning carrier can add their mobile phone numbers to the OSR.

RR

Phone number is at a higher risk for fraud as a non-mobile line listed on the Override Services Registry (OSR).

The phone is at risk of SMS-forwarding vulnerability but is not necessarily always at high risk for fraud. Phone numbers that are on the OSR are vulnerable to SMS message hijacking. For non-mobile line type phone numbers, adding a number to the OSR is not restricted to the owning carrier. Other carriers, including non-major carriers more susceptible to fraud, can add these phones to the OSR.

SA

Sub-account line

Multiple phone lines are associated with one account, typically on family plans. It may not be indicative of risk.

SR

The SIM date returned was not obtained real-time; there could be a more recent SIM change.

Returned for a phone number if the MNO is a carrier that does not provide IMSI change events in real-time but we can derive an IMSI change. This can be used to know that a SIM change occurred since the last time it was checked, but the date is ambiguous and could have happened between the max date and the min date.

UC

Insufficient data to calculate trustScore

When no data is returned, this negatively affects the Trust Score but may not indicate risk.

Minimum/Maximum Date Logic

To avoid sending specific dates for phone attribute change events (i.e., to show SIM tenure, device tenure, etc.), we return general time ranges of minimum-maximum dates that the most recent change event for the attribute falls under concerning the current date.

Change Event Time Range

Minimum Date Field (most recent time possible)

Maximum Date Field (longest time possible)

Unknown or blank

No date returned

No date returned

<=24 hours ago

Current date with time of 23:59:59

Current date with time of 00:00:00

> 24 hours and <=48 hours ago

Current date minus 1 day & time of 23:59:59

Current date minus 2 days & time of 00:00:00

> 48 hours and <=7 days ago

Current date minus 2 days & time of 23:59:59

Current date minus 7 days & time of 00:00:00

> 7 days and <=30 days ago

Current date minus 7 days & time of 23:59:59

Current date minus 30 days & time of 00:00:00

> 30 days and <=90 days ago

Current date minus 30 days & time of 23:59:59

Current date minus 90 days & time of 00:00:00

> 90 days and <=365 days ago

Current date minus 90 days time of 23:59:59”

Current date minus 365 days & time of 00:00:00

> 365 days ago

Current date minus 365 days & time of 23:59:59

No date returned



Sample Error

JSON


Error Response Parameters

Parameter

Description

error

This parameter contains the error.

error.name

the name of the error

error.message

the error message

error.status

status of the api

error.reason

Reason for error

error.type

Type of the error

error.statusCode

Request Status code from Signzy

Getting help

Please feel free to contact us if you have any questions, require clarification, or have ideas for how to make the documents or any of our services better.

You can reach out to us at [email protected]. We strive to provide prompt and reliable assistance, ensuring your queries are addressed effectively.

We value your feedback and are committed to making your experience smooth and enjoyable. Our team is dedicated to assisting you with any needs you may have. Thank you for choosing our services. We look forward to helping you!