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#
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 |
| cursorrequête · string | Curseur opaque rendu par la page précédente ( |
| 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 ( |
| clientIduuid | Propriétaire (client) de l'animal. |
| namestring | Nom de l'animal. |
| speciesstring | Code d'espèce, tel que le rend |
| 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. MALEFEMALEMALE_NEUTEREDFEMALE_SPAYEDUNKNOWNpeut être null |
| sterilizedboolean | Animal stérilisé. |
| birthDatedate | Date de naissance. Pour un âge estimé, ancrée au 1er du mois ( |
| birthDatePrecisionenum |
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 |
|
| 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 |
| nextCursorstring | Curseur opaque de la page suivante, à repasser tel quel dans |
Erreurs propres à cette opération
| 400 INVALID_FIELD |
|
| 404 CLIENT_NOT_FOUND |
|
Et les erreurs communes à toutes les opérations : erreurs et limites.
Créer un animal
POST/api/partner/v1/patients#
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 |
| 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 |
| namestringrequis | Nom de l'animal. |
| speciesstringrequis | Code d'espèce de |
| breedstring | Race en texte libre. Absente avec un |
| breedIduuid | Race du référentiel. Inconnue de l'organisation ou d'une autre espèce : |
| sexenum | Sexe (casse ignorée). MALEFEMALEMALE_NEUTEREDFEMALE_SPAYEDUNKNOWN |
| sterilizedboolean | Animal stérilisé. |
| birthDatedate | Date de naissance ( |
| birthDatePrecisionenum | Précision de DAYMONTHYEAR |
| microchipNumberstring | Numéro de puce : exactement 15 chiffres (ISO 11784/11785). Déjà porté par un animal de l'organisation : |
| 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 ( |
| clientIduuid | Propriétaire (client) de l'animal. |
| namestring | Nom de l'animal. |
| speciesstring | Code d'espèce, tel que le rend |
| 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. MALEFEMALEMALE_NEUTEREDFEMALE_SPAYEDUNKNOWNpeut être null |
| sterilizedboolean | Animal stérilisé. |
| birthDatedate | Date de naissance. Pour un âge estimé, ancrée au 1er du mois ( |
| birthDatePrecisionenum |
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 |
|
| 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 |
Erreurs propres à cette opération
| 400 INVALID_FIELD |
|
| 400 SITE_ID_REQUIRED | Aucun |
| 400 INVALID_SITE_ID |
|
| 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}#
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 ( |
Réponse
200La fiche de l'animal.
Champs de la réponse (19)
| iduuid | Identifiant de l'animal. |
| publicIdstring | Identifiant public partageable ( |
| clientIduuid | Propriétaire (client) de l'animal. |
| namestring | Nom de l'animal. |
| speciesstring | Code d'espèce, tel que le rend |
| 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. MALEFEMALEMALE_NEUTEREDFEMALE_SPAYEDUNKNOWNpeut être null |
| sterilizedboolean | Animal stérilisé. |
| birthDatedate | Date de naissance. Pour un âge estimé, ancrée au 1er du mois ( |
| birthDatePrecisionenum |
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 |
|
| 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 |
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 |
|
Et les erreurs communes à toutes les opérations : erreurs et limites.
Modifier l'identité d'un animal
PATCH/api/partner/v1/patients/{id}#
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 |
Corps de la requête application/json
| namestring | Nom. Non vidable, ni à |
| speciesstring | Code d'espèce de |
| breedstring | Race en texte. |
| breedIduuid | Race du référentiel, de l'espèce de l'animal. |
| sexenum | Sexe. MALEFEMALEMALE_NEUTEREDFEMALE_SPAYEDUNKNOWNpeut être null |
| sterilizedboolean | Animal stérilisé. Non vidable. |
| birthDatedate | Date de naissance, passée ou du jour, pas avant 1900. |
| birthDatePrecisionenum | Précision, seulement envoyée avec DAYMONTHYEAR |
| microchipNumberstring | Numéro de puce, 15 chiffres. |
| tattooNumberstring | Numéro de tatouage. |
| passportNumberstring | Numéro de passeport. |
| coatColorstring | Robe. |
Réponse
200La fiche modifiée.
Champs de la réponse (19)
| iduuid | Identifiant de l'animal. |
| publicIdstring | Identifiant public partageable ( |
| clientIduuid | Propriétaire (client) de l'animal. |
| namestring | Nom de l'animal. |
| speciesstring | Code d'espèce, tel que le rend |
| 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. MALEFEMALEMALE_NEUTEREDFEMALE_SPAYEDUNKNOWNpeut être null |
| sterilizedboolean | Animal stérilisé. |
| birthDatedate | Date de naissance. Pour un âge estimé, ancrée au 1er du mois ( |
| birthDatePrecisionenum |
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 |
|
| 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 |
Erreurs propres à cette opération
| 400 INVALID_FIELD |
|
| 400 SITE_ID_REQUIRED | Aucun |
| 400 INVALID_SITE_ID |
|
| 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 |
|
| 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#
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 |
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 |
|
Et les erreurs communes à toutes les opérations : erreurs et limites.