E-Verify Tentative Nonconfirmations (TNCs)

Handle E-Verify TNCs, present the Further Action Notice (FAN), and manage pending_referral case workflows

When E-Verify issues a Tentative Nonconfirmation (TNC), the E-Verify case status in Symmetry I-9 becomes pending_referral. The employer must present a Further Action Notice (FAN) to the employee and record the employee’s election.

🚧

Symmetry does not notify employees directly

Your platform is responsible for alerting employees and administrators when webhooks indicate action is required.

Prerequisites

Trigger: pending_referral webhook

When a case receives a TNC result from E-Verify, Symmetry sends employee.everifyCaseUpdate with status set to pending_referral:

{
  "eventKey": "employee.everifyCaseUpdate",
  "timestamp": "2026-05-19T15:20:20.000Z",
  "data": {
    "employerId": "01971d41-b29d-75cf-a308-12345",
    "employeeId": "01971d45-777a-7002-b025-6789",
    "everifyCase": {
      "submissionId": 111,
      "caseId": "202573907331234",
      "closed": false,
      "status": "pending_referral"
    }
  }
}

The webhook payload is intentionally lightweight. It does not include FAN PDF URLs or referral deadlines. Use the case detail API (below) to enrich your UI.

Phase 1: TNC issued (pending_referral)

1. Handle the webhook

Store at minimum:

  • employerId, employeeId
  • everifyCase.submissionId, everifyCase.caseId
  • everifyCase.status (pending_referral)

2. Enrich case data (optional but recommended)

Fetch the full case details for the employer:

curl --location 'https://api.symmetry.com/i9/v1/employers/{employerId}/everifyCases' \
--header 'Authorization: Bearer ••••••'

Match the list entry where submissionId equals the webhook value. Then get the specific E-Verify case details:

curl --location 'https://api.symmetry.com/i9/v1/employers/{employerId}/everifyCases/{id}' \
--header 'Authorization: Bearer ••••••'

👍

The {id} path parameter is Symmetry’s internal case record ID from the list response—not the DHS caseId.

Sample response:

{
  "id": 67,
  "submission": {
    "submissionId": 315,
    "employeeId": "019e6aea-c187-78f0-bfb9-1234"
  },
  "everifyCase": {
    "caseId": "20265447951123",
    "caseCreatedAt": "2026-05-27T14:07:16.000-06:00",
    "caseResultAt": "2026-05-27T15:03:51.000-06:00",
    "receipt": false,
    "deadlineOn": "2026-06-10",
    "caseStatus": "pending_referral",
    "everifyAccountId": 1,
    "rawResponse": {
      "caseStatus": "PENDING_REFERRAL",
      "caseStatusDisplay": "Tentative Nonconfirmation (DHS)",
      "dhsReferralStatus": "PENDING_REFERRAL"
    },
    "auditLogs": [
      {
        "name": "case_status_change",
        "details": {
          "status": "submitted"
        },
        "serverTimestamp": "2026-05-27T14:07:16-06:00"
      },
      {
        "name": "case_status_change",
        "details": {
          "status": "draft"
        },
        "serverTimestamp": "2026-05-27T14:07:16-06:00"
      },
      {
        "name": "case_status_change",
        "details": {
          "status": "photo_match"
        },
        "serverTimestamp": "2026-05-27T14:07:17-06:00"
      },
      {
        "name": "case_photo_matching_confirmation",
        "details": {
          "status": "Photo Matching Confirmation: not-matching",
          "subdomain": "symmetry",
          "actorName": "Admin Test",
          "subsidiary": "null",
          "photoConfirmation": "not-matching"
        },
        "actorId": "3698123",
        "actorType": "User",
        "serverTimestamp": "2026-05-27T14:14:13-06:00"
      },
      {
        "name": "case_status_change",
        "details": {
          "status": "pending_referral"
        },
        "serverTimestamp": "2026-05-27T15:03:51-06:00"
      }
    ],
    "fanUrl": "https://wb-everify-tnc-documents.s3.us-west-1.amazonaws.com/symmetry-sandbox/fan/67/further_action_notice.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJHQUB3XUO6DDQXWQ%2F20260528%2Fus-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260528T022329Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=d53e2f78e282dd88be4f43cee44428121050a0b208dabc15ccfcef230c6baa34",
    "fanUrlSpanish": "https://wb-everify-tnc-documents.s3.us-west-1.amazonaws.com/symmetry-sandbox/fan/67/further_action_notice_spanish.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJHQUB3XUO6DDQXWQ%2F20260528%2Fus-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260528T022329Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=85ba8991311ce7b42d2eb6d4520097c7afb5166207ae7b906f3c6747a406c4d4",
    "tncI9Correct": false,
    "closureReasons": [
      {
        "name": "The case is being closed because the data entered is incorrect.",
        "code": "INCORRECT_DATA"
      },
      {
        "name": "The case is being closed because another case with the same data already exists.",
        "code": "DUPLICATE_CASE_DATA_EXISTS"
      },
      {
        "name": "The case is being closed with a reason of \"Other\".",
        "code": "OTHER_FREE_TEXT"
      }
    ],
    "visitEverify": true,
    "deleteable": false,
    "unconfirmedDataFields": []
  }
}

Useful fields for TNC (full E-Verify object):

FieldUse
deadlineOnFederal referral/contest window—show prominently to the employee
fanUrl, fanUrlSpanishPDF links
visitEverifyOften true for pending_referral and referred—indicates DHS/SSA involvement may be required
tncI9CorrectIndicates whether the employee confirmed the I-9 information is correct after TNC. Returns true if confirmed correct and false if confirmed incorrect.

3. Notify and launch the employee session

Alert the employee in your app, then request an access token:

curl --location 'https://api.symmetry.com/i9/v1/employers/{employerId}/employees/{employeeId}/generateToken' \
--header 'Authorization: Bearer ••••••'

Sample response:

{
  "token": {
    "embeddedUri": "https://symmetry-sandbox.workbright.com/embedded/new_sign_in?token=412345"
  }
}

Embed or redirect to embeddedUri, not the raw API URL. Tokens are valid for 30 minutes. See Authentication.

4. Employee actions in embedded UI

When the employee is authenticated into the embedded experience, they will see an action-required banner to review their E-Verify case.

Employee embedded experience: E-Verify case action required

Employee embedded experience: E-Verify case action required

The employee will be presented with the following election options:

ElectionTypical outcome
Information is incorrectSignals an I-9 data problem; administrator will need to close the case and trigger a new I-9 for the employee.
Information is correct → Employee will take action (contest)Case moves toward referred; employee must contact SSA and/or DHS within the window shown by deadlineOn.
Information is correct → Will not take actionCase progresses toward closure as unauthorized / no contest.
FAN acknowledgment (all paths)Employee confirms they received and reviewed the FAN.
Employee embedded experience: FAN acknowledgement and election

Employee embedded experience: FAN acknowledgement and election

Phase 2: While status remains pending_referral

  • Case status may stay pending_referral until employee elections and administrator attestation are recorded.
  • Listen for a new employee.everifyCaseUpdate webhook that indicates a change in status.
  • Display deadlineOn from case detail in employee-facing copy when available.

Phase 3: Administrator completion

1. Notify the administrator

pending_referral requires administrator action.

2. Launch administrator E-Verify UI

Use the E-Verify case index endpoint:

curl --location 'https://api.symmetry.com/i9/v1/employers/{employerId}/admins/{adminId}/everifyCases/generateUri' \
--header 'Authorization: Bearer ••••••'

Sample response:

{
  "token": {
    "authenticateUri": "https://symmetry-sandbox.workbright.com/sign_in_with_token?token=1234",
    "embeddedUri": "https://symmetry-sandbox.workbright.com/everify/cases"
  }
}

Open authenticateUri first, then embeddedUri.

3. Administrator actions in embedded UI

In the E-Verify case UI, the administrator typically:

  • Sees the case as Pending Referral (TNC).
  • Checks “I presented the FAN to the employee and informed them of their options.”
  • If the employee reported incorrect I-9 information: closes the case (for example, incorrect data) and initiates a new I-9 for the employee.
  • If the employee will contest: monitors the case after it becomes referred; the employee contacts SSA/DHS and may need E-Verify.gov when visitEverify is true.

Phase 4: Status transitions after employee election

StatusMeaningService provider action
referredEmployee chose to contestRemind employee of deadlineOn; keep admin tasks open; monitor webhooks.
close_case_and_resubmitI-9 data requires correctionGuide admin to new I-9 via embedded administrator experience.
employment_authorized / closed_authorizedFavorable resolutionClear employee and admin alerts.
final_nonconfirmation / closed_nonconfirmationUnfavorable outcomeTrigger your HR/compliance workflow.

Status transitions produce a new employee.everifyCaseUpdate webhook.


Jump to top