Solicita folios (códigos de canje) para productos específicos.
POST /api/folios/solicitar
Base URL: https://triton-bridge-svc.passbeneficios.com
| Header | Valor |
|---|
Authorization | Bearer {userToken} |
Content-Type | application/json |
X-CM-HOST-ID | {hostId} |
| Campo | Tipo | Requerido | Descripción |
|---|
productId | string | Sí | ID del producto (obtenido de /api/v1/products) |
quantity | number | Sí | Cantidad de folios a solicitar |
email | string | Sí | Email del usuario destinatario |
Terminal
curl -X POST "https://triton-bridge-svc.passbeneficios.com/api/folios/solicitar" \
-H "Authorization: Bearer {userToken}" \
-H "Content-Type: application/json" \
-H "X-CM-HOST-ID: {hostId}" \
-d '{
"productId": "prod_abc123",
"quantity": 2,
"email": "[email protected]"
}'
folios.js
const response = await fetch(
"https://triton-bridge-svc.passbeneficios.com/api/folios/solicitar",
{
method: "POST",
headers: {
Authorization: `Bearer ${userToken}`,
"Content-Type": "application/json",
"X-CM-HOST-ID": hostId,
},
body: JSON.stringify({
productId: "prod_abc123",
quantity: 2,
email: "[email protected]",
}),
}
);
const folios = await response.json();
Respuesta
{
"folios": [
{
"code": "FOLIO-ABC-12345",
"productName": "Boleto Cinemex Tradicional",
"expiresAt": "2026-04-10T00:00:00Z",
"status": "active"
},
{
"code": "FOLIO-ABC-12346",
"productName": "Boleto Cinemex Tradicional",
"expiresAt": "2026-04-10T00:00:00Z",
"status": "active"
}
]
}
| Código | Causa | Solución |
|---|
401 | Token expirado o inválido | Solicita un nuevo userToken |
403 | Sin permisos para este recurso | Verifica tu hostId |
422 | Datos inválidos o límite excedido | Verifica los campos del body y los límites de negocio |
404 | Producto no encontrado | Verifica el productId contra /api/v1/products |