Adverse Actions

When a background check reveals information that may lead to an adverse employment decision, you must follow the FCRA-mandated adverse action process. CoreVerify automates the required pre-adverse and post-adverse notices with configurable waiting periods.

Adverse Action Workflow

  1. Adjudicate a report with adverse_action decision
  2. Initiate an adverse action — CoreVerify sends the pre-adverse notice with a copy of the report
  3. Wait the required period (minimum 5 business days) for the candidate to dispute
  4. If no dispute, CoreVerify sends the final post-adverse notice automatically
  5. If the candidate disputes, status moves to disputed for review

Status Values

StatusDescription
pre_notice_sentPre-adverse notice emailed to candidate; waiting period has begun
waiting_periodWithin the mandatory waiting period before final notice can be sent
post_notice_sentFinal adverse action notice sent; process complete
disputedCandidate filed a dispute during the waiting period
cancelledAdverse action was cancelled before completion
POST/v1/adverse-actions

Initiate Adverse Action

Starts the adverse action process for a report. Sends the pre-adverse notice to the candidate and begins the waiting period.

Request Body

FieldTypeRequiredDescription
reportIdstringYesID of the adjudicated report
waitingPeriodDaysintegerNoBusiness days to wait before post-adverse notice (min: 5, default: 5)
reasonstringNoReason for the adverse action (included in the notice)

Example Request

curl
curl -X POST https://api.coreverify.com/v1/adverse-actions \
  -H "Authorization: Bearer sk_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "reportId": "rpt_3FpQwLvMcYnR",
    "waitingPeriodDays": 5,
    "reason": "Undisclosed criminal conviction within past 7 years"
  }'

Response

201 Created
{
  "data": {
    "id": "aa_5HnKpRtXcYvL",
    "reportId": "rpt_3FpQwLvMcYnR",
    "candidateId": "cand_7xKm2pQrNvLw",
    "status": "pre_notice_sent",
    "reason": "Undisclosed criminal conviction within past 7 years",
    "waitingPeriodDays": 5,
    "preNoticeSentAt": "2024-03-16T10:00:00Z",
    "waitingPeriodEndsAt": "2024-03-23T10:00:00Z",
    "postNoticeSentAt": null,
    "disputedAt": null,
    "cancelledAt": null,
    "createdAt": "2024-03-16T10:00:00Z",
    "updatedAt": "2024-03-16T10:00:00Z"
  }
}
GET/v1/adverse-actions

List Adverse Actions

Returns a paginated list of all adverse actions, sorted by creation date descending.

Query Parameters

ParameterTypeDescription
statusstringFilter by status value
candidateIdstringFilter to a specific candidate
pageintegerPage number (default: 1)
per_pageintegerResults per page, max 100 (default: 25)

Example Response

200 OK
{
  "data": [
    {
      "id": "aa_5HnKpRtXcYvL",
      "reportId": "rpt_3FpQwLvMcYnR",
      "candidateId": "cand_7xKm2pQrNvLw",
      "status": "post_notice_sent",
      "preNoticeSentAt": "2024-03-16T10:00:00Z",
      "postNoticeSentAt": "2024-03-23T10:05:00Z",
      "createdAt": "2024-03-16T10:00:00Z"
    },
    {
      "id": "aa_2BcDeFgHiJkL",
      "reportId": "rpt_8TkBzXrJdWqM",
      "candidateId": "cand_9mWn4bRsTeXz",
      "status": "disputed",
      "preNoticeSentAt": "2024-03-14T11:00:00Z",
      "postNoticeSentAt": null,
      "createdAt": "2024-03-14T11:00:00Z"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total": 12,
    "total_pages": 1
  }
}
GET/v1/adverse-actions/:id

Retrieve an Adverse Action

Returns the full details of a single adverse action record.

Example Request

curl
curl https://api.coreverify.com/v1/adverse-actions/aa_5HnKpRtXcYvL \
  -H "Authorization: Bearer sk_live_your_key"
PATCH/v1/adverse-actions/:id

Update an Adverse Action

Update an adverse action in progress. You can cancel a pending adverse action or resolve a dispute.

Request Body

FieldTypeDescription
statusstringSet to cancelled to cancel, or post_notice_sent to manually close a dispute
notesstringInternal notes about the update

Example Request — Cancel

curl
curl -X PATCH https://api.coreverify.com/v1/adverse-actions/aa_5HnKpRtXcYvL \
  -H "Authorization: Bearer sk_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "cancelled",
    "notes": "Candidate provided additional context that resolved the concern"
  }'