- list the cases assigned to it and read the candidate data the company chose to share,
- upload the reports each case’s package requires (for example a PME report and a drug test report),
- review the candidate documents shared with it and complete the case with a result,
- read the candidates’ appointments and record attendance.
/v1/partner/nova-vendors.
Authentication
Every request needs a vendor API key:- A Company Admin issues them to one vendor from NOVA → Vendors → (vendor) → API access. The key is shown once—store it in a secrets manager.
- A vendor key only works on
/v1/partner/nova-vendors. Company API keys are rejected here, and vendor keys are rejected on every other Partner API endpoint. - A vendor key only sees the cases assigned to that vendor in that company.
- Company Admins can rotate a key (the old one stops working immediately) or revoke it at any time. Disabling the vendor in NOVA also blocks its keys until the vendor is re-enabled.
- Sandbox keys start with
vk_test_, production keys withvk_live_.
Concepts
Get Vendor
Check which vendor your key belongs to.GET /nova-vendors/me
List Cases
GET /nova-vendors/cases
Example Request
Example Response
Get Case
Returns the case, the candidate data shared with you, the candidate documents to review, the package’s required reports, and the reports you uploaded. Opening a case records your access; anAssigned case moves to In Progress once you start working on it (on a later read or when you upload a report).
GET /nova-vendors/cases/:caseId
Example Response
Upload a Report
Uploading is two calls: get a pre-signed upload URL,PUT the file to it, then attach it to the case.
1. POST /nova-vendors/cases/:caseId/reports/upload-url
2. Upload the file
Content-Type must match the one you requested. The URL expires after 5 minutes.
3. POST /nova-vendors/cases/:caseId/reports
onboarding.report.ready webhook.
List Reports
GET /nova-vendors/cases/:caseId/reports
Returns data.reports[] with fresh downloadUrl values.
Delete a Report
DELETE /nova-vendors/cases/:caseId/reports/:reportId
Removes a report you uploaded by mistake. Not allowed on read-only cases.
Review a Candidate Document
Every shared candidate document must be reviewed before the case can be completed.PATCH /nova-vendors/cases/:caseId/candidate-documents/:fieldId/review
Returns the updated document (same shape as
candidateDocuments[]).
Complete a Case
Submit your result. The required reports must be uploaded and every candidate document reviewed.POST /nova-vendors/cases/:caseId/complete
Returns the case (same shape as Get Case).
Appointments and Attendance
Appointments the candidates on your cases booked through the company’s self-scheduling.GET /nova-vendors/bookings
Each booking has the same fields as Candidate Self-Scheduling bookings, plus
onboardingCandidateId; booking-form answers are not included.
POST /nova-vendors/attendance-codes/:attendanceCode/check-in
Record that the candidate arrived (or did not) when they present their attendance code.
Returns 404
NOT_FOUND when the code is unknown or belongs to a candidate who is not on one of your cases.
Integration Sequence
- The Company Admin issues your vendor key in NOVA and assigns cases to your vendor.
- Poll
GET /cases?updatedSince=...(for example every 15 minutes) and read each new case withGET /cases/:caseId. - Use
GET /bookings?onboardingCandidateId=...for appointment times; record arrivals with the attendance check-in. - After the evaluation, upload each report in
package.requiredDocuments(upload-url →PUT→ attach). - Review the candidate documents, then
POST /cases/:caseId/completewith the result.
Security Notes
- Keep vendor keys server-side; never embed them in browsers or mobile apps.
- Responses contain personal data. Store only what you need and follow the company’s data-processing agreement.
- Pre-signed URLs expire quickly—download files right away and fetch a fresh URL instead of storing it.
- Every request is logged and visible to the company in its Partner API logs.
.png?fit=max&auto=format&n=lKy84_BssSCy2hcz&q=85&s=ac7c949427cc2893306f6036415f087e)