info_requested status described in Consultation lifecycle.
How do you learn about a request?
- The consultation moves to
info_requestedand you receiveconsultation.info_requested. open_info_requeston the consultation names the request:id,reason_code,requested_at.- The patient also sees a message about it in their Hi Doctor account.
Read the request
GET /v1/partner/consultations/{id}/info-requests lists the consultation’s requests. Scope: consultations:read. Each request looks like this (the label text is illustrative):
A request never returns the answer values or the files themselves, in the API or in the Business portal. Keep your own record of what the patient answered.
Reason codes
Document kinds
Answer the request
Ask the patient the listed questions again, upload any new photos or documents withPOST /v1/partner/files, then send:
POST /v1/partner/consultations/{id}/info-requests/{request_id}/answer. Scope: consultations:write.
answersuses the sameentries-v1format as submission, for the re-asked keys only.- Each entry is located by
question_key. Whenquestion_keyis set, it is used andkeyis ignored. Whenquestion_keyis left out, empty ornull, the entry is located by its aliaskey, which must then be a non-empty string. An entry with neither, or whose locator was not re-asked, fails with422 unexpected_question_key. Each question can be answered once; a repeated key fails with422 invalid_answers. - A skipped entry (
skip: true, for an optional question only) carries just its locator (question_keyorkey),skipand, optionally, the question’s ownstep_id. Any other member alongside it, such asvalue,valuesoroption_inputs, fails with422 invalid_answers. - Your answers are merged over the original answers and validated against the schema version you submitted, so the full set must still be valid.
- A re-asked upload step, such as
body_photoabove, is answered inanswerswith the newupload_idas itsvalue, exactly as at submission. uploadsis only for documents named indocuments_requested, which are not questionnaire steps. List theirupload_ids there: at most 10, each one once. More than 10 fails with422 invalid_request. Anupload_idlisted twice, or used both inuploadsand as an upload answer inanswers, fails with422 upload_unusable, as does an upload that does not exist, has expired or was already used.- Send at least one answer, one upload or, on an identity document request, the identity document.
nullcounts as leaving a member out. A body with none of them fails with422 invalid_request, before any other check of its contents (includingidentity_document_required). - Free text is not accepted.
- The request must exist: otherwise
404. - The request must be open: otherwise
409 info_request_not_open. This includes a request withdrawn when the patient withdrew consent. - The patient must not have withdrawn consent: otherwise
409 consent_withdrawn. Withdrawal closes the request open at that moment (step 2), but in live mode the patient’s consultations are not frozen, so a doctor can still raise a request afterwards; an answer to it stops here. - The consultation must still await information: otherwise
409 case_closed. - The body must carry an answer, an upload or the identity document: otherwise
422 invalid_request. - Then its contents are validated.
409 info_request_not_open.
Identity document requests
When electronic prescribing needs the patient’s identity document and Hi Doctor does not have it, the doctor opens a request withreason_code identity_document_required. It may list no question keys. Answer it with identity_document, in the same shape as patient.identity_document on submission:
identity_documentis required on this request: an answer that carries answers or uploads but no document fails with422 identity_document_required. A body with no answer, upload or document fails with422 invalid_requestfirst.- It is accepted only on this request. On any other request it fails with
422 invalid_request, with an error item whosefieldisidentity_documentandcodeisunexpected_field. - It is validated like
patient.identity_document. A document that breaks the rules (an unknown issuing state, a wrong check letter, a bad number format), a value that is not an object, or unknown members fail with422 invalid_request, fieldidentity_document, codeinvalid_identity_document. - A structural error keeps its own nested field instead: an unsupported type is field
identity_document.typewith codeinvalid_choice, and a missing, blank or too long member is that member’s field, for exampleidentity_document.numberwith coderequired,blankormax_length. - A document that differs from the one stored for the patient fails with
409 patient_conflict. - It is never echoed or returned. Live mode stores it on the patient’s account; test mode stores nothing.
answered, the consultation returns to in_review and you receive consultation.in_review. The doctor sees the original answers and your correction side by side; the original record is never rewritten.
How do you test information requests?
Advance a test consultation toinfo_requested with a reason_code and question_keys to create a synthetic request, then answer it with the endpoint above. See Test mode. Answer errors are listed in Partner API errors.
Frequently asked questions
Is there a deadline to answer an information request?
No. The request stays open until you answer it or it is withdrawn, and the doctor decides once the information arrives.Can the doctor send us a free-text message?
No. Requests are fully structured: a reason code, a fixed label, the questions to ask again and any document kinds. Free text is not accepted in answers either.Can a consultation have several open requests?
No. A consultation has at most one open request at a time.Which documents can the doctor ask for?
A prescription issued elsewhere, lab or blood test results, a photo, or another health document. Upload them as files first and list them in the answer’s uploads.Can I read the patient’s answers back from the API?
No. A request never returns the answer values or the files, in the API or in the Business portal. Keep your own record of what the patient answered.What happens after I answer?
The request is marked answered, the consultation returns to in review and you receive a consultation.in_review event. The doctor sees the original answers and your correction side by side.Can I answer the same request twice?
No. A second answer is refused because the request is no longer open; see Partner API errors.Next steps
Questionnaires and schema
The entries-v1 format used for answers.
Photos and files
Upload new photos and documents for the answer.
Webhooks
Receive consultation.info_requested as it happens.