Docs
Connexion partenaire →

Référence de l’API partenaires

Agenda

Lire et synchroniser l'agenda des sites ouverts à l'application, chercher des créneaux libres, prendre, déplacer, annuler un rendez-vous et pointer l'arrivée d'un animal. Lectures : droit agenda:read ; écritures : agenda:write. Toute prise ou tout déplacement de rendez-vous est jugé en politique stricte : la moindre contrainte non respectée (site fermé, vétérinaire hors planning ou absent, créneau pris, date passée…) refuse l'appel en 409 SLOT_CONFLICT, même si la clinique accepte ce cas en simple avertissement dans son propre agenda. Une clinique qui n'a renseigné ni les horaires de ses sites ni le planning de ses vétérinaires ne peut donc recevoir aucun rendez-vous par l'API. L'application agit sous un utilisateur d'intégration à son nom : il apparaît comme créateur du rendez-vous, auteur de sa note, de son annulation et de l'arrivée.

Lister les motifs de rendez-vous

GET/api/partner/v1/appointment-subtypes#

agenda:read

Rend les motifs actifs d'un site, dans l'ordre d'affichage choisi par la clinique, éventuellement limités à un type. Un motif précise un type et peut fixer sa propre durée, une salle par défaut et une espèce. Les motifs désactivés par la clinique ne sont pas rendus. Une seule page : nextCursor vaut toujours null.

Paramètres

site_idrequête · uuid

Site lu. Obligatoire (ici ou dans l'en-tête) si l'organisation a ouvert plusieurs sites à l'application.

appointment_type_idrequête · uuid

Seulement les motifs de ce type, qui doit appartenir au site.

Treats-Site-Iden-tête · uuid

Équivalent de site_id, lu quand le paramètre est absent.

Réponse

200Les motifs actifs du site.

Champs de la réponse (2)
itemsAppointmentSubtype[]
iduuid

Identifiant du motif, à passer en appointmentSubtypeId.

appointmentTypeIduuid

Type auquel le motif appartient.

namestring

Nom du motif.

durationMinutesinteger

Durée du motif, en minutes. Une prestation rattachée au motif peut imposer une durée différente à la création du rendez-vous.

defaultRoomIduuid

Salle réservée par défaut pour ce motif quand la création ne précise pas de salle. Nulle sans salle par défaut.

peut être null
speciesstring

Code de l'espèce à laquelle le motif est réservé (voir GET /species). Nul : motif valable pour toutes les espèces.

peut être null
nextCursorstring

Curseur opaque de la page suivante, à repasser tel quel dans cursor. null : dernière page.

peut être null

Erreurs propres à cette opération

400 INVALID_FIELD

appointment_type_id n'est pas un UUID.

400 INVALID_SITE_ID

site_id (ou Treats-Site-Id) n'est pas un UUID.

404 SITE_NOT_FOUND

Le site demandé est inconnu, d'une autre organisation, ou non ouvert à l'application.

404 APPOINTMENT_TYPE_NOT_FOUND

appointment_type_id : type inconnu ou d'un autre site.

Et les erreurs communes à toutes les opérations : erreurs et limites.

Lister les types de rendez-vous

GET/api/partner/v1/appointment-types#

agenda:read

Rend les types de rendez-vous d'un site (consultation, vaccination, chirurgie…), avec leur durée par défaut. Ce sont les valeurs acceptées en appointmentTypeId. Liste courte, sans ordre garanti, en une seule page : nextCursor vaut toujours null.

Paramètres

site_idrequête · uuid

Site lu. Obligatoire (ici ou dans l'en-tête) si l'organisation a ouvert plusieurs sites à l'application.

Treats-Site-Iden-tête · uuid

Équivalent de site_id, lu quand le paramètre est absent.

Réponse

200Les types de rendez-vous du site.

Champs de la réponse (2)
itemsAppointmentType[]
iduuid

Identifiant du type, à passer en appointmentTypeId.

namestring

Nom du type, tel que la clinique l'affiche.

durationMinutesinteger

Durée par défaut d'un rendez-vous de ce type, en minutes.

nextCursorstring

Curseur opaque de la page suivante, à repasser tel quel dans cursor. null : dernière page.

peut être null

Erreurs propres à cette opération

400 INVALID_SITE_ID

site_id (ou Treats-Site-Id) n'est pas un UUID.

404 SITE_NOT_FOUND

Le site demandé est inconnu, d'une autre organisation, ou non ouvert à l'application.

Et les erreurs communes à toutes les opérations : erreurs et limites.

Lister les rendez-vous

GET/api/partner/v1/appointments#

agenda:read

Rend les rendez-vous des sites ouverts à l'application, ou du seul site demandé, annulés compris, triés par date de modification (updatedAt) puis par identifiant. C'est la route de synchronisation de l'agenda : parcourez les pages avec cursor, puis repartez de updated_since égal au plus grand updatedAt vu, moins 5 minutes, et dédoublonnez par id. Une écriture n'apparaît dans cette liste qu'au bout de 60 secondes environ ; GET /appointments/{id} la rend tout de suite.

Les filtres se cumulent. from et to portent sur le début du rendez-vous (from inclus, to exclu). client_id rend aussi les rendez-vous sans client rattaché dont l'animal appartient à ce client. Un filtre sur un client, un animal ou un vétérinaire que l'application ne peut pas lire répond 404, jamais une liste vide.

Paramètres

site_idrequête · uuid

Limite la lecture à ce site. Sans lui ni l'en-tête : tous les sites ouverts à l'application. Le paramètre l'emporte sur l'en-tête.

fromrequête · date-time

Rendez-vous qui commencent à partir de cet instant (inclus). Années 1900 à 9999.

torequête · date-time

Rendez-vous qui commencent avant cet instant (exclu). Postérieur à from quand les deux sont donnés. Années 1900 à 9999.

vet_idrequête · uuid

Rendez-vous de ce vétérinaire. Il doit appartenir à l'organisation.

patient_idrequête · uuid

Rendez-vous de cet animal.

client_idrequête · uuid

Rendez-vous de ce client, ou de l'un de ses animaux quand le rendez-vous n'a pas de client rattaché.

updated_sincerequête · date-time

Rendez-vous modifiés à partir de cet instant (inclus). Années 1900 à 9999.

cursorrequête · string

Curseur opaque rendu par la page précédente (nextCursor). Absent : première page.

limitrequête · integer

Nombre de rendez-vous par page. Une valeur au-delà de 200 est ramenée à 200.

Défaut : 50
Treats-Site-Iden-tête · uuid

Équivalent de site_id, lu quand le paramètre est absent.

Réponse

200Une page de rendez-vous, par `updatedAt` puis `id` croissants.

Champs de la réponse (2)
itemsAppointment[]
iduuid

Identifiant du rendez-vous.

publicIdstring

Identifiant public lisible (apt_…), partageable. Nul pour un rendez-vous qui n'en a pas reçu.

peut être null
siteIduuid

Site du rendez-vous.

clientIduuid

Client (propriétaire). Nul pour un rendez-vous sans client rattaché.

peut être null
patientIduuid

Animal. Nul pour un rendez-vous sans animal rattaché.

peut être null
vetIduuid

Vétérinaire du rendez-vous. Nul si aucun n'est désigné.

peut être null
appointmentTypeIduuid

Type de rendez-vous (voir GET /appointment-types). Nul sur certains rendez-vous anciens ou repris d'un autre logiciel.

peut être null
appointmentSubtypeIduuid

Motif, précision du type (voir GET /appointment-subtypes). Nul sans motif.

peut être null
roomIduuid

Salle réservée. Nulle sans salle.

peut être null
startAtdate-time

Début du rendez-vous.

endAtdate-time

Fin du rendez-vous. Nulle sur certains rendez-vous anciens.

peut être null
durationMinutesinteger

Durée en minutes : la durée enregistrée, sinon l'écart entre startAt et endAt. Nulle si ni l'une ni l'autre n'est connue.

peut être null
workflowenum

Avancement de la visite. PLANNED : prévu ; CONFIRMED : confirmé ; WAITING : animal arrivé, en salle d'attente ; IN_PROGRESS : en consultation ; TO_BILL : visite faite, à facturer ; COMPLETED : terminé.

PLANNEDCONFIRMEDWAITINGIN_PROGRESSTO_BILLCOMPLETED
categoryenum

Nature particulière du rendez-vous, nulle pour un rendez-vous ordinaire. EMERGENCY : urgence ; WALK_IN : sans rendez-vous ; HOSPITALIZATION : hospitalisation ; CANCELLED : annulé ; NO_SHOW : non honoré ; DECEASED : animal décédé. Les trois dernières valeurs sont définitives : le rendez-vous ne se modifie plus.

EMERGENCYWALK_INHOSPITALIZATIONCANCELLEDNO_SHOWDECEASEDpeut être null
urgentboolean

true : marqué urgent par la clinique.

notestring

Note du rendez-vous (motif libre, précisions). Nulle sans note.

peut être null
noteAuthorobject

Auteur de la dernière modification de la note. Nul sans note, ou si l'auteur n'est pas connu. C'est l'utilisateur d'intégration de l'application quand la note vient de l'API.

peut être null
iduuid

Identifiant de la personne.

namestring

Prénom et nom. Nul si la personne n'est plus lisible.

peut être null
noteUpdatedAtdate-time

Date de la dernière modification de la note. Nulle sans note.

peut être null
arrivedAtdate-time

Arrivée de l'animal à la clinique. Nulle tant qu'il n'est pas arrivé.

peut être null
calledAtdate-time

Appel de l'animal en consultation. Nul tant qu'il n'a pas été appelé.

peut être null
cancellationAppointmentCancellation

Annulation. Renseignée seulement pour un rendez-vous annulé (category: CANCELLED), nulle sinon.

peut être null
reasonenum

Motif (voir GET /cancellation-reasons). Nul si l'équipe de la clinique a annulé sans motif ; toujours renseigné pour une annulation faite par l'API.

CLIENT_REQUESTVET_UNAVAILABLEPATIENT_RECOVEREDNO_SHOWEMERGENCYDUPLICATEOTHERpeut être null
notesstring

Précision libre. Nulle sans précision.

peut être null
cancelledAtdate-time

Date de l'annulation.

peut être null
clientNotifiedboolean

true : le client a été prévenu de l'annulation. Nul si l'information n'a pas été enregistrée.

peut être null
createdAtdate-time

Date de création. Nulle sur certains rendez-vous repris d'un autre logiciel.

peut être null
updatedAtdate-time

Date de la dernière modification. C'est la clé de synchronisation des listes : mémorisez la plus grande valeur vue pour updated_since.

nextCursorstring

Curseur opaque de la page suivante, à repasser tel quel dans cursor. null : dernière page.

peut être null

Erreurs propres à cette opération

400 INVALID_FIELD

Paramètre illisible (UUID, instant, limit inférieur à 1, cursor invalide), date hors des années 1900 à 9999, ou to antérieur ou égal à from. Un détail par paramètre.

400 INVALID_SITE_ID

site_id (ou Treats-Site-Id) n'est pas un UUID.

404 SITE_NOT_FOUND

Le site demandé est inconnu, d'une autre organisation, ou non ouvert à l'application.

404 CLIENT_NOT_FOUND

client_id : client inconnu, d'une autre organisation, ou que l'application ne peut pas lire.

404 PATIENT_NOT_FOUND

patient_id : animal inconnu, d'une autre organisation, ou dont le client n'est pas lisible par l'application.

404 VET_NOT_FOUND

vet_id : vétérinaire inconnu ou d'une autre organisation.

Et les erreurs communes à toutes les opérations : erreurs et limites.

Prendre un rendez-vous

POST/api/partner/v1/appointments#

agenda:writeIdempotency-Key

Crée un rendez-vous sur le site donné par site_id ou Treats-Site-Id (implicite si un seul site est ouvert). Le vétérinaire doit faire partie de l'équipe du site ; le type, le motif et la salle doivent appartenir au site ; l'animal doit appartenir au client et ne pas être décédé. La durée retenue est durationMinutes, sinon celle de la prestation rattachée au motif, sinon celle du motif, sinon celle du type ; la salle est roomId, sinon la salle par défaut du motif.

Avant d'écrire, le créneau est jugé en politique stricte : toute contrainte non respectée refuse l'appel en 409 SLOT_CONFLICT (voir POST /availability/evaluate pour le jugement sans écriture). Le rendez-vous est créé en workflow: PLANNED, au nom de l'utilisateur d'intégration de l'application. Le client n'est prévenu que sur demande (notifyClient: true) ; cela ne commande que le message de confirmation immédiat, les rappels programmés par la clinique suivent ses propres réglages. Le jugement du créneau et l'écriture ne sont pas atomiques : deux créations simultanées sur le même créneau peuvent être acceptées si la clinique tolère les chevauchements.

Paramètres

site_idrequête · uuid

Site du rendez-vous. Obligatoire (ici ou dans l'en-tête) si l'organisation a ouvert plusieurs sites à l'application.

Treats-Site-Iden-tête · uuid

Équivalent de site_id, lu quand le paramètre est absent.

Idempotency-Keyen-tête · stringrequis

Clé unique de l'envoi (un UUID). Le même envoi répété avec la même clé n'est appliqué qu'une fois pendant 24 h.

Corps de la requête application/json

clientIduuidrequis

Client (propriétaire). Il doit être lisible par l'application.

patientIduuidrequis

Animal. Il doit appartenir à clientId et ne pas être décédé.

appointmentTypeIduuidrequis

Type de rendez-vous du site (voir GET /appointment-types).

appointmentSubtypeIduuid

Motif, qui doit appartenir au type (voir GET /appointment-subtypes). Il peut fixer la durée et la salle par défaut.

vetIduuidrequis

Vétérinaire, membre de l'équipe du site (voir GET /staff).

roomIduuid

Salle du site (voir GET /rooms). Absente : salle par défaut du motif, ou aucune.

startAtdate-timerequis

Début du rendez-vous. Années 1900 à 9999 ; un instant passé est refusé (SLOT_CONFLICT, PAST_DATE).

durationMinutesinteger

Durée en minutes. Absente : durée du motif ou du type.

notestring

Note du rendez-vous, visible de l'équipe. Une chaîne vide vaut absence de note.

notifyClientboolean

true : prévenir le client de la prise de rendez-vous. Accepté seulement si le client a donné à la clinique son accord pour être contacté par email ou par SMS.

défaut false

Réponse

201Le rendez-vous créé.

Champs de la réponse (23)
iduuid

Identifiant du rendez-vous.

publicIdstring

Identifiant public lisible (apt_…), partageable. Nul pour un rendez-vous qui n'en a pas reçu.

peut être null
siteIduuid

Site du rendez-vous.

clientIduuid

Client (propriétaire). Nul pour un rendez-vous sans client rattaché.

peut être null
patientIduuid

Animal. Nul pour un rendez-vous sans animal rattaché.

peut être null
vetIduuid

Vétérinaire du rendez-vous. Nul si aucun n'est désigné.

peut être null
appointmentTypeIduuid

Type de rendez-vous (voir GET /appointment-types). Nul sur certains rendez-vous anciens ou repris d'un autre logiciel.

peut être null
appointmentSubtypeIduuid

Motif, précision du type (voir GET /appointment-subtypes). Nul sans motif.

peut être null
roomIduuid

Salle réservée. Nulle sans salle.

peut être null
startAtdate-time

Début du rendez-vous.

endAtdate-time

Fin du rendez-vous. Nulle sur certains rendez-vous anciens.

peut être null
durationMinutesinteger

Durée en minutes : la durée enregistrée, sinon l'écart entre startAt et endAt. Nulle si ni l'une ni l'autre n'est connue.

peut être null
workflowenum

Avancement de la visite. PLANNED : prévu ; CONFIRMED : confirmé ; WAITING : animal arrivé, en salle d'attente ; IN_PROGRESS : en consultation ; TO_BILL : visite faite, à facturer ; COMPLETED : terminé.

PLANNEDCONFIRMEDWAITINGIN_PROGRESSTO_BILLCOMPLETED
categoryenum

Nature particulière du rendez-vous, nulle pour un rendez-vous ordinaire. EMERGENCY : urgence ; WALK_IN : sans rendez-vous ; HOSPITALIZATION : hospitalisation ; CANCELLED : annulé ; NO_SHOW : non honoré ; DECEASED : animal décédé. Les trois dernières valeurs sont définitives : le rendez-vous ne se modifie plus.

EMERGENCYWALK_INHOSPITALIZATIONCANCELLEDNO_SHOWDECEASEDpeut être null
urgentboolean

true : marqué urgent par la clinique.

notestring

Note du rendez-vous (motif libre, précisions). Nulle sans note.

peut être null
noteAuthorobject

Auteur de la dernière modification de la note. Nul sans note, ou si l'auteur n'est pas connu. C'est l'utilisateur d'intégration de l'application quand la note vient de l'API.

peut être null
iduuid

Identifiant de la personne.

namestring

Prénom et nom. Nul si la personne n'est plus lisible.

peut être null
noteUpdatedAtdate-time

Date de la dernière modification de la note. Nulle sans note.

peut être null
arrivedAtdate-time

Arrivée de l'animal à la clinique. Nulle tant qu'il n'est pas arrivé.

peut être null
calledAtdate-time

Appel de l'animal en consultation. Nul tant qu'il n'a pas été appelé.

peut être null
cancellationAppointmentCancellation

Annulation. Renseignée seulement pour un rendez-vous annulé (category: CANCELLED), nulle sinon.

peut être null
reasonenum

Motif (voir GET /cancellation-reasons). Nul si l'équipe de la clinique a annulé sans motif ; toujours renseigné pour une annulation faite par l'API.

CLIENT_REQUESTVET_UNAVAILABLEPATIENT_RECOVEREDNO_SHOWEMERGENCYDUPLICATEOTHERpeut être null
notesstring

Précision libre. Nulle sans précision.

peut être null
cancelledAtdate-time

Date de l'annulation.

peut être null
clientNotifiedboolean

true : le client a été prévenu de l'annulation. Nul si l'information n'a pas été enregistrée.

peut être null
createdAtdate-time

Date de création. Nulle sur certains rendez-vous repris d'un autre logiciel.

peut être null
updatedAtdate-time

Date de la dernière modification. C'est la clé de synchronisation des listes : mémorisez la plus grande valeur vue pour updated_since.

Erreurs propres à cette opération

400 BODY_REQUIRED

Corps absent.

400 INVALID_FIELD

Champ absent, illisible ou inconnu (un détail par champ) ; durationMinutes hors de 5 à 480 ; note de plus de 5 000 caractères ; patientId qui n'appartient pas à clientId ; appointmentSubtypeId qui n'appartient pas au type ; notifyClient: true pour un client sans accord de contact.

400 INVALID_SITE_ID

site_id (ou Treats-Site-Id) n'est pas un UUID.

404 SITE_NOT_FOUND

Le site demandé est inconnu, d'une autre organisation, ou non ouvert à l'application.

404 CLIENT_NOT_FOUND

Client inconnu, d'une autre organisation, ou que l'application ne peut pas lire.

404 PATIENT_NOT_FOUND

Animal inconnu, d'une autre organisation, ou dont le client n'est pas lisible par l'application.

404 VET_NOT_FOUND

Vétérinaire qui n'est pas dans l'équipe du site.

404 APPOINTMENT_TYPE_NOT_FOUND

Type de rendez-vous inconnu ou d'un autre site.

404 APPOINTMENT_SUBTYPE_NOT_FOUND

Motif inconnu ou d'un autre site.

404 ROOM_NOT_FOUND

Salle inconnue ou d'un autre site.

409 PATIENT_DECEASED_READONLY

L'animal est décédé : aucun rendez-vous ne peut être pris pour lui.

409 SLOT_CONFLICT

Le créneau ne respecte pas toutes les contraintes. meta.reason porte la première raison et meta.violations la liste complète ([{reason, message}], raisons de AvailabilityViolation). Dans le cas rare d'un créneau pris entre le jugement et l'écriture, seul meta.reason est rendu.

Et les erreurs communes à toutes les opérations : erreurs et limites.

Notifications envoyées :appointment.created

Lire un rendez-vous

GET/api/partner/v1/appointments/{id}#

agenda:read

Rend un rendez-vous d'un site ouvert à l'application, quel que soit son état (annulé, terminé…). La lecture est immédiate : un rendez-vous qui vient d'être écrit est rendu tout de suite, sans le délai des listes. C'est la lecture à faire à la réception d'une notification appointment.* ou patient.checked_in. Un rendez-vous d'un site non ouvert répond 404, comme un identifiant inconnu.

Paramètres

idchemin · uuidrequis

Identifiant du rendez-vous.

Réponse

200Le rendez-vous.

Champs de la réponse (23)
iduuid

Identifiant du rendez-vous.

publicIdstring

Identifiant public lisible (apt_…), partageable. Nul pour un rendez-vous qui n'en a pas reçu.

peut être null
siteIduuid

Site du rendez-vous.

clientIduuid

Client (propriétaire). Nul pour un rendez-vous sans client rattaché.

peut être null
patientIduuid

Animal. Nul pour un rendez-vous sans animal rattaché.

peut être null
vetIduuid

Vétérinaire du rendez-vous. Nul si aucun n'est désigné.

peut être null
appointmentTypeIduuid

Type de rendez-vous (voir GET /appointment-types). Nul sur certains rendez-vous anciens ou repris d'un autre logiciel.

peut être null
appointmentSubtypeIduuid

Motif, précision du type (voir GET /appointment-subtypes). Nul sans motif.

peut être null
roomIduuid

Salle réservée. Nulle sans salle.

peut être null
startAtdate-time

Début du rendez-vous.

endAtdate-time

Fin du rendez-vous. Nulle sur certains rendez-vous anciens.

peut être null
durationMinutesinteger

Durée en minutes : la durée enregistrée, sinon l'écart entre startAt et endAt. Nulle si ni l'une ni l'autre n'est connue.

peut être null
workflowenum

Avancement de la visite. PLANNED : prévu ; CONFIRMED : confirmé ; WAITING : animal arrivé, en salle d'attente ; IN_PROGRESS : en consultation ; TO_BILL : visite faite, à facturer ; COMPLETED : terminé.

PLANNEDCONFIRMEDWAITINGIN_PROGRESSTO_BILLCOMPLETED
categoryenum

Nature particulière du rendez-vous, nulle pour un rendez-vous ordinaire. EMERGENCY : urgence ; WALK_IN : sans rendez-vous ; HOSPITALIZATION : hospitalisation ; CANCELLED : annulé ; NO_SHOW : non honoré ; DECEASED : animal décédé. Les trois dernières valeurs sont définitives : le rendez-vous ne se modifie plus.

EMERGENCYWALK_INHOSPITALIZATIONCANCELLEDNO_SHOWDECEASEDpeut être null
urgentboolean

true : marqué urgent par la clinique.

notestring

Note du rendez-vous (motif libre, précisions). Nulle sans note.

peut être null
noteAuthorobject

Auteur de la dernière modification de la note. Nul sans note, ou si l'auteur n'est pas connu. C'est l'utilisateur d'intégration de l'application quand la note vient de l'API.

peut être null
iduuid

Identifiant de la personne.

namestring

Prénom et nom. Nul si la personne n'est plus lisible.

peut être null
noteUpdatedAtdate-time

Date de la dernière modification de la note. Nulle sans note.

peut être null
arrivedAtdate-time

Arrivée de l'animal à la clinique. Nulle tant qu'il n'est pas arrivé.

peut être null
calledAtdate-time

Appel de l'animal en consultation. Nul tant qu'il n'a pas été appelé.

peut être null
cancellationAppointmentCancellation

Annulation. Renseignée seulement pour un rendez-vous annulé (category: CANCELLED), nulle sinon.

peut être null
reasonenum

Motif (voir GET /cancellation-reasons). Nul si l'équipe de la clinique a annulé sans motif ; toujours renseigné pour une annulation faite par l'API.

CLIENT_REQUESTVET_UNAVAILABLEPATIENT_RECOVEREDNO_SHOWEMERGENCYDUPLICATEOTHERpeut être null
notesstring

Précision libre. Nulle sans précision.

peut être null
cancelledAtdate-time

Date de l'annulation.

peut être null
clientNotifiedboolean

true : le client a été prévenu de l'annulation. Nul si l'information n'a pas été enregistrée.

peut être null
createdAtdate-time

Date de création. Nulle sur certains rendez-vous repris d'un autre logiciel.

peut être null
updatedAtdate-time

Date de la dernière modification. C'est la clé de synchronisation des listes : mémorisez la plus grande valeur vue pour updated_since.

Erreurs propres à cette opération

404 APPOINTMENT_NOT_FOUND

Rendez-vous inconnu, d'une autre organisation, ou d'un site non ouvert à l'application.

404 NOT_FOUND

id n'est pas un UUID.

Et les erreurs communes à toutes les opérations : erreurs et limites.

Modifier un rendez-vous

PATCH/api/partner/v1/appointments/{id}#

agenda:write

Déplace ou modifie un rendez-vous d'un site ouvert à l'application : champ absent = inchangé, champ à null = vidé (roomId, appointmentSubtypeId, note seulement). Le site, le client, l'animal, l'avancement (workflow) et la catégorie ne se modifient pas par cette route : les envoyer répond 400 INVALID_FIELD. Pour annuler, utilisez POST /appointments/{id}/cancel.

Si le début, la durée, le vétérinaire ou la salle changent, le nouveau créneau est jugé en politique stricte avant l'écriture (409 SLOT_CONFLICT), le rendez-vous lui-même étant ignoré dans le calcul des chevauchements. Changer de type ne change pas la durée. Un rendez-vous annulé, non honoré, terminé ou dont l'animal est décédé ne se modifie plus ; un rendez-vous à facturer (TO_BILL) ne se déplace plus. Le client n'est pas prévenu d'un déplacement par cette route. Un appel qui ne change rien rend le rendez-vous tel quel, sans notification.

Paramètres

idchemin · uuidrequis

Identifiant du rendez-vous.

Corps de la requête application/json

startAtdate-time

Nouveau début. Ne peut pas être null.

durationMinutesinteger

Nouvelle durée en minutes. Ne peut pas être null.

vetIduuid

Nouveau vétérinaire, membre de l'équipe du site du rendez-vous. Ne peut pas être null.

roomIduuid

Nouvelle salle du site ; null retire la salle.

peut être null
appointmentTypeIduuid

Nouveau type, du site du rendez-vous. Ne peut pas être null. Si le rendez-vous a un motif, donner aussi appointmentSubtypeId (motif du nouveau type, ou null).

appointmentSubtypeIduuid

Nouveau motif, qui doit appartenir au type (nouveau ou actuel) ; null retire le motif.

peut être null
notestring

Nouvelle note ; son auteur devient l'utilisateur d'intégration. null vide la note et retire son auteur.

peut être null

Réponse

200Le rendez-vous après modification.

Champs de la réponse (23)
iduuid

Identifiant du rendez-vous.

publicIdstring

Identifiant public lisible (apt_…), partageable. Nul pour un rendez-vous qui n'en a pas reçu.

peut être null
siteIduuid

Site du rendez-vous.

clientIduuid

Client (propriétaire). Nul pour un rendez-vous sans client rattaché.

peut être null
patientIduuid

Animal. Nul pour un rendez-vous sans animal rattaché.

peut être null
vetIduuid

Vétérinaire du rendez-vous. Nul si aucun n'est désigné.

peut être null
appointmentTypeIduuid

Type de rendez-vous (voir GET /appointment-types). Nul sur certains rendez-vous anciens ou repris d'un autre logiciel.

peut être null
appointmentSubtypeIduuid

Motif, précision du type (voir GET /appointment-subtypes). Nul sans motif.

peut être null
roomIduuid

Salle réservée. Nulle sans salle.

peut être null
startAtdate-time

Début du rendez-vous.

endAtdate-time

Fin du rendez-vous. Nulle sur certains rendez-vous anciens.

peut être null
durationMinutesinteger

Durée en minutes : la durée enregistrée, sinon l'écart entre startAt et endAt. Nulle si ni l'une ni l'autre n'est connue.

peut être null
workflowenum

Avancement de la visite. PLANNED : prévu ; CONFIRMED : confirmé ; WAITING : animal arrivé, en salle d'attente ; IN_PROGRESS : en consultation ; TO_BILL : visite faite, à facturer ; COMPLETED : terminé.

PLANNEDCONFIRMEDWAITINGIN_PROGRESSTO_BILLCOMPLETED
categoryenum

Nature particulière du rendez-vous, nulle pour un rendez-vous ordinaire. EMERGENCY : urgence ; WALK_IN : sans rendez-vous ; HOSPITALIZATION : hospitalisation ; CANCELLED : annulé ; NO_SHOW : non honoré ; DECEASED : animal décédé. Les trois dernières valeurs sont définitives : le rendez-vous ne se modifie plus.

EMERGENCYWALK_INHOSPITALIZATIONCANCELLEDNO_SHOWDECEASEDpeut être null
urgentboolean

true : marqué urgent par la clinique.

notestring

Note du rendez-vous (motif libre, précisions). Nulle sans note.

peut être null
noteAuthorobject

Auteur de la dernière modification de la note. Nul sans note, ou si l'auteur n'est pas connu. C'est l'utilisateur d'intégration de l'application quand la note vient de l'API.

peut être null
iduuid

Identifiant de la personne.

namestring

Prénom et nom. Nul si la personne n'est plus lisible.

peut être null
noteUpdatedAtdate-time

Date de la dernière modification de la note. Nulle sans note.

peut être null
arrivedAtdate-time

Arrivée de l'animal à la clinique. Nulle tant qu'il n'est pas arrivé.

peut être null
calledAtdate-time

Appel de l'animal en consultation. Nul tant qu'il n'a pas été appelé.

peut être null
cancellationAppointmentCancellation

Annulation. Renseignée seulement pour un rendez-vous annulé (category: CANCELLED), nulle sinon.

peut être null
reasonenum

Motif (voir GET /cancellation-reasons). Nul si l'équipe de la clinique a annulé sans motif ; toujours renseigné pour une annulation faite par l'API.

CLIENT_REQUESTVET_UNAVAILABLEPATIENT_RECOVEREDNO_SHOWEMERGENCYDUPLICATEOTHERpeut être null
notesstring

Précision libre. Nulle sans précision.

peut être null
cancelledAtdate-time

Date de l'annulation.

peut être null
clientNotifiedboolean

true : le client a été prévenu de l'annulation. Nul si l'information n'a pas été enregistrée.

peut être null
createdAtdate-time

Date de création. Nulle sur certains rendez-vous repris d'un autre logiciel.

peut être null
updatedAtdate-time

Date de la dernière modification. C'est la clé de synchronisation des listes : mémorisez la plus grande valeur vue pour updated_since.

Erreurs propres à cette opération

400 BODY_REQUIRED

Corps absent.

400 INVALID_FIELD

Champ illisible ou inconnu, ou non modifiable (workflow, category, patientId, clientId…), un détail par champ ; null sur startAt, durationMinutes, vetId ou appointmentTypeId ; durationMinutes hors de 5 à 480 ; note de plus de 5 000 caractères ; type changé sans appointmentSubtypeId alors que le rendez-vous a un motif ; motif qui n'appartient pas au type.

404 APPOINTMENT_NOT_FOUND

Rendez-vous inconnu, d'une autre organisation, ou d'un site non ouvert à l'application.

404 NOT_FOUND

id n'est pas un UUID.

404 VET_NOT_FOUND

Vétérinaire qui n'est pas dans l'équipe du site du rendez-vous.

404 APPOINTMENT_TYPE_NOT_FOUND

Type de rendez-vous inconnu ou d'un autre site.

404 APPOINTMENT_SUBTYPE_NOT_FOUND

Motif inconnu ou d'un autre site.

404 ROOM_NOT_FOUND

Salle inconnue ou d'un autre site.

409 SLOT_CONFLICT

Le nouveau créneau ne respecte pas toutes les contraintes. meta.reason : première raison ; meta.violations : liste complète ([{reason, message}]).

409 APPOINTMENT_NOT_MODIFIABLE

Rendez-vous annulé, non honoré, terminé ou d'un animal décédé ; ou rendez-vous à facturer (TO_BILL) qu'on tente de déplacer. meta.appointmentId et meta.currentStatus (avancement actuel) sont rendus.

Et les erreurs communes à toutes les opérations : erreurs et limites.

Notifications envoyées :appointment.updated

Annuler un rendez-vous

POST/api/partner/v1/appointments/{id}/cancel#

agenda:writeIdempotency-Key

Annule un rendez-vous d'un site ouvert à l'application : il passe en category: CANCELLED, libère son créneau et reste visible dans l'agenda et dans les listes, avec son annulation (cancellation). Le motif est obligatoire pour l'API, et OTHER exige une précision. Le client n'est prévenu que sur demande (notifyClient: true). L'annulation est idempotente : annuler un rendez-vous déjà annulé rend 200 et le rendez-vous tel quel, le premier motif est conservé et aucune notification n'est émise. Un rendez-vous ne se supprime jamais par l'API.

Paramètres

idchemin · uuidrequis

Identifiant du rendez-vous.

Idempotency-Keyen-tête · stringrequis

Clé unique de l'envoi (un UUID). Le même envoi répété avec la même clé n'est appliqué qu'une fois pendant 24 h.

Corps de la requête application/json

reasonenumrequis

Motif d'annulation (voir GET /cancellation-reasons).

CLIENT_REQUESTVET_UNAVAILABLEPATIENT_RECOVEREDNO_SHOWEMERGENCYDUPLICATEOTHER
notesstring

Précision libre. Obligatoire avec OTHER.

notifyClientboolean

true : prévenir le client de l'annulation.

défaut false

Réponse

200Le rendez-vous annulé.

Champs de la réponse (23)
iduuid

Identifiant du rendez-vous.

publicIdstring

Identifiant public lisible (apt_…), partageable. Nul pour un rendez-vous qui n'en a pas reçu.

peut être null
siteIduuid

Site du rendez-vous.

clientIduuid

Client (propriétaire). Nul pour un rendez-vous sans client rattaché.

peut être null
patientIduuid

Animal. Nul pour un rendez-vous sans animal rattaché.

peut être null
vetIduuid

Vétérinaire du rendez-vous. Nul si aucun n'est désigné.

peut être null
appointmentTypeIduuid

Type de rendez-vous (voir GET /appointment-types). Nul sur certains rendez-vous anciens ou repris d'un autre logiciel.

peut être null
appointmentSubtypeIduuid

Motif, précision du type (voir GET /appointment-subtypes). Nul sans motif.

peut être null
roomIduuid

Salle réservée. Nulle sans salle.

peut être null
startAtdate-time

Début du rendez-vous.

endAtdate-time

Fin du rendez-vous. Nulle sur certains rendez-vous anciens.

peut être null
durationMinutesinteger

Durée en minutes : la durée enregistrée, sinon l'écart entre startAt et endAt. Nulle si ni l'une ni l'autre n'est connue.

peut être null
workflowenum

Avancement de la visite. PLANNED : prévu ; CONFIRMED : confirmé ; WAITING : animal arrivé, en salle d'attente ; IN_PROGRESS : en consultation ; TO_BILL : visite faite, à facturer ; COMPLETED : terminé.

PLANNEDCONFIRMEDWAITINGIN_PROGRESSTO_BILLCOMPLETED
categoryenum

Nature particulière du rendez-vous, nulle pour un rendez-vous ordinaire. EMERGENCY : urgence ; WALK_IN : sans rendez-vous ; HOSPITALIZATION : hospitalisation ; CANCELLED : annulé ; NO_SHOW : non honoré ; DECEASED : animal décédé. Les trois dernières valeurs sont définitives : le rendez-vous ne se modifie plus.

EMERGENCYWALK_INHOSPITALIZATIONCANCELLEDNO_SHOWDECEASEDpeut être null
urgentboolean

true : marqué urgent par la clinique.

notestring

Note du rendez-vous (motif libre, précisions). Nulle sans note.

peut être null
noteAuthorobject

Auteur de la dernière modification de la note. Nul sans note, ou si l'auteur n'est pas connu. C'est l'utilisateur d'intégration de l'application quand la note vient de l'API.

peut être null
iduuid

Identifiant de la personne.

namestring

Prénom et nom. Nul si la personne n'est plus lisible.

peut être null
noteUpdatedAtdate-time

Date de la dernière modification de la note. Nulle sans note.

peut être null
arrivedAtdate-time

Arrivée de l'animal à la clinique. Nulle tant qu'il n'est pas arrivé.

peut être null
calledAtdate-time

Appel de l'animal en consultation. Nul tant qu'il n'a pas été appelé.

peut être null
cancellationAppointmentCancellation

Annulation. Renseignée seulement pour un rendez-vous annulé (category: CANCELLED), nulle sinon.

peut être null
reasonenum

Motif (voir GET /cancellation-reasons). Nul si l'équipe de la clinique a annulé sans motif ; toujours renseigné pour une annulation faite par l'API.

CLIENT_REQUESTVET_UNAVAILABLEPATIENT_RECOVEREDNO_SHOWEMERGENCYDUPLICATEOTHERpeut être null
notesstring

Précision libre. Nulle sans précision.

peut être null
cancelledAtdate-time

Date de l'annulation.

peut être null
clientNotifiedboolean

true : le client a été prévenu de l'annulation. Nul si l'information n'a pas été enregistrée.

peut être null
createdAtdate-time

Date de création. Nulle sur certains rendez-vous repris d'un autre logiciel.

peut être null
updatedAtdate-time

Date de la dernière modification. C'est la clé de synchronisation des listes : mémorisez la plus grande valeur vue pour updated_since.

Erreurs propres à cette opération

400 BODY_REQUIRED

Corps absent : il porte au moins reason.

400 CANCELLATION_REASON_REQUIRED

reason absent ou vide.

400 CANCELLATION_NOTES_REQUIRED

reason: OTHER sans notes.

400 INVALID_FIELD

Motif inconnu, notes de plus de 5 000 caractères, champ illisible ou inconnu (un détail par champ).

404 APPOINTMENT_NOT_FOUND

Rendez-vous inconnu, d'une autre organisation, ou d'un site non ouvert à l'application.

404 NOT_FOUND

id n'est pas un UUID.

Et les erreurs communes à toutes les opérations : erreurs et limites.

Notifications envoyées :appointment.cancelledappointment.updated

Pointer l'arrivée d'un animal

POST/api/partner/v1/appointments/{id}/check-in#

agenda:writeIdempotency-Key

Déclare l'animal arrivé à la clinique : le rendez-vous passe en workflow: WAITING, arrivedAt prend l'heure de l'appel (ou garde une arrivée déjà enregistrée) et l'animal apparaît dans la salle d'attente du site. Idempotent : un animal déjà en attente n'est pas repointé, le rendez-vous est rendu tel quel, sans notification. Un rendez-vous déjà en consultation (IN_PROGRESS) repasse en attente, son heure d'appel effacée. Un rendez-vous annulé, non honoré, terminé, à facturer ou d'un animal décédé est refusé. Aucun corps n'est lu.

Paramètres

idchemin · uuidrequis

Identifiant du rendez-vous.

Idempotency-Keyen-tête · stringrequis

Clé unique de l'envoi (un UUID). Le même envoi répété avec la même clé n'est appliqué qu'une fois pendant 24 h.

Réponse

200Le rendez-vous, animal en attente.

Champs de la réponse (23)
iduuid

Identifiant du rendez-vous.

publicIdstring

Identifiant public lisible (apt_…), partageable. Nul pour un rendez-vous qui n'en a pas reçu.

peut être null
siteIduuid

Site du rendez-vous.

clientIduuid

Client (propriétaire). Nul pour un rendez-vous sans client rattaché.

peut être null
patientIduuid

Animal. Nul pour un rendez-vous sans animal rattaché.

peut être null
vetIduuid

Vétérinaire du rendez-vous. Nul si aucun n'est désigné.

peut être null
appointmentTypeIduuid

Type de rendez-vous (voir GET /appointment-types). Nul sur certains rendez-vous anciens ou repris d'un autre logiciel.

peut être null
appointmentSubtypeIduuid

Motif, précision du type (voir GET /appointment-subtypes). Nul sans motif.

peut être null
roomIduuid

Salle réservée. Nulle sans salle.

peut être null
startAtdate-time

Début du rendez-vous.

endAtdate-time

Fin du rendez-vous. Nulle sur certains rendez-vous anciens.

peut être null
durationMinutesinteger

Durée en minutes : la durée enregistrée, sinon l'écart entre startAt et endAt. Nulle si ni l'une ni l'autre n'est connue.

peut être null
workflowenum

Avancement de la visite. PLANNED : prévu ; CONFIRMED : confirmé ; WAITING : animal arrivé, en salle d'attente ; IN_PROGRESS : en consultation ; TO_BILL : visite faite, à facturer ; COMPLETED : terminé.

PLANNEDCONFIRMEDWAITINGIN_PROGRESSTO_BILLCOMPLETED
categoryenum

Nature particulière du rendez-vous, nulle pour un rendez-vous ordinaire. EMERGENCY : urgence ; WALK_IN : sans rendez-vous ; HOSPITALIZATION : hospitalisation ; CANCELLED : annulé ; NO_SHOW : non honoré ; DECEASED : animal décédé. Les trois dernières valeurs sont définitives : le rendez-vous ne se modifie plus.

EMERGENCYWALK_INHOSPITALIZATIONCANCELLEDNO_SHOWDECEASEDpeut être null
urgentboolean

true : marqué urgent par la clinique.

notestring

Note du rendez-vous (motif libre, précisions). Nulle sans note.

peut être null
noteAuthorobject

Auteur de la dernière modification de la note. Nul sans note, ou si l'auteur n'est pas connu. C'est l'utilisateur d'intégration de l'application quand la note vient de l'API.

peut être null
iduuid

Identifiant de la personne.

namestring

Prénom et nom. Nul si la personne n'est plus lisible.

peut être null
noteUpdatedAtdate-time

Date de la dernière modification de la note. Nulle sans note.

peut être null
arrivedAtdate-time

Arrivée de l'animal à la clinique. Nulle tant qu'il n'est pas arrivé.

peut être null
calledAtdate-time

Appel de l'animal en consultation. Nul tant qu'il n'a pas été appelé.

peut être null
cancellationAppointmentCancellation

Annulation. Renseignée seulement pour un rendez-vous annulé (category: CANCELLED), nulle sinon.

peut être null
reasonenum

Motif (voir GET /cancellation-reasons). Nul si l'équipe de la clinique a annulé sans motif ; toujours renseigné pour une annulation faite par l'API.

CLIENT_REQUESTVET_UNAVAILABLEPATIENT_RECOVEREDNO_SHOWEMERGENCYDUPLICATEOTHERpeut être null
notesstring

Précision libre. Nulle sans précision.

peut être null
cancelledAtdate-time

Date de l'annulation.

peut être null
clientNotifiedboolean

true : le client a été prévenu de l'annulation. Nul si l'information n'a pas été enregistrée.

peut être null
createdAtdate-time

Date de création. Nulle sur certains rendez-vous repris d'un autre logiciel.

peut être null
updatedAtdate-time

Date de la dernière modification. C'est la clé de synchronisation des listes : mémorisez la plus grande valeur vue pour updated_since.

Erreurs propres à cette opération

404 APPOINTMENT_NOT_FOUND

Rendez-vous inconnu, d'une autre organisation, ou d'un site non ouvert à l'application.

404 NOT_FOUND

id n'est pas un UUID.

409 APPOINTMENT_NOT_MODIFIABLE

Rendez-vous annulé, non honoré, terminé, à facturer (TO_BILL) ou d'un animal décédé. meta.appointmentId et meta.currentStatus sont rendus.

Et les erreurs communes à toutes les opérations : erreurs et limites.

Notifications envoyées :patient.checked_in

Juger un créneau

POST/api/partner/v1/availability/evaluate#

agenda:read

Juge un créneau avec exactement les contraintes de la prise de rendez-vous par l'API, sans rien écrire : available: true si aucune n'est violée, sinon toutes les violations. La fin du créneau est endAt, sinon le début plus durationMinutes, sinon la durée que prendrait la création pour appointmentTypeId et appointmentSubtypeId (avec la salle par défaut du motif). Pour juger le déplacement d'un rendez-vous existant, passez-le en excludeAppointmentId : il n'entre pas en conflit avec lui-même. Route de lecture : droit agenda:read, pas d'en-tête Idempotency-Key.

Paramètres

site_idrequête · uuid

Site du créneau. Obligatoire (ici ou dans l'en-tête) si l'organisation a ouvert plusieurs sites à l'application.

Treats-Site-Iden-tête · uuid

Équivalent de site_id, lu quand le paramètre est absent.

Corps de la requête application/json

startAtdate-timerequis

Début du créneau.

endAtdate-time

Fin du créneau, postérieure à startAt. endAt, durationMinutes ou appointmentTypeId obligatoire.

durationMinutesinteger

Durée en minutes, utilisée sans endAt.

appointmentTypeIduuid

Type de rendez-vous du site : sans endAt, fixe la durée (avec durationMinutes s'il est donné).

appointmentSubtypeIduuid

Motif du site, qui doit appartenir à appointmentTypeId s'il est donné. Pris en compte pour la durée et la salle par défaut seulement avec appointmentTypeId.

vetIduuidrequis

Vétérinaire, membre de l'équipe du site.

roomIduuid

Salle du site à vérifier.

excludeAppointmentIduuid

Rendez-vous à ignorer dans le calcul des chevauchements (celui qu'on veut déplacer). Il doit être d'un site ouvert à l'application.

Réponse

200Le jugement du créneau.

Champs de la réponse (5)
availableboolean

true seulement si aucune contrainte n'est violée : la création d'un rendez-vous sur ce créneau serait acceptée à cet instant.

startAtdate-time

Début du créneau jugé.

endAtdate-time

Fin du créneau jugé, telle que retenue (donnée, calculée depuis la durée, ou depuis le type et le motif).

durationMinutesinteger

Durée du créneau jugé, en minutes.

violationsAvailabilityViolation[]

Toutes les contraintes non respectées. Vide si available vaut true.

reasonenum

PAST_DATE : créneau déjà commencé ou passé ; HOLIDAY : jour férié ou de fermeture ; CLINIC_CLOSED : site fermé ce jour-là ou à cette heure ; OUT_OF_BUSINESS_HOURS : hors des heures d'ouverture ; VET_OUT_OF_SHIFT : hors du planning du vétérinaire ; VET_ABSENT : vétérinaire absent (congé, formation…) ; VET_BUSY : vétérinaire déjà pris par un autre rendez-vous ; VET_EXTERNAL_BUSY : vétérinaire occupé dans son agenda personnel synchronisé ; ROOM_BUSY : salle déjà réservée.

PAST_DATEHOLIDAYCLINIC_CLOSEDOUT_OF_BUSINESS_HOURSVET_OUT_OF_SHIFTVET_ABSENTVET_BUSYVET_EXTERNAL_BUSYROOM_BUSY
messagestring

Explication en français, affichable telle quelle. Ne nomme jamais un autre site de l'organisation.

Erreurs propres à cette opération

400 BODY_REQUIRED

Corps absent.

400 INVALID_FIELD

startAt ou vetId absent ; ni endAt, ni durationMinutes, ni appointmentTypeId ; endAt antérieur ou égal à startAt ; durationMinutes hors de 5 à 480 ; motif qui n'appartient pas au type ; champ illisible ou inconnu (un détail par champ).

400 INVALID_SITE_ID

site_id (ou Treats-Site-Id) n'est pas un UUID.

404 SITE_NOT_FOUND

Le site demandé est inconnu, d'une autre organisation, ou non ouvert à l'application.

404 VET_NOT_FOUND

Vétérinaire qui n'est pas dans l'équipe du site.

404 APPOINTMENT_TYPE_NOT_FOUND

Type de rendez-vous inconnu ou d'un autre site.

404 APPOINTMENT_SUBTYPE_NOT_FOUND

Motif inconnu ou d'un autre site.

404 ROOM_NOT_FOUND

Salle inconnue ou d'un autre site.

404 APPOINTMENT_NOT_FOUND

excludeAppointmentId : rendez-vous inconnu ou d'un site non ouvert à l'application.

Et les erreurs communes à toutes les opérations : erreurs et limites.

Chercher des créneaux libres

GET/api/partner/v1/availability/slots#

agenda:read

Rend les créneaux libres d'un site pour un type ou un motif de rendez-vous : horaires du site, planning des vétérinaires, absences, jours fériés et rendez-vous déjà pris. Sans vet_id, tous les vétérinaires actifs de l'équipe du site sont parcourus. Un créneau déjà commencé n'est jamais rendu.

Avec from et to (31 jours au plus) : tous les créneaux de la fenêtre, triés par début puis par vétérinaire, d'une durée égale à duration_minutes, sinon à celle que prendrait la création (prestation du motif, motif, puis type). Sans to : le seul prochain créneau libre, tous vétérinaires confondus, cherché sur 30 jours à partir de from ou de maintenant ; sa durée est celle du motif, sinon du type, et duration_minutes n'est pas utilisé. Les créneaux de la fenêtre partent tous les quarts d'heure et se chevauchent : pour un même vétérinaire, réserver l'un en retire d'autres. La disponibilité des salles n'est pas vérifiée. Liste vide si rien n'est libre. Un créneau rendu n'est pas réservé : la création le rejuge.

Paramètres

site_idrequête · uuid

Site cherché. Obligatoire (ici ou dans l'en-tête) si l'organisation a ouvert plusieurs sites à l'application.

type_idrequête · uuid

Type de rendez-vous. type_id ou subtype_id obligatoire.

subtype_idrequête · uuid

Motif ; son type est alors déduit. Avec type_id, il doit appartenir à ce type.

vet_idrequête · uuid

Limite la recherche à ce vétérinaire, membre de l'équipe du site.

fromrequête · date-time

Début de la fenêtre (inclus). Obligatoire avec to. Sans to : point de départ de la recherche du prochain créneau (maintenant s'il est absent ou passé). Années 1900 à 9999.

torequête · date-time

Fin de la fenêtre, postérieure à from, 31 jours au plus après lui. Années 1900 à 9999.

duration_minutesrequête · integer

Durée des créneaux cherchés, en minutes. Utilisée seulement avec to.

Treats-Site-Iden-tête · uuid

Équivalent de site_id, lu quand le paramètre est absent.

Réponse

200Les créneaux libres, en une seule page (`nextCursor` toujours `null`).

Champs de la réponse (2)
itemsAvailabilitySlot[]
vetIduuid

Vétérinaire libre sur ce créneau, à passer en vetId à la création.

vetNamestring

Prénom et nom du vétérinaire.

startAtdate-time

Début du créneau.

endAtdate-time

Fin du créneau.

durationMinutesinteger

Durée du créneau, en minutes.

nextCursorstring

Curseur opaque de la page suivante, à repasser tel quel dans cursor. null : dernière page.

peut être null

Erreurs propres à cette opération

400 INVALID_FIELD

Ni type_id ni subtype_id ; to sans from, antérieur ou égal à from, ou à plus de 31 jours ; duration_minutes non entier ou hors de 5 à 480 ; motif qui n'appartient pas à type_id ; paramètre illisible ou date hors des années 1900 à 9999.

400 INVALID_SITE_ID

site_id (ou Treats-Site-Id) n'est pas un UUID.

404 SITE_NOT_FOUND

Le site demandé est inconnu, d'une autre organisation, ou non ouvert à l'application.

404 APPOINTMENT_TYPE_NOT_FOUND

Type de rendez-vous inconnu ou d'un autre site.

404 APPOINTMENT_SUBTYPE_NOT_FOUND

Motif inconnu ou d'un autre site.

404 VET_NOT_FOUND

Vétérinaire qui n'est pas dans l'équipe du site.

Et les erreurs communes à toutes les opérations : erreurs et limites.

Lister les motifs d'annulation

GET/api/partner/v1/cancellation-reasons#

agenda:read

Rend les sept motifs d'annulation acceptés par POST /appointments/{id}/cancel, avec leur libellé en français et l'obligation éventuelle d'une précision. La liste est la même pour toutes les organisations et ne dépend d'aucun site. Une seule page : nextCursor vaut toujours null.

Réponse

200Les motifs d'annulation.

Champs de la réponse (2)
itemsCancellationReason[]
codeenum

Code à passer en reason de POST /appointments/{id}/cancel.

CLIENT_REQUESTVET_UNAVAILABLEPATIENT_RECOVEREDNO_SHOWEMERGENCYDUPLICATEOTHER
labelstring

Libellé en français (« Demande du client », « Vétérinaire indisponible », « Patient rétabli », « Client absent », « Urgence », « Doublon », « Autre »).

requiresNotesboolean

true : une précision (notes) est obligatoire avec ce motif. Seul OTHER l'exige.

nextCursorstring

Curseur opaque de la page suivante, à repasser tel quel dans cursor. null : dernière page.

peut être null

Lire la salle d'attente

GET/api/partner/v1/waiting-room#

agenda:read

Rend les animaux en salle d'attente d'un site : rendez-vous pointés arrivés (workflow: WAITING), ni annulés, ni non honorés, ni d'un animal décédé, arrivés depuis moins de 12 heures, du plus ancien arrivé au plus récent. Un animal appelé en consultation n'y figure plus. Instantané en une seule page : nextCursor vaut toujours null, et l'enveloppe porte en plus le site lu et le nombre d'animaux en attente.

Paramètres

site_idrequête · uuid

Site lu. Obligatoire (ici ou dans l'en-tête) si l'organisation a ouvert plusieurs sites à l'application.

Treats-Site-Iden-tête · uuid

Équivalent de site_id, lu quand le paramètre est absent.

Réponse

200Les animaux en attente, par heure d'arrivée croissante.

Champs de la réponse (4)
itemsWaitingRoomEntry[]
appointmentIduuid

Rendez-vous de la visite.

patientIduuid

Animal.

peut être null
patientNamestring

Nom de l'animal.

peut être null
clientIduuid

Client.

peut être null
clientNamestring

Nom du client, tel que la clinique l'affiche.

peut être null
vetIduuid

Vétérinaire du rendez-vous.

peut être null
vetNamestring

Nom du vétérinaire.

peut être null
appointmentTypeIduuid

Type de rendez-vous.

peut être null
startAtdate-time

Heure prévue du rendez-vous.

arrivedAtdate-time

Heure d'arrivée de l'animal.

waitingMinutesinteger

Minutes écoulées depuis l'arrivée, au moment de l'appel.

urgentboolean

true : rendez-vous marqué urgent.

nextCursorstring

Curseur opaque de la page suivante, à repasser tel quel dans cursor. null : dernière page.

peut être null
siteIduuid

Site lu.

totalWaitinginteger

Nombre d'animaux en attente (taille de items).

Erreurs propres à cette opération

400 INVALID_SITE_ID

site_id (ou Treats-Site-Id) n'est pas un UUID.

404 SITE_NOT_FOUND

Le site demandé est inconnu, d'une autre organisation, ou non ouvert à l'application.

Et les erreurs communes à toutes les opérations : erreurs et limites.

esc
↵ ouvrir↑↓ naviguerrésultats limités à ce site