Fulfillment Authorization Requested
The FULFILLMENT_AUTHORIZATION_REQUESTED event is triggered when an approved case decision needs your organization's authorization before the order can be placed automatically, and no active authorization period covers that fill.
If an active authorization period already covers the fill, the order is placed automatically and no webhook is sent.
Availability
- This event is sent only to organizations that handle their own patient payments. Organizations that don't handle their own payments never receive it, even if they subscribed.
- Your organization must have an enabled webhook subscription to this event. Turning on payment ownership is rejected without one.
- Access is limited to organizations CareValidate has enabled for this flow.
Responding
Answer by calling POST /api/v1/fulfillment-authorization with the requestId from this payload.
- Replying with
validForauthorizes that many months of treatment, so later fills in that time won't trigger new requests. - Replying without
validForauthorizes only this fill.
See the endpoint page for the full request format and responses.
A request can become unnecessary if the CareValidate support team places the order manually first. A reply sent after that returns a 400 error with code CASE_ERROR. Nothing is applied, so don't treat this error as a failure to retry.
This event does not fire for every approved decision. If an active authorization period already covers the fill, the order is placed without a webhook, so don't assume every approved decision triggers this event.
Unlike most other case webhooks, this payload does not include a case object. The activity object may be null, so don't rely on it.
Attributes
eventstringpayloadobjectShow child attributes
caseIdstring<UUID>requestIdstring<UUID>decisionIdstring<UUID>organizationProductIdstring<UUID>reasonstringlatestFulfillmentAuthorizationobjectShow child attributes
validForobjectShow child attributes
intervalstringintervalCountnumberconsumednumberactivatedAtstring<date-time> | nullclosedAtstring<date-time> | nullactivityobjectShow child attributes
idstring<UUID>typestringisPHIbooleanisRestrictedbooleanvalueBeforestring | nullvalueAfterstring | nulltimestampstring<date-time>actorobjectShow child attributes
idstring<UUID>firstNamestringlastNamestringemailstringtargetUserobjectShow child attributes
idstring<UUID>firstNamestringlastNamestringemailstringResponse
{
"event": "FULFILLMENT_AUTHORIZATION_REQUESTED",
"payload": {
"caseId": "ec7ebb4c-3a36-43bf-93f7-3c292020c281",
"requestId": "b1e6a1a2-9b3e-4b8a-9b7a-1f2c3d4e5f60",
"decisionId": "3c9d6f0e-7a41-4f55-8f0a-2b6d1e9c4a77",
"organizationProductId": "d2f1a8b4-6c3e-4a9b-8e57-0f4c9a1b7e23",
"reason": "No active fulfillment authorization covers this fill",
"latestFulfillmentAuthorization": {
"validFor": {
"interval": "month",
"intervalCount": 3
},
"consumed": 3,
"activatedAt": "2025-06-10T17:02:11.000Z",
"closedAt": "2025-09-03T23:24:30.000Z"
},
"activity": {
"id": "58a5e76c-f737-4c29-8077-837a545791f0",
"type": "FULFILLMENT_AUTHORIZATION_REQUESTED",
"isPHI": false,
"isRestricted": false,
"timestamp": "2025-09-03T23:24:31.127Z",
"valueBefore": null,
"valueAfter": null,
"actor": {
"id": "35153fb8-b917-469a-ac8b-3e692da9c287",
"firstName": "Auto",
"lastName": "Notifier",
"email": "auto-notifier@carevalidate.com"
},
"targetUser": null
}
}
}