Procesar pagos
Esta sección detalla el uso del endpoint para procesar pagos. Sigue las instrucciones para integrar esta funcionalidad en tu aplicación.
Detalles del endpoint
- Método:
POST
- URL:
/api/v1/transactions
El endpoint permite efectuar cobros mediante el envío de datos del cliente y de la tarjeta de forma segura.
Configuración de la solicitud
Headers
Header | Descripción |
---|---|
X-API-KEY | API Key generada en Cubo Admin. |
Si aún no has generado tu API Key, revisa nuestra sección de autenticación.
Cuerpo de la solicitud
Parámetro | Tipo | Descripción |
---|---|---|
clientName | string | Nombre del cliente. |
clientEmail | string | Correo electrónico del cliente. |
clientPhone | string | Teléfono del cliente con código de país. |
description | string | Descripción de la transacción. |
amount | number | Cantidad de dinero a pagar. |
cardHolder | string | Nombre del titular de la tarjeta. |
cardNumber | string | Número de la tarjeta de crédito o débito. |
cvv | string | Código de seguridad de la tarjeta. |
month | string | Mes de expiración de la tarjeta en formato MM . |
year | string | Año de expiración de la tarjeta en formato YY . |
El campo amount
siempre debe enviarse como un número entero en centavos.
A continuación se muestra un ejemplo de la solicitud en formato JSON:
{
"clientName": "John Doe",
"clientEmail": "[email protected]",
"clientPhone": "+50322577777",
"description": "Test API",
"amount": 100, // Monto en centavos (100 = $1.00)
"cardHolder": "John Doe",
"cardNumber": "4000000000000416",
"cvv": "123",
"month": "12",
"year": "26"
}
Ejemplos de uso
JavaScript
fetch('https://api.cubo.com/api/v1/transactions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-KEY': 'TU_API_KEY_AQUI',
},
body: JSON.stringify({
clientName: 'John Doe',
clientEmail: '[email protected]',
clientPhone: '+50322577777',
description: 'Test API',
amount: 100, // Monto en centavos (100 = $1.00)
cardHolder: 'John Doe',
cardNumber: '4000000000000416',
cvv: '123',
month: '12',
year: '26',
}),
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Montos de prueba
Existen montos específicos que puedes utilizar durante tus pruebas para simular distintos tipos de respuesta de la Cubo API. Cada monto está asociado a un mensaje de error particular, lo que te permite validar cómo se manejan los rechazos en tu integración.
Monto (amount ) | Mensaje de respuesta |
---|---|
4000 | EB - ERROR DE DÍGITO |
4030 | 30 - ERROR DE FORMATO |
4001 | 01 - LLAMAR AL EMISOR |
4051 | 51 - FONDOS INSUFICIENTES |
Estos montos son ideales para asegurarte de que tu manejo de errores funciona correctamente antes de salir a producción.
Respuestas del servidor
✅ Respuesta exitosa
Indica que el pago fue aprobado exitosamente.
{
"status": "SUCCEEDED",
"referenceId": "354247606061629",
"authorizationCode": "015163",
"processedAt": "2025-02-10T22:27:17.317Z"
}
❌ Respuesta de error
Indica que el pago fue rechazado.
{
"statusCode": 400,
"message": "15 - EMISOR NO DISPONIBLE"
}
Asegúrate de manejar correctamente las respuestas del servidor en tu aplicación para ofrecer una mejor experiencia al usuario.