Changelog & Upgrades


Overview

Updates to the Invox Medical API — including new features, fields, or endpoints — are released under a new dated version to ensure stability and predictability. This means your integration won't be affected by these changes unless you explicitly opt into the newer version.

Version History

Version 2026-10-01

2026-10-01 is now the latest version. Requests sent without the X-Invox-Medical-Api-Version header resolve to 2026-10-01. If your integration relies on the previous behaviour of the Medical Text Formatter, pin the header to 2026-08-01.

AI Services Updates

Medical Text Formatter: new contract

The Medical Text Formatter endpoint (POST /api/v1/medical-text-formatter) introduces a new contract:

  • New request fields:
    • formatting_level (optional, "low" | "medium" | "high", default "medium"): sets the maximum degree of intervention, from a deterministic cleanup (low) to AI-assisted reorganization (medium) or style editing (high).
    • immutable_words (optional, string[], default []): words or expressions that must be kept exactly as written (same case and accents) in the formatted text.
  • text limits: text is required and must be between 1 and 50000 characters.
  • Fields without effect: language and preserve_case are still accepted but ignored. The language of the text is always detected automatically.
  • Response changes: the message field is removed and a new timestamp field (ISO 8601, UTC) is added. formatted_text and request_id are kept.
  • Error responses: errors now always return a { message, errorType } body with status 400 (invalidRequestBody), 500 (errorGeneratingMedicalReport) or 503 (serviceTemporarilyUnavailable). The previous 422 response is no longer returned.

Other endpoints

  • All AI Services and SOFT Integration endpoints available in 2026-08-01 also accept 2026-10-01, with no changes in their behaviour.
  • The legacy /api/v1/generate-report endpoint does not support 2026-10-01. It remains available only in 2025-10-01 and 2025-11-01. Use Generate Clinical Note instead.

Management API Updates

The Management API is not versioned with the X-Invox-Medical-Api-Version header. These changes apply to every request. Request payloads are unchanged.

New endpoints

  • Disable user (PATCH /users/:id/disable): disables a user who belongs only to your organization, so they can no longer sign in.
  • Enable user (PATCH /users/:id/enable): enables a disabled user who belongs only to your organization, including users blocked after too many failed login attempts.

Behaviour change

  • Invite user: an Organization Admin can no longer invite users with the ORGANIZATION_OWNER role. The request now returns 403 with errorType: "notAllowedResource", the same response that Edit user already returns for this rule. Only an Organization Owner can invite Organization Owners.

Fixes (same status codes and response structure)

  • Select account: sending a selectedAccount that is not one of your organizations no longer clears your current selection.
  • Group list: requests without limit now return the groups of the organization instead of an empty list.
  • Invite user: a groupId that does not belong to your organization is ignored, and the user is created without a group. When the email already had a platform account, the id field now contains the user identifier.
  • Delete group: the users of a deleted group are left without a group (groupId: "NOT-DEFINED") instead of pointing to the deleted group.
  • Delete user: deleting a user who belongs to several organizations now only removes them from your organization.
  • Requests with a body that is not valid JSON still return 400, now with a JSON body instead of an HTML page.

Documentation

  • All Management API pages now document the complete output of each endpoint: response fields, 401 and 403 bodies, and every errorType and errorMessage value. See Common responses.

Version 2026-08-01

SOFT Integration

New integration model

  • Introduced SOFT Integration, which lets your EHR open an Invox Genesis consultation for a physician without the physician logging in, and retrieve the resulting clinical note.
  • New endpoint Generate signature (POST /api/v1/generate-soft-integration-signature) to authorize a single consultation for a single physician.
  • New endpoint Get consultation result (GET /api/v1/soft-integration/{requestId}/result) to retrieve the clinical note once the consultation has finished.
  • New endpoint Cancel consultation (DELETE /api/v1/soft-integration/{requestId}) to release a physician whose session was abandoned.
  • SOFT Integration consultations are notified through the existing OnMedicalReportFinished webhook event, marked with origin: "SOFT_INTEGRATION" and carrying the optional consultationMetadata. There is also a WebSocket channel for the browser.
  • Requires an API Key holding the new GENESIS-SOFT-INTEGRATION permission.
SOFT Integration is only available from 2026-08-01 onwards. Its endpoints reject earlier versions with 400 and invalidApiVersionForEndpoint, since they did not exist in 2026-03-01 or before. Existing integrations are unaffected: this release adds endpoints and never changes the behaviour of the previous ones.
requestId values are single-use. Once accepted, a requestId can never be reused, not even after the consultation is cancelled. Generate a fresh value on every attempt.

AI Services Updates

Generate Clinical Note Enhancements

  • Added a new generationMetadata field to the Generate Clinical Note response. It provides detailed information about the generation outcome, including whether the result was partial, the number of failed fields, per-field status, and a recommendation for the client.
  • Supports partial responses: when one or more fields fail to generate, the response now returns the successfully generated fields along with failedFields (each with a reasonCode and retryable flag) and a recommendation (e.g. RETRY_RECOMMENDED).
This is a backward-compatible change. All previous features from version 2026-03-01 are included and maintained; the only difference is the addition of the generationMetadata field in the Generate Clinical Note response.

Version 2026-03-01

New Features

Updates

  • All previous features from version 2025-11-01 are included and maintained.
  • Addeed new endpoints for generating pre-signed URLs for document uploads and deleting uploaded documents in the context of clinical note generation.
  • Added Consultation Summary Generation endpoint to generate summaries based on audio transcriptions.
  • Added IM Tools endpoints
  • Added support for generating clinical note in Euskera, Galician and Valencian.

Webhooks

  • Added Webhooks documentation section with full reference for all available webhook events, including credentials, signature verification algorithm, and implementation examples in TypeScript, C#, Java, and Python.
  • Supported events: OnTranscriptionFinished, OnMedicalReportFinished, OnInvoxAuraTranscriptionFinished, OnInvoxAuraClinicalNoteCreated, OnInvoxAuraClinicalNoteFinished, OnInvoxAuraAudioCreated, and OnAlertTriggered.

Version 2025-11-01

AI Services Updates

Streaming Transcription Enhancements

  • Updated input data contract: we introduce the session concept
  • Removed callbackUrl field as mandatory when opening the web socket
  • Added a new kind of message type: END_TRANSCRIPTION
  • Clarified the usage of isTranscriptionCompleted field

For more details, check the Streaming Transcription Guide and the Get Transcription endpoint.

New Translation Endpoints

  • Added endpoint for translating transcriptions: We have added a new endpoint that allows translating transcriptions generated by our AI services. Check the Translate Transcription endpoint for more details.
  • Added endpoint for translating clinical notes: We have added a new endpoint that allows translating clinical notes generated by our AI services. Check the Translate Clinical Note endpoint for more details.

Changed Generate Report Endpoint

  • New endpoint for generating medical reports: We have renamed the existing generate-report endpoint to generate-clinical-note to better reflect its purpose. Check the Generate Clinical Note endpoint for more details.

Management API Updates

  • Select account after successful authentication: After successfully authenticating, users can now select the desired account to work with, enhancing flexibility for multi-account users. For more details, refer to the Select account.
  • Search events: allow us get events or actions performed by users in the platform. Check the Search Events endpoint for more details.
  • Login endpoint: Output contracts have been updated: added accounts field to list all accounts associated with the authenticated user, added userId field to identify the user, added fullName field to provide the user's full name.

Version 2025-10-01

Initial Release

  • First version of the API
  • Core AI Services functionality
  • Management API endpoints
  • Authentication system

Upgrade Guide

Migrating to Version 2026-10-01

The only breaking change affects the Medical Text Formatter endpoint. The rest of the endpoints behave exactly as in 2026-08-01.

Medical Text Formatter Updates

  1. Request: stop sending language and preserve_case, since they no longer have any effect. Use the new optional formatting_level and immutable_words fields if you need them.
  2. Response: remove any dependency on the message field. Use the new timestamp field if you need the date of the response.
  3. Errors: handle 400, 500 and 503 responses with the { message, errorType } body instead of the previous 422 response. 503 responses can be retried.
  4. Version header: if you are not ready to upgrade, send X-Invox-Medical-Api-Version: 2026-08-01. Requests without the header receive the 2026-10-01 contract.

Migrating to Version 2025-11-01

If you're currently using streaming transcription services, please review the following breaking changes:

Streaming Transcription Updates

  1. Session Concept: Update your integration to handle the new session-based workflow
  2. CallbackUrl Changes: The callbackUrl field is no longer mandatory when opening WebSocket connections
  3. New Message Types: Handle the new END_TRANSCRIPTION message type in your WebSocket message handlers
  4. isTranscriptionCompleted Field: Update your logic to check for the isTranscriptionCompleted field to determine when transcription is complete and retrieve the transcription using the Get Transcription endpoint.
  • Review your WebSocket implementation
  • Update message type handlers
  • Test with the new session workflow
  • Update error handling for the new message structure

Targeting a specific version

Default API Version

If we don't specify a version when making API requests, the system will automatically use the latest stable version available. This ensures that we always benefit from the most recent features and improvements without needing to adjust our integration.

Specifying a Version

To set the API version on a specific request, you can add a specific header named X-Invox-Medical-Api-Version with the value of the version you are targeting:

X-Invox-Medical-Api-Version: 2026-10-01

This approach allows us to maintain compatibility with a specific version of the API while still having the flexibility to upgrade when we're ready.