Aller au contenu

Cartes bancaires de test

Sangho utilise Braintree pour le traitement des cartes bancaires. En Sandbox, utilisez les numéros de carte Braintree standards pour simuler différents scénarios — aucun débit réel n’est effectué.

Cartes de test

NuméroMarqueComportementCode d'erreur
4111 1111 1111 1111Visa✅ Paiement réussi
5500 0000 0000 0004Mastercard✅ Paiement réussi
4000 0000 0000 0002Visa❌ Carte déclinéeCARD_DECLINED
4000 0000 0000 9995Visa❌ Fonds insuffisantsINSUFFICIENT_FUNDS
4000 0000 0000 3220Visa🔐 Déclenche 3DS
4000 0000 0000 0069Visa❌ Carte expiréeCARD_EXPIRED
4000 0000 0000 0127Visa❌ CVV incorrectINCORRECT_CVC
Données communes à toutes les cartes de test

Date d’expiration : toute date future, ex. 12/28 · CVV : 123 · Code postal : 75001

3D Secure en Sandbox

Utilisez la carte 4000 0000 0000 3220 pour déclencher le flux 3DS. En Sandbox, le formulaire d’authentification est simulé et accepte n’importe quel code OTP.

Codes d’erreur carte

Ces codes carte remontent dans le champ code de l’erreur, au même format que le reste de l’API.

Code d'erreurDescription
CARD_DECLINEDCarte déclinée par la banque émettrice.
INSUFFICIENT_FUNDSFonds insuffisants sur le compte.
CARD_EXPIREDDate d'expiration dépassée.
INCORRECT_CVCCVV incorrect.

Formulaire de carte (Braintree Hosted Fields)

Le SDK @sanghosdk/js est un client serveur — il n’expose pas de widget de carte côté navigateur. Le formulaire Hosted Fields est servi directement par la page de checkout hébergée Sangho (intent.url) : votre frontend n’a rien à monter lui-même, il redirige simplement le client vers cette URL comme dans les autres guides d’intégration.

Flux 3DS

javascript
import Sangho from '@sanghosdk/js';


const sangho = new Sangho(process.env.SANGHO_TEST_KEY!);


// La carte 4000 0000 0000 3220 déclenche automatiquement 3DS
const intent = await sangho.paymentIntents.create({
  amount: 5000,
  currency: 'XAF',
  payment_method_types: ['card'],
});


// Rediriger le client vers intent.url : Sangho gère le formulaire de carte
// et le flux 3DS sur la page de checkout hébergée
const confirmed = await sangho.paymentIntents.confirm(intent.id, {
  payment_method: 'pm_card_threeDSecure2Required',
});


console.log(confirmed.status); // 'succeeded' après authentification