Pago de suscripción
Esta sección detalla el uso del endpoint para efectuar el cobro de una suscripción. Sigue las instrucciones para integrar esta funcionalidad en tu aplicación.
Detalles del endpoint
- Método:
POST
- URL:
/api/v1/transactions/subscription
Este endpoint permite efectuar el cobro de una suscripción enviando los datos del cliente y de la tarjeta junto con la API Key.
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 . |
installments | number | Cantidad de cuotas mensuales en las que se dividirá el pago. |
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",
"installments": 12
}
Suscripción sin vencimiento
Es posible generar un pago de suscripción sin fecha de vencimiento, lo que permite que los cobros mensuales al cliente se realicen de manera indefinida hasta que se cancele la suscripción.
Para lograr esto, simplemente debes enviar el campo installments con el valor null
en el cuerpo de la solicitud. Esto le indica al sistema que la suscripción no tiene una duración definida y continuará generando cargos mensuales de forma automática.
{
"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",
"installments": null,
}
Este tipo de suscripción es ideal para servicios que se ofrecen de manera continua, como membresías o plataformas de contenido.
Ejemplos de uso
JavaScript
fetch('https://api.cubo.com/api/v1/transactions/subscription', {
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',
installments: 12
}),
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
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.