How retries work
Failed webhook deliveries retry up to five times (1 min → 5 min → 30 min → 2 h → 24 h). Most of the time, retries run inline: whenever Payoes dispatches a new payment event, it processes any due retries first. That covers busy deployments without extra infrastructure. On quiet deployments, the web app also runs a background retry pass every five minutes. It starts automatically with the Next.js server viainstrumentation.ts — no cron jobs or external schedulers required.
Self-hosted requirements
- Run exactly one web replica so background workers are not duplicated.
- Restart the app after changing environment variables.
Health check
GET /api/health returns worker status, including the Horizon settlement stream when enabled.
