SDK officiel pour Node.js (≥ 18) et environnements serverless (Vercel, AWS Lambda, Cloudflare Workers via fetch polyfill).

Installation

Initialisation

L’environnement (live vs test) est dérivé du préfixe de la clé. La clé est envoyée via header Authorization: Bearer sk_….

Ressources

Payment Intents

Payouts

Invoices

Products

Vérification webhook

validateWebhook lance une IziPayWebhookError typée avec .reason :
  • missing_signature, malformed_signature, invalid_signature
  • missing_timestamp, expired_timestamp
  • invalid_body
Voir Vérification webhook pour les détails.

Idempotence

Chaque méthode create() accepte un idempotencyKey optionnel. Si vous l’omettez, le SDK en génère un automatiquement avant l’envoi, mais utiliser le vôtre est recommandé pour pouvoir retenter en cas de panne réseau sans créer deux ressources.

Retries

Le SDK retry automatiquement sur 429 Too Many Requests et sur les 5xx avec :
  • Backoff exponentiel : 250ms → 500ms → 1s → 2s → 4s (capé)
  • Jitter ±20%
  • Respect du header Retry-After quand présent
  • Max 3 tentatives par défaut (maxRetries configurable)
Les 4xx (sauf 429) ne sont jamais retentés : ce sont des erreurs métier qui ne se résoudront pas en réessayant.

Erreurs

Tous descendent de IziPayError : un instanceof IziPayError attrape tout.
Le format d’erreur réel de l’API est { statusCode, message, code }. Les propriétés défensives du SDK comme .fields (détail de validation par champ) restent typiquement vides : l’API ne renvoie pas d’enveloppe de validation par champ. Pour les rejets de validation, fiez-vous au code (par exemple INSUFFICIENT_SCOPE, DASHBOARD_ONLY) plutôt qu’à .fields. Voir Errors pour les patterns de gestion et le logging recommandés.

TypeScript

Tous les types sont exportés depuis le package racine :

Compatibilité

Source

Le SDK est open-source sur github.com/izichangepay/node-sdk. Issues + PRs bienvenus.