IDScan.net
Search Results for

    Show / Hide Table of Contents

    Canadian DMV API v4

    This section describes how to integrate with Canadian DMV v4 API. For developers already familiar with our platform, the v4 API adheres to the standardized request model used by v1 API, but unlike v1 API, v4 uses a different response model (see Response Data below).

    Endpoint URLs

    https://screening.idware.net/api/v4/Check
    or
    https://screening.idscan.net/api/v4/Check

    HTTP Method

    POST

    Content Type

    application/json

    Authorization

    This API uses Bearer Token authentication. Include the following header in your request:

    Authorization: Bearer {YOUR_TOKEN_HERE}

    Important

    Be sure there is a one space between Bearer and {YOUR_TOKEN_HERE}

    If you are already familiar with our platform, you can obtain your API token by visiting the Screening Service Web portal. Detailed instructions on finding your token are available in our documentation.

    If you are new to our platform, please contact our team at sales@idscan.net to get started, or reach out to support@idscan.net with any questions.

    v4 API version Header

    Although the endpoint URL includes the version, you must also include the api-version header for proper request routing:

    api-version: 4.0

    Request Data

    Here is a JSON request data example:

    {
      "dateOfBirths": "1989-12-24",
      "issuedBy": "PE",
      "services": [
        "58B76696-75E2-466F-97A2-1B216ED40108"
      ],
      "driverLicenseNumber": "421450",
      "driverLicenseClass": "1",
      "metadata": {
        "myOwnRequestId": "qw-12345"
      }
    }
    

    Request fields description

    Field Name Required Type Possible Values
    "dateOfBirths" Yes String Date string in yyyy-MM-dd format
    "issuedBy" Yes String Two-letter province/territory code (e.g., PE, ON, BC)
    "services" Yes Array[string] Must contain exactly: "58B76696-75E2-466F-97A2-1B216ED40108"
    "driverLicenseNumber" Yes String Document number as issued by the province
    "driverLicenseClass" No String Up to 2 characters (one class per verification)
    "metadata" No Object Custom key-value pairs for your tracking (e.g., "myOwnRequestId": "qw-12345"). See the details here
    Important

    When the "services" field is null or is an empty array all the services your account has enabled will run. We do not recommend submitting request in this way. We recommend being explicit about which services you would like to run.

    Response Data

    Here is the JSON response example for the request above:

    [
      {
        "requestDetail": {
          "requestLogId": 17528344,
          "requestDateUtc": "2025-09-06T10:07:39.8618708Z"
        },
        "metadata": {
          "myOwnRequestId": "qw-12345"
        },
        "success": true,
        "error": {
          "message": null,
          "traceId": null
        },
        "service": {
          "id": "58b76696-75e2-466f-97a2-1b216ed40108",
          "name": "Canadian DMV Verification",
          "description": "Canadian Driver License Data Verification",
          "isMultipleProfiles": false
        },
        "location": {
          "locationId": null,
          "readOnlyAccessLocationIds": null
        },
        "serviceVerificationResult": {
          "statusCode": 1,
          "statusString": "Passed"
        },
        "profiles": [
          {
            "serviceResponseRaw": "{\"InternalId\":null,\"FirstName\":\"\",\"MiddleName\":\"\",\"LastName\":\"\",\"FullName\":\"\",\"DateOfBirths\":\"12/24/1989\",\"Sex\":null,\"Address\":null,\"CountryName\":null,\"CountryCode\":null,\"Street1\":null,\"Street2\":null,\"City\":null,\"State\":\"PE\",\"IssuedBy\":\"PE\",\"PostalCode\":null,\"County\":null,\"Convictiontype\":null,\"Aliases\":null,\"Offenses\":null,\"AdditionalAddresses\":null,\"AdditionalBirthDates\":null,\"BirthPlaces\":null,\"Identifiers\":null,\"Nationalities\":null,\"ServiceMatchResult\":{\"FirstNameMatchResult\":{\"Code\":0,\"CodeString\":\"None\"},\"LastNameMatchResult\":{\"Code\":0,\"CodeString\":\"None\"},\"MiddleNameMatchResult\":{\"Code\":0,\"CodeString\":\"None\"},\"FullNameMatchResult\":{\"Code\":0,\"CodeString\":\"None\"},\"BirthDateMatchResult\":{\"Code\":3,\"CodeString\":\"Match\"},\"PersonSexMatchResult\":{\"Code\":0,\"CodeString\":\"None\"},\"AddressMatchResult\":{\"Code\":0,\"CodeString\":\"None\"},\"CityMatchResult\":{\"Code\":0,\"CodeString\":\"None\"},\"StateMatchResult\":{\"Code\":3,\"CodeString\":\"Match\"},\"PostalCodeMatchResult\":{\"Code\":0,\"CodeString\":\"None\"},\"IDNumberMatchResult\":{\"Code\":3,\"CodeString\":\"Match\"},\"DocumentTypeMatchResult\":null,\"IssuedByMatchResult\":{\"Code\":3,\"CodeString\":\"Match\"}},\"PhotoUrl\":null,\"Source\":null,\"OtherInformation\":null,\"IDNumber\":\"421450\",\"DocumentType\":null,\"Ssn\":null,\"Questions\":null,\"CurrentLicenseClasses\":\"1,3,5\",\"IdentiCheckValidationResult\":0,\"VerificationResult\":null,\"DriverLicenseVerificationResult\":null,\"CanadianDriverLicenseVerificationResult\":{\"LicenseVerificationResult\":{\"Status\":\"Valid\",\"Code\":1,\"Message\":\"Driver's license is valid\"},\"LicenseClassVerificationStatus\":\"Class Match\",\"CurrentLicenseClasses\":\"1,3,5\"}}",
            "data": [
              {
                "fieldName": "FirstName",
                "caption": "First Name",
                "fieldType": "String",
                "value": "",
                "valueString": "",
                "matchStatusCode": 0,
                "matchStatusString": "None",
                "message": null,
                "score": 0
              },
              {
                "fieldName": "MiddleName",
                "caption": "Middle Name",
                "fieldType": "String",
                "value": "",
                "valueString": "",
                "matchStatusCode": 0,
                "matchStatusString": "None",
                "message": null,
                "score": 0
              },
              {
                "fieldName": "LastName",
                "caption": "Last Name",
                "fieldType": "String",
                "value": "",
                "valueString": "",
                "matchStatusCode": 0,
                "matchStatusString": "None",
                "message": null,
                "score": 0
              },
              {
                "fieldName": "FullName",
                "caption": "Full Name",
                "fieldType": "String",
                "value": "",
                "valueString": "",
                "matchStatusCode": 0,
                "matchStatusString": "None",
                "message": null,
                "score": 0
              },
              {
                "fieldName": "BirthDate",
                "caption": "BirthDate",
                "fieldType": "String",
                "value": "12/24/1989",
                "valueString": "12/24/1989",
                "matchStatusCode": 3,
                "matchStatusString": "Match",
                "message": null,
                "score": 0
              },
              {
                "fieldName": "State",
                "caption": "State",
                "fieldType": "String",
                "value": "PE",
                "valueString": "PE",
                "matchStatusCode": 3,
                "matchStatusString": "Match",
                "message": null,
                "score": 0
              },
              {
                "fieldName": "IssuedBy",
                "caption": "Issued By",
                "fieldType": "String",
                "value": "PE",
                "valueString": "PE",
                "matchStatusCode": 3,
                "matchStatusString": "Match",
                "message": null,
                "score": 0
              },
              {
                "fieldName": "IDNumber",
                "caption": "ID Number",
                "fieldType": "String",
                "value": "421450",
                "valueString": "421450",
                "matchStatusCode": 3,
                "matchStatusString": "Match",
                "message": "Driver's license is valid",
                "score": 0
              },
              {
                "fieldName": "CurrentLicenseClasses",
                "caption": "Current License Classes (Canadian DMV only)",
                "fieldType": "String",
                "value": "1,3,5",
                "valueString": "1,3,5",
                "matchStatusCode": 0,
                "matchStatusString": "None",
                "message": null,
                "score": 0
              }
            ]
          }
        ]
      }
    ]
    

    Response fields description

    A successful verification returns a response containing request detail, service information and a profile object. Note, the metadata field from your request is echoed back in the response (see the details here). Since this service uses a few fields, all non-used fields will be null or empty string value.

    #1. "RequestDetail" Object

    • RequestLogId (int): Internal Screening Service request identifier (Not your own! Please, use Metadata field to mark request by your own identifier or any additional info. See the details here)
    • RequestDateUtc (DateTime): UTC date when the request was sent.

    #2. "Success" field (bool)

    • true if check is successful, otherwise false and the error object will be filled in by error message (string) and traceId (string).

    #3. "Service" Object

    Contains common information about service, such as service name, service identifier, etc.

    #4. "Location" object

    Not required for services, but you can review the detailed guide here

    #5. "ServiceVerificationResult" Object

    Unlike the v1 API response model which only contains Canadian Driver License Verification Result, the v4 API also returns an additional overall verification status. The ServiceVerificationResult object contains this aggregated verification status. Possible values:

    StatusCode (int) StatusString (string)
    0 Failed
    1 Passed
    2 Flagged
    3 Undefined

    For Canadian DMV service, the workflow for calculating the ServiceVerificationResult based on the Canadian Driver License Verification Result:

    Important

    Billable verification requests are those that return ServiceVerificationResult Status Codes 0 through 2. Code 3 (Undefined) does not count against your subscription quota. If you receive Undefined status, please try again after 15 min.

    #6. "Profiles" Array

    • serviceResponseRaw (string): JSON string with raw service response, the same as profiles results from v1 API. You can use this JSON by your own way to calculate additional statuses, getting fields, values, etc.

    • data (array of objects): dynamic number of objects with the match result of the fields.

    For example,

    {
        "fieldName": "IDNumber",
        "caption": "ID Number",
        "fieldType": "String",
        "value": "421450",
        "valueString": "421450",
        "matchStatusCode": 3,
        "matchStatusString": "Match",
        "message": "Driver's license is valid",
        "score": 0
    }
    
    • fieldName (string): Name of the matched field, e.g. "IDNumber", "BirthDate", "FirstName", etc.
    • caption (string): User-friendly field's name description, e.g. "ID Number", "Current License Classes (Canadian DMV only)", "Issued By", etc.
    • fieldType (string): The type of field. For Canadian DMV Service all fields have "String" value for this.
    • value (string): The value for the field is taken from the request or the service's result, e.g. for IDNumber field, value is "421450", for "IssuedBy" - "PE", etc.
    • valueString (string): The string representation of the value field.
    • matchStatusCode (int): Integer code number for the field's Match result. See the table below.
    • matchStatusString (string): The string representation of the matchStatusCode field. See the table below.
    MatchStatusCode (int) MatchStatusString (string)
    0 None
    1 No Match
    2 Partial Match
    3 Match
    Note

    Match status code 0 (None) means match was not performed for the field at all (in cases when the input value is null or Jurisdiction returns null for such field). Match status code 1 (No Match) means match was performed, but values weren't matched.

    • message (string): Any additional message which Jurisdiction returned for the field.
    • score (int): Not used for Canadian DMV Service, so value is 0. The field is used for IdentiFraud service

    CURL request

    You can also test the service via CURL. Here is an example:

    curl -X POST https://screening.idscan.net/api/v4/Check -H "Content-Type: application/json" -H "Authorization: Bearer YOUR-TOKEN-HERE"  -H "api-version: 4.0" -d "{\"dateOfBirths\": \"1989-12-24\",\"issuedBy\": \"PE\",\"services\": [\"58B76696-75E2-466F-97A2-1B216ED40108\"],\"driverLicenseNumber\": \"421450\",\"driverLicenseClass\": \"1\"}"
    

    Test cases

    You can test and receive all license verification statuses with your TEST token. You can find test cases here

    Error handling

    Sometimes something went wrong and it's good to know what and how to deal with it. Common errors are described here. Additional errors are returned from this service are described here.

    Back to top IDScan.net IDScan.net GitHub