nouko.
Documentation développeurs
Docs / Erreurs et limites

Erreurs, idempotence et limites

Codes d’erreur de l’API nouko, idempotence avec Idempotency-Key et limite de 120 requêtes par minute.

MarkdownOpenAPI

Toutes les erreurs ont le même format :

HTTP/1.1 400 Bad Request
X-Request-Id: 9a7c…

{ "error": { "code": "invalid_request", "message": "country: Invalid enum value" } }
HTTPCodeCauseQue faire
400invalid_requestChamp manquant ou invalide (détail dans message)Corrigez la requête, ne réessayez pas telle quelle
400idempotency_key_requiredEn-tête Idempotency-Key absent ou trop longAjoutez une clé stable de 120 caractères max.
401unauthorizedClé absente, invalide ou révoquéeVérifiez la clé et son environnement
403account_suspendedCompte suspendu par noukoContactez le support
404not_foundSession inexistante ou d’un autre environnementVérifiez l’id et la clé utilisée
409not_cancellableSession déjà soumise ou terminéeLisez son statut
429rate_limitedPlus de 120 requêtes par minuteAttendez puis réessayez avec un délai croissant
500internal_errorErreur de noukoRéessayez avec la même Idempotency-Key

Idempotence

Utilisez une clé liée à votre objet métier (ex. commande-001) et stockez-la. En cas de coupure réseau ou d’erreur 5xx, renvoyez exactement la même requête avec la même clé : vous obtenez la session existante, jamais un doublon.

// Même Idempotency-Key à chaque tentative : jamais de doublon
async function createWithRetry(payload, key, attempts = 4) {
  for (let i = 0; i < attempts; i++) {
    try {
      const res = await fetch('https://nouko.openclouds.fr/api/public/v1/sessions', {
        method: 'POST',
        headers: {
          Authorization: `Bearer ${process.env.NOUKO_API_KEY}`,
          'Idempotency-Key': key,
          'Content-Type': 'application/json',
        },
        body: JSON.stringify(payload),
      });
      if (res.status !== 429 && res.status < 500) return res.json(); // 200 si rejeu
    } catch { /* réseau : on réessaie */ }
    await new Promise(r => setTimeout(r, 2 ** i * 1000));
  }
  throw new Error('Nouko indisponible');
}

Limites

LimiteValeur
Requêtes120 par minute et par clé
Page de liste100 sessions max.
Métadonnées20 clés max.
Validité d’un lien15 minutes à 30 jours
Réponse webhook attenduemoins de 8 secondes