Fintech
GoCardless Webhooks
Bank payment platform for Direct Debit and Open Banking collections across the UK and Europe. Receive events for payments, mandates, payouts, and subscriptions.
Connecting GoCardless to Hookbase
Create a source in Hookbase first — it gives you an ingest URL to paste into GoCardless. Then:
- 1In the GoCardless Dashboard, go to Developers → Create → Webhook endpoint
- 2Enter a Name and your Hookbase ingest URL. Leave Secret blank so GoCardless generates one
- 3Click "Create webhook endpoint"
- 4Click the new endpoint in the list, copy its Secret and paste it into your Hookbase source as the Webhook endpoint secret
- 5GoCardless signs the raw request body with HMAC-SHA256 (hex) in the Webhook-Signature header, so don't re-serialize the JSON before verifying
Signature verification
Set the source's provider to gocardless and paste the signing secret. Every request is checked before the event is stored, and anything that fails is rejected rather than quietly recorded.
- Algorithm
- HMAC-SHA256 (hex digest of the raw request body)
- Header
- Webhook-Signature
- Where to find the secret
- GoCardless Dashboard → Developers → webhook endpoints list → click your endpoint → Secret (the webhook endpoint secret)
GoCardless event types
8 of the events people route most often. Hookbase accepts every event GoCardless sends, whether or not it is listed here.
payments.confirmed
A payment was confirmed by the customer's bank and can no longer be cancelled
payments.paid_out
A payment was included in a payout to your bank account
payments.failed
A payment failed (e.g. insufficient funds, invalid mandate)
payments.charged_back
A payment was charged back by the customer's bank
mandates.active
A Direct Debit mandate was confirmed by the bank and is ready to collect against
mandates.cancelled
A mandate was cancelled by the customer, their bank, or via the API
payouts.paid
A payout was sent to your bank account
subscriptions.cancelled
A subscription was cancelled
What a GoCardless webhook looks like
A payments.confirmed payload. Hookbase stores the raw body exactly as it arrived, so this is also what you get back on a replay.
{
"events": [
{
"id": "EV123",
"created_at": "2024-01-15T10:30:00.000Z",
"resource_type": "payments",
"action": "confirmed",
"links": {
"payment": "PM123"
},
"details": {
"origin": "gocardless",
"cause": "payment_confirmed",
"description": "Payment confirmed",
"scheme": "bacs"
}
}
]
}Start receiving GoCardless webhooks
Create a source, paste the URL into GoCardless, and watch the first event arrive. The free tier includes 1,000 events a month.
Get Started Free