Bad Request (400)

The request was understood but rejected before any effect. The detail field names the first problem found — it never echoes your values back.

Common causes

  • Missing Idempotency-Key header on a POST (required on every POST).
  • A required field missing or with the wrong type (name, church_id, donor_phone, mode, value, redirect_url, url, event_types).
  • mode: "pct" with value above 35 — the hard cap is enforced at the edge.
  • redirect_url not https, or its origin not on your allowlist.
  • event_types containing a type that is not subscribable.
  • An invalid since_cursor on the events feed — cursors are opaque; always pass back exactly what next_cursor gave you.

What to do: fix the field named in detail and retry with the same Idempotency-Key — replays are safe by design.