Changelog and versioning
The Developer Platform is path-versioned. Every URL starts with /v1.
A new major version only ships when a change cannot be made additively.
Guarantees inside /v1
- New fields and endpoints may be added at any time. Your integration must ignore unknown fields.
- Existing fields will not change type or meaning.
- Enum values will only be added, never removed inside
v1. New values may appear at any time - handle unknown values gracefully. - Deprecations are announced in advance in this changelog and on the relevant reference page.
Webhook versioning
The webhook envelope carries an api_version field (currently "v1").
The same additive rules apply to webhook payloads. If Carebit introduces
another version, endpoint-level version selection and migration guidance
will be added before that version is available.
Change log
15 September 2026
GET /v1/patients/{patient_id}/connectionslists PatientConnections this Organization already has ResourcePermissions for (unlocked connections). Locked connections, including a GP that has not been unlocked in Carebit, are omitted. Create and update usepatient_connections.createandpatient_connections.update. Create connects the Patient to an existing Organization, such as a GP practice. If the Patient is already connected, Carebit returns that PatientConnection and grants this Organization access. This does not create Organizations. Update may change only this Organization's PatientConnection, not an unlocked GP or other Organization's connection.GET /v1/organizationssearches active Organizations bynameorpostcode. Optionally filter withorganization_type, for examplegp_practice. At least one ofnameorpostcodeis required. Requiresorganization.search. Email, subdomain, phone, currency, and time_zone are null so a search cannot harvest contact details. Creating Organizations through the API is not permitted.POST /v1/patients/{patient_id}/payorsacceptsset_as_default_payor. Whentrue, Carebit creates the Payor and selects it on this Organization's PatientConnection in the same request.
13 September 2026
GET /v1/tokenconfirms the current access token and returns the Organization, project, granted scopes, and expiry. Any valid token can call it. It does not requireorganization.read. The response does not include the token secret.GET /v1/invoicesno longer requiresbooking_idorpatient_id. Those filters remain optional.GET /v1/paymentslists Payments. Filter optionally bypatient_idand bypaid_at_from/paid_at_to. Each Payment includesinternal_notes,invoice_id,patient_id, and nestedrefunds. Requirespayments.read.- Lead objects include
internal_notes,referral_notes, andreferral_source. These fields are writable on create and update so an API-created enquiry can match one entered in Carebit.internal_notesis the Notes box next to presenting problem.referral_sourceuses the same values as the Carebit referral source list, such asgp_practiceorwebsite.
12 September 2026
- Diary Booking lists accept a
start_timewindow of up to 30 days (90 days when filtering bypatient_id). GET /v1/bookingsno longer requiresstart_time_fromandstart_time_towhenstatusis a recall status (awaiting_recall,overdue_for_recall,recall_expired, orrecall_canceled). Those lists are ordered byrecall_due_date.did_not_attendand other diary queries still require the date window.- Booking objects include
recall_due_date. - Lists are available at
/v1/lists, including create, update, and delete. Membership is nested at/v1/lists/{list_id}/members. Add a member withmember_typeandmember_id; currentlymember_typeaccepts onlypatient. Nested List objects onlist.member_addedandlist.member_removednow match the List resource, including timestamps, notes, color, Clinician, and links. POST /v1/bookings/{booking_id}/cancellationscancels a Booking. It requiresbookings.cancel, which is independent ofbookings.update.cancellation_reasonis required when the Organization requires cancellation reasons. API cancellations usecancellation_sourceapiand automatically apply attendance penalty invoices, except when the Booking was awaiting payment. Booking objects includecanceled_at,cancellation_reason,cancellation_information, andcancellation_source.refund.createdis emitted when a Refund is created.
Entries appear here as the platform grows. The published OpenAPI
document at /openapi.json is the source of truth for the current
surface.