Verification

Snap Verifications helps improve the identity verification process for businesses. By simply providing user-provided identity details as input (such as names, contact information, and ID numbers), Snap Verification matches and validates this information against reliable data sources, yielding output indicating the verification status of each attribute.

The Snap Verification API requires three things at a minimum:

  1. The subject's name
  2. The subject's ID or email (see list of supported IDs below)
  3. The subject's consent

Once provided, Smile goes through all reliable data sources based on the provided ID and data that you have included in your request, allowing you to make quick decisions on the veracity of your end user's provided data. By combining quick confirmation with the Snap Verification API and surfacing the Wink SDK if the data provided is insufficient, you can get the information you need to efficiently serve your customer.

Smile Snap Verification API is currently in alpha.

How to Send a Verification Request

  1. Prepare your Verification Request details.

    You will need to send the following information:

    • Your subject's name (full name or first name + last name)
    • Your subject's identifier (one from the supported identifiers below, or you may provide the email address)
    • Your subject's consent
  2. Send a Verification Request using our Request Verification endpoint.

    📘

    Note

    Subject consent and data privacy is important to us. You must include evidence of your subject's consent along with their data when creating the request, by sending along the Consent Object with your request. Check out the data object below.

  3. Subscribe to the Event Notification or store the Verification ID of your request.

  4. Receive the Verification Result via the TASK_FINISHED webhook or the Get Verification endpoint.

Supported Identifiers and Data Points

ID or IdentifierVerifiable Data Attributes
Tax Identification Number tin_phFull Name, First Name, Middle Name, Last Name, Suffix, Date of Birth, Gender*, Email, Phone
Social Security Number sss_phFull Name*, First Name, Middle Name, Last Name, Suffix, Date of Birth, Gender, Email, Phone
Professional License prclicense_phFull Name, First Name, Middle Name, Last Name*, License Type, Email
Pag-IBIG Member ID NumberFull Name*, First Name, Middle Name, Last Name, Email
Email addressFull name*

More IDs will be supported soon.

The Verification Objects

Request Object

This is the request object you provide to us, as well as the meta object that tracks the request details.

AttributeTypeDescription
fullNamestringThe Subject's full name provided in the request
firstNamestringThe Subject's first name provided in the request
middleNamestringThe Subject's middle name provided in the request
lastNamestringThe Subject's last name provided in the request
suffixstringThe Subject's suffix provided in the request
additionalDataobjectAdditional data about the Subject provided in the request
consentobjectEvidence of the Subject's consent provided in the request

Additional Data (Request) Object

AttributeTypeDescription
idsarrayArray of objects containing identification card/number information of the Subject (only one accepted)
emailstringThe Subject's email address provided in the request
phonestringThe Subject's phone provided in the request
dobdateThe Subject's date of birthprovided in the request, in YYYY-MM-DD format
genderstringThe Subject's gender provided in the request, either Male or Female

Identifier (Request) Object

AttributeTypeDescription
idTypestringThe type of ID the Subject has provided, as sent in the request
idSubTypestringThe subtype of ID where applicable, i.e. License type
idNumberstringThe Subject's ID number provided in the request

Consent Object

If you choose to store your Consent Document with Smile, you may supply the consent template ID when you make your verification request, or provide the details of your consent document in the call directly, along with the date and time the subject consented to the verification process.

AttributeTypeDescription
typestringYour consent document's internal document name, i.e. "Product X Terms & Conditions" or "App Privacy Policy"
versionstringYour internal version for your consent document, for your tracking
consentedWithstringUsually in the form of a checkbox or a section in a form where the user signs their name and signature. This field is for the words with which your user has shown their consent to the document you have given them
consentedAtdate-timeWhen the Subject gave their consent to you to process their data, in Zulu time format
consentTemplateIdnumberYour consent template's ID if you choose to store this data with Smile

Verification Object

AttributeTypeDescription
idstringUnique ID of the verification request on the Smile Network
createdAtdate-timeDate/time when the verification request was created
updatedAtdate-timeDate/time when the verification request was last updated
statusstringStatus of the verification request. Can be PROCESSING, COMPLETED, or ERROR
errorMessagestringError message of the verification request, if applicable
requestMetaobjectObject containing the original request data. See Request Object
resultobjectObject containing moe result of the verification process

Result Object

AttributeTypeDescription
finalMatchesbooleanReturns true if the provided name matches the provided identifier
namesobjectObject containing detailed matching information for the name
additionalDataobjectObject containing detailed matching information for the additional attributes

Names (Result) Object

AttributeTypeDescription
fullNameMatchesbooleanReturns true if the provided full name matches the provided identifier. Null if not provided or not supported
firstNameMatchesbooleanReturns true if the provided first name matches the provided identifier. Null if not provided or not supported
middleNameMatchesbooleanReturns true if the provided middle name matches the provided identifier. Null if not provided or not supported
lastNameMatchesbooleanReturns true if the provided last name matches the provided identifier. Null if not provided or not supported

Additional Data (Result) Object

AttributeTypeDescription
idsarrayArray of objects containing matching information if the provided name matches the provided identifier. Null if not provided or not supported
dobMatchesbooleanReturns true if the provided date of birth matches the available records. Null if not provided, not supported, or finalMatches is false
genderMatchesbooleanReturns true if the provided gender matches the available records. Null if not provided, not supported, or finalMatches is false
phoneMatchesobjectObject containing matching information and other information if the provided phone matches the available records. Null if not provided, not supported, or finalMatches is false
emailMatchesobjectObject containing matching information and other information if the provided email address matches the available records. Null if not provided, not supported, or finalMatches is false

Identifier (Result) Object

AttributeTypeDescription
idNumberstringThe ID number evaluated as provided in the request
idTypestringThe ID type evaluated as provided in the request
idSubTypestringThe ID subtype evaluated as provided in the request
matchesbooleanReturns true if the provided name matches the provided identifier. Null if not provided or not supported

Email Match or Phone Match Object

AttributeTypeDescription
valuestringThe email address or phone number evaluated as provided in the request
matchesbooleanReturns true if the provided email or phone matches the available records. Null if not provided, not supported, or finalMatches is false
disposablebooleanReturns true if the matching email or phone is disposable. Null if not provided, not supported, or finalMatches is false
deliverablebooleanReturns true if the matching email is deliverable. Null if not provided, not supported,finalMatches is false, or for phone
activebooleanReturns true if the matching phone is active. Null if not provided, not supported,finalMatches is false, or for email
providerstringReturns the name of the email service provider or phone carrier. Null if not provided, not supported, or finalMatches is false
freeProviderbooleanReturns true if the matching email or phone provider is a free service provider. Null if not provided, not supported, or finalMatches is false

Sample Verification Result data

{
  "id": "ver-123abc456def789abc123def456abc78",
  "createdAt": "2024-01-01T08:00:00Z",
  "status": "COMPLETED",
  "updatedAt": "2024-01-01T08:01:00Z",
  "errorMessage": null,
  "requestMeta": {
    "fullName": "George Cimafranca Palomero",
    "firstName": "George",
    "middleName": "Cimafranca",
    "lastName": "Palomero",
    "suffix": "",
    "additionalData": {
      "ids" : [{
        "idType": "tin_ph",
        "idSubType": "",
        "idNumber": "123456789"
      }],
      "email": "[email protected]",
      "phone": null,
      "dob": "1980-01-01",
      "gender": "Male",
      },
      "consent": {
        "type": "Terms & Conditions",
        "version": "1.0",
        "consentedAt": "2024-01-01T08:00:00Z",
        "consentedWith": "I consent to ABC Company processing my data",
        "consentTemplateId": null
      }
  },
  "result": {
    "finalMatches": true,
    "names": {
      "fullNameMatches": true,
      "firstNameMatches": true,
      "lastNameMatches": true,
      "middleNameMatches": true
    },
    "additionalData": {
      "ids": [{
        "idNumber": "234957978",
        "idType": "tin_ph",
        "idSubtype": "",
        "matches": true
      }],
      "dobMatches": true,
      "genderMatches": true,
      "phoneMatches": null,
      "emailMatches": {
        "value": "[email protected]",
        "matches": true,
        "disposable": false,
        "deliverable": true,
        "active": null,
        "provider": "Google LLC",
        "freeProvider": true
      }
    }
  }
}

Endpoints

Endpoint
List VerificationsGET /verifications
Request VerificationPOST /verifications
Get VerificationGET /verifications/{id}