Manage subscriptions
Create a subscription
Body
string
required
HTTPS URL to deliver to.
array
required
Array of event types to subscribe to.
string
Free-text description for your internal records.
Response 201
secret immediately — it’s shown once. Use it to verify every incoming webhook’s signature.
Update a subscription
Body
string
New URL (optional).
array
New event list (optional).
string
ACTIVE or PAUSED.Delete a subscription
List subscriptions
Delivery shape
Every webhook is a POST to your URL with:Headers
Body
Verification
The signature header has two fields, comma-separated:t— Unix timestamp when we signed.v1— HMAC-SHA256 hex over{t}.{raw_body}using your webhook secret.
hmac.compare_digest (Python), crypto.timingSafeEqual (Node), hash_equals (PHP), CryptographicOperations.FixedTimeEquals (C#), MessageDigest.isEqual (Java). Never use plain string equality.
Event types
consent.granted
Fires when a user grants you a consent (either via consent link or from their dashboard directly).
consent.revoked
Fires when a user revokes a previously granted consent.
403 consent_revoked.
consent.expired
Fires when a consent passes its expiresAt without renewal.
consent.renewed
Fires when a user extends a consent that was approaching expiry.
standing.tier_changed
Fires when a user with an active consent changes standing tier.
disbursement.delivered
Fires when a disbursement you initiated successfully reaches the user.
disbursement.failed
Fires when a disbursement fails (typically a name mismatch or bank rejection for BANK_DIRECT).
repayment.settled
Fires when a scheduled repayment direct-debit lands successfully (or a manual repayment from the user’s wallet).
repayment.failed
Fires when a scheduled repayment direct-debit fails (insufficient funds, bank error).
Retry behaviour
We retry failed deliveries with exponential backoff:
A successful 2xx response stops the retries. A 410 Gone response permanently disables the subscription. A 4xx-other or 5xx triggers the next retry.
Idempotency
Every event has a stableid (e.g., evt_01HMFB...). After processing, store the ID. On the next delivery, check the store — if you’ve seen the ID, return 200 immediately without reprocessing.
Standard at-least-once delivery semantics.
What to read next
Webhooks (concept)
The conceptual framing.
Rate limits
Throughput numbers.