Webhooks
VeriflowAPI can monitor registered providers continuously and send webhook notifications when their license status changes or approaches expiry. This eliminates the need to run periodic manual checks.How webhook monitoring works
- You register a provider using the
/v1/monitorendpoint - VeriflowAPI checks that provider’s license status every 24 hours
- When a status change is detected — or expiry is approaching — VeriflowAPI sends a POST request to your webhook URL
- You receive real-time alerts without any polling on your end
Register a provider for monitoring
Request body
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
first_name | string | Yes | Provider’s first name |
last_name | string | Yes | Provider’s last name |
state | string | Yes | Two-letter state code |
npi | string | Recommended | Provider’s NPI number |
webhook_url | string | Yes | Your endpoint that will receive webhook events |
webhook_secret | string | Yes | Secret used to sign webhook payloads for security verification |
alert_days_before_expiry | integer | No | Days before expiry to send an alert. Default: 90 |
Response
Webhook event payload
When a status change or expiry alert is triggered, VeriflowAPI sends a POST request to yourwebhook_url with this payload:
Webhook event types
| Event | Triggered when |
|---|---|
license.status_changed | License status changes from any value to any other value |
license.expiry_approaching | License expiry is within alert_days_before_expiry days |
license.expired | License expiry date has passed |
license.disciplinary_flag_added | A new disciplinary action is added to the record |
license.oig_exclusion_added | Provider appears on OIG exclusion list |
license.reinstated | Previously suspended or revoked license is reinstated |
Verifying webhook signatures
Every webhook request includes aVeriflow-Signature header. You must verify this signature to ensure the request is genuinely from VeriflowAPI and has not been tampered with.
The signature is computed as an HMAC-SHA256 hash of the raw request body using your webhook_secret.
Verification example — Python
Verification example — Node.js
Retry policy
If your webhook endpoint returns a non-2xx response or times out, VeriflowAPI will retry with exponential backoff:| Attempt | Delay |
|---|---|
| 1st retry | 5 minutes |
| 2nd retry | 30 minutes |
| 3rd retry | 2 hours |
| 4th retry | 8 hours |
| 5th retry | 24 hours |
Responding to webhooks
Your webhook endpoint must:- Return a
2xxstatus code within 10 seconds - Return
200 OKfor events you have successfully processed - Return
200 OKeven for event types you choose to ignore (to prevent unnecessary retries)