Create session

Prev Next
Post
/v1/sessions

Creates a verification session with the data specified in the request body

When to use this endpoint

  • Use this endpoint to initiate a new verification session for an end-user. Every verification flow begins with creating a session.

Request body content

The contents of the request body depends on:

  • Whether you are using the SDK or API to capture end-user data
  • The type of verification solution the session is created for

Minimum request body:

  • Empty verification object

Payload examples:

  • Click on the "Show examples" button in "Request" section to see request body examples for specific solutions/products.

Response data

Once you create the verification session, you receive:

  • Unique session id (store this - required for other endpoints)
  • Unique sessionToken (legacy purposes, see FAQ)
  • Session URL in verification.url parameter (required for SDK integrations)

Getting session results

After the end-user completes the verification:

Implementation notes

  • Store the returned session id - it is required for all other session-related endpoints
  • Always ensure that you use the correct API URL to send requests. See the API URL section for more info.
  • See Javascript sample implementation for SDK integration examples
  • The order of parameters in the real API response can differ from the order you see in this documentation. This is expected and part of the Backwards compatible changes requirements.

Additional info: end-user flow after session creation

  1. Create session → Get session.verification.url
  2. Redirect end-user to verification.url
  3. End-user completes verification flow
  4. End-user redirected to your callback URL (if configured)
  5. Receive webhook notification OR poll for results
Header parameters
x-auth-client
stringRequired

Your integration's API key (occasionally referred to as the "Token", "API public key" or "Publishable key"). Required for all API requests.

You can find your API key in the Veriff Customer Portal under Settings > API keys.

Content-Type
stringRequired

Must be set to application/json

Valid values[ "application/json" ]
Exampleapplication/json
Body parameters

Session initialization data

minimal_payload

Empty verification object - minimum required to create a session

{
  "verification": {}
}
expanded_payload

Session with person data, document details, and end-user ID

{
  "verification": {
    "callback": "https://example.com/callback",
    "person": {
      "firstName": "John",
      "lastName": "Smith",
      "idNumber": "123456789"
    },
    "document": {
      "number": "B01234567",
      "type": "PASSPORT",
      "country": "US"
    },
    "endUserId": "c1de400b-1877-4284-8494-071d37916197"
  }
}
session_with_consent

Session with person data, document details, end-user ID, and consent array

{
  "verification": {
    "person": {
      "firstName": "John",
      "lastName": "Smith",
      "idNumber": "123456789"
    },
    "document": {
      "number": "B01234567",
      "type": "PASSPORT",
      "country": "US"
    },
    "endUserId": "c1de400b-1877-4284-8494-071d37916197",
    "consents": [
      {
        "type": "ine",
        "approved": true
      }
    ]
  }
}
aml_screening_standalone

Session for AML/sanctions screening with required person data

{
  "verification": {
    "person": {
      "firstName": "John",
      "lastName": "Smith",
      "dateOfBirth": "1990-01-01"
    }
  }
}
biometric_db_verification

Session for matching end-user's identity and biometric data against governmental biometric databases. Currently available only for Brazilian CPF Biometric Database.

{
  "verification": {
    "person": {
      "idNumber": 12345678901,
      "firstName": "João",
      "lastName": "Silva",
      "dateOfBirth": "1990-01-15"
    },
    "vendorData": 12345678,
    "endUserId": "a1b2c35d-e8f7-6d5e-3cd2-a1b2c35db3d4"
  }
}
br_cadastro_unico_database

Session to validate Brazilian users against social benefit registries. See here for full documentation.

{
  "verification": {
    "person": {
      "idNumber": 12345678901,
      "dateOfBirth": "1990-01-15"
    }
  }
}
br_probet_database

Session to validate users against Brazil's betting exclusion registries. See here for full documentation.

{
  "verification": {
    "person": {
      "idNumber": 12345678901,
      "dateOfBirth": "1990-01-15"
    }
  }
}
mx_curp_db_verification

Session for Mexican CURP database verification using person ID number

{
  "verification": {
    "person": {
      "idNumber": "VISH560427MSRLNL06"
    }
  }
}
mx_ine_db_verification_using_ife

Session for Mexican INE database verification using CIC and IFE identifier (OCR code) for card type D

{
  "verification": {
    "callback": "https://yourwebsite.com/webhook",
    "document": {
      "number": "123456789M00000000",
      "documentNumberIdentifiers": {
        "mxIfe": "MEX1234567890123"
      }
    }
  }
}
mx_ine_db_verification_using_ine

Session for Mexican INE database verification using CIC and INE identifier (Identificador Ciudadano) for card types E, F, G, and H

{
  "verification": {
    "callback": "https://yourwebsite.com/webhook",
    "document": {
      "number": "123456789M00000000",
      "documentNumberIdentifiers": {
        "mxIne": "MEX1234567890123"
      }
    }
  }
}
proof_of_address_address_matching

Proof of Address address matching session to compare addresses from two different sources

{
  "verification": {
    "person": {
      "firstName": "John",
      "lastName": "Smith"
    },
    "address": {
      "fullAddress": "123, Main Street, Your County, Anytown 12345"
    },
    "proofOfAddress": {
      "acceptableTypes": [
        {
          "name": "UTILITY_BILL"
        },
        {
          "name": "PHONE_BILL"
        },
        {
          "name": "TAX_DOCUMENT"
        }
      ]
    },
    "endUserId": "c1de400b-1877-4284-8494-071d37916197"
  }
}
proof_of_address_simple

Can be used for address extraction and address validation solutions. See the full Proof of Address documentation here

{
  "verification": {
    "proofOfAddress": {
      "acceptableTypes": [
        {
          "name": "UTILITY_BILL"
        },
        {
          "name": "PHONE_BILL"
        },
        {
          "name": "TAX_DOCUMENT"
        }
      ]
    },
    "endUserId": "c1de400b-1877-4284-8494-071d37916197"
  }
}
proof_of_address_with_name_match

Can be used for address extraction and address validation solutions. See the full Proof of Address documentation here

{
  "verification": {
    "person": {
      "firstName": "John",
      "lastName": "Smith"
    },
    "proofOfAddress": {
      "acceptableTypes": [
        {
          "name": "UTILITY_BILL"
        },
        {
          "name": "PHONE_BILL"
        },
        {
          "name": "TAX_DOCUMENT"
        }
      ]
    },
    "endUserId": "c1de400b-1877-4284-8494-071d37916197"
  }
}
selfie_to_selfie_biometric

Session for Biometric Authentication to verify identity by comparing two selfie images

{
  "verification": {
    "person": {
      "firstName": "John",
      "lastName": "Smith"
    },
    "endUserId": "a1b2c35d-e8f7-6d5e-3cd2-a1b2c35db3d4",
    "vendorData": 12345678
  }
}
uk_diatf_m1b

Session for UK DIATF M1B verification with full address

{
  "verification": {
    "address": {
      "fullAddress": "123, Main Street, Your County, Anytown 12345"
    }
  }
}
us_light_kyc

Session for US Database Verification: Light KYC verification with person details and address

{
  "verification": {
    "person": {
      "firstName": "John",
      "lastName": "Smith",
      "dateOfBirth": "1990-01-01",
      "phoneNumber": "8888888888"
    },
    "address": {
      "fullAddress": "123, Main Street, Your County, Anytown 12345"
    }
  }
}
us_ssn_validation

Session for US Database Verification: SSN check with document number and person data

{
  "verification": {
    "person": {
      "firstName": "John",
      "lastName": "Smith",
      "dateOfBirth": "1990-01-01"
    },
    "document": {
      "number": "123456789"
    }
  }
}
Expand All
object
verification
object Required

Verification object

callback
string

The callback URL to where the end-user is redirected after the verification session is completed.

Default is visible in the Veriff Customer Portal -> Settings. Changing the value in this request body will overwrite the default callback URL, but it will not change the callback URL that is visible in the Customer Portal.

Examplehttps://example.com/callback
person
object

Data about the person being verified.

firstName
string

Person's first name.

ExampleJohn
lastName
string

Person's last name.

ExampleSmith
idNumber
string

Person's national identification number.

Example123456789
phoneNumber
string

Person's phone number.

Example8888888888
gender
string

Person's gender.

Valid values[ "M", "MALE", "F", "FEMALE" ]
ExampleM
dateOfBirth
string (YYYY-MM-DD)

Person's date of birth.

Example1990-01-01
email
string

Person's email address.

Examplejohn.smith@example.com
maritalStatus
string

Person's marital status (mandatory only for some registry checks).

Valid values[ "single", "married", "divorced", "widowed" ]
Examplesingle
isDeceased
boolean

Person's deceased status (mandatory only for some registry checks).

Valid values[ true, false ]
Examplefalse
document
object

Data about the document of the person being verified.

number
string

Document number, [a-zA-Z0-9] characters only.

ExampleB01234567
country
string (ISO 3166-1 Alpha-2)

Document issuing country, in capital letters.

ExampleUS
type
string
Valid values[ "ID_CARD", "PASSPORT", "DRIVERS_LICENSE", "RESIDENCE_PERMIT" ]
ExamplePASSPORT
firstIssue
string (YYYY-MM-DD)

Date of the document's first issue.

Example2022-01-01
idCardType
string

Document type for the ID card, [a-zA-z] characters only.

Optional, only required for Colombia identity verification.

Valid values[ "CE", "CC", "TI" ]
ExampleCC
documentNumberIdentifiers
object

Specific document number identifiers.

Optional, currently used only for the Official Database Verification step for INE database verification solution.

mxIne
string

Field representing the last 9 digits of the first line of the MRZ of an INE card. Also known as "Identificador del ciudadano".

Example158912347
mxIfe
string

Field representing the last 13 digits of the first line of the MRZ of an IFE card. Also known as "ocr".

Example1234567890123
address
object

Data about the address of the person being verified.

fullAddress
string

Full address (mandatory only for UK DIATF M1B profile flow).

Example123, Main Street, Your County, Anytown 12345
proofOfAddress
object

Data about the PoA document of the person being verified.

Optional, should be only used in Proof of Address integrations.

acceptableTypes
Array of object (ProofOfAddressAcceptableTypes)

Accepted types for proof of address document.

This parameter should be sent only when using the proof of address solution and after the Acceptable document types feature has been configured for your integration.

object
name
string Required

Name of the accepted proof of address document type.

ExampleUTILITY_BILL
vendorData
string

The unique identifier that you created for your end-user. It can be max 1,000 characters long and contain only non-semantic data that can not be resolved or used outside your systems or environments.

Veriff returns it unmodified in webhooks and API response payloads, or as null if not provided.

Example1234567890
endUserId
string (uuid)

The UUID that you created for your end-user, that can not be resolved or used outside your systems or environments.

Veriff returns it unmodified in webhooks and API response payloads, or as null if not provided.

Examplec1de400b-1877-4284-8494-071d37916197
consents
Array of object (CreateSessionConsent)

Array of objects listing the type of consent given.

Optional, should be only included for solutions/products that require consent (e.g., MX INE Biometric Database or Indian Aadhaar Database Verification).

object
type
string

Indicates the feature for which the consent is given.

Valid values[ "ine", "bipa", "aadhaar" ]
Exampleine
approved
boolean

If true, indicates that the consent has been given.

true is mandatory to start the INE Biometric Database Verification. If false or missing, the session is not created.

Exampletrue
Responses
200

Created session

Headers
Content-Type
string
Response content type.
Exampleapplication/json
x-auth-client
string
API key echoed back in response.
x-hmac-signature
string
Response body signed with the shared secret key. Required to authenticate the response sender.
Expand All
object
status
string

API request status.

Examplesuccess
verification
object

Verification object.

status
string

Verification session status.

Examplecreated
id
string (uuid)

UUID v4 which identifies the verification session.

Example123e4567-e89b-12d3-a456-426614174000
url
string

URL of the verification session. The end-user is redirected here to go through the flow. It is a combination of the baseUrl and the sessionToken.

Examplehttps://exampleURL.com/v/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
sessionToken
string

Session-specific token of the verification.

ExampleeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
host
string

The base url the sessionToken can be used for.

Examplehttps://exampleURL.com
endUserId
string (uuid) | null

The UUID that you created for your end-user, that can not be resolved or used outside your systems or environments. Veriff returns it unmodified in webhooks and API response payloads, or as null if not provided.

Examplec1de400b-1877-4284-8494-071d37916197
vendorData
string | null

The unique identifier that you created for your end-user. It can be max 1,000 characters long and contain only non-semantic data that can not be resolved or used outside your systems or environments. Veriff returns it unmodified in webhooks and API response payloads, or as null if not provided.

Example1234567890
400

Bad request

Headers
Content-Type
string
Response content type.
Exampleapplication/json
x-auth-client
string
API key echoed back in response.
x-hmac-signature
string
Response body signed with the shared secret key. Required to authenticate the response sender.
object
status
string
Valid values[ "fail" ]
Examplefail
code
string
Example1101
message
string
ExampleValidation failed
401

Unauthorized

Headers
Content-Type
string
Response content type.
Exampleapplication/json
x-auth-client
string
API key echoed back in response.
x-hmac-signature
string
Response body signed with the shared secret key. Required to authenticate the response sender.
object
status
string
Valid values[ "fail" ]
Examplefail
code
string
Example1101
message
string
ExampleMandatory X-AUTH-CLIENT header containing the API key is missing from the request.
429

Too many requests

Headers
Content-Type
string
Response content type.
Exampleapplication/json
x-auth-client
string
API key echoed back in response.
x-hmac-signature
string
Response body signed with the shared secret key. Required to authenticate the response sender.
object
status
string
Valid values[ "fail" ]
Examplefail
code
string
Example1004
message
string
ExampleToo many requests.
500

Internal server error

Headers
Content-Type
string
Response content type.
Exampleapplication/json
x-auth-client
string
API key echoed back in response.
x-hmac-signature
string
Response body signed with the shared secret key. Required to authenticate the response sender.
object
status
string
Valid values[ "fail" ]
Examplefail
code
string
Example1101
message
string
ExampleSomething went wrong



Document Versioning

Changelog

Date

Description

Mar 9, 2026

Documentation updated: parent categories rearranged, intro section expanded, request and response examples added

Jan 6, 2026

New parameter occupation added to person object

Nov 6, 2025

"Article Versoning" renamed to "Changelog"
Changelog updated

Oct 30, 2025

documentNumberIdentifiers object added

Sep 16, 2025

vrf-integration-id header removed

Aug 6, 2025

Response headers added

Jul 11, 2025

Improved the note in the intro section about session creation, and about finding request parameters from Product Guides

Apr 30, 2025

- New parameters added to request's verification.person object: email, maritalStatus and isDeceased for registry checks

- New header vrf-integration-id added to support the new Flexible API keys solution

Apr 22, 2025

proofOfAddress object added to support sending proof of address data over API. This parameter is solution-specific, it is not commonly needed.

Mar 12, 2025

Documentation published