Docs
API quickstart
Create one hosted screening session, redirect the candidate, and listen for lifecycle events.
Start hereDocumentation
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
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
Create one hosted screening session, redirect the candidate, and listen for lifecycle events.
Start hereDocs
See the authenticated endpoint families for keys, hosted sessions, webhooks, checks, monitoring, and AI.
View endpointsDocs
Scan packages, verification add-ons, healthcare license tiers, MVR, monitoring, and international scope.
View offeringsDocs
Map background-check, verification, adverse-action, and monitoring events back into your product.
Wire eventsDocs
Use deterministic scenarios for clear reports, records found, need-info, disputes, and monitoring hits.
Test safelyDocs
Admins create API keys, rotate webhook secrets, inspect deliveries, and request ATS connectors.
Open settingsAccess
Use the self-serve organization signup. Your workspace is created immediately, and sandbox access unlocks once the developer responsibilities are accepted.
OpenAccess
Return to your Vuplicity workspace and keep docs access public for the rest of your team.
OpenAccess
Create and revoke API keys from the authenticated integrations surface after admin login.
OpenAccess
Create webhook subscriptions, rotate secrets, and inspect deliveries from the same admin-only page.
OpenStart 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
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
App Router start-screening action, server-side session creation, and webhook verification.
examples/nextjs-screening
Example
Seller or worker onboarding flow that maps screening state into marketplace approval states.
examples/marketplace-onboarding
Example
Background-check sync and webhook processing pattern for an ATS or internal applicant tracker.
examples/ats-integration
Compliance Officer v2
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.queryResponse posture
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
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
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/submitEndpoint family
Authenticated organization bootstrap surface for connector-v1 machine access.
GET /api/v1/api-keysPOST /api/v1/api-keysDELETE /api/v1/api-keys/:idEndpoint family
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-secretEndpoint family
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/cancelEndpoint family
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/resolveEndpoint family
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-closeEndpoint family
Scope-gated, citation-first compliance guidance for approved paid organizations.
POST /api/v1/ai/compliance-officer/v2/evaluateEndpoint family
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-securityHosted screening sessions
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
Session states
Employer-owned blockers
Offerings catalog
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
Baseline criminal screening.
National criminal database, sex offender registry, global watchlist, and address history.
Good for lower-friction hiring lanes.
Package
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
Expanded screening for higher-risk roles.
All Essential checks, plus federal criminal search.
Good when broader criminal scope should be settled before release.
Capability
Checks past jobs.
EMPLOYMENT_VERIFICATION
Capability
Checks school and degree claims.
EDUCATION_VERIFICATION
Capability
Collects references in the same order.
REFERENCE_VERIFICATION
Capability
Checks license status and federal exclusions.
HEALTHCARE_LICENSE_SCREENING_FEDERAL
Capability
Adds state sanctions and state-level review.
HEALTHCARE_LICENSE_SCREENING_STATE
Capability
Adds board discipline and license actions.
HEALTHCARE_LICENSE_SCREENING_BOARD
Capability
Checks DOT records for driving roles.
DOT_VERIFICATION
Capability
Confirms the person is who they say they are.
ID_VERIFICATION
Capability
Checks address history.
ADDRESS_VERIFICATION
Capability
Checks military service claims.
MILITARY_VERIFICATION
Capability
Checks driving records. State fee stays separate.
MVR
Capability
Checks commercial driving records. State and CDLIS fees stay separate.
MVR_CDLIS
Capability
Checks professional license status when a role requires proof of credentialing.
LICENSE_VERIFICATION
Capability
Medical exception and employer-configured follow-up lane when the selected package requires it.
MEDEX
Capability
Healthcare-oriented continuous monitoring configuration managed by the employer, not the candidate.
BOOKING_CONTINUOUS_MONITORING
Capability
Country-specific international criminal screening through the provider jurisdiction matrix.
CRIMINAL_INTERNATIONAL
Capability
Country-specific civil search support where the international package and country matrix allow it.
CIVIL_INTERNATIONAL
Implementation rule
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
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
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
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
Typical status flow
Verification orders
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
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
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
Enable it
Operational tooling
Admin-only operational view for customer organizations.
GET /api/v1/metrics/platform-healthOperational tooling
Super-admin aggregate view for internal operations and support teams.
GET /api/v1/metrics/platform-health-globalSandbox
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
Headers
# Deterministic sandbox
X-Vuplicity-Mode: sandbox
X-Vuplicity-Scenario: clear | record_found | need_info | dispute | monitoring_hitThe 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.