API Changelog
All notable changes to the HIE API will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased] - 2026-05-18
Added
POST /api/v1/claims/authorizations/{consent_token}/reject— reject a previously-issued claim authorization using its consent token. Returns the reject outcome and the affected authorization record.GET /api/v1/facilities/{facilityCode}/beds/occupancy— fetch the current bed occupancy summary for a facility, including totals per ward and operational status. Documented under the Eligibility section of the eClaims & Preauth API, since bed-occupancy data feeds into claim eligibility checks.
Changed
POST /api/v1/preauth/cancelis nowPOST /api/v1/preauths/cancel. Update any clients pointing at the singular/preauth/URL — the path was harmonised with the rest of the/preauths/*family.GET /api/v1/clinical/concepts/mappingsis nowGET /clinical/concepts/mappings. The/api/v1/prefix was dropped to align with the broader clinical/FHIR routing convention.POST /api/v1/claims/emtnow accepts file uploads viamultipart/form-data(previously required JSON). Use the new form fields forinterventions,diagnoses, and supporting attachments.POST /api/v1/preauthsnow returns200 OKon successful creation (previously201 Created). Clients that branch on the status code should treat200as the success path.DELETE /api/v1/preauths/doctorsnow returns a JSON object with additional context (previously returned a bare string).GET /api/v1/patients/benefitsresponse shape changed: the response is now theBenefitpayload directly instead of theBenefitResponsewrapper. Clients should unmarshal one level shallower.GET /api/v1/claims/authorizationsnow requires theguid,patient_id, andtokenquery parameters. Requests missing any of these will receive400 Bad Request.POST /api/v1/claims/otprequest body —contact_idis now an integer (previously a string). Clients must update their request serialization.403 Forbiddenis now a documented response on the following endpoints (returned when the request lacks a valid tenant context):POST /api/v1/claims/attachments,PATCH /api/v1/claims/attachments,POST /api/v1/claims/authorize,POST /api/v1/claims/close,POST /api/v1/claims/diagnoses,PATCH /api/v1/claims/diagnoses,POST /api/v1/claims/discharge,POST /api/v1/claims/emergency,POST /api/v1/claims/interventions,POST /api/v1/claims/interventions/restore,POST /api/v1/claims/interventions/retire,POST /api/v1/claims/lines,PATCH /api/v1/claims/lines,PATCH /api/v1/claims/lines/edit,POST /api/v1/claims/lines/resubmit,POST /api/v1/claims/otp,POST /api/v1/claims/otp/discharge,POST /api/v1/claims/preview,GET /api/v1/claims/preview/payer,POST /api/v1/claims/visit,GET /api/v1/preauths,POST /api/v1/preauths,POST /api/v1/preauths/cancel.
Schema changes that may affect clients
Invoice.edi_invoice_idis now an integer (previously string).Intervention.prescriptionMedicationandIntervention.dispenseMedicationare now booleans (previously strings).Intervention.kephLevelTarrifhas been renamed toIntervention.kephLevelTarriff(typo fix). Update any code that reads the old field name.
[Unreleased] - 2026-05-11
Added
GET /api/v1/clinical/concepts— search for clinical concepts within a terminology source (e.g. WHO ICD-11) by free-text query. Concepts are namespaced by an owner (publishing organisation) and a source (specific code system). Supports pagination vialimit(default 25, max 200) andoffset.GET /api/v1/clinical/concepts/mappings— fetch parent concepts together with their mapped child concepts from a terminology source. Optionally filter to one parent withfrom_concept, or restrict to a single relationship type withmap_type(one ofsame-as,narrower-than,broader-than,has-child,has-parent,q-and-a,concept-set).
[Unreleased] - 2026-04-24 (2)
Changed
POST /api/v1/claims/visit— now documents two distinct visit creation strategies: OTP (provideotpalong withintervention_codes,patient_id, andservice_type) and Biometrics (provideauth_guid— the authorization identifier from a preceding biometric authorization — in place ofotp).
[Unreleased] - 2026-04-24
Changed
POST /api/v1/claims/authorize— now documents two distinct authorization strategies: OTP (phone-based one-time password, requirespatient_id,service_type,otp, andinterventions) and Biometrics (eKYC or fingerprint via a registered hardware agent, requires device and agent context fields). Select the appropriate strategy based on the patient's consent method.GET /api/v1/claims/authorizations— lookup parameters (token,beneficiary_code,guid) are now passed as query parameters instead of a request body.
[Unreleased] - 2026-04-23
Changed
GET /api/v1/patients/benefits— now accepts two optional query parameters:fields(comma-separated list of fields to include in the response, e.g.parent_benefit,parent_benefit_code) andis_unique_benefit(boolean to filter to unique benefits only).GET /api/v1/patients/benefits/interventions— now requires asub_benefit_codequery parameter alongsidepatient_id; the endpoint returns the interventions for the given sub-benefit instead of all interventions across benefits.POST /api/v1/patients/otp-whitelists— request body accepts new optionalfacility_fr_codeandfacility_fr_typeidentifiers for the facility raising the whitelist request.POST /api/v1/patients/otp(Send OTP) — request body accepts an optionalcontact_idto target a specific patient contact for OTP delivery.POST /api/v1/claims/visit— request body extended with device/biometrics context (auth_guid,device_id,device_name,is_biometrics,request_user_national_id,workstation_id). The inpatient-onlyadmission_dateandestimated_days_of_admissionfields have been removed; onlyintervention_codes,patient_id, andservice_typeare now required.POST /api/v1/claims/doctor-consent— request body now acceptspractitioner_registration_number; onlyintervention_codeandrequest_typeremain required.POST /api/v1/claims/lines/editandPOST /api/v1/claims/lines/resubmit— the line identifier is nowline_id(previouslyclaim_line_id).GET /api/v1/patients/benefitsresponse — the top-level object is now a paginated envelope (count,currentPage,endIndex,next,pageSize,previous,results[],startIndex,totalPages) wrapping an array of benefit records. Existing consumers reading benefits directly off the response root must now read them fromresults[].GET /api/v1/claims/preview/payerresponse — restructured to a paginated envelope (pageSize,results[]) wrapping payer-claim previews.GET /api/v1/patients/eligibilityresponse — coverage shape changed: addedage,dateOfBirth,gender,schemes,statusCode,statusDesc,whitelistedForOTP; removed legacy coverage fields (contributionHistory,coverageEndDate,coverageStartDate,coverageType,dependants,employerDetails,memberType,primaryContributor, and related status/reason fields).- Preauth request payloads (
POST /api/v1/preauthsand related) — now accept detailed clinical context fields for specialised preauths (anaesthesia, carcinoma staging, chief complaint, clinical indications, comorbidity, HPI, investigations, optical lens/frame details, oncology metastases, renal session scheduling, replacement flags, treatment setting, vital signs). - Interventions response across claims and patients endpoints — tariff fields renamed from snake_case (
level_2_tariff,fallBackLevel_2_tariff) to camelCase (level2Tariff,fallBackLevel2Tariff); additional document-type fields (applicableDocumentTypes,optionalPreauthDocumentTypes,requiredPreauthDocumentTypes) added. - Claim previews and interventions — now expose
authorization_code,workflow_state, and preauth-requirement flags (requires_oncology_preauth,requires_optical_preauth,requires_radiology_preauth,requires_renal_preauth,needs_preauth, and associated document-type lists). - Invoices — added
edi_invoice_guid; removed the legacyinvoice_copayscollection. - Preauth responses — the legacy internal
replicatedflag has been removed from preauth-related resources (Contact, Preauth, PreauthAttachment, PreauthDiagnosis, PreauthDoctor, PreauthItem, PreauthNote). - Preauth authorization details — removed internal SHR push-tracking fields (
lastSuccessfulPushToShr,lastSuccessfulResponseFromShr,lastUnsuccessfulPushToShr,lastUnsuccessfulResponseFromShr,sentToShr,shrPushRetryCount,replicated,beneficiaryJoinDate,authAttachments,authorizationNotes,payerAuthorization). Doctor profiles in preauth responses now exposecurrencyCode,nationalIdentifier,suspended, andsuspensionReasonin place of the legacy operational/institutional fields.
[Unreleased] - 2026-04-07
Added
GET /api/v1/patients/contacts— Retrieve contacts associated with a patientGET /api/v1/claims/authorizations— Retrieve authorizations for a claimPOST /api/v1/claims/authorize— Authorize a claimPOST /api/v1/claims/interventions/switch— Switch an active intervention to a different oneGET /api/v1/patients/benefits/utilization— Retrieve fund utilization details for a beneficiaryGET /api/v1/patients/sub-benefits— Retrieve sub-benefits for a beneficiaryGET /api/v1/patients/pomsf-balances— Retrieve POMSF balances for a beneficiaryPOST /api/v1/uploads— Upload a file attachmentGET /api/v1/uploads/{file_id}— Retrieve a previously uploaded fileGET /clinical/document-bundles/{id}— Retrieve a clinical document bundlePOST /clinical/document-bundles/{id}/pdf— Generate a PDF rendition of a document bundleGET /clinical/document-bundles/{id}/render— Render a document bundle for displayGET /clinical/document-references— List document referencesGET /clinical/document-references/{id}— Retrieve a document reference by IDGET /clinical/encounters/{id}/$everything— Retrieve all clinical resources associated with an encounterPOST /clinical/fhir/bundle— Submit a FHIR bundle for processingPOST /clinical/html-to-pdf— Convert an HTML document to PDFGET /clinical/icd11/search— Search ICD-11 diagnosis codesPOST /clinical/lab/expand-panel— Expand a lab panel into its component testsGET /clinical/loinc/search— Search LOINC clinical terminology codesPOST /clinical/medication-dispenses— Record a medication dispense eventGET /clinical/medication-request— List medication requestsPATCH /clinical/medication-request/{id}— Partially update a medication requestGET /clinical/ocl/orgs/{org}/collections/{collection}/concepts/search— Search concepts within an OCL collectionGET /clinical/ocl/orgs/{org}/sources/{source}/concepts— List concepts from an OCL sourceGET /clinical/questionnaire/{id}— Retrieve a questionnaire by IDPOST /clinical/questionnaire-response/bulk— Submit multiple questionnaire responses in a single requestPOST /clinical/questionnaire-response/submit— Submit a completed questionnaire responsePUT /clinical/questionnaire-response/{id}— Replace a questionnaire responsePOST /clinical/questionnaire-response/{id}/finalize— Finalize a submitted questionnaire responsePOST /clinical/questionnaire-response/{id}/preview— Preview a questionnaire response before submissionGET /clinical/service-requests— List service requestsPOST /clinical/service-requests— Create a new service requestGET /clinical/service-requests/{id}— Retrieve a service request by IDPUT /clinical/service-requests/{id}— Replace a service requestDELETE /clinical/service-requests/{id}— Delete a service requestPATCH /clinical/service-requests/{id}— Partially update a service request
Changed
POST /api/v1/claims/attachments— Now accepts file uploads via multipart form instead of JSONPOST /api/v1/claims/emergency/protocols— Now accepts file uploads via multipart form instead of JSONPOST /api/v1/claims/lines— Now accepts file uploads via multipart form instead of JSONPATCH /clinical/allergyintolerance/{id}— Now supports partial updates via PATCHPATCH /clinical/appointments/{id}— Now supports partial updates via PATCHPATCH /clinical/observations/{id}— Now supports partial updates via PATCH
[1.1.0] - 2026-01-30
Added
- Preauth Polymorphism: Enabled polymorphic request support for
POST /api/v1/preauths, allowing submission of various preauthorization types (Normal, Surgical, Renal, Oncology, Optical, Imaging, Dental) viamultipart/form-data. - Preauth Schemas: Added specialized request schemas for all preauthorization types.
Changed
- Metadata Harmonization: Updated summaries, descriptions, and tags for over 25 endpoints in Claims, Emergency, Interventions, and Patients services to align with legacy API documentation standards.
- Tag Alignment: Standardized tags across the eClaims and Preauth API (e.g.,
Billing,Claim Dispatch,Emergency,Preauths,Eligibility) to match theopenapi.jsondefinitions. - Parameter Preservation: Harmonized metadata while explicitly preserving the new API's parameter structure, ensuring no breaking changes to request signatures.
Fixed
- API Validation: Fixed a missing path parameter definition in
api_v1_preauths_diagnoses_{icd_code}.json. - Tag Inconsistencies: Corrected generic
Claimstags to more specific functional categories (e.g.,Start Visit Consent,Claim Dispatch,Billing).
[1.0.0] - 2025-12-11
Added
- New Endpoints:
/api/v1/patients/eligibility(Check Eligibility)/api/v1/patients/benefits(Get Benefits)/api/v1/claims/otp-discharge(Discharge OTP)/api/v1/claims/discharge(Discharge Patient)
- Metadata Restoration: Restored legacy descriptions, tags, and parameters for 19 endpoints to ensure backward compatibility.
Changed
- Directory Structure:
- Migrated all OAS components to
apis/components. - Updated all
$refpaths to point to the new shared components location.
- Migrated all OAS components to
- Endpoint Updates:
/api/v1/patients/sub-benefits: Restored legacy parameters (beneficiary_cr_id,applicable_schemes,facility_id,search).
Fixed
- Bundling: Fixed schema resolution errors during the bundling process by restoring missing legacy schemas.
- Schema References: Corrected broken
$refpaths in multiple endpoint files.
Removed
- Unused Schemas: Deleted 113 unused schema files to clean up the codebase.
- Temporary Directories: Removed
HIE-Middlewar-OASdirectory after migration.
Last modified on

