Skip to main content

Create a new webhook

POST 

/webhooks

Creates a new webhook subscription with the provided details. The webhook will receive events asynchronously when the specified event types occur.

Available Event Types:

  • credential_workflow.status.changed - Triggered automatically when a credentialing workflow status changes (timeline event is created). See webhook-api-credential-workflow-events.md for detailed payload structure and documentation.

  • facility_credential_workflow.status.changed - Triggered automatically when a facility credentialing workflow status changes (timeline event is created).

  • form.submission.submitted - Triggered when a form submission is received by POST /forms/submissions.

  • roster_job.status.changed - Triggered when a roster job reaches a client-facing status (PENDING_CORRECTION, PENDING_APPROVAL, IMPORTED, FAILED).

  • facility.global_termination.completed - Triggered once per facility when a facility global termination (POST /facilities/terminate) completes. Payload: certifyFacilityId, facilityName, npi, tin, terminationDate, terminationReason, status. A global termination ends everything the facility has, so there is no per-location detail. facilityName, npi and tin are read from the facility and are null when unavailable.

  • practitioner.terminated - Triggered when a practitioner is terminated, for all 9 terminationType values accepted by PUT /practitioners/terminate (including FULL_EXIT, the full-departure case) and for roster STOP rows. Payload: certifyPractitionerId, npi, terminationType, terminationDate, terminationReason; keys are always present, with an explicit null where a value is unknown or not applicable. Note that PUT /practitioners/terminate-partial emits one event per terminated scope, so a single request there can produce several events.

You can subscribe to multiple different event types in a single webhook.

Custom event types are accepted. eventTypes is an open namespace: any lowercase domain.entity.action value of 2-4 dot-separated segments may be registered, and triggered with POST /webhooks/events. Matching is exact and case-sensitive.

Request​

Responses​

Successfully created the webhook