Configuración de Stripe
Esta guía describe los pasos necesarios para preparar Stripe en cada entorno (desarrollo, staging, producción).
1. Crear Cuentas y Claves
- Accede a tu Dashboard de Stripe
- Usa el modo Test para pruebas y Live para producción
- Genera:
STRIPE_SECRET_KEY(sk_live/sk_test) para el backendSTRIPE_PUBLISHABLE_KEY(pk_live/pk_test) para el frontend
- Guarda las claves en los
.envcorrespondientes (backend/.env,frontend/.env)
2. Webhooks
- En el Dashboard → Developers → Webhooks, crea un endpoint apuntando a:
https://api.tu-dominio.com/api/payments/webhooks/stripe
- Selecciona los eventos:
payment_intent.succeededpayment_intent.payment_failedpayment_intent.canceled
- Copia el
Signing secret(STRIPE_WEBHOOK_SECRET) y añádelo al.envdel backend - Para desarrollo local, utiliza
stripe listen --forward-to localhost:8000/api/payments/webhooks/stripepara reenviar eventos
3. Stripe Connect (Opcional)
Si utilizas cuentas Connect para pagar a expertos:
- Configura una cuenta Connect Express desde el Dashboard
- En Developers → Connect settings, define:
Return URL:https://app.tu-dominio.com/dashboard/experto?stripe=success(o la URL configurada enSTRIPE_CONNECT_RETURN_URL)Refresh URL:https://app.tu-dominio.com/dashboard/experto?stripe=refresh(o la URL configurada enSTRIPE_CONNECT_REFRESH_URL)
- Copia el
Client IDy añádelo comoSTRIPE_CONNECT_CLIENT_ID - Ajusta las URLs en
backend/.env(STRIPE_CONNECT_RETURN_URL,STRIPE_CONNECT_REFRESH_URL)
Nota: El sistema soporta dos tipos de enlaces:
- Onboarding inicial: Para configurar la cuenta Connect por primera vez
- Actualización de cuenta: Para modificar información bancaria, datos fiscales, etc.
4. Ajustes Adicionales
- Currency: la aplicación usa
EURcomo moneda por defecto; ajusta si es necesario - Fees / Escrow: el backend crea PaymentIntents con
capture_method="manual". Debes capturar fondos cuando el hito sea aprobado - Dashboard enlaces:
ProjectPaymentsutilizaVITE_STRIPE_DASHBOARD_URL_BASEpara abrir pagos desde la UI; configúralo según test/live
5. Pruebas
- Con el entorno en modo test, usa tarjetas de prueba (p.ej.
4242 4242 4242 4242) - Verifica que los webhooks actualizan el estado de pagos/hitos
- Asegúrate de que los flujos Playwright pasan
6. Verificación en Producción
- Desde el Dashboard de Stripe, en Developers → Webhooks, revisa que no haya eventos fallidos tras el despliegue
- Ejecuta nuestro script de verificación para enviar un
payment_intent.succeededde prueba y confirmar la firma - Comprueba los logs del backend (
docker compose logs backend) en busca de errores relacionados con Stripe - En caso de fallo, verifica de nuevo el secreto (
STRIPE_WEBHOOK_SECRET) y la URL configurada
7. Script de Verificación Local
Puedes comprobar rápidamente la configuración usando la CLI de Stripe:
stripe trigger payment_intent.succeeded \
--api-key $STRIPE_SECRET_KEY \
--webhook-endpoint https://api.tu-dominio.com/api/payments/webhooks/stripe
Si quieres apuntar a staging/local con túnel, usa stripe listen y la URL correspondiente.
Checklist Rápido
- Claves secretas y públicas configuradas
- Webhook creado y firmado
- Stripe Connect (si aplica) con URLs correctas
- Tarjetas de prueba verificadas
- Captura manual probada (aprobar hito en la app)
Mantén las claves sensibles fuera del repositorio y rota los secretos periódicamente.