Aller au contenu principal

Limites de débit

Pour garantir la performance et la fiabilité de l'API PayerScan pour tous les marchands, nous appliquons des limites de débit avec une structure de contrôle double (Burst et Sustained).

Portée des limites

Les limites de débit sont appliquées par API Key. Si l'API Key n'est pas fournie, la limite est appliquée par adresse IP. Cela signifie :

  • Plusieurs serveurs utilisant la même API Key partagent la même limite.
  • Différentes boutiques avec des API Keys différentes ont des limites indépendantes.

API de création de facture (POST /payment/crypto)

Type de limiteSeuil
Burst (maximum instantané)5 requêtes / seconde
Sustained60 requêtes / minute

API de consultation de facture (GET /invoice/:trans_id)

Type de limiteSeuil
Burst (maximum instantané)20 requêtes / seconde
Sustained200 requêtes / minute

Lorsque les limites sont dépassées

Si votre système dépasse le seuil configuré, l'API retournera :

  • Code de statut HTTP : 429 Too Many Requests

Dépassement de la limite burst (POST /payment/crypto) :

{
"status": "error",
"message": "Too many requests per second. Please slow down.",
"error_code": "RATE_LIMIT_EXCEEDED",
"limit_type": "burst",
"retry_after_seconds": 1
}

Dépassement de la limite sustained (POST /payment/crypto) :

{
"status": "error",
"message": "Rate limit exceeded. Maximum 60 requests per minute.",
"error_code": "RATE_LIMIT_EXCEEDED",
"limit_type": "sustained",
"retry_after_seconds": 60
}
remarque

Les valeurs de message et retry_after_seconds varient selon l'endpoint. Par exemple, l'endpoint GET retourne "Maximum 200 requests per minute." avec "retry_after_seconds": 60.

Headers de limite de débit

L'API retourne des headers de limite de débit standard avec chaque réponse :

HeaderDescription
RateLimit-LimitNombre maximum de requêtes autorisées dans la fenêtre actuelle.
RateLimit-RemainingNombre de requêtes restantes dans la fenêtre actuelle.
RateLimit-ResetTemps (en secondes) avant la réinitialisation de la fenêtre.

Utilisez ces headers pour surveiller votre utilisation et éviter d'atteindre les limites.

astuce

Configurez un mécanisme de recul exponentiel (Exponential Backoff) dans votre bibliothèque de requêtes (par ex. Axios-retry) pour retenter automatiquement après la valeur retry_after_seconds lors d'une erreur HTTP 429.