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
- Adjudicate a report with
adverse_actiondecision - Initiate an adverse action — CoreVerify sends the pre-adverse notice with a copy of the report
- Wait the required period (minimum 5 business days) for the candidate to dispute
- If no dispute, CoreVerify sends the final post-adverse notice automatically
- If the candidate disputes, status moves to
disputedfor review
Status Values
| Status | Description |
|---|---|
| pre_notice_sent | Pre-adverse notice emailed to candidate; waiting period has begun |
| waiting_period | Within the mandatory waiting period before final notice can be sent |
| post_notice_sent | Final adverse action notice sent; process complete |
| disputed | Candidate filed a dispute during the waiting period |
| cancelled | Adverse action was cancelled before completion |
POST
/v1/adverse-actionsInitiate 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
| Field | Type | Required | Description |
|---|---|---|---|
| reportId | string | Yes | ID of the adjudicated report |
| waitingPeriodDays | integer | No | Business days to wait before post-adverse notice (min: 5, default: 5) |
| reason | string | No | Reason 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-actionsList Adverse Actions
Returns a paginated list of all adverse actions, sorted by creation date descending.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| status | string | Filter by status value |
| candidateId | string | Filter to a specific candidate |
| page | integer | Page number (default: 1) |
| per_page | integer | Results 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/:idRetrieve 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/:idUpdate an Adverse Action
Update an adverse action in progress. You can cancel a pending adverse action or resolve a dispute.
Request Body
| Field | Type | Description |
|---|---|---|
| status | string | Set to cancelled to cancel, or post_notice_sent to manually close a dispute |
| notes | string | Internal 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"
}'