Rechercher dans la documentation

Saisissez au moins deux caractères.

↑ ↓ naviguer↵ ouvriresc fermer
Développer

Authentification, erreurs et conventions REST

Les règles communes à respecter avant d’intégrer une ressource.

Vérifié le 2026-10-12 · Version Markdown

Adresses et identités#

Les ressources REST documentées utilisent /api/v1. La plateforme peut accepter l'hôte technique et l'hôte de l'organisation pour un jeton d'app ; utilisez la base fournie pour votre déploiement. Le jeton porte l'organisation : le client ne choisit pas une autre organisation par un paramètre arbitraire.

Deux principaux utilisent la surface REST : une app connectée avec scopes et périmètre, ou un utilisateur avec une session portée en Bearer et ses droits effectifs. Les jetons OAuth personnels coa_ des assistants sont destinés au MCP ; ne les assimilez pas à des jetons REST.

Formats#

Les corps utilisent JSON UTF-8, les champs camelCase et les identifiants UUID. Les horodatages sont ISO 8601, les dates civiles YYYY-MM-DD. La représentation exacte d'un montant dépend du schéma de l'opération : de nombreuses ressources emploient des chaînes décimales, certains agrégats des nombres. Ne convertissez pas implicitement en centimes.

Un PATCH omet les champs à conserver. null, une chaîne vide et un champ absent n'ont pas nécessairement le même sens : consultez le schéma. Les champs calculés ou tenus par un référentiel ne s'écrivent pas librement.

Pagination et filtres#

Les listes courantes renvoient data et nextCursor. Le défaut REST est 50 et le plafond courant 200 ; certaines listes ont un contrat particulier. Repassez le curseur sans le décoder. Un curseur invalide ou périmé demande de repartir du début.

Les filtres sont propres à chaque route. Les conventions incluent q, updatedSince, cycleId, businessUnitId et ids répété. N'envoyez pas un filtre simplement parce qu'une autre ressource le connaît.

Erreurs#

L'API utilise application/problem+json avec type, title, status, éventuellement detail, errors et un identifiant instance pour la corrélation. Testez le type stable et le statut, pas la formulation humaine du message.

StatutPremière vérification
400Corps, paramètre ou curseur invalide
401Jeton absent, expiré, révoqué ou incorrect
403Scope, droit ou capacité insuffisants
404Ressource absente ou hors visibilité
409Conflit de version, d'état ou d'idempotence
422Validation métier ou champ non modifiable
429Limite atteinte ; respecter Retry-After

L'endpoint de jeton répond au format d'erreur OAuth. Le MCP répond au format JSON-RPC : ne lui appliquez pas aveuglément le parseur REST.

Idempotence et concurrence#

Pour les POST pris en charge sous identité d'app, envoyez Idempotency-Key avec une valeur stable par opération logique. La même clé et le même corps rejouent la réponse ; un corps différent sous la même clé provoque un conflit. La mémoire dure 24 heures et est isolée par app. Le contexte de session utilisateur ignore ce header : le canal mobile dispose de son propre contrat de synchronisation.

Quand un schéma demande expectedUpdatedAt, lisez d'abord la fiche puis fournissez cette version. Sur conflit, relisez et décidez comment appliquer le changement ; ne remplacez pas aveuglément la valeur attendue pour écraser le travail d'un collègue.

Limites et reprise#

REST et MCP d'une même app partagent leur limite par identité. Des limites d'organisation et de consommation s'ajoutent. Respectez Retry-After, limitez la concurrence et espacez les reprises. Une réponse de validation n'est pas un incident transitoire à réessayer en boucle.