event_type identifies why the webhook was sent, and data contains the
resource’s current state.
Use the resource-specific guides to see when each event is sent:
Webhook delivery occurs only when your endpoint is enabled and subscribed to
the relevant event type.
Set up a webhook
In the application sidebar, open Settings, then select Webhooks.
- Name: A name that identifies the webhook.
- URL: The endpoint that receives notifications.
- Secret key (recommended): An optional confidential value used to sign deliveries. Deliveries are unsigned when a secret is not configured.
- Enabled: Leave this on to begin receiving notifications as soon as the webhook is created. Turn it off to save the configuration without sending notifications.
- Event categories: Select Benefit verification, Prior authorization, or both.

OAuth (optional)
Webhooks support OAuth 2.0 client credentials. In the webhook’s create or edit form:- Turn on Use OAuth.
- Enter your Token URL, Client ID, and Client secret.
- Set Token timeout (minutes) to your token lifetime (default: 60).
- Enter an API key only if your receiving endpoint requires one.
- Select Create or Update to save.
client_credentials with HTTP Basic client authentication.
Receive webhook notifications
Develop Health sends an HTTP POST request to your configured URL when a subscribed event occurs. Resource events use this envelope:data object uses the same schema as data in the response from
GET /benefit-verification/{id}
or GET /prior-authorization/{id}.
The webhook does not include the GET response’s outer envelope. Read
data.status and the error or outcome fields as you would in that GET response.
The event_type identifies why the webhook was sent. It does not replace the
resource state or imply that the resource is terminal.
Prior authorization webhook delivery may omit the large evidence,
visit_notes, and questionnaires fields. Call GET /prior-authorization/{id}
when you need the complete PA.
Call the relevant GET endpoint above with data.id to check the latest BV or
PA status after a webhook arrives.
Provider outreach events use a dedicated envelope with
event_id,
occurred_at, and a provider outreach object in data. See Provider
outreach webhooks for the full
contract.Verify webhook signatures
When a webhook secret is configured, each POST request contains anX-Webhook-Secret header with a JWT signed by that secret. Verify the JWT before
processing the payload. Deliveries do not include this header when no secret is
configured.
Install PyJWT:
X-Webhook-Secret header is missing or signature verification fails. Do
this before accepting the event or changing application state.
Best practices
- Keep the receiving endpoint highly available.
- Return a 2xx response as soon as the event is durably accepted, then process it asynchronously.
- Handle deliveries idempotently because retries can produce duplicates.
- Tolerate new status, outcome, activity, and error values.
- Log deliveries and monitor processing failures.
- Use the corresponding GET endpoint when you need the latest complete resource.