Skip to main content
Hi Doctor enables Partner API live mode for each partner once the checklist below is complete: signed agreements, a correct patient experience, an integration proven in test mode, verified webhooks, safe keys and named contacts. Until then a live key gets 403 partner_not_live. Write to hello@hi-doctor.ai when you are ready for a review. Last reviewed: 2026-11-04

Agreements

  • Partner agreement signed, with the products, countries and prices for your programme.
  • Data processing agreement (DPA) signed.

Patient experience

  • The full questionnaire is rendered from the served schema, including conditional steps, exclusions and validation. See Questionnaires and schema.
  • Consent is captured actively, with the current notice_version, and your evidence of it is stored. See Security and compliance.
  • Patients are told that an EU-licensed doctor reviews their answers, decides on medical grounds only, and may ask for more information or decline. See Safety.
  • Patients are told they receive any prescription as set out for their country. See Countries.
  • Your wording makes no promise of a prescription or of a review time.

Integration, proven in test mode

  • Submission with a stored Idempotency-Key, retried with the same key after a timeout.
  • 409 schema_outdated handled by fetching the new schema and asking the new questions.
  • 422 errors mapped back to the right question with errors[].question_key when it is present, with a general message when it is not.
  • Photos uploaded close to submission; upload_unusable, unsupported_media and file_too_large handled.
  • Every status covered with the test advance endpoint: in_review, info_requested and its answer, approved with a prescription, rejected, and a cancel through the cancel endpoint.
  • Cancel offered only while cancellable is true, and 409 not_cancellable handled for a cancel that loses a race with a doctor opening the case.

Webhooks

  • Live endpoint registered on HTTPS, answering 2xx quickly and processing afterwards.
  • webhook-signature verified per Standard Webhooks on the raw body, with the key decoded from the whsec_ secret, the 300-second webhook-timestamp tolerance, and any matching v1 entry accepted during rotation.
  • Events deduplicated on webhook-id.
  • Stored state replaced wholesale with the highest version snapshot per consultation.
  • Unknown event types and unknown fields ignored without errors.
  • A reconciliation job that reads consultations with pagination in case your endpoint was down.

Keys and access

  • Live keys created by an owner or admin, with the smallest scopes, stored in a secret manager.
  • A rotation procedure written down and tested with a test key.
  • Business portal members and roles reviewed. See Business portal.

Operations

  • Logs keep request_id and webhook-id, and never API keys, webhook secrets, signatures or patient answers.
  • Alerts on repeated 5xx, 429 and webhook failures, and on a webhook endpoint that Hi Doctor disabled after 50 consecutive failed deliveries or three days of failures, which the Business portal shows as Disabled.
  • A named contact for Hi Doctor to reach about incidents.

What happens after I ask for a review?

Hi Doctor checks the items above with you and, once they are in place, enables live mode for your partner. From then on your live keys work on real patients and real consultations. Live keys are created in the Business portal by an Owner or Admin.

Frequently asked questions

Who enables live mode?

Hi Doctor enables live mode for each partner once the checklist is complete. A live key used before that gets 403 partner_not_live.

Do I need a signed DPA before going live?

Yes. Both the partner agreement and the data processing agreement (DPA) must be signed before live mode is enabled.

Which branches must I test before going live?

Every status, using the test advance endpoint: in_review, info_requested and its answer, approved with a prescription, rejected, and a cancel through the cancel endpoint.

Can my product promise patients a prescription?

No. Your wording must make no promise of a prescription or of a review time, because an EU-licensed doctor decides on medical grounds only.

What should my logs never contain?

API keys, webhook secrets, signatures or patient answers. Keep request_id and webhook-id for support instead.

Do I need a reconciliation job if I use webhooks?

Yes. A job that reads consultations with pagination catches up on any events missed while your endpoint was down.

Next steps

Test mode

Cover every branch before the review.

Webhooks

Signature verification, dedupe and ordering.
Commercial questions: read the partnership FAQ or write to hello@hi-doctor.ai.