Passer au contenu principal

Format

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid request data",
    "details": []
  }
}

Authentification et quotas API

CodeHTTPDescription
UNAUTHORIZED401Clé API manquante, invalide ou révoquée. Vérifiez x-api-key.
FORBIDDEN403Ressource non accessible avec cette clé
SUBSCRIPTION_INACTIVE403Le compte n’a pas de souscription exploitable pour cette action
API_RATE_LIMIT_EXCEEDED429Plus de 10 requêtes/seconde sur la même clé
MONTHLY_API_REQUEST_QUOTA_EXCEEDED429Quota mensuel de requêtes API épuisé

Limites de plan

CodeHTTPDescription
MAX_INSTANCES_REACHED403Limite d’instances atteinte
API_KEYS_NOT_AVAILABLE_ON_PLAN403Clés API indisponibles sur le plan actuel
MAX_API_KEYS_REACHED403Limite de clés API atteinte
WEBHOOKS_NOT_AVAILABLE_ON_PLAN403Webhooks indisponibles sur le plan actuel
MAX_WEBHOOK_ENDPOINTS_REACHED403Limite d’endpoints webhook atteinte
CAMPAIGNS_NOT_AVAILABLE_ON_PLAN403Campagnes indisponibles sur le plan actuel
STATUSES_NOT_AVAILABLE_ON_PLAN403Statuts WhatsApp indisponibles sur le plan actuel
MAX_CONTACT_GROUPS_REACHED403Limite de groupes de contacts atteinte
FEATURE_NOT_AVAILABLE_ON_PLAN403Feature indisponible sur le plan courant

Messages, templates et validation

CodeHTTPDescription
VALIDATION_ERROR400Le body ne respecte pas le schéma attendu
BAD_REQUEST400Requête invalide
TEMPLATE_INVALID400Placeholder invalide ou template incohérent
TEMPLATE_VARIABLES_MISSING400Une ou plusieurs variables requises n’ont pas pu être résolues
TEMPLATE_CONTEXT_UNAVAILABLE400Le contexte demandé n’est pas disponible (instance ou contact)
INVALID_DESTINATION422Numéro destinataire invalide

Général

CodeHTTPDescription
NOT_FOUND404Ressource inexistante ou hors de votre compte
CONFLICT409Conflit d’unicité
INTERNAL_ERROR500Erreur serveur
PROVIDER_TIMEOUT502Timeout côté provider WhatsApp
PROVIDER_UNAVAILABLE502Provider temporairement indisponible
PROVIDER_ERROR502Erreur générique côté provider

Équipes & workspaces

Ces codes apparaissent quand la requête combine un mauvais type de clé API avec X-Team-Id, ou quand une ressource d’équipe est accédée sans le rôle adéquat. Voir Team context et le guide Équipes & workspaces.
CodeHTTPDescription
TEAM_KEY_REQUIRED403Clé personnelle (msgf_live_…) utilisée avec X-Team-Id. Utilisez une clé d’équipe (msgf_team_…) ou retirez l’en-tête.
TEAM_KEY_NOT_ALLOWED403Clé d’équipe utilisée sur une route v1 réservée au compte personnel (/me, /usage, /billing/subscription, /billing/usage, /billing/payments). Utilisez une clé personnelle.
TEAM_NOT_FOUND404X-Team-Id ne correspond à aucune équipe dont vous êtes membre actif (supprimée, retirée ou ID erroné).
TEAM_ACCESS_DENIED403Authentifié mais le rôle ne permet pas cette action (ex. collaborateur tentant de gérer des clés d’équipe).
TEAM_FEATURE_UNAVAILABLE403Le plan de votre compte n’inclut pas la création d’équipes (Free). Passez à Pro ou MAX.
TEAM_LIMIT_REACHED403Le propriétaire a atteint le nombre maximum d’équipes autorisé par son plan.
TEAM_SEAT_LIMIT_REACHED403L’équipe a déjà le nombre maximum de membres autorisé par le plan du propriétaire.
INSTANCE_NOT_ASSIGNED403Collaborateur qui cible une instance non assignée à lui dans ce workspace d’équipe.
INVITE_INVALID_OR_EXPIRED400Token / id d’invitation inconnu, déjà utilisé ou expiré (24h).
INVITE_EMAIL_MISMATCH403L’email du JWT ne correspond pas à l’email invité.
INVITE_DUPLICATE_MEMBER409L’invité est déjà membre actif de l’équipe.
PLAN_CHANGE_BLOCKED_ACTIVE_TEAMS409Downgrade refusé : le nouveau plan ne peut pas héberger les équipes / sièges actuels. Supprimez des équipes ou réduisez les sièges d’abord.

Console (JWT, dashboard ou portail)

Ces codes n’apparaissent que sur les routes JWT /api/billing/* appelées avec X-Team-Id :
CodeHTTPDescription
BILLING_PAYMENTS_TEAM_OWNER_ONLY403GET /api/billing/payments en workspace d’équipe est réservé au propriétaire de l’équipe.
BILLING_TEAM_MUTATION_FORBIDDEN403Les mutations POST (checkout, cancel, downgrade, cancel-scheduled-change) en workspace d’équipe sont réservées au propriétaire de l’équipe.