<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://zandaapi.zandahealth.com/docs/changelog</id>
    <title>Zanda Health Public API release notes</title>
    <updated>2026-10-08T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://zandaapi.zandahealth.com/docs/changelog"/>
    <subtitle>Changes to the Zanda Health Public API</subtitle>
    <icon>https://zandaapi.zandahealth.com/docs/img/logoBlue.svg</icon>
    <entry>
        <title type="html"><![CDATA[8 October 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/10/08/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/10/08/release"/>
        <updated>2026-10-08T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Client profiles: Alberta and British Columbia time zones]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="client-profiles-alberta-and-british-columbia-time-zones">Client profiles: Alberta and British Columbia time zones<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/10/08/release#client-profiles-alberta-and-british-columbia-time-zones" class="hash-link" aria-label="Direct link to Client profiles: Alberta and British Columbia time zones" title="Direct link to Client profiles: Alberta and British Columbia time zones" translate="no">​</a></h3>
<p>A client profile saved with <code>timeZone</code> <code>America/Edmonton</code>, <code>America/Yellowknife</code>, <code>America/Inuvik</code> or
<code>Canada/Mountain</code> now reads back as <code>America/Edmonton</code> instead of <code>America/Denver</code>, and one saved
with <code>America/Vancouver</code> or <code>Canada/Pacific</code> reads back as <code>America/Vancouver</code> instead of
<code>America/Los_Angeles</code>. Time zone answers from <code>GET /api/v1/forms/{id}</code> gain "Calgary, Edmonton" and
"Vancouver, Victoria", and the US options now read "Denver, Salt Lake City" and "Los Angeles, Seattle".</p>]]></content>
        <category label="Changed" term="Changed"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[30 September 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/09/30/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/30/release"/>
        <updated>2026-09-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Appointment resource assignment]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="appointment-resource-assignment">Appointment resource assignment<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/30/release#appointment-resource-assignment" class="hash-link" aria-label="Direct link to Appointment resource assignment" title="Direct link to Appointment resource assignment" translate="no">​</a></h3>
<p><code>PATCH /api/v1/appointments/{id}</code>, <code>PATCH /api/v1/group-appointments/{id}</code> and <code>PATCH /api/v1/group-appointments/{appointmentId}/participants/{clientId}</code> no longer report success when a resource item you asked for could not be attached; the request fails instead of returning <code>200</code> with the resource silently missing. Moving an appointment and assigning a resource item in the same request now also attaches it when that resource is only busy at the appointment's previous time.</p>]]></content>
        <category label="Fixed" term="Fixed"/>
        <category label="Beta" term="Beta"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[28 September 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/09/28/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/28/release"/>
        <updated>2026-09-28T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Appointment write endpoints are published]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="appointment-write-endpoints-are-published">Appointment write endpoints are published<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/28/release#appointment-write-endpoints-are-published" class="hash-link" aria-label="Direct link to Appointment write endpoints are published" title="Direct link to Appointment write endpoints are published" translate="no">​</a></h3>
<p>Creating and updating appointments, group appointments and group participants is now available to
every practice, and the group appointment operations appear in the API reference for the first time.</p>]]></content>
        <category label="Changed" term="Changed"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[23 September 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/09/23/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/23/release"/>
        <updated>2026-09-23T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Created and modified dates on payments]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="created-and-modified-dates-on-payments">Created and modified dates on payments<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/23/release#created-and-modified-dates-on-payments" class="hash-link" aria-label="Direct link to Created and modified dates on payments" title="Direct link to Created and modified dates on payments" translate="no">​</a></h3>
<p>Payment responses now carry <code>created</code>, when the payment was created, and <code>userModified</code>, when its
details or invoice allocations were last changed. <code>userModified</code> is null until the payment is first
changed. Prefer it over <code>lastModified</code> for detecting edits: <code>lastModified</code> is broader and also moves
when the record is rewritten without any of those values changing.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="invoice-allocations-on-payments">Invoice allocations on payments<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/23/release#invoice-allocations-on-payments" class="hash-link" aria-label="Direct link to Invoice allocations on payments" title="Direct link to Invoice allocations on payments" translate="no">​</a></h3>
<p>Payment responses now carry an <code>invoices</code> collection: one entry per invoice the payment was
allocated to, with a link to it and the amount allocated. An unallocated payment returns an empty
collection.</p>]]></content>
        <category label="Added" term="Added"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[21 September 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/09/21/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/21/release"/>
        <updated>2026-09-21T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Write operations are now linked from the responses you already fetch]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="write-operations-are-now-linked-from-the-responses-you-already-fetch">Write operations are now linked from the responses you already fetch<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/21/release#write-operations-are-now-linked-from-the-responses-you-already-fetch" class="hash-link" aria-label="Direct link to Write operations are now linked from the responses you already fetch" title="Direct link to Write operations are now linked from the responses you already fetch" translate="no">​</a></h3>
<p>Responses using <code>application/vnd.zandaapi.hateoas+json</code> now advertise the write operations available,
so you can act by following a link rather than building the URL yourself. A collection carries
<code>create</code>; the operations that act on a record — update, delete and the like — are on that record's
own response, so fetch it and follow the links it returns.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="personal-appointments">Personal appointments<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/21/release#personal-appointments" class="hash-link" aria-label="Direct link to Personal appointments" title="Direct link to Personal appointments" translate="no">​</a></h3>
<p>Added <code>GET /api/v1/personal-appointments</code> and <code>GET /api/v1/personal-appointments/{id}</code>, which list
the practice's personal appointments and fetch one by id.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="practitioner-roster-overrides">Practitioner roster overrides<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/21/release#practitioner-roster-overrides" class="hash-link" aria-label="Direct link to Practitioner roster overrides" title="Direct link to Practitioner roster overrides" translate="no">​</a></h3>
<p>Added <code>GET /api/v1/practitioner-roster-overrides</code> and
<code>GET /api/v1/practitioner-roster-overrides/{id}</code>, which return the one-off changes made to a
practitioner's recurring roster: a day off, a conference, an extra evening clinic. Each override
gives the date range and the daily time window it covers, whether it adds or removes availability,
and whether those hours can be booked online. Filter by practitioner, location, active status,
availability, online bookings, or the date an override is in effect.</p>]]></content>
        <category label="Added" term="Added"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[17 September 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/09/17/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/17/release"/>
        <updated>2026-09-17T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Beta endpoints are labelled]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="beta-endpoints-are-labelled">Beta endpoints are labelled<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/17/release#beta-endpoints-are-labelled" class="hash-link" aria-label="Direct link to Beta endpoints are labelled" title="Direct link to Beta endpoints are labelled" translate="no">​</a></h3>
<p>Endpoints that are still in beta now show a <code>[BETA]</code> prefix or a <code>BETA</code> chip in the documentation pages.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="practitioner-rosters">Practitioner rosters<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/17/release#practitioner-rosters" class="hash-link" aria-label="Direct link to Practitioner rosters" title="Direct link to Practitioner rosters" translate="no">​</a></h3>
<p>Added <code>GET /api/v1/practitioner-roster</code> and <code>GET /api/v1/practitioner-roster/{id}</code>, which return a
practitioner's recurring working pattern: the date range, the location, how often the pattern
repeats, and the time slots for all seven weekdays, including any services a slot excludes from
online booking. Filter by practitioner, location, active status, availability, online bookings, or
the date a roster is in effect.</p>]]></content>
        <category label="Changed" term="Changed"/>
        <category label="Added" term="Added"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[15 September 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/09/15/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/15/release"/>
        <updated>2026-09-15T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Invoices can be created and updated by every practice]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="invoices-can-be-created-and-updated-by-every-practice">Invoices can be created and updated by every practice<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/15/release#invoices-can-be-created-and-updated-by-every-practice" class="hash-link" aria-label="Direct link to Invoices can be created and updated by every practice" title="Direct link to Invoices can be created and updated by every practice" translate="no">​</a></h3>
<p><code>POST /api/v1/invoices</code> and <code>PATCH /api/v1/invoices/{id}</code> are out of limited release and enabled for
all practices. Request and response shapes are unchanged, so an integration built against them
during the limited release needs no update.</p>]]></content>
        <category label="Changed" term="Changed"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[10 September 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/09/10/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/10/release"/>
        <updated>2026-09-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Appointments can be invoiced for billable items]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="appointments-can-be-invoiced-for-billable-items">Appointments can be invoiced for billable items<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/10/release#appointments-can-be-invoiced-for-billable-items" class="hash-link" aria-label="Direct link to Appointments can be invoiced for billable items" title="Direct link to Appointments can be invoiced for billable items" translate="no">​</a></h3>
<p><code>POST /api/v1/appointments</code> takes <code>billableItemIds</code>, the items the appointment is invoiced for, as
returned by <code>GET /api/v1/billable-items</code>. Order matters: the first identifier becomes the
appointment's service. Send none and the appointment is not invoiced.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="appointments-the-invoiced-billable-items-can-be-replaced">Appointments: the invoiced billable items can be replaced<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/10/release#appointments-the-invoiced-billable-items-can-be-replaced" class="hash-link" aria-label="Direct link to Appointments: the invoiced billable items can be replaced" title="Direct link to Appointments: the invoiced billable items can be replaced" translate="no">​</a></h3>
<p><code>PATCH /api/v1/appointments/{id}</code> takes <code>billableItemIds</code> as the full set the appointment is invoiced
for, replacing whatever is there. Omit it to leave the invoice untouched, or send an empty array to
clear the billable items, which leaves the invoice with a zero total rather than deleting it.
Anything else on the invoice, such as a session-pack session or a card surcharge, stays as it is.</p>]]></content>
        <category label="Added" term="Added"/>
        <category label="Beta" term="Beta"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[8 September 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/09/08/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/08/release"/>
        <updated>2026-09-08T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Paging by page has been removed]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="paging-by-page-has-been-removed">Paging by <code>page</code> has been removed<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/08/release#paging-by-page-has-been-removed" class="hash-link" aria-label="Direct link to paging-by-page-has-been-removed" title="Direct link to paging-by-page-has-been-removed" translate="no">​</a></h3>
<p>The <code>page</code> parameter no longer exists on any list endpoint. Every list is paged with <code>cursor</code>. This
is a breaking change to any request that still sends <code>page</code>.</p>
<p>Read <code>cursor</code> from the response and send it back to fetch the next page; omit it to start from the
beginning. <code>pageSize</code> is unchanged and still sets how many records a page holds. Paging by cursor is
forward-only, so there is no page number to jump to and no total to divide.</p>
<p>Before:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">GET /api/v1/invoices?page=3&amp;pageSize=25</span><br></div></code></pre></div></div>
<p>After:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">GET /api/v1/invoices?cursor=CURSOR_FROM_PREVIOUS_RESPONSE&amp;pageSize=25</span><br></div></code></pre></div></div>]]></content>
        <category label="Breaking" term="Breaking"/>
        <category label="Removed" term="Removed"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[7 September 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/09/07/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/07/release"/>
        <updated>2026-09-07T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Group appointments: add a participant]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="group-appointments-add-a-participant">Group appointments: add a participant<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/07/release#group-appointments-add-a-participant" class="hash-link" aria-label="Direct link to Group appointments: add a participant" title="Direct link to Group appointments: add a participant" translate="no">​</a></h3>
<p><code>POST /api/v1/group-appointments/{appointmentId}/participants</code> adds a client to an existing group
booking.</p>]]></content>
        <category label="Added" term="Added"/>
        <category label="Beta" term="Beta"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[3 September 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/09/03/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/03/release"/>
        <updated>2026-09-03T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Group appointments can be created]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="group-appointments-can-be-created">Group appointments can be created<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/09/03/release#group-appointments-can-be-created" class="hash-link" aria-label="Direct link to Group appointments can be created" title="Direct link to Group appointments can be created" translate="no">​</a></h3>
<p><code>POST /api/v1/group-appointments</code> creates a group appointment.</p>]]></content>
        <category label="Added" term="Added"/>
        <category label="Beta" term="Beta"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[27 August 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/08/27/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/27/release"/>
        <updated>2026-08-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Group appointments: remove a participant]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="group-appointments-remove-a-participant">Group appointments: remove a participant<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/27/release#group-appointments-remove-a-participant" class="hash-link" aria-label="Direct link to Group appointments: remove a participant" title="Direct link to Group appointments: remove a participant" translate="no">​</a></h3>
<p><code>DELETE /api/v1/group-appointments/{appointmentId}/participants/{clientId}</code> removes one participant
from a group booking, leaving the other participants untouched.</p>]]></content>
        <category label="Added" term="Added"/>
        <category label="Beta" term="Beta"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[26 August 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/08/26/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/26/release"/>
        <updated>2026-08-26T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Resource items: locationId is replaced by a locations collection]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="resource-items-locationid-is-replaced-by-a-locations-collection">Resource items: <code>locationId</code> is replaced by a <code>locations</code> collection<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/26/release#resource-items-locationid-is-replaced-by-a-locations-collection" class="hash-link" aria-label="Direct link to resource-items-locationid-is-replaced-by-a-locations-collection" title="Direct link to resource-items-locationid-is-replaced-by-a-locations-collection" translate="no">​</a></h3>
<p>On <code>GET /api/v1/resource-items</code> and <code>GET /api/v1/resource-items/{id}</code>, the single <code>locationId</code> field
is gone. A resource item now returns <code>locations</code>, a list of the locations it is available at, each
with an <code>id</code>, a <code>name</code> and a link. This is a breaking change to the resource item response.</p>
<p>A resource can be shared across locations, which the single field could not express. Read
<code>resourceItem.locations</code> and match on the entry you need instead of comparing <code>locationId</code>. The
<code>locationId</code> filter on the list endpoint is unchanged and now matches an item at any of its
locations.</p>
<p>Before:</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token property">"locationId"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">3</span><br></div></code></pre></div></div>
<p>After:</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token property">"locations"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token plain"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token property">"id"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">3</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token property">"name"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">"Coburg"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token property">"links"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"> </span><span class="token property">"href"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">"/api/v1/locations/3"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token property">"rel"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">"self"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token property">"method"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">"GET"</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token property">"id"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">7</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token property">"name"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">"Fitzroy"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">    </span><span class="token property">"links"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"> </span><span class="token property">"href"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">"/api/v1/locations/7"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token property">"rel"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">"self"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token property">"method"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">"GET"</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><br></div></code></pre></div></div>]]></content>
        <category label="Breaking" term="Breaking"/>
        <category label="Changed" term="Changed"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[25 August 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/08/25/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/25/release"/>
        <updated>2026-08-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Appointments: when scheduleReminder may be set]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="appointments-when-schedulereminder-may-be-set">Appointments: when <code>scheduleReminder</code> may be set<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/25/release#appointments-when-schedulereminder-may-be-set" class="hash-link" aria-label="Direct link to appointments-when-schedulereminder-may-be-set" title="Direct link to appointments-when-schedulereminder-may-be-set" translate="no">​</a></h3>
<p>On <code>PATCH /api/v1/appointments/{id}</code> and
<code>PATCH /api/v1/group-appointments/{appointmentId}/participants/{clientId}</code>, <code>scheduleReminder</code> is
rejected once the appointment's start time has passed, and while the attendance state is anything
other than <code>Pending</code> or <code>Confirmed</code> unless a reminder has already been sent. Setting it to <code>true</code>
also requires a client who can receive reminders. Omit the property in those cases. The rules now
match the ones the Zanda app applies.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="invoices-can-be-created-against-a-deactivated-practitioner">Invoices can be created against a deactivated practitioner<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/25/release#invoices-can-be-created-against-a-deactivated-practitioner" class="hash-link" aria-label="Direct link to Invoices can be created against a deactivated practitioner" title="Direct link to Invoices can be created against a deactivated practitioner" translate="no">​</a></h3>
<p><code>POST /api/v1/invoices</code> no longer rejects an invoice whose practitioner has since been deactivated,
which matches what the practice can do in the app.</p>]]></content>
        <category label="Changed" term="Changed"/>
        <category label="Beta" term="Beta"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[24 August 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/08/24/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/24/release"/>
        <updated>2026-08-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Invoices: cursor paging could still time out]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="invoices-cursor-paging-could-still-time-out">Invoices: cursor paging could still time out<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/24/release#invoices-cursor-paging-could-still-time-out" class="hash-link" aria-label="Direct link to Invoices: cursor paging could still time out" title="Direct link to Invoices: cursor paging could still time out" translate="no">​</a></h3>
<p>Paging through <code>GET /api/v1/invoices</code> with <code>cursor</code> could still fail rather than return a page for
some practices; this is now fixed.</p>]]></content>
        <category label="Fixed" term="Fixed"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[20 August 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/08/20/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/20/release"/>
        <updated>2026-08-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Client profiles can be created and updated by every practice]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="client-profiles-can-be-created-and-updated-by-every-practice">Client profiles can be created and updated by every practice<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/20/release#client-profiles-can-be-created-and-updated-by-every-practice" class="hash-link" aria-label="Direct link to Client profiles can be created and updated by every practice" title="Direct link to Client profiles can be created and updated by every practice" translate="no">​</a></h3>
<p><code>POST /api/v1/client-profiles/clients</code> and <code>PATCH /api/v1/client-profiles/clients/{id}</code> are out of
limited release and enabled for all practices. Request and response shapes are unchanged, so an
integration built against them during the limited release needs no update.</p>
<p>Creating or updating a profile with a lookup id that is no longer active, such as an archived
classification, category or status, is rejected with <code>400</code>. Read the current options from the
matching reference-data endpoint.</p>]]></content>
        <category label="Changed" term="Changed"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[19 August 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/08/19/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/19/release"/>
        <updated>2026-08-19T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Referrals: referrerType is now an object]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="referrals-referrertype-is-now-an-object">Referrals: <code>referrerType</code> is now an object<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/19/release#referrals-referrertype-is-now-an-object" class="hash-link" aria-label="Direct link to referrals-referrertype-is-now-an-object" title="Direct link to referrals-referrertype-is-now-an-object" translate="no">​</a></h3>
<p>On <code>GET /api/v1/referrals</code> and <code>GET /api/v1/referrals/{id}</code>, the <code>referrerType</code> field has changed
from a plain text name to an object with an <code>id</code>, a <code>name</code>, and a link to the matching referrer type.
This is a breaking change to the referral response.</p>
<p>If you currently read the referrer type's name, change <code>referral.referrerType</code> to
<code>referral.referrerType.name</code>. You can now also use <code>referral.referrerType.id</code> to fetch it from
<code>GET /api/v1/referrer-types/{id}</code>, or match it against the <code>GET /api/v1/referrer-types</code> list. As
before, <code>referrerType</code> is <code>null</code> when a referrer has no type set.</p>
<p>Before:</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token property">"referrerType"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">"General Practitioner"</span><br></div></code></pre></div></div>
<p>After:</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token property">"referrerType"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token property">"id"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">42</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token property">"name"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">"General Practitioner"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">  </span><span class="token property">"links"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"> </span><span class="token property">"href"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">"/api/v1/referrer-types/42"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token property">"rel"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">"self"</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token property">"method"</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">"GET"</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="note-and-form-templates">Note and form templates<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/19/release#note-and-form-templates" class="hash-link" aria-label="Direct link to Note and form templates" title="Direct link to Note and form templates" translate="no">​</a></h3>
<ul>
<li class=""><code>GET /api/v1/note-templates</code> lists the practice's note templates.</li>
<li class=""><code>GET /api/v1/form-templates</code> and <code>GET /api/v1/form-templates/{id}</code> list and fetch form templates.</li>
</ul>]]></content>
        <category label="Breaking" term="Breaking"/>
        <category label="Changed" term="Changed"/>
        <category label="Added" term="Added"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[18 August 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/08/18/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/18/release"/>
        <updated>2026-08-18T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Group appointments: edit one participant]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="group-appointments-edit-one-participant">Group appointments: edit one participant<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/18/release#group-appointments-edit-one-participant" class="hash-link" aria-label="Direct link to Group appointments: edit one participant" title="Direct link to Group appointments: edit one participant" translate="no">​</a></h3>
<p><code>PATCH /api/v1/group-appointments/{appointmentId}/participants/{clientId}</code> updates a single
participant's appointment within a group booking, leaving the other participants untouched.</p>]]></content>
        <category label="Added" term="Added"/>
        <category label="Beta" term="Beta"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[12 August 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/08/12/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/12/release"/>
        <updated>2026-08-12T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Group appointments can be updated]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="group-appointments-can-be-updated">Group appointments can be updated<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/12/release#group-appointments-can-be-updated" class="hash-link" aria-label="Direct link to Group appointments can be updated" title="Direct link to Group appointments can be updated" translate="no">​</a></h3>
<p><code>PATCH /api/v1/group-appointments/{id}</code> edits a group appointment.</p>]]></content>
        <category label="Added" term="Added"/>
        <category label="Beta" term="Beta"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[10 August 2026]]></title>
        <id>https://zandaapi.zandahealth.com/docs/changelog/2026/08/10/release</id>
        <link href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/10/release"/>
        <updated>2026-08-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Notes]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="notes">Notes<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/10/release#notes" class="hash-link" aria-label="Direct link to Notes" title="Direct link to Notes" translate="no">​</a></h3>
<p><code>GET /api/v1/notes</code> and <code>GET /api/v1/notes/{id}</code> return client notes. The list returns note metadata;
fetch a single note to read its answers.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="payments-can-be-created-updated-and-deleted-by-every-practice">Payments can be created, updated and deleted by every practice<a href="https://zandaapi.zandahealth.com/docs/changelog/2026/08/10/release#payments-can-be-created-updated-and-deleted-by-every-practice" class="hash-link" aria-label="Direct link to Payments can be created, updated and deleted by every practice" title="Direct link to Payments can be created, updated and deleted by every practice" translate="no">​</a></h3>
<p><code>POST /api/v1/payments</code>, <code>PATCH /api/v1/payments/{id}</code> and <code>DELETE /api/v1/payments/{id}</code> are out of
limited release and enabled for all practices. Nothing about them changed on the way out, so an
integration built against them during the limited release needs no update.</p>]]></content>
        <category label="Changed" term="Changed"/>
        <category label="Added" term="Added"/>
    </entry>
</feed>