Documentation

Turn screening into infrastructure.

Start with one API call, one hosted flow, and one event stream back to your system. Use hosted screening sessions first. Add monitoring, verification orders, and compliance-aware guidance only when you need them. New organization accounts start in sandbox and move to live access after production approval.

Quickstart

The 10-minute integration

Use this page as the shared implementation hub for product, HR operations, compliance, and engineers. Every major implementation path is deep-linkable so teams can jump straight to the guide they need.

Docs

API quickstart

Create one hosted screening session, redirect the candidate, and listen for lifecycle events.

Start here

Docs

API reference

See the authenticated endpoint families for keys, hosted sessions, webhooks, checks, monitoring, and AI.

View endpoints

Docs

Offerings catalog

Scan packages, verification add-ons, healthcare license tiers, MVR, monitoring, and international scope.

View offerings

Docs

Webhook lifecycle

Map background-check, verification, adverse-action, and monitoring events back into your product.

Wire events

Docs

Sandbox

Use deterministic scenarios for clear reports, records found, need-info, disputes, and monitoring hits.

Test safely

Docs

Settings

Admins create API keys, rotate webhook secrets, inspect deliveries, and request ATS connectors.

Open settings

Access

Create developer account

Use the self-serve organization signup. Your workspace is created immediately, and sandbox access unlocks once the developer responsibilities are accepted.

Open

Access

Log in

Return to your Vuplicity workspace and keep docs access public for the rest of your team.

Open

Access

Manage API keys

Create and revoke API keys from the authenticated integrations surface after admin login.

Open

Access

Manage webhooks

Create webhook subscriptions, rotate secrets, and inspect deliveries from the same admin-only page.

Open

Start with a hosted screening session. Your app creates the session, redirects the candidate, listens for background-check and verification webhook events, and updates candidate status. Everything sensitive stays inside the hosted flow. The Node SDK wraps that flow directly, and the repo example server mirrors the same three-step shape so your team does not have to rebuild the workflow from scratch.

Keep your Vuplicity API key on the server. Create the hosted session in a server route or action, then redirect the browser to the returned `session_url`.

  1. Create developer account through the existing organization signup flow.
  2. Accept the Terms and Consumer Reporting Certification during signup.
  3. Create API key from `/settings/integrations` after logging in as an admin or super admin.
  4. Use sandbox mode first while live provider-backed access is pending approval.
  5. Create hosted screening session from your server.
  6. Redirect the candidate to `session_url`.
  7. Verify webhook signature and map lifecycle events into your own UI.
  8. Run employer-owned blocker checks before invite and before final submit.
  9. Use hosted-session `GET` routes when you need candidate-facing session state details.

1. Create

Call the hosted screening session endpoint with candidate, package, redirect, and webhook URL.

2. Redirect

Send the candidate to the returned session URL. Vuplicity handles disclosure, consent, intake, and document loops.

3. Listen

Process webhook events and map them to your own candidate UI and internal workflow states.

import { Vuplicity } from '@vuplicitychecks/sdk';

const vuplicity = new Vuplicity(process.env.VUPLICITY_API_KEY!);

export async function POST(request: Request) {
  const formData = await request.formData();

  const session = await vuplicity.screening.createSession({
    candidate: {
      first_name: String(formData.get('first_name') || 'Jane'),
      last_name: String(formData.get('last_name') || 'Doe'),
      email: String(formData.get('email') || '[email protected]'),
      position: String(formData.get('position') || 'Operations Analyst'),
    },
    package: 'essential',
    include_monitoring: true,
    redirect_url: 'https://app.example.com/screening/complete',
    webhook_url: 'https://app.example.com/api/vuplicity/webhooks',
  });

  return Response.redirect(session.session_url, 302);
}

The snippet above shows the current public Node SDK surface. The package is published as@vuplicitychecks/sdk, and the reference templates under examples/ mirror the same hosted-session-first flow for Next.js, marketplace onboarding, and ATS integrations.

Example

Next.js screening

App Router start-screening action, server-side session creation, and webhook verification.

examples/nextjs-screening

Example

Marketplace onboarding

Seller or worker onboarding flow that maps screening state into marketplace approval states.

examples/marketplace-onboarding

Example

ATS integration

Background-check sync and webhook processing pattern for an ATS or internal applicant tracker.

examples/ats-integration

Compliance Officer v2

Scope-gated compliance guidance

Paid organizations can issue API keys with `compliance.officer.query` for domain-aware compliance guidance. Deeper jurisdiction research stays inside Vuplicity’s internal legal-review workflow.

POST /api/v1/ai/compliance-officer/v2/evaluate
Authorization: Bearer <server-side API key>
Content-Type: application/json

{
  "domain": "HR_VERIFICATION",
  "country": "US",
  "subdivision": "CO",
  "party_role": "employer",
  "verification_scope": "EMPLOYMENT_VERIFICATION",
  "facts": {
    "question": "Can we order this verification before a conditional offer?"
  }
}

# Required key scope: compliance.officer.query

Response posture

Primary-source and uncertainty aware

Compliance Officer responses are citation-first and always surface coverage state, signed-off source versioning, and whether a human legal review is still required.

{
  "coverage_status": "confirmed",
  "citations": [
    {
      "source_uri": "https://...",
      "citation_label": "Colo. Rev. Stat. ..."
    }
  ],
  "signoff_version": "2026-03-08",
  "requires_human_review": false,
  "guidance": "Citation-first compliance guidance.",
  "disclaimer": "Not legal advice."
}

API reference

The public integration surface in one place

Most customers should start with hosted screening sessions and webhooks. The lower-level endpoints are documented here so implementation teams can see what exists, what requires authenticated organization access, and where each capability belongs.

Endpoint family

Hosted screening sessions

Server-created candidate flow for disclosure, consent, intake, document loops, and final submission.

POST /api/v1/hosted/screening-sessionsGET /api/v1/hosted/screening-sessions/:idGET /api/v1/hosted/screening-sessions/:id/publicPOST /api/v1/hosted/screening-sessions/:id/submit

Endpoint family

API keys

Authenticated organization bootstrap surface for connector-v1 machine access.

GET /api/v1/api-keysPOST /api/v1/api-keysDELETE /api/v1/api-keys/:id

Endpoint family

Webhook subscriptions

Subscribe to outbound lifecycle events, inspect deliveries, and rotate signing secrets.

GET /api/v1/webhook-subscriptionsGET /api/v1/webhook-subscriptions/eventsGET /api/v1/webhook-subscriptions/:id/deliveriesPOST /api/v1/webhook-subscriptionsPOST /api/v1/webhook-subscriptions/:id/rotate-secret

Endpoint family

Background checks

Organization-scoped check records, need-info files, cancellation, analysis, and conversation state.

GET /api/v1/background-checksPOST /api/v1/background-checksGET /api/v1/background-checks/:idPOST /api/v1/background-checks/:id/cancel

Endpoint family

Verification platform

Quote packages, create verification orders, resolve exceptions, and manage specialized verification lanes.

GET /api/v1/products/catalogPOST /api/v1/packages/quotePOST /api/v1/verifications/ordersGET /api/v1/verifications/orders/:idPOST /api/v1/verifications/exceptions/:id/resolve

Endpoint family

Monitoring

Enroll subjects, record hits, update enrollment status, and close billing cycles.

GET /api/v1/monitoring/summaryGET /api/v1/monitoring/enrollmentsPOST /api/v1/monitoring/enrollmentsPOST /api/v1/monitoring/enrollments/:id/eventsPOST /api/v1/monitoring/enrollments/:id/billing-cycle-close

Endpoint family

Compliance Officer v2

Scope-gated, citation-first compliance guidance for approved paid organizations.

POST /api/v1/ai/compliance-officer/v2/evaluate

Endpoint family

Operational metrics

Organization and super-admin metrics for launch scorecards, health, workers, and webhook security.

GET /api/v1/metrics/platform-healthGET /api/v1/metrics/platform-health-globalGET /api/v1/metrics/webhook-security

Hosted screening sessions

One entry point for the full candidate flow

Hosted sessions are the simplest integration surface. They wrap candidate disclosure, authorization, identity intake, background-check submission, and need-info return paths in one session resource.

Candidate completion does not guarantee provider submission. Employer-owned blockers can stop invite or submit until required policy and configuration inputs are present.

Request shape

  • Candidate identity and contact information
  • Package code such as `basic`, `essential`, or `complete`
  • Redirect URL for completion handoff
  • Webhook URL for background-check, verification, and monitoring events

Session states

createdopenedconsent_completedsubmittedprocessingneed_infocompletefailedexpiredcanceled

Employer-owned blockers

  • Missing DPPA policy for the selected motor-vehicle use case
  • Missing MedEx or booking settings when those products are selected
  • Missing ATS or HR prefill required by the selected verification recipe
  • Missing state/provider-required fields for the selected motor-vehicle variant

Offerings catalog

Everything a customer can add to the screening flow

Keep the implementation simple: pick a screening package first, then add only the verification lanes the role actually needs. This catalog mirrors the customer-facing offering language so sales, HR, and engineering teams can talk about the same capabilities without switching pages.

Package

Basic

Baseline criminal screening.

National criminal database, sex offender registry, global watchlist, and address history.

Good for lower-friction hiring lanes.

Package

Essential

Most common pre-hire package.

All Basic checks, plus county and state court searches upfront.

Good for routine hiring where local court coverage should already be in scope.

Package

Complete

Expanded screening for higher-risk roles.

All Essential checks, plus federal criminal search.

Good when broader criminal scope should be settled before release.

Capability

Employment verification

Checks past jobs.

EMPLOYMENT_VERIFICATION

Capability

Education verification

Checks school and degree claims.

EDUCATION_VERIFICATION

Capability

Reference verification

Collects references in the same order.

REFERENCE_VERIFICATION

Capability

Healthcare License Screening - Federal

Checks license status and federal exclusions.

HEALTHCARE_LICENSE_SCREENING_FEDERAL

Capability

Healthcare License Screening - State

Adds state sanctions and state-level review.

HEALTHCARE_LICENSE_SCREENING_STATE

Capability

Healthcare License Screening - Board

Adds board discipline and license actions.

HEALTHCARE_LICENSE_SCREENING_BOARD

Capability

DOT verification

Checks DOT records for driving roles.

DOT_VERIFICATION

Capability

Identity verification

Confirms the person is who they say they are.

ID_VERIFICATION

Capability

Address verification

Checks address history.

ADDRESS_VERIFICATION

Capability

Military verification

Checks military service claims.

MILITARY_VERIFICATION

Capability

Motor vehicle report

Checks driving records. State fee stays separate.

MVR

Capability

MVR + CDLIS

Checks commercial driving records. State and CDLIS fees stay separate.

MVR_CDLIS

Capability

Professional license verification

Checks professional license status when a role requires proof of credentialing.

LICENSE_VERIFICATION

Capability

MedEx

Medical exception and employer-configured follow-up lane when the selected package requires it.

MEDEX

Capability

Booking continuous monitoring

Healthcare-oriented continuous monitoring configuration managed by the employer, not the candidate.

BOOKING_CONTINUOUS_MONITORING

Capability

International criminal search

Country-specific international criminal screening through the provider jurisdiction matrix.

CRIMINAL_INTERNATIONAL

Capability

International civil search

Country-specific civil search support where the international package and country matrix allow it.

CIVIL_INTERNATIONAL

Implementation rule

Expose choice without making every option feel required

In the HR portal, required fields should come from package and product selection. Optional role, industry, salary, and add-on context should stay collapsed or tooltip-backed until the customer opts into that workflow. That keeps high-revenue capabilities visible without making every order feel heavy.

Webhook lifecycle

Build your UI from the event stream

The lifecycle contract is designed so your application can update candidate state without polling. Start from background-check events, then react to verification and monitoring events as they arrive. Hosted session state itself is available from the hosted-session `GET` routes.

Core events

  • background_check.updated: General progress update for an in-flight background check.
  • background_check.completed: The report is complete and the report URL is available.
  • background_check.failed: The check failed terminally and should move into exception handling.
  • verification.completed: A verification-order lane completed successfully.
  • verification.exception_created: A verification-order lane entered exception handling.
  • verification.exception_resolved: A verification-order exception was resolved.
  • monitoring.hit_detected: A monitoring hit was detected for an enrolled subject.
  • monitoring.billing_cycle_closed: The monitoring billing cycle closed and a billing event was recorded.

Webhook receiver

Keep the receiver thin. Verify the signature, parse the event, persist the transition you care about, and return a `200`. Vuplicity sends `X-Vuplicity-Signature`, `X-Vuplicity-Timestamp`, `X-Vuplicity-Event`, and `X-Vuplicity-Delivery`. Use webhook subscription APIs to inspect deliveries and rotate the signing secret.

import { verifyVuplicityWebhookSignature } from '@vuplicitychecks/sdk';

export async function POST(request: Request) {
  const rawBody = await request.text();
  const verified = verifyVuplicityWebhookSignature({
    payload: rawBody,
    secret: process.env.VUPLICITY_WEBHOOK_SECRET!,
    headers: request.headers,
  });

  if (!verified.valid) {
    return Response.json({ error: 'Invalid Vuplicity webhook signature' }, { status: 400 });
  }

  const event = JSON.parse(rawBody);
  switch (event.type) {
    case 'background_check.updated':
      break;
    case 'background_check.completed':
      break;
    case 'background_check.failed':
      break;
    case 'verification.completed':
      break;
    case 'verification.exception_created':
      break;
    case 'verification.exception_resolved':
      break;
    case 'monitoring.hit_detected':
      break;
    case 'monitoring.billing_cycle_closed':
      break;
  }

  return Response.json({ received: true });
}

Background checks

Use packages first, not source-level orchestration

For most apps, package selection is the correct abstraction. Background checks move through a stable state machine and surface a report URL only after the compliance and report-generation path is complete.

Recommended packages

  • `basic`: lightweight screening with lower friction
  • `essential`: default production package for most hiring flows
  • `complete`: broader criminal coverage for higher-trust roles

Typical status flow

PENDING_CONSENTPENDINGPROCESSINGNEED_INFOCOMPLETEFAILED

Verification orders

Add verification lanes only when the role needs them

Verification orders are separate from the core criminal-screening package. Use them for employment, education, reference, license, healthcare, and DOT workflows where you need evidence outside the base package.

Current truth: standalone Sentinel `MVR` now has sandbox provider proof, but bundled `MVR_CDLIS` remains uncertified because the current Sentinel sandbox account is not configured for `CDLIS`.

Standard verification lanes like employment, education, reference, license, and ID now have staging `provider_ready` proof. That means Vuplicity can collect and validate the right facts and hand the order to the provider boundary correctly, even though those lanes are not yet being marketed here as fully provider-complete.

Supported lanes

  • Employment verification
  • Education verification
  • Reference verification
  • License verification
  • DOT and healthcare lanes

Integration rule

Keep the first integration on hosted sessions plus webhooks. Add direct verification-order calls only when your product truly needs a lower-level verification-first workflow and you are prepared to own the recipe details for each verification lane.

Monitoring

Recurring trust signals after the initial screen

Monitoring now supports the hosted-session wedge directly. Set `include_monitoring: true` during hosted session creation and Vuplicity will enroll the subject in continuous monitoring after a successful screening completion. Monitoring hits and billing-cycle closures flow through outbound webhooks.

Current capabilities

  • Automatic monitoring enrollment from hosted screening sessions
  • Monitoring hit events
  • Billing-cycle closure events
  • Outbound webhook notifications

Enable it

  • Add `include_monitoring: true` when creating the hosted screening session.
  • Read `monitoring_enrollment_id` and `monitoring_status` from completion data.
  • Listen for `monitoring.hit_detected` and `monitoring.billing_cycle_closed` afterward.

Operational tooling

Org-scoped platform health

Admin-only operational view for customer organizations.

GET /api/v1/metrics/platform-health

Operational tooling

Global platform health

Super-admin aggregate view for internal operations and support teams.

GET /api/v1/metrics/platform-health-global

Sandbox

Use deterministic scenarios without touching live providers

Hosted sessions and direct consent flows now support a unified sandbox contract. When `X-Vuplicity-Mode: sandbox` is present, Vuplicity stores the sandbox intent, skips InformData and live billing, and emits deterministic lifecycle events for `clear`, `record_found`, `need_info`, `dispute`, and `monitoring_hit`.

Sandbox determinism is not the same thing as provider certification. Standalone Sentinel `MVR` is now provider-proven, but `MVR_CDLIS` still needs a CDLIS-capable Sentinel sandbox account.

Current contract

  • Set `X-Vuplicity-Mode: sandbox` on hosted-session creation or direct consent requests.
  • Choose `X-Vuplicity-Scenario` with `clear`, `record_found`, `need_info`, `dispute`, or `monitoring_hit`.
  • The sandbox path skips live provider calls and live billing while still emitting webhook lifecycle events.
  • Lower-level provider runtime overrides are internal super-admin controls, not public headers.

Headers

# Deterministic sandbox
X-Vuplicity-Mode: sandbox
X-Vuplicity-Scenario: clear | record_found | need_info | dispute | monitoring_hit

Start with hosted sessions. Add depth later.

The self-serve signup path gives you a workspace, docs, webhook setup, and hosted-session tooling immediately. Sandbox keys unlock after the developer responsibilities are accepted, and live production access stays behind manual review.