Passer au contenu principal
@drwintech/sandpay est le SDK officiel TypeScript pour Node.js 20+. Il enveloppe l’API HTTP, normalise les erreurs et expose un helper de vérification des signatures webhook.
Prefer a ready-to-run starter? See Stack Builder — il génère un projet Next.js/Express/Hono avec @drwintech/sandpay déjà câblé et vos clés pré-remplies.

Installation

Import et constructeur

payments.create(input)

Crée un paiement simulé.

payments.get(id)

Retourne le même objet Payment que create. Lève SandPayApiError avec status: 404 si l’id est inconnu.

payments.list(params?)

webhooks.verify(header, payload, secret)

Vérifie la signature HMAC-SHA256 d’un webhook. Le payload doit être le corps brut, exactement comme reçu.

Récupérer le rawBody

webhooks.parseEvent(rawBody)

Parse un corps webhook déjà vérifié en payload typé WebhookPayload. Appeler après verify(...).
Lève une Error si :
  • le corps n’est pas du JSON valide (Invalid JSON in webhook body),
  • le corps n’est pas un objet JSON (Webhook body must be a JSON object),
  • le nom d’événement est inconnu (Unknown webhook event: ...),
  • un champ requis est manquant ou n’a pas le bon type (Missing or invalid field: ...).
Le contrôle est volontairement minimal — il valide la forme suffisamment pour donner un typage sûr en aval. Pour une validation exhaustive, composer avec zod.

Types exportés

  • WebhookEventName — union littérale des noms d’événements ("payment.completed" aujourd’hui).
  • WebhookPayload — interface du payload renvoyé par parseEvent.

SandPayApiError

Lancée sur tout statut HTTP non-2xx.

Code source

Le SDK est open source : github.com/htleclerc/sandpay. PRs bienvenues.