Best Practices + Troubleshooting

Best practices

  • Make your handler idempotent; use job_id to dedupe
  • Return 2xx within 30s; do heavy work asynchronously
  • Log the event, signature status, and your own reference ID
  • Use separate subscriptions per environment (sandbox vs prod)
  • Monitor failure_count via List endpoint; unpause if needed

Troubleshooting

  • Receiving duplicates: ensure idempotency on your side; duplicates are expected with retries
  • Not receiving events: check subscription status (active vs paused), confirm URL, verify your endpoint responds with 2xx
  • Signature validation failing: ensure you use the exact raw body and correct secret
  • Auto-paused: fix your endpoint, then call Unpause; we do not auto-resume