A webhook subscription sends each finished background verification straight to your own system, with a link to the PDF report — so nobody has to download reports from the portal or ask SpringVerify to send them.
Ask your IT team for two things.
Option in the portal | What your IT team gives you |
None | Nothing |
Basic | A username and password |
Bearer token | A token |
API key header | A header name (for example X-Api-Key) and the key |
HMAC signature | A signing secret, and optionally the header name (default X-SpringVerify-Signature) |
You can add up to 10 addresses per company. Each one receives every report.
Any admin with access to the Integrations page can do this in a few minutes.
Integrations page — the Webhook Subscription card
Webhook Subscription page before any address is added
Passwords, tokens and secrets are hidden once saved. To change one, click Edit and type the new value. Leave the field blank to keep the saved one. If you change the address, enter the secret again.
SpringVerify support can also set this up for you from our side.
SpringVerify checks for newly finished verifications every 3 hours and sends them in one go. A report that finishes just after a check arrives at the next one, up to 3 hours later.
Result | What it means | What to do |
Sent | Your system accepted the report | Nothing |
Failed | Your system refused it or could not be reached. The Reason column says which | Share the reason with your IT team, then try again |
Skipped | The SV ID is not in your company, or the verification is not finished yet | Check the SV ID and the candidate's status |
Not attempted | Nothing was sent for this one: time ran out, or your system had already refused an earlier candidate in the same push | Read the reason, fix it if needed, then push again |
Your system sees these as resends,so it can tell them apart from first-time reports. If the PDF could not be created, your system gets a link to the report page instead, and the result says so.
To protect your system, each address accepts one push a minute, and each company 20 pushes an hour. A disabled address cannot be pushed to until its details are fixed and saved.
Each report arrives as one message with the candidate's details, the outcome and a link to the PDF. Your IT team can use the sample below.
Field | Meaning |
event | completed for a finished verification, status_update for an in-progress update, test for a Send test |
candidate_id | The SV ID |
overall_status, overall_status_code | completed (1) or Completed with exception (6), which is Unable to Verify |
name, email, employee_id | The candidate as entered in SpringVerify |
report_url | A link to download the PDF report. Save the PDF when it arrives rather than keeping only the link |
completed_date | When the verification finished. Empty for in-progress updates |
meta_data | Any reference details you sent when adding the candidate |
is_resend | Present and true only when someone used Push report |
{
"event": "completed",
"candidate_id": 123456,
"candidate_uuid": "9b1c2d3e-0000-0000-0000-000000000000",
"overall_status": "completed",
"overall_status_code": 1,
"name": "Asha Rao",
"email": "asha.rao@example.com",
"employee_id": "EMP-1042",
"report_url": "https://...",
"completed_date": "2026-10-12T09:30:00.000Z",
"meta_data": { "requisition_id": "REQ-77" }
}
Your system should reply with a success code (200, 201, 202 or 204) within 30 seconds. Any other reply counts as a failure, and we try again at the next check. If you chose HMAC signature, the signature header carries an HMAC-SHA256 of the exact message body, in hex, made with your signing secret.
Most problems come down to the address, the login details, or timing.
What you see | Why | What to do |
"webhook_url is not allowed" when saving | The address is private, internal, or not https | Use a public https address |
Address shows "Disabled: receiver rejected our credentials" | Your system refused our login details, so we stopped sending to that address. Your other addresses keep working | Get the correct details from IT, click Edit, enter them and Save. That turns it back on |
A finished report has not arrived | Reports go out every 3 hours, so it may simply not be time yet | Wait for the next check, or use Push report once it is live |
A report never arrives | The candidate may not be finished, or your system keeps refusing it | Check the candidate's status, then use Send test to check your system |
Push report says "Too many pushes" | The limit is one push a minute per address | Wait a minute and try again |
"The request did not finish" after Push report | Some reports may already have gone out | Push again. Resending is safe |
Your system got a page link instead of a PDF | The PDF could not be created at that moment | Push the report again later |
Redirect errors | We do not follow redirects | Use the final address your system answers on |