Right Party Verification User Guide


Right Party Verification Overview

Introduction

Digital Identity is enabling enterprises transform customers interactions. However fraudsters are also using new techniques such as synthetic and stolen digital identities to create fake accounts and access existing accounts.

Enterprises can protect themselves and their customers by using Right Party Verification and other Syniverse services such as Multi-Factor authentication, Phone Number Verification and Account Takeover Detection.

Service Overview

Right Party Verification enables Enterprises to reduce fraud during account registration and customer onboarding. Common use cases are during online bank account creation or loan approval, or during social network registration.

The Right Party Verification API is a REST-like server-to-server API and requires Enterprises to host the end-user-facing user interface and obtain end-user consent.

Enterprises can call this API to match end-user data such as name and address mapped to a phone number against Syniverse-sourced data originating from carriers and other authoritative third parties. The match results can be used to verify an identity during account registration to prevent registration with synthetic or stolen identities.    

API Call

Function

Match

This API call is used to obtain match scores related to the identity associated with the phone number by comparing the end-user identity to Syniverse-sourced data.

​​​​​​

Integration

Security and Encryption

Since Syniverse’s Mobile Identity platform handles sensitive end-user information, utmost care is taken to safeguard this information at all times. Syniverse implements multiple layers of security between the Enterprise system and Syniverse’s system.

1.      Secure Communication Channel: All communication between the Enterprise’s system and Syniverse’s system takes place over HTTPS (TLS version 1.2 or above).

2.      IP Address Whitelisting: Enterprise system’s IP addresses are whitelisted before any API calls can be made to Syniverse’s production environment.

3.      API Request Validation: Enterprise is assigned a Merchant ID, an optional submerchant ID and an API Secret. The Secret is an alphanumeric string and is shared with the Enterprise during the onboarding process. Enterprise must send the API Secret in the header for all API requests. Syniverse processes the request only if it comes with a valid API Secret. Please contact Syniverse’s Support team to know the validity of the API Secret – the Support team will issue a new one prior to the expiry of the current value.

Security Credentials

The following lists all possible credentials provided by Syniverse to ensure authentication of APIs, security and privacy of the end-user information.

API Call

Security Values

Utilization

Key Length

match

 

API Secret

Key to use in the request header (Authorization) of all APIs. Shared with Enterprise at onboarding.

Up to 128 characters

 

Constructing Requests

Syniverse exposes easy-to-use REST-like APIs and requests should be sent as JSON objects. Enterprises can use standard libraries to create the requests. Below table shows the request header details.

Request header details

Parameter

      Description

Required

Accept

      Media type for the response.

       Only application/json is supported. Example Accept: application/json

Yes

Content-Type

       Media type sent in the request. Only application/json is supported.

       Example Content-Type: application/json

Yes

Authorization

       The security key to use for Syniverse APIs, which was shared during the onboarding process.

       Example Authorization: qPrOHV9HuUaicXrK9I9hM5pmR2QG

Yes

RequestTime

      Current date time when request is sent.

      Request time in ISO 8601 format: YYYY-MM-DDThh:mm:ss.ffffff

      Example RequestTime: 2017-03-21T19:28:53+09:00

Yes

 

Processing Response

The Syniverse Mobile Identity platform returns response values as JSON objects. Enterprises should use a JSON parser to extract the information. Below table shows Response header details. 

Response header details

Parameter

Description

Content-Type

       Media type sent in the response.

       Example Content-Type: application/json

 

Sandbox

During integration the Enterprise will use the Mobile Identity sandbox to develop and test against. The sandbox provides dummy data to simplify testing of different scenarios and test cases.

Access details & credentials for the sandbox will be provided by Syniverse during onboarding.

Service Configuration

During implementation Syniverse will  configure your account depending on whether you would like the identity to be verified against mobile network operator data or authoritative third parties or the best match across both.

The production URL will also be confirmed by Syniverse as part of the implementation. This is because there are different geographic deployments used depending on the country.

 

API Specification

Right Party Verification

Request URL

https://Syniverseserverurl/cigw/v2/match

The actual URL will be provided during onboarding.

 

Request parameter details

Parameter

Description

 

Required

merchantId

A   A unique string assigned by Syniverse to identify the merchant. 

T    This ID will be provided by Syniverse during the onboarding process.

      Max Length: 30

Example merchantId: 00DF00000015

Yes

subMerchantId

        Resellers Only

This unique ID is assigned to a reseller’s end merchant. This ID will be provided by Syniverse during the onboarding process.

Max Length: 30

        Example subMerchantId: 00DF00000016

No

consentId

Merchant passes a unique Id from capturing the consent from the end-user. It needs to be traceable back to the channel how the end-user had provided the consent.

 Max Length: 128

Example consentId: uyciydfoudqwg912863017

NOTE: When consentTimeStamp is passed, consentId must also be passed.

Yes*

consentTimeStamp

Date and time when end-user consent was obtained. 

Format: yyyy-MM-ddTHH:mm:ss +00:00

Example consentTimeStamp: 2020-02-13T20:20:39+00:00

NOTE: When consentId is passed, consentTimeStamp must also be passed.

Yes*

msisdn

The end-user’s mobile number to be used in E.164 international format.

Example msisdn: +14444441111

Yes

correlationId

Enterprise’s transaction identifier that can uniquely identify this particular transaction.

Min length: 8, Max Length: 80

Example correlationId: 1310881973286793

Yes

firstName

End-user first name

Max Length: 128 characters

Example firstName: Jane

No**

lastName

End-user last name

Max Length: 128 characters

Example lastName: Smith

No**

address1

End-user address line 1

Max Length: 256 characters

Example address1: 2833 Junction Ave

No**

address2

End-user address line 2

Max Length: 256 characters

Example address2: Suite 202

No

city

End-user city

Max Length: 128 characters

Example city: San Jose

No**

state

End-user state, province or locality as applicable in the country

Max Length: 128 characters

Example state: CA

No**

postalCode

End-user billing postal zip code

Max Length: 10 characters

Example postalCode: 95134

No**

countryCode

2 letter ISO country code

Example countryCode: FR

No

nationalId

End-user national ID

Max Length: 128 characters

Example nationalId: YZ3456883

No

dateOfBirth

End-user date of birth in YYYYMMDD format

Example dateOfBirth:19900101

No

 

*consentId and consentTimeStamp are not mandatory for authoritative sources in the US

**Depending upon country; these fields maybe mandatory, Syniverse Account or Implementation Team can provide most up to date requirements.

 

Response parameter details, if API call is successful 

Parameter

Description

results

This JSON object encapsulates the API response.

 

Response object details

Parameter

Description

correlationId

Enterprise’s transaction identifier that can uniquely identify this particular transaction.

Max Length: 80

Example correlationId: 1310881973286793

 

responseId

Syniverse’s unique transaction response identifier.

Max Length: 30

Example responseId: 568887569756956

firstNameScore

Level of match for the First Name attribute assigned to the submitted mobile number from low to high – the higher the Match score*, the more accurate is the match.

Example firstNameScore: 10

lastNameScore

Level of match for the Last Name attribute assigned to the submitted mobile number from low to high – the higher the Match score*, the more accurate is the match.

Example lastNameScore: 10

streetAddressScore

Level of match for the Street Address attribute assigned to the submitted mobile number from low to high – the higher the Match score*, the more accurate is the match.

Example streetAddressScore: 10

cityScore

Level of match for the City attribute assigned to the submitted mobile number from low to high – the higher the Match score*, the more accurate is the match.

Example cityScore: 10

stateScore

Level of match for the State attribute assigned to the submitted mobile number from low to high – the higher the Match score*, the more accurate is the match.

Example stateScore: 10

postalCodeScore

Level of match for the Postal Code attribute assigned to the submitted mobile number from low to high – the higher the Match score*, the more accurate is the match.

Example postalCodeScore: 10

countryCodeScore

Level of match for the Country Code attribute assigned to the submitted mobile number from low to high – the higher the Match score*, the more accurate is the match.

Example countryCodeScore: 10

nationalIdScore

Level of match for the National ID attribute assigned to the submitted mobile number from low to high – the higher the Match score*, the more accurate is the match.

Example nationalIdScore: 10

dateOfBirthScore

Level of match for the Date of Birth attribute assigned to the submitted mobile number from low to high – the higher the Match score*, the more accurate is the match.

Example dateOfBirthScore: 10

dataSource

Returns the data source that the Enterprise data was compared against. Values can be “Carrier” or “Third-Party”.

Example dataSource: Carrier

identityScore

A single score that indicates the overall level of match between Syniverse’s data sources and end-user data sent in the Enterprise request. It ranges from 0 – 100. 100 indicates strong match and 0 indicates complete mismatch. Example: identityScore: 100

 

*Match score definitions:

-1=Data not available for attribute

 0=No Match

 5= Partial Match

 9=High Partial Match 

10=Exact Match

Match scores will only be returned for attributes that were passed in the request.

 

Response parameter details, if API call is not successful

Parameter

Description

Error

This is the object that encapsulates the API response. Included in place of the results object if the call is not successful

correlationId

Enterprise’s transaction identifier that can uniquely identify this particular transaction, if available. The value from the request is echoed back.

Min length: 8, Max length: 80

Example correlationId: ABC0881973286793

responseId

Syniverse’s transaction identifier than can uniquely identify this particular transaction, if available.

Max length: 30

Example responseId: 20200325234640M163C264030

Code

Indicates the reason the call failed.

Example code: -5001

description

Additional information regarding the error condition. Set only if error code is included in the response.

Max Length: 256

Example description: Authentication failed

 

Example request

POST https://serverurl/cigw/v2/match

Accept: application/json

Content-Type: application/json

Authorization: qPrOHV9HuUaicXrK9I9hM5pmR2QG

RequestTime: 2021-02-23T19:28:53+00:00

{

"merchantId":"00DF00000015",

"subMerchantId":"00DF00000016",

"consentId":"uyciydfoudqwg912863017",

"consentTimeStamp":"2021-01-03T12:30:23+00:00",

"correlationId":"ABC0881973286793",

"msisdn":"+14082321000",

"firstName":"Jane",

"lastName":"Smith",

"address1":"321 Main Street",

"address2":"Suite 22",

"city":"New York",

"state":"NY",

"postalCode":"10021",

"countryCode":"US",

"nationalId": "YZ3456883",

"dateOfBirth": "19901214"    

}

Example successful response 

HTTP/1.1 200 OK

Content-Type: application/json

{

"results": {

               "correlationId": "ABC0881973286793",

               "responseId": "568887569756956",

                "firstNameScore": "10",

                "lastNameScore": "10",

                "streetAddressScore": "9",

                "cityScore": "10",

                "stateScore": "10",

                "postalCodeScore": "10",

                "countryCodeScore":"10".

                "dateOfBirthScore": "10",

                "nationalIdScore": "10",

                "dataSource": "Carrier",

                "identityScore": "100"

        

           }

}

 

Example error response  

HTTP/1.1 400 Bad Request

Content-Type: application/json

{

    "error": {

          "correlationId":"ABC0881973286793",

          "responseId":"568887569756956",

          "code":"-5003",

          "description":"Required parameter missing"

      }

} 

Appendix A - Error Codes and Descriptions (Error Object)

 

Error Code

Error Description

Comments

Recommended Action

-5000

Access not allowed.

Access not allowed for the requested API.

Integration Issue. Contact Syniverse Support for help.

-5001

Authentication failed.

Enterprise authentication failed. Check the signature computation.

Integration Issue. Contact Syniverse Support for help.

-5002

Unsupported version.

Unsupported version used for the API request.

Integration Issue. Contact Syniverse Support for help.

-5003

Retry with missing parameter.

A required parameter is missing from the API request.

Integration Issue. Contact Syniverse Support for help.

-5004

An invalid parameter was passed.

An invalid parameter was passed in the API request.

Integration Issue. Contact Syniverse Support for help.

-5005

An internal error occurred.

An internal error has occurred.

Retry. If error persists, Contact Syniverse.

-5006

Retry with end-user identifier.

An end-user identifier such as the mobile number, authentication key or association key is missing from the API request.

Integration Issue. Contact Syniverse Support for help.

-5009

This phone number is not whitelisted.

Whitelisting is enabled and the phone number is not whitelisted.

Contact Syniverse Support to whitelist number.

-5010

Missing or Incorrect Submerchant Id.

A valid sub-merchant id is required for reseller Enterprises.

Integration Issue. Contact Syniverse Support for help.

-5013

Exceeded time to perform end-user identification.

The authentication key has expired before end-user identification could be completed.

Do not retry. Terminate transaction and exit.

-5017

Retry with passing consent in the input.

User consent is needed to make this API call in the current configuration.

Integration Issue. Contact Syniverse Support for help.

-5018

Please retry with both consentId and consentTimeStamp

Either consent id or consent timestamp was missing from the API request.

Integration Issue. Contact Syniverse Support for help.

-5020

Data is not available for this user

Data is not available for this user from any of the configured data sources.

Do not retry. Terminate transaction and exit.

-5022

Invalid Enterprise.

The Enterprise cannot be recognized.

Integration Issue. Contact Syniverse Support for help.

-5029

Data access not allowed. Please contact Customer Support.

The Enterprise is not configured for this API or for the Attribute Groups being requested.

Integration Issue. Contact Syniverse Support for help.

-5030

Data access not allowed. Please contact Customer Support.

Service providers are not configured for this Enterprise.

Integration Issue. Contact Syniverse Support for help.

-5033

Consumer identifier is invalid.

The end-user identifier such as the mobile number, authentication key or association key is invalid.

Do not retry. Terminate transaction and exit.

-5035

This Authentication Key has expired.

The authentication key has expired and cannot be used anymore.

Do not retry. Terminate transaction and exit.

-5037

Service provider error occurred. Please retry.

An error occurred while communicating with a service provider.

Retry. If error persists, Contact Syniverse Support.

-5046

No value was passed for consumerMdn and carrier.

No value was passed for consumerMdn and carrier.

Please retry by passing both the values.

-5049

No value was passed for consumerMdn or carrier.

No value was passed for consumerMdn or carrier.

Please retry by passing either of the values.

-5050

Data access not allowed. Please contact Enterprise Support.

Data access not allowed. Please contact Enterprise Support.

Integration Issue. Contact Syniverse Support for help.

-5053

Please retry with a valid MSISDN

Please retry with a valid MSISDN

Retry. If error persists, Contact Syniverse Support.

-5054

Please retry with valid Consent

Input consent parameters are not valid.

Retry. If error persists, Contact Syniverse Support.

-5055

Consent is no longer active

Consent is no longer active.

Please obtain new consent from the user and retry

-5056

Please retry with valid Consent

Consent is no longer active.

Please obtain new consent from the user and retry

-5057

Carrier not supported.

Syniverse has not integrated with the carrier and there is no access to other authoritative data sources for the MSISDN

Do not retry. Terminate transaction and exit.

-5061

Insufficient information to determine response

Syniverse did not obtain sufficient information from mobile carrier to determine a response.

Do not retry. Terminate transaction and exit.

-5062                             

Unable to identify carrier

Syniverse could not identify the carrier associated with the phone number. nxx are two digits used for internal tracking.

Do not retry. Terminate transaction and exit.

 

Appendix B – Right Party Verification Logic Examples

This section describes examples of how match scores would be calculated in different scenarios at Syniverse.

Rule

Attribute

Enterprise Data

Carrier/3rd Party Data

Match Score

Exact first name

First Name

Robert

Robert

10

Misspelling

First Name

Robere

Robert

9

Common nickname

First Name

Bob

Robert

5

Contains name

First Name

Rob

Robert Floyd

5

First initial when last name is same

First Name

R
Last Name: Johnson

Robert
Last Name: Johnson

5

Contains multiple words

First Name

Robert

Robert Floyd

9

First name and last name swapped

First Name

First Name: Johnson
Last Name: Robert

First Name: Robert
Last Name: Johnson

5

Different first name

First Name

Stephen

Robert

0

Same last name

Last Name

Johnson

Johnson

10

Misspelling last name

Last Name

Johnsn

Johnson

9

Contains multiple words

Last Name

Johnson

Smith Johnson

9

First name and last name swapped

Last Name

First Name: Johnson
Last Name: Robert

First Name: Robert
Last Name: Johnson

5

Different last name

Last Name

Johnson

Smith

0

Same street address

Street Address

565 Downtown Ave Suite 202

565 Downtown Ave Suite 202

10

Missing street address line 2

Street Address

565 Downtown Ave

565 Downtown Ave Suite 202

9

Misspelling address

Street Address

565 Donwtown Ave

565 Downtown Ave Suite 202

9

Missing street number

Street Address

Downtown Ave

565 Downtown Ave Suite 202

5

Numbers match

Street Address

565 Main Street Apt 202

565 Downtown Ave Suite 202

5

Different street address

Street Address

123 Main Street

565 Downtown Ave Suite 202

0

Same City

City

San Jose

San Jose

10

Different City

City

Los Angeles

San Jose

0

Same State

State

CA

CA

10

State abbreviation

State

California

CA

10

Different State

State

NY

CA

0

Same zip code

Zip Code

90210

90210

10

Different zip code

Zip Code

90210

94086

0