Skip to main content
A partner consultation moves through six public statuses, from submitted to a final approved, rejected or cancelled. The consultation resource carries the status, a version number that orders every change, the doctor’s decision and any prescriptions. You can cancel a consultation only while no doctor has opened it, so read cancellable before offering a cancel button. Last reviewed: 2026-11-04 You create the consultation with Submit a consultation and learn about each change through webhooks.

What statuses can a consultation have?

submitted → in_review ⇄ info_requested → approved or rejected. A consultation can also be cancelled while it is still submitted. There is no completed status. After approval, track prescriptions in prescriptions[], each with its own status. The diagram is on How it works.

Read a consultation

  • GET /v1/partner/consultations/{id} returns one consultation.
  • GET /v1/partner/consultations lists them, newest first, with the filters status, external_patient_id, external_reference, created_after, created_before (ISO 8601) and cursor pagination.
Scope: consultations:read.
The prescription entry and billing above are shortened: billing also carries price, and the full prescription shape is on Prescriptions. The timestamps are illustrative and say nothing about how long a review takes.

Cancel a consultation

POST /v1/partner/consultations/{id}/cancel. Scope: consultations:write. No body. A consultation can be cancelled only before a doctor opens it. Precisely, all of these must hold:
  • its status is submitted;
  • no doctor has ever opened it, even if it was later reassigned;
  • it has no decision and no prescription;
  • no prescription is being issued, signed or replaced.
Otherwise the request fails with 409 not_cancellable. cancellable reports exactly this rule, so use it to decide whether to offer a cancel button. The state can still change between your read and your cancel: a cancel can race a doctor opening the case, one of them wins, and if the doctor wins you get 409 not_cancellable. Handle it by reading the consultation again. If the case is briefly busy you can get 409 consultation_busy; retry after a short pause. A successful cancel returns the consultation with status: "cancelled" and billing.state: "void", and emits consultation.cancelled. A cancelled consultation is never billed. Cancel errors are listed in Partner API errors.

Frequently asked questions

How long does a doctor take to review a consultation?

The API does not promise a review time. Subscribe to webhooks and update your interface when the status changes.

Is there a completed status?

No. A consultation ends as approved, rejected or cancelled. After approval, follow each prescription in the consultation’s prescriptions list.

Can I cancel a consultation after a doctor has opened it?

No. A cancel succeeds only while the consultation is submitted and no doctor has ever opened it. Otherwise the cancel request is refused, and the cancellable field tells you this in advance.

Is a cancelled consultation billed?

No. A successful cancel sets the billing state to void, and a cancelled consultation is never billed.

Does the reviewer object identify the doctor?

No. It holds a fixed description and the licence country only, never a name or a licence number.

Why did the version increase without a status change?

The version number increases with every change to the consultation’s public state, such as a prescription being issued after approval. Use it to order events.

What do I learn when a consultation is rejected?

The decision carries a reason category, either not_eligible or safety. It is a fixed category and never the doctor’s note.

Next steps

Prescriptions

The structured prescription data reported after approval.

Information requests

Answer the doctor when a consultation moves to info_requested.

Webhooks

Receive every status change as a signed event.