Unlike the other webhooks, this one includes the full result, including any error details. There are no links to follow.
Common use cases
Use the CKG ingestion webhook when you want your application to react as soon as a FHIR push upload finishes ingestion, instead of polling for status.Generate Patient Summaries
When the notification reports
COMPLETED, start Patient Summary generation for the encounters in the uploaded bundle.Sync Clinical Systems
Update your EHR, EMR, or other clinical systems when new patient data is available in CKG.
Notify Clinicians
Tell clinicians or care teams that updated patient data is available.
Retry or Investigate Failures
When the notification reports
FAILED or ABORTED, use the error object to decide whether to upload again or fix the bundle first.When Suki sends a CKG ingestion webhook
Suki sends a CKG ingestion webhook after you upload a bundle with the CKG Data Ingestion APIs and the ingestion job reaches a final state. Suki does not send a webhook while the job is waiting for the upload or while it is running. The top-levelstate indicates the outcome reported by the notification:
The matching polling status is what Check ingestion status returns for the same job. The webhook reports an archived upload as
ABORTED, so you can tell an expired upload apart from a processing failure.
Delivery rules
Your webhook receiver must account for the following behaviors:- Uploads you never finish still generate webhooks. When the upload URL expires before you upload the bundle, Suki ends the job and sends an
ABORTEDwebhook for it. - The same notification can be delivered more than once. Use
transaction_idandstateto identify and skip notifications your application has already processed.
COMPLETED webhook or a COMPLETED response from Check ingestion status.
If you suspect that you missed a notification, call the same endpoint with the
transaction_id to check the job’s current status.How a CKG ingestion webhook works
The following sequence shows how Suki delivers a notification and how your application acts on the result.Request an Upload URL
Call Request FHIR bundle upload URL with your
organization_id, and optionally a correlation_id. Save the transaction_id from the response.Upload the FHIR Bundle
Upload the bundle to the upload URL from the previous step within 15 minutes.
Suki Ingests the Data
Suki processes the bundle and loads the data into CKG.
Suki Sends the Webhook
Suki sends a POST request to your configured callback URL. The request contains the
state and the transaction_id.Verify the Request and Respond
Your endpoint verifies the webhook signature and returns HTTP 200 within 30 seconds. Refer to Signature verification.
Act on the State
Match the
transaction_id to your upload, then generate summaries or upload again. Refer to Handle CKG ingestion results.What makes this payload different
The CKG ingestion payload does not follow thestatus pattern that Ambient, Form filling, and E/M Coding use:
- The outcome is in
state, notstatus. A CKG payload never has astatusfield. - There is no
session_idorencounter_id. Usetransaction_idto match the notification to your upload. - There are no
_links. Everything you need, including error details, is in the payload itself. additional_info.session_typeis alwaysCKG_INGESTION, whether the job completed, failed, or was aborted.