Wassy Connect

Documentation développeur

Intégrez l'API Wassy Connect en quelques minutes. Base de l'API : https://connect.prp.aydou.com/v1

Démarrage rapide

  1. Créez un compte et générez une clé API dans la console (commencez en Sandbox).
  2. Authentifiez-vous en Basic Auth avec la clé secrète (voir ci-dessous).
  3. Créez un payment intent, confirmez-le puis capturez-le.
  4. Enregistrez un endpoint webhook pour recevoir l'issue en temps réel.
# 1. Créer un payment intent (montant en XOF)
curl -u "$WASSY_SECRET_KEY:" https://connect.prp.aydou.com/v1/payment_intents \
  -d amount=5000 \
  -d currency=XOF \
  -d description="Commande #1234"

# 2. Confirmer (pose le hold)
curl -u "$WASSY_SECRET_KEY:" https://connect.prp.aydou.com/v1/payment_intents/PI-xxxx/confirm

# 3. Capturer (mouvement définitif)
curl -u "$WASSY_SECRET_KEY:" https://connect.prp.aydou.com/v1/payment_intents/PI-xxxx/capture

Authentification

Chaque requête est authentifiée par votre clé secrète, passée en Basic Auth (la clé comme identifiant, mot de passe vide) ou en en-tête Authorization: Bearer. Le préfixe indique l'environnement : sk_live_ (Production) ou sk_sandbox_ (Sandbox).

# Basic Auth : la clé secrète comme identifiant, mot de passe vide
curl -u "sk_sandbox_xxx_yyy:" https://connect.prp.aydou.com/v1/payment_intents/PI-xxxx

# ou en Bearer
curl -H "Authorization: Bearer sk_sandbox_xxx_yyy" https://connect.prp.aydou.com/v1/payment_intents/PI-xxxx

Ne divulguez jamais votre clé secrète côté client. Une clé compromise doit être révoquée immédiatement depuis la console.

Payment Intents

Un payment intent suit le cycle created → authorized → captured (ou canceled / failed). L'autorisation pose un hold ; la capture est le seul mouvement définitif.

MéthodeEndpointDescription
POST/v1/payment_intentsCréer
GET/v1/payment_intents/:idRécupérer
POST/v1/payment_intents/:id/confirmAutoriser (hold)
POST/v1/payment_intents/:id/captureCapturer
POST/v1/payment_intents/:id/cancelAnnuler
curl -u "$WASSY_SECRET_KEY:" https://connect.prp.aydou.com/v1/payment_intents \
  -d amount=5000 \
  -d currency=XOF \
  -d capture_method=manual \
  -d description="Abonnement"

# Réponse
{
  "id": "PI-xxxx",
  "object": "payment_intent",
  "status": "created",
  "amount": "5000",
  "currency": "XOF",
  "capture_method": "manual"
}

Webhooks

Enregistrez une URL HTTPS pour recevoir les événements. Chaque livraison est signée HMAC-SHA256 sur timestamp.body et l'en-tête X-Wassy-Signature: sha256=… permet de la vérifier. Les livraisons sont relancées automatiquement en cas d'échec.

MéthodeEndpointDescription
POST/v1/webhook_endpointsEnregistrer (secret révélé une fois)
GET/v1/webhook_endpointsLister
curl -u "$WASSY_SECRET_KEY:" https://connect.prp.aydou.com/v1/webhook_endpoints \
  -d url=https://monapp.com/webhooks/wassy \
  -d "events[]=payment_intent.succeeded" \
  -d "events[]=payment_intent.failed"

# Le secret de signature n'est renvoyé QU'À la création :
{ "id": "WHE-xxxx", "object": "webhook_endpoint", "secret": "whsec_..." }

Idempotence

Passez un idempotency_key unique par opération : rejouer la même requête avec la même clé ne crée pas de doublon. L'unicité est garantie par (environnement, clé).

curl -u "$WASSY_SECRET_KEY:" https://connect.prp.aydou.com/v1/payment_intents \
  -d amount=5000 \
  -d currency=XOF \
  -d idempotency_key=ord_1234_attempt_1

Codes d'erreur

StatutSignification
201 / 200Succès (création / lecture)
202Accepté — traitement asynchrone, issue par webhook
401Clé API invalide ou révoquée
402Paiement refusé (fonds/hold)
404Ressource introuvable dans cet environnement
422Requête invalide (statut incompatible, expiré, validation)

Besoin d'aller plus loin ? La console développeur fournit une documentation pré-remplie avec vos clés et environnements. Ouvrir dans la console →