Pasarela de pagos (Bold)
Integración con Bold
La plataforma usa Bold como pasarela de pago para transacciones en línea. Bold procesa tarjetas de crédito y débito. La integración se realiza mediante la API de Bold, con el módulo src/lib/bold.ts en app_reservas.
Ambientes
| Ambiente | Variable | Uso |
|---|---|---|
| Sandbox | BOLD_API_KEY_SANDBOX | Pruebas. No procesa pagos reales. |
| Producción | BOLD_API_KEY | Pagos reales. Controlado por BOLD_ENV. |
La variable BOLD_ENV (default: "sandbox") controla qué clave se usa.
Flujo de pago
- Al crear una reserva con método "online", el sistema genera un payment intent en Bold.
- El payment intent retorna un
checkout_urldonde el cliente ingresa sus datos de tarjeta. - Si el pago es exitoso, Bold dispara un webhook hacia
/api/pagos/webhook. - El webhook valida la firma (
BOLD_WEBHOOK_SECRET), actualiza el estado del pago y confirma la reserva. - Si la pasarela no responde en el timeout (8s), se genera un mensaje de fallback y la reserva queda pendiente de pago.
Webhook de pagos
El endpoint POST /api/pagos/webhook en app_reservas:
- Recibe notificaciones de Bold sobre cambios de estado de pago.
- Valida la firma del webhook para prevenir requests falsos.
- Actualiza el registro del pago en Strapi.
- Cambia el estado de la reserva a "confirmada" si el pago fue exitoso.
Estados de pago
- Pendiente: payment intent creado, esperando que el cliente pague.
- Completado: pago exitoso confirmado por webhook.
- Fallido: el pago fue rechazado o expiró.
- Reembolsado: se procesó un reembolso total o parcial.
Consulta de estado
El estado de un pago se puede consultar vía API: GET /api/pagos/{reference_id}/estado. Esto es útil para verificar el estado actualizado de un pago desde el frontend o desde el panel administrativo.
Manejo de errores
Si la pasarela de pago no responde (timeout de 8 segundos), el sistema:
- La reserva se crea normalmente (no se pierde).
- Se registra un campo
pago_errorcon el mensaje de fallback. - El
checkout_urlqueda en null. - Se ofrece al cliente la opción de coordinar el pago por WhatsApp.
¿Te fue útil esta guía?