IDScan.net
Search Results for

    Show / Hide Table of Contents

    California DMV Digital Signature Verification API v4

    This section describes how to integrate with the California DMV Digital Signature Verification 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, v4 uses a different response model (see Response Data below).

    Endpoint URL

    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

    {
      "services": ["19862c3a-513f-4d48-ab36-fa583e8df90a"],
      "trackString": "@\n\nANSI 636014100102DL00410294ZC03350220DLDAQD12345671\n..."
    }
    

    Request fields description

    Field Name Required Type Possible Values
    "services" Yes Array[string] Must contain exactly: "19862c3a-513f-4d48-ab36-fa583e8df90a"
    "trackString" Yes String Raw PDF417 barcode string read from the back of the document
    Important

    When the "services" field is null or is an empty array, all services enabled on your account will run. We do not recommend submitting requests this way. Be explicit about which services you want to run.

    Response Data

    [
      {
        "requestDetail": {
          "requestLogId": 2644,
          "requestDateUtc": "2026-06-10T09:33:57.4462461Z"
        },
        "metadata": {},
        "success": true,
        "error": {
          "message": null,
          "traceId": null
        },
        "service": {
          "id": "19862c3a-513f-4d48-ab36-fa583e8df90a",
          "name": "DMV Digital Signature Verification",
          "description": "Verifying Digital Signatures on US DL/ID Documents",
          "isMultipleProfiles": false
        },
        "location": {
          "locationId": null,
          "readOnlyAccessLocationIds": null
        },
        "serviceVerificationResult": {
          "statusCode": 1,
          "statusString": "Passed"
        },
        "profiles": [
          {
            "serviceResponseRaw": "{...}",
            "data": [
              {
                "fieldName": "IDNumber",
                "caption": "ID Number",
                "fieldType": "String",
                "value": "D12345671",
                "valueString": "D12345671",
                "matchStatusCode": 3,
                "matchStatusString": "Match",
                "message": "Document is Valid",
                "score": 0
              },
              {
                "fieldName": "RevocationStatus",
                "caption": "Revocation Status",
                "fieldType": "String",
                "value": "Not Revoked",
                "valueString": "Not Revoked",
                "matchStatusCode": 3,
                "matchStatusString": "Match",
                "message": "Document is Not Revoked",
                "score": 0
              }
            ]
          }
        ]
      }
    ]
    

    Response fields description

    A successful verification returns a response containing request detail, service information and a profile object.

    #1. "RequestDetail" Object

    • requestLogId (int): Internal Screening Service request identifier.
    • requestDateUtc (DateTime): UTC timestamp of the request.

    #2. "Success" field (bool)

    • true if the check completed successfully, otherwise false and the error object will contain an error message (string) and traceId (string).

    #3. "Service" Object

    Contains common information about the service: name, identifier, description, etc.

    #4. "Location" Object

    Not required for this service, but you can review the detailed guide here.

    #5. "ServiceVerificationResult" Object

    Unlike the v1 API response model which returns individual isValid / isRevoked flags, the v4 API returns an aggregated overall verification status. The serviceVerificationResult object contains this status. Possible values:

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

    The following diagram illustrates how the v4 serviceVerificationResult is calculated based on the underlying verification results:

    DMV Digital Signature Verification v4 flow

    Important

    Billable verification requests are those that return serviceVerificationResult status codes 0 or 1. Code 3 (Undefined) does not count against your subscription quota. If you receive Undefined status, please check your request for errors (see Error handling).

    #6. "Profiles" Array

    • serviceResponseRaw (string): JSON string containing the raw internal service response. Note that this uses a different structure than the v1 API response: DMVDigitalSignatureVerificationResult contains nested ValidationResult and RevocationResult sub-objects with PascalCase keys. To access the verification outcome, parse the JSON and read DMVDigitalSignatureVerificationResult.ValidationResult.IsValid and DMVDigitalSignatureVerificationResult.RevocationResult.IsRevoked.

    • data (array of objects): Dynamic list of field match result objects. In addition to IDNumber and RevocationStatus, the array also includes personal data fields extracted from the barcode (FirstName, LastName, BirthDate, Address, etc.), each with a matchStatusCode.

    The two key fields for this service (truncated example below — real responses contain more fields):

    {
      "fieldName": "IDNumber",
      "caption": "ID Number",
      "fieldType": "String",
      "value": "D12345671",
      "valueString": "D12345671",
      "matchStatusCode": 3,
      "matchStatusString": "Match",
      "message": "Document is Valid",
      "score": 0
    }
    
    Field Type Description
    fieldName string Name of the field, e.g. "IDNumber", "RevocationStatus", "FirstName", etc.
    caption string User-friendly field label, e.g. "ID Number", "Revocation Status", "First Name", etc.
    fieldType string Field type. All fields for this service have value "String".
    value string The value extracted from the barcode or returned by the verification service.
    valueString string String representation of value.
    matchStatusCode int Integer code for the field match result. See the table below.
    matchStatusString string String representation of matchStatusCode. See the table below.
    message string Additional message returned for the field (e.g. "Document is Valid", "Document is Revoked").
    score int Not used for this service. Value is always 0.
    MatchStatusCode (int) MatchStatusString (string)
    1 No Match
    3 Match

    The two key fields to check in data[]:

    • IDNumber: matchStatusCode = 3 (Match) means the cryptographic signature is valid (message: "Document is Valid"). matchStatusCode = 1 (No Match) means invalid (message: "Document is Not Valid").
    • RevocationStatus: value = "Not Revoked" or "Revoked". matchStatusCode = 3 (Match) means not revoked; matchStatusCode = 1 (No Match) means revoked.

    CURL request

    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 "{\"services\":[\"19862c3a-513f-4d48-ab36-fa583e8df90a\"],\"trackString\":\"@\\n\\nANSI 636014100102DL...\"}"
    

    Test cases

    You can test and receive all verification statuses with your TEST token. Test cases are available here.

    Error handling

    Common errors are described here. Additional errors specific to this service are described here.

    Back to top IDScan.net IDScan.net GitHub