SUCCESS standalone E/M Coding webhook, the payload includes links to the recommended codes and the session status.
The webhook does not contain the codes themselves. Your application must call the linked E/M Coding API endpoints to retrieve them.This page covers standalone E/M Coding only. Codes requested on an ambient visit with
artifacts: ["EM_CODES"] arrive on the Ambient webhook, not this one.em_codes link to load the recommended codes. Call the status link when you need to confirm coding finished. Each href is relative to /api/v1. Join your API base URL with that path, and authenticate the request with your Suki Token.
Prerequisites
Before you retrieve results, make sure you have:- A webhook receiver: An endpoint that receives Suki webhooks and verifies their signatures. Refer to Webhook quickstart and Signature verification.
- A valid Suki Token: Authenticate E/M Coding API requests with the
sdp_suki_tokenheader. Include thesdp_provider_idheader when your partnership requires it. Refer to E/M Coding API quickstart. - The E/M Coding
session_id: Save the session ID returned by Generate E/M codes. That ID is never an ambient session ID.
Build the full URL
Eachhref in an E/M Coding webhook is relative to /api/v1. Append /api/v1 and the href to your API base URL.
For example, when the production base URL is https://sdp.suki.ai and the link contains:
https://sdp.suki-stage.com as the API base URL.
Available endpoints
Every link object includes a
method field. Use that method when you call the endpoint. For these links, the method is always GET.
Each of these keys holds exactly one link for the standalone session. Match the link’s name to the webhook’s session_id, or use the first entry in the array.
Other
_links keys are present on the E/M Coding webhook but are empty arrays. Ignore them. Standalone E/M Coding sessions are not tied to an encounter, so encounter_id is an empty string. Refer to E/M Coding webhook payload.Retrieve results step by step
Follow this sequence after your webhook endpoint receives aSUCCESS notification:
Verify the Webhook and Return HTTP 200
Verify the webhook signature and return HTTP 200 within 30 seconds. Do not wait for E/M Coding API calls to finish before you respond. Process the notification and retrieve results in a background job.
Select the Links for This Session
Read
_links.em_codes and _links.status. Match each link’s name to the webhook’s session_id.Check Session Status When Needed
Call the
status link when you need to confirm coding finished. Continue to retrieve codes when the returned status is completed. If the status is failed, do not expect codes on the retrieve endpoint.Retrieve and Store the Codes
Call the
em_codes link and read em_codes.values. Store the codes you need soon after the webhook arrives. Standalone codes stay available for 30 days.Read the recommended codes
For a full example response and field mapping, refer to Get the generated E/M codes.
Check session status
Call Get E/M Coding status when you need the current processing state.Example: retrieve recommended codes
The following examples retrieve codes for the standalone E/M Coding session that triggered the webhook. Run this code after your webhook endpoint has verified the signature and returned HTTP 200. The examples:- Read
session_idand_linksfrom the webhook payload. - Find the
em_codeslink for that session. - Retrieve
em_codes.values.
Code example
- Python
- TypeScript
- Go
Example: check session status
Reuse the same base URL, path prefix, headers, andlink_for helper. Change only the _links key to status.
Code example
- Python
- TypeScript
- Go
Responses from linked endpoints
When you call the E/M Coding API endpoints, Suki returns standard HTTP status codes.
For the exact error messages, refer to E/M Coding error messages.
400 Bad Request: Fix the URL or request parameters, then send the request again.401 Unauthorized: Log in again for a new Suki Token, then retry with the updated token.404 Not Found: Confirm the E/M Codingsession_id, or store codes before the 30-day window ends.5xx Server Error: Retry the request after a short delay.