Releases 26.03 and 26.04 open the verbal time entry pipeline to external integrations, add a Peppol company identifier to contact representations, and resolve a few data integrity issues on invoice lines and on resources with custom fields. Review the changes below to assess the impact on your integration.
Important changes
GET /loglineinvoicelines/ derived fields return computed values: On the LoglineInvoiceline representation, the fields minutes, billable_minutes, rate, points, and tax_percentage return the computed values used elsewhere in the product. Previously these fields returned null on both the detail endpoint and through ?extra_fields= on the list, despite being documented as available.
Omitting custom_fields on PUT now raises a validation error: For resources that expose custom_fields (including Matter), a PUT request that omits custom_fields from the body raises a validation error and leaves the object unchanged. Previously the missing key defaulted to an empty payload and silently wiped the stored values. Review any PUT-based integration against resources that expose custom_fields. The safe default is to always include all fields, including all custom_fields entries, passing back the existing value unchanged if you do not intend to modify it.
New endpoints
/voicetotimesubmissions/ submit audio for verbal time entry processing: Three endpoints are added under /api/v3/voicetotimesubmissions/. GET /voicetotimesubmissions/ lists submissions the authenticated user has access to.
-
POST /voicetotimesubmissions/accepts an audio payload, creates aVoiceToTimeSubmissionin queued state, and triggers the asynchronous transcription and parsing pipeline. -
GET /voicetotimesubmissions/{id}/returns a single submission with its currentstatus(integer enum, values 1–4, labels are available in the docstring),transcription,structured_data, and a URL to the storedaudio_file.
In practice, you'll only need to check the status field. Upon completion, a new draft time entry is created. For background on the feature and the draft approval flow, see Using verbal time entry and Draft Time Entries.
Modified endpoints
/contacts/ additional peppol_company_id field: Every contact representation that exposes peppol_id also exposes peppol_company_id, on read, create, and update paths, in both API v3 and API v1. When peppol_company_id is empty, Legalsense falls back to use peppol_id.
The verbose name of peppol_id is updated to "Peppol endpoint ID" with clarified help text. The Company ID field is additive and optional: existing integrations require no changes. Populate peppol_company_id on debtors whose endpoint scheme requires a distinct company identifier. For setup and background, see Peppol.
/budgets/ and /budgets/{id}/ spec correction for extra_fields: The OpenAPI descriptions for the generic budget endpoints previously advertised amount_used and hours_used as values accepted by ?extra_fields=. These fields never worked on the generic endpoints and have been removed from the Budget schema and from the generic endpoint's extra_fields enum. The specialized endpoints /clientbudgets/, /matterbudgets/, and /submatterbudgets/ continue to advertise and return these fields. No runtime behavior changes.
For more information about Legalsense features, please visit our knowledge base.
Comments
0 comments
Article is closed for comments.