Error Code Changes for US Government Verification

We are updating the error code definitions and response statuses for the US Government Verification module. These changes are designed to improve result explainability, reduce ambiguity, and make it easier to interpret session outcomes in the Omni Dashboard and via API responses.

What's Changing

1. Status Changes: FAILUNKNOWNfor select error codes.

Several error codes that previously returned a FAIL status will now return UNKNOWN. This better reflects that these outcomes are not a definitive verification failure, rather they indicate the verification could not be completed due to missing inputs, configuration issues, or connectivity problems.

Error CodeDescriptionOld StatusNew Status
providerNotConfiguredProvider is not configured or incorrectly configured for this flowFAILUNKNOWN
missingDocumentIdDocument number missing or has an invalid patternFAILUNKNOWN
invalidExpirationDateExpiration date is not valid per document standardsFAILUNKNOWN
notEnoughDataOne or more required fields are missing or invalidFAILUNKNOWN
missingSelfieProvider requires selfie for processing but not provided in sessionFAILUNKNOWN
connectionErrorError occurred during processing within provider environmentFAILUNKNOWN
infrastructureErrorError occurred during processing within Incode environmentFAILUNKNOWN

2. Deprecated Error Codes & New Mapping

The following error codes are being deprecated. They will no longer be returned. Sessions that would have previously triggered these codes will now return one of the more specific replacement codes listed below.

Deprecated CodeOld DescriptionNow Mapped To
validationErrorGrouped validation failure covering: record not found, data mismatch, restricted record, or face match faileduserNotFound, faceComparisonFailed (more specific codes per actual failure reason)
providerUnavailableDMV or AAMVA provider service unavailable or credentials invalidconnectionError

3. Updated Error Descriptions

Some error codes retain the same status but have updated descriptions for improved clarity. No behavioral changes are associated with these, only the human-readable description has been refined. Refer to the full table of error codes for details.

Error Code Table
    <th style={{ textAlign: "left" }}>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td style={{ textAlign: "left" }}>
      `providerNotConfigured`
    </td>

    <td style={{ textAlign: "left" }}>
      **Provider Not Configured**<br />
      Provider is not configured or is incorrectly configured for this flow.
    </td>
  </tr>

  <tr>
    <td style={{ textAlign: "left" }}>
      `missingDocumentId`
    </td>

    <td style={{ textAlign: "left" }}>
      **Missing Document Number**<br />
      Document number missing or has an invalid pattern.
    </td>
  </tr>

  <tr>
    <td style={{ textAlign: "left" }}>
      `invalidExpirationDate`
    </td>

    <td style={{ textAlign: "left" }}>
      **Invalid Expiration Date**<br />
      Expiration date is not valid per document standards.
    </td>
  </tr>

  <tr>
    <td style={{ textAlign: "left" }}>
      `notEnoughData`
    </td>

    <td style={{ textAlign: "left" }}>
      **Missing Required Data**<br />
      One or more required fields are missing or invalid.
    </td>
  </tr>

  <tr>
    <td style={{ textAlign: "left" }}>
      `missingSelfie`
    </td>

    <td style={{ textAlign: "left" }}>
      **Missing Selfie**<br />
      Provider requires selfie for processing but not provided in session.
    </td>
  </tr>

  <tr>
    <td style={{ textAlign: "left" }}>
      `documentTypeNotSupported`
    </td>

    <td style={{ textAlign: "left" }}>
      **Document Type Not Supported**<br />
      Invalid document type for validation by the configured provider.
    </td>
  </tr>

  <tr>
    <td style={{ textAlign: "left" }}>
      `geographicRegionNotSupported`
    </td>

    <td style={{ textAlign: "left" }}>
      **Country Not Supported**<br />
      Document country not supported by the configured provider.
    </td>
  </tr>

  <tr>
    <td style={{ textAlign: "left" }}>
      `geographicStateRegionNotSupported`
    </td>

    <td style={{ textAlign: "left" }}>
      **State Not Supported**<br />
      Document state not supported by the configured provider.
    </td>
  </tr>

  <tr>
    <td style={{ textAlign: "left" }}>
      `connectionError`
    </td>

    <td style={{ textAlign: "left" }}>
      **Provider Connection Error**<br />
      Error occurred during processing within provider environment.
    </td>
  </tr>

  <tr>
    <td style={{ textAlign: "left" }}>
      `infrastructureError`
    </td>

    <td style={{ textAlign: "left" }}>
      **Incode Processing Error**<br />
      Error occurred during processing within Incode environment.
    </td>
  </tr>

  <tr>
    <td style={{ textAlign: "left" }}>
      `userNotFound`
    </td>

    <td style={{ textAlign: "left" }}>
      **User Not Found**<br />
      ID data doesn't match the government database.
    </td>
  </tr>

  <tr>
    <td style={{ textAlign: "left" }}>
      `faceComparisonFailed`
    </td>

    <td style={{ textAlign: "left" }}>
      **Face Match Failed**<br />
      Selfie does not match government database portrait.
    </td>
  </tr>
</tbody>



What's NOT Changing

  • The API interface is unchanged. Error codes continue to be returned in the same fields and same response structure. This update is fully backwards compatible, no integration changes are required.
  • Error codes remain available in Business Rules. All error codes (including newly renamed and updated ones) continue to be exposed in Business Rules, so you can configure FAIL or UNKNOWN handling as needed.
  • Error codes remain unchanged for non US connections. The error codes for all non US government verification connections remain unchanged.
  • Billing behavior is unchanged for all affected codes.

Action Required

⚠️

If your implementation uses the impacted error codes for downstream decisioning logic or alerting, please review the status changes listed above and update your logic accordingly.

If you prefer to continue failing sessions that now return UNKNOWN (e.g., connectionError), you can configure this via Business Rules without any code changes on your end.


Questions?

Reach out to your Incode integration contact or submit a support request if you have questions about how these changes may affect your specific implementation.