Skip to content

Guides

Take cases into your clinical system

When a patient reports something that needs a clinician, NezerCare opens a case and sends it to your endpoint. From there it goes into your clinical workflow, whether that's your EHR, a provider network such as Beluga or MDI, or your own tools. NezerCare just needs to hear back.

The clinical boundary

A delivered webhook confirms transport only; it never means a clinician reviewed the case. If your system schedules care, report it as a scheduled update. Only an explicit resolved update closes a case.

The handoff

  1. Receive clinical_case.opened. Your endpoint gets a signed webhook with the case. Verify the signature and deduplicate by x-nezer-event-id before you act on it. Its source says where it came from; a staff_slack case was raised by your team in Slack, not reported by the patient.
  2. Return processed. Post a case update with status: "processed" at sequence: 1. It's required, and it must be the first update.
  3. Message and update as work happens. Send messages the patient can read, and report scheduling, a clinician's response or contact with the patient.
  4. Resolve explicitly. Close the case with a resolved update, a resolutionOutcome and a note. Nothing closes a case on its own.

Use the caseId UUID from the webhook in every call. It isn't the NC-XXXXXXXX reference the patient sees.

Report progress

Every update needs the next consecutive sequence, which the progress endpoint returns as nextSequence. A skipped or reused number is refused with 409. Retry an uncertain request with the same updateId and an identical body.

cURL
curl "https://api.nezercare.com/v1/clinical-cases/CASE_ID/updates" \
  --request POST \
  --header "Authorization: Bearer $NEZER_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "updateId": "b1e6b8a2-2f0e-4a3a-9c1e-2a6b7e9f1a44",
    "sequence": 1,
    "status": "processed",
    "externalReference": "provider-ticket-88213"
  }'

Statuses

StatusWhen to send it
processedFirst, at sequence 1. The case has landed in your workflow.
scheduledYour system booked care for the patient. Include scheduledFor.
clinician_respondedA clinician has reviewed or responded to the case.
patient_contactedYour team reached the patient outside NezerCare's messages.
resolvedLast. Needs a resolutionOutcome and a resolutionNote of at least 10 characters.

Message the patient

Messages appear in the patient's secure case conversation in the widget. The patient gets an email saying there's a new message, never the message itself.

cURL
curl "https://api.nezercare.com/v1/clinical-cases/CASE_ID/messages" \
  --request POST \
  --header "Authorization: Bearer $NEZER_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "messageId": "0b8f1a3e-6c2d-4f9a-8e51-1d9b6c4a7f02",
    "message": "Your care team has your update and will follow up shortly.",
    "externalReference": "provider-ticket-88213"
  }'

The patient reads this field

Keep internal clinical notes in your own system and send only what the patient should read. When the patient replies, you get a clinical_case.patient_message_created webhook.