Docs
Connexion partenaire →

Référence de l’API partenaires

Animaux

Lire, rechercher, créer et modifier l'identité des animaux (patients) d'une organisation, et lire leurs pesées. Un animal suit la visibilité de son propriétaire : vous le voyez si vous voyez son client (organisation entière si tous les sites vous sont ouverts, sinon client né sur un site ouvert) ; sinon 404 PATIENT_NOT_FOUND.

Identité seulement : le dossier médical n'est pas exposé ici. L'API ne déclare pas de décès, ne transfère pas un animal à un autre propriétaire, ne fusionne ni ne supprime d'animal ; ces gestes restent à la clinique.

Lister les animaux

GET/api/partner/v1/patients#

patients:read

Rend les animaux des clients que vous pouvez voir, animaux décédés compris (deceased: true). Tri par updatedAt puis id, croissant : c'est la liste de synchronisation, à parcourir par cursor et à reprendre par updated_since. Une fiche créée ou modifiée n'y apparaît qu'environ 60 secondes après l'écriture ; sa lecture par GET /patients/{id} est immédiate, de même qu'une recherche par microchip.

Un client_id hors de votre périmètre (autre organisation, site non ouvert, inconnu) répond 404 CLIENT_NOT_FOUND, jamais une liste vide. Exige patients:read.

Paramètres

client_idrequête · uuid

Seulement les animaux de ce client.

microchiprequête · string

Numéro de puce exact, 15 chiffres. Rend l'animal tout juste créé, sans attendre.

updated_sincerequête · date-time

Ne rend que les animaux dont updatedAt est postérieur ou égal à cet instant (ISO 8601, années 1900 à 9999). Pour une synchronisation incrémentale, repartez du plus grand updatedAt vu moins 5 minutes et dédoublonnez par id.

cursorrequête · string

Curseur opaque rendu par la page précédente (nextCursor), à repasser tel quel avec les mêmes filtres. Absent : première page.

limitrequête · integer

Nombre d'animaux par page, de 1 à 200. Au-delà de 200, ramené à 200.

Défaut : 50

Réponse

200Une page d'animaux.

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

Identifiant de l'animal.

publicIdstring

Identifiant public partageable (pat_…). Peut être nul sur une fiche à qui aucun n'a encore été attribué.

peut être null
clientIduuid

Propriétaire (client) de l'animal.

namestring

Nom de l'animal.

speciesstring

Code d'espèce, tel que le rend GET /species (par exemple DOG, CAT).

breedstring

Race en texte, telle qu'elle s'affiche dans Treats.

peut être null
breedIduuid

Race du référentiel de l'organisation, quand la race y est liée.

peut être null
sexenum

Sexe. MALE_NEUTERED : mâle castré ; FEMALE_SPAYED : femelle stérilisée. null : non renseigné.

MALEFEMALEMALE_NEUTEREDFEMALE_SPAYEDUNKNOWNpeut être null
sterilizedboolean

Animal stérilisé. null : non renseigné.

peut être null
birthDatedate

Date de naissance. Pour un âge estimé, ancrée au 1er du mois (MONTH) ou au 1er janvier (YEAR).

peut être null
birthDatePrecisionenum

DAY : date exacte. MONTH, YEAR : âge estimé au mois ou à l'année. null quand birthDate est nulle.

DAYMONTHYEARpeut être null
microchipNumberstring

Numéro de puce (15 chiffres). Unique dans l'organisation.

peut être null
tattooNumberstring

Numéro de tatouage.

peut être null
passportNumberstring

Numéro de passeport.

peut être null
coatColorstring

Robe (couleur du pelage).

peut être null
deceasedboolean

true : décès déclaré par la clinique (jamais par l'API).

deceasedDatedate

Date du décès déclaré par la clinique.

peut être null
createdAtdate-time

Date de création de la fiche. Peut être nulle sur une fiche reprise d'un ancien logiciel.

peut être null
updatedAtdate-time

Clé de synchronisation, à la microseconde : date de dernière modification, à défaut date de création. C'est la valeur que lit updated_since et qui ordonne la liste.

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

client_id qui n'est pas un UUID, microchip qui n'a pas 15 chiffres, updated_since mal formé ou hors des années 1900 à 9999, limit non entier ou inférieur à 1, cursor illisible.

404 CLIENT_NOT_FOUND

client_id inconnu, d'une autre organisation, ou d'un client né sur un site qui ne vous est pas ouvert.

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

Créer un animal

POST/api/partner/v1/patients#

patients:writeIdempotency-Key

Crée un animal pour un client que vous pouvez voir. Les règles de l'organisation s'appliquent : l'espèce doit être connue d'elle (GET /species), une race du référentiel doit appartenir à cette espèce, et une puce ne peut être portée que par un seul animal de l'organisation (une puce connue d'une autre organisation est acceptée). Exige patients:write.

Tous les champs refusés sont rendus en une seule réponse 400 INVALID_FIELD ; tout champ hors contrat est refusé. Le site de l'écriture est site_id s'il est donné, sinon le site d'origine du propriétaire s'il vous est ouvert, sinon le seul site ouvert ; l'animal reste celui de l'organisation.

Paramètres

site_idrequête · uuid

Site au nom duquel l'écriture est faite. Facultatif (voir la description).

Treats-Site-Iden-tête · uuid

Équivalent de site_id.

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

Propriétaire. Doit être un client que vous pouvez voir, sinon 404 CLIENT_NOT_FOUND.

namestringrequis

Nom de l'animal.

speciesstringrequis

Code d'espèce de GET /species. Espèce inconnue de l'organisation : 400 INVALID_FIELD sur species.

breedstring

Race en texte libre. Absente avec un breedId : le libellé de la race du référentiel est recopié.

breedIduuid

Race du référentiel. Inconnue de l'organisation ou d'une autre espèce : 400 INVALID_FIELD sur breedId.

sexenum

Sexe (casse ignorée).

MALEFEMALEMALE_NEUTEREDFEMALE_SPAYEDUNKNOWN
sterilizedboolean

Animal stérilisé.

birthDatedate

Date de naissance (AAAA-MM-JJ), passée ou du jour, pas avant 1900.

birthDatePrecisionenum

Précision de birthDate, seulement avec elle. MONTH : date ancrée au 1er du mois ; YEAR : au 1er janvier. Absente : date exacte (DAY).

DAYMONTHYEAR
microchipNumberstring

Numéro de puce : exactement 15 chiffres (ISO 11784/11785). Déjà porté par un animal de l'organisation : 409 MICROCHIP_ALREADY_REGISTERED.

tattooNumberstring

Numéro de tatouage.

passportNumberstring

Numéro de passeport.

coatColorstring

Robe (couleur du pelage).

Réponse

201L'animal créé.

Champs de la réponse (19)
iduuid

Identifiant de l'animal.

publicIdstring

Identifiant public partageable (pat_…). Peut être nul sur une fiche à qui aucun n'a encore été attribué.

peut être null
clientIduuid

Propriétaire (client) de l'animal.

namestring

Nom de l'animal.

speciesstring

Code d'espèce, tel que le rend GET /species (par exemple DOG, CAT).

breedstring

Race en texte, telle qu'elle s'affiche dans Treats.

peut être null
breedIduuid

Race du référentiel de l'organisation, quand la race y est liée.

peut être null
sexenum

Sexe. MALE_NEUTERED : mâle castré ; FEMALE_SPAYED : femelle stérilisée. null : non renseigné.

MALEFEMALEMALE_NEUTEREDFEMALE_SPAYEDUNKNOWNpeut être null
sterilizedboolean

Animal stérilisé. null : non renseigné.

peut être null
birthDatedate

Date de naissance. Pour un âge estimé, ancrée au 1er du mois (MONTH) ou au 1er janvier (YEAR).

peut être null
birthDatePrecisionenum

DAY : date exacte. MONTH, YEAR : âge estimé au mois ou à l'année. null quand birthDate est nulle.

DAYMONTHYEARpeut être null
microchipNumberstring

Numéro de puce (15 chiffres). Unique dans l'organisation.

peut être null
tattooNumberstring

Numéro de tatouage.

peut être null
passportNumberstring

Numéro de passeport.

peut être null
coatColorstring

Robe (couleur du pelage).

peut être null
deceasedboolean

true : décès déclaré par la clinique (jamais par l'API).

deceasedDatedate

Date du décès déclaré par la clinique.

peut être null
createdAtdate-time

Date de création de la fiche. Peut être nulle sur une fiche reprise d'un ancien logiciel.

peut être null
updatedAtdate-time

Clé de synchronisation, à la microseconde : date de dernière modification, à défaut date de création. C'est la valeur que lit updated_since et qui ordonne la liste.

Erreurs propres à cette opération

400 INVALID_FIELD

clientId, name ou species absent ; clientId ou breedId qui n'est pas un UUID ; espèce inconnue de l'organisation (species) ; race inconnue ou d'une autre espèce (breedId) ; birthDatePrecision sans birthDate ; puce qui n'a pas 15 chiffres ; date future ou avant 1900 ; texte trop long ou contenant une balise HTML ; valeur d'enum inconnue ; champ hors contrat.

400 SITE_ID_REQUIRED

Aucun site_id, le site d'origine du propriétaire ne vous est pas ouvert, et l'organisation vous a ouvert plusieurs sites.

400 INVALID_SITE_ID

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

400 INVALID_REQUEST

Refus résiduel de Treats sur une donnée que les contrôles ci-dessus n'ont pas arrêtée (filet de sécurité).

404 CLIENT_NOT_FOUND

Propriétaire inconnu, d'une autre organisation, ou né sur un site qui ne vous est pas ouvert.

404 SITE_NOT_FOUND

Le site demandé n'est pas un site que l'organisation vous a ouvert.

409 MICROCHIP_ALREADY_REGISTERED

Cette puce est déjà enregistrée pour un animal de l'organisation, y compris d'un client que vous ne voyez pas. La réponse ne dit ni quel animal, ni quel client, ni quel site.

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

Notifications envoyées :patient.created

Lire un animal

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

patients:read

Rend l'identité d'un animal dont vous voyez le propriétaire. Lecture immédiate, sans le délai de la liste. Un animal d'une autre organisation, d'un client né sur un site non ouvert, ou inconnu répond 404 PATIENT_NOT_FOUND. Exige patients:read.

Paramètres

idchemin · uuidrequis

Identifiant de l'animal (id, pas publicId).

Réponse

200La fiche de l'animal.

Champs de la réponse (19)
iduuid

Identifiant de l'animal.

publicIdstring

Identifiant public partageable (pat_…). Peut être nul sur une fiche à qui aucun n'a encore été attribué.

peut être null
clientIduuid

Propriétaire (client) de l'animal.

namestring

Nom de l'animal.

speciesstring

Code d'espèce, tel que le rend GET /species (par exemple DOG, CAT).

breedstring

Race en texte, telle qu'elle s'affiche dans Treats.

peut être null
breedIduuid

Race du référentiel de l'organisation, quand la race y est liée.

peut être null
sexenum

Sexe. MALE_NEUTERED : mâle castré ; FEMALE_SPAYED : femelle stérilisée. null : non renseigné.

MALEFEMALEMALE_NEUTEREDFEMALE_SPAYEDUNKNOWNpeut être null
sterilizedboolean

Animal stérilisé. null : non renseigné.

peut être null
birthDatedate

Date de naissance. Pour un âge estimé, ancrée au 1er du mois (MONTH) ou au 1er janvier (YEAR).

peut être null
birthDatePrecisionenum

DAY : date exacte. MONTH, YEAR : âge estimé au mois ou à l'année. null quand birthDate est nulle.

DAYMONTHYEARpeut être null
microchipNumberstring

Numéro de puce (15 chiffres). Unique dans l'organisation.

peut être null
tattooNumberstring

Numéro de tatouage.

peut être null
passportNumberstring

Numéro de passeport.

peut être null
coatColorstring

Robe (couleur du pelage).

peut être null
deceasedboolean

true : décès déclaré par la clinique (jamais par l'API).

deceasedDatedate

Date du décès déclaré par la clinique.

peut être null
createdAtdate-time

Date de création de la fiche. Peut être nulle sur une fiche reprise d'un ancien logiciel.

peut être null
updatedAtdate-time

Clé de synchronisation, à la microseconde : date de dernière modification, à défaut date de création. C'est la valeur que lit updated_since et qui ordonne la liste.

Erreurs propres à cette opération

404 PATIENT_NOT_FOUND

Animal inconnu, d'une autre organisation, ou dont le propriétaire est né sur un site qui ne vous est pas ouvert.

404 NOT_FOUND

id n'est pas un UUID.

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

Modifier l'identité d'un animal

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

patients:write

Modifie les champs envoyés : champ absent = inchangé, champ à null = vidé. Se vident : sex (non renseigné), birthDate (date et précision effacées), breed (race effacée, texte et lien ; de même breedId: null envoyé sans breed), microchipNumber, tattooNumber, passportNumber, coatColor. Ne se vident pas (400 INVALID_FIELD) : name, species, sterilized, birthDatePrecision.

Refusés, chacun sous son propre nom : clientId (transfert de propriétaire), deceased et deceasedDate (décès), qui restent à la clinique. Sans breedId dans le corps, changer species, ou envoyer un breed différent du libellé de la race liée, retire le lien à la race du référentiel. Une birthDate envoyée sans birthDatePrecision est une date exacte (DAY). Une puce déjà portée par un autre animal de l'organisation répond 409 MICROCHIP_ALREADY_REGISTERED. Exige patients:write.

Paramètres

idchemin · uuidrequis

Identifiant de l'animal.

site_idrequête · uuid

Site au nom duquel l'écriture est faite. Facultatif : à défaut, le site d'origine du propriétaire s'il vous est ouvert, sinon le seul site ouvert.

Treats-Site-Iden-tête · uuid

Équivalent de site_id.

Corps de la requête application/json

namestring

Nom. Non vidable, ni à null ni à vide.

speciesstring

Code d'espèce de GET /species. Non vidable. Espèce inconnue de l'organisation : 400 INVALID_FIELD.

breedstring

Race en texte. null efface la race (texte et lien).

peut être null
breedIduuid

Race du référentiel, de l'espèce de l'animal. null sans breed : race effacée.

peut être null
sexenum

Sexe. null : non renseigné.

MALEFEMALEMALE_NEUTEREDFEMALE_SPAYEDUNKNOWNpeut être null
sterilizedboolean

Animal stérilisé. Non vidable.

birthDatedate

Date de naissance, passée ou du jour, pas avant 1900. null efface la date et sa précision.

peut être null
birthDatePrecisionenum

Précision, seulement envoyée avec birthDate. Non vidable.

DAYMONTHYEAR
microchipNumberstring

Numéro de puce, 15 chiffres. null le vide.

peut être null
tattooNumberstring

Numéro de tatouage. null le vide.

peut être null
passportNumberstring

Numéro de passeport. null le vide.

peut être null
coatColorstring

Robe. null la vide.

peut être null

Réponse

200La fiche modifiée.

Champs de la réponse (19)
iduuid

Identifiant de l'animal.

publicIdstring

Identifiant public partageable (pat_…). Peut être nul sur une fiche à qui aucun n'a encore été attribué.

peut être null
clientIduuid

Propriétaire (client) de l'animal.

namestring

Nom de l'animal.

speciesstring

Code d'espèce, tel que le rend GET /species (par exemple DOG, CAT).

breedstring

Race en texte, telle qu'elle s'affiche dans Treats.

peut être null
breedIduuid

Race du référentiel de l'organisation, quand la race y est liée.

peut être null
sexenum

Sexe. MALE_NEUTERED : mâle castré ; FEMALE_SPAYED : femelle stérilisée. null : non renseigné.

MALEFEMALEMALE_NEUTEREDFEMALE_SPAYEDUNKNOWNpeut être null
sterilizedboolean

Animal stérilisé. null : non renseigné.

peut être null
birthDatedate

Date de naissance. Pour un âge estimé, ancrée au 1er du mois (MONTH) ou au 1er janvier (YEAR).

peut être null
birthDatePrecisionenum

DAY : date exacte. MONTH, YEAR : âge estimé au mois ou à l'année. null quand birthDate est nulle.

DAYMONTHYEARpeut être null
microchipNumberstring

Numéro de puce (15 chiffres). Unique dans l'organisation.

peut être null
tattooNumberstring

Numéro de tatouage.

peut être null
passportNumberstring

Numéro de passeport.

peut être null
coatColorstring

Robe (couleur du pelage).

peut être null
deceasedboolean

true : décès déclaré par la clinique (jamais par l'API).

deceasedDatedate

Date du décès déclaré par la clinique.

peut être null
createdAtdate-time

Date de création de la fiche. Peut être nulle sur une fiche reprise d'un ancien logiciel.

peut être null
updatedAtdate-time

Clé de synchronisation, à la microseconde : date de dernière modification, à défaut date de création. C'est la valeur que lit updated_since et qui ordonne la liste.

Erreurs propres à cette opération

400 INVALID_FIELD

clientId, deceased ou deceasedDate envoyé ; champ non vidable à null (ou name, species vide) ; birthDatePrecision sans birthDate ; espèce inconnue de l'organisation (species) ; race inconnue ou d'une autre espèce (breedId) ; puce qui n'a pas 15 chiffres ; format, longueur ou enum refusés ; champ hors contrat.

400 SITE_ID_REQUIRED

Aucun site_id, le site d'origine du propriétaire ne vous est pas ouvert, et l'organisation vous a ouvert plusieurs sites.

400 INVALID_SITE_ID

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

400 INVALID_REQUEST

Refus résiduel de Treats sur une donnée que les contrôles ci-dessus n'ont pas arrêtée (filet de sécurité).

404 PATIENT_NOT_FOUND

Animal inconnu, d'une autre organisation, ou dont le propriétaire est né sur un site qui ne vous est pas ouvert.

404 NOT_FOUND

id n'est pas un UUID.

404 SITE_NOT_FOUND

Le site demandé n'est pas un site que l'organisation vous a ouvert.

409 MICROCHIP_ALREADY_REGISTERED

Cette puce est déjà enregistrée pour un autre animal de l'organisation. La réponse ne dit ni lequel, ni où.

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

Lister les pesées d'un animal

GET/api/partner/v1/patients/{id}/weights#

patients:read

Rend toutes les pesées d'un animal dont vous voyez le propriétaire, de la plus récente à la plus ancienne. Liste complète en une seule page : nextCursor vaut toujours null, et ni limit ni cursor ne sont lus. Exige patients:read.

Paramètres

idchemin · uuidrequis

Identifiant de l'animal.

Réponse

200Les pesées de l'animal.

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

Identifiant de la pesée.

weightKgnumber

Poids en kilogrammes (nombre décimal JSON, jamais une chaîne).

measuredAtdate-time

Date de la pesée.

nextCursorstring

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

peut être null

Erreurs propres à cette opération

404 PATIENT_NOT_FOUND

Animal inconnu, d'une autre organisation, ou dont le propriétaire est né sur un site qui ne vous est pas ouvert.

404 NOT_FOUND

id n'est pas un UUID.

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

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