Ir al contenido

Tarjetas bancarias de prueba

Sangho utiliza Braintree para el procesamiento de tarjetas bancarias. En el Sandbox, utilice los números de tarjeta estándar de Braintree para simular distintos escenarios: no se realiza ningún cargo real.

Tarjetas de prueba

NúmeroMarcaComportamientoCódigo de error
4111 1111 1111 1111Visa✅ Pago correcto—
5500 0000 0000 0004Mastercard✅ Pago correcto—
4000 0000 0000 0002Visa❌ Tarjeta rechazadaCARD_DECLINED
4000 0000 0000 9995Visa❌ Fondos insuficientesINSUFFICIENT_FUNDS
4000 0000 0000 3220Visa🔐 Activa 3DS—
4000 0000 0000 0069Visa❌ Tarjeta caducadaCARD_EXPIRED
4000 0000 0000 0127Visa❌ CVV incorrectoINCORRECT_CVC
Datos comunes a todas las tarjetas de prueba

Fecha de caducidad: cualquier fecha futura, p. ej. 12/28 · CVV: 123 · Código postal: 75001

3D Secure en el Sandbox

Utilice la tarjeta 4000 0000 0000 3220 para activar el flujo 3DS. En el Sandbox, el formulario de autenticación está simulado y acepta cualquier código OTP.

Códigos de error de tarjeta

Estos códigos de tarjeta aparecen en el campo code del error, con el mismo formato que el resto de la API.

Código de errorDescripción
CARD_DECLINEDTarjeta rechazada por el banco emisor.
INSUFFICIENT_FUNDSFondos insuficientes en la cuenta.
CARD_EXPIREDFecha de caducidad superada.
INCORRECT_CVCCVV incorrecto.

Formulario de tarjeta (Braintree Hosted Fields)

El SDK @sanghosdk/js es un cliente de servidor: no expone ningún widget de tarjeta en el navegador. El formulario de Hosted Fields lo sirve directamente la página de checkout alojada de Sangho (intent.url): su frontend no tiene que montar nada por sí mismo, simplemente redirige al cliente a esa URL, como en las demás guías de integración.

Flujo 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