Skip to content

GoCardless

Collect bank debits by mandate over Bacs, SEPA and ACH, with payments that settle over banking days and confirm by webhook.

GoCardless collects bank debits: the customer authorises a mandate once, and future invoices are collected straight from their bank account. Bank debit fees are typically lower than card fees and mandates do not expire the way cards do, which makes GoCardless a strong choice for B2B invoices and long-running subscriptions.

Three debit schemes are supported, chosen by currency: Bacs for GBP, SEPA for EUR, and ACH for USD.

How bank debits behave

Bank rails are slower than cards, and the product is honest about that:

  • When a customer sets up a mandate and a debit is created, the payment shows as processing. Money moves over the following banking days.
  • The payment confirms when GoCardless sends its webhook, typically a few days later. Until then the invoice shows the payment in flight rather than paid.
  • A debit can still fail after creation (insufficient funds, a closed account). A failed debit flows into dunning like any failed charge.

This is why the webhook is required before charging: without it, a completed debit could never confirm.

Connecting

Go to Settings, then Payment gateways, then GoCardless. The wizard asks for:

  • Access token: in the GoCardless dashboard under Developers, create a read-write access token. Use a sandbox token on the test connection and a live token on live.
  • Webhook endpoint secret: under Developers, then Webhook endpoints, create one pointing at the URL shown on the gateway page and paste its secret. Required.

Mandates instead of cards

The saved instrument is the mandate, and setting one up never charges the customer. The customer completes GoCardless's own bank details flow, embedded on your page or on GoCardless's hosted page, from checkout, from an invoice's payment link, or from their update page. Once the mandate is active, renewals and automatic collection collect against it.

Removing the payment method in yRecurring cancels the mandate at GoCardless.

Refunds and disputes

Refunds go back to the customer's bank account and confirm asynchronously, like the debits themselves. See refunds. A customer can also charge a debit back through their bank. A Direct Debit chargeback cannot be disputed, so it counts as lost the moment it arrives: it appears on the payment's activity trail and the money is recorded on the customer's account as a chargeback automatically (see refunds). If the customer's bank later cancels the chargeback, that is undone automatically too.

Testing

The GoCardless sandbox lets you complete the whole mandate flow with test bank details and then simulate the payment outcomes (confirmed, failed, charged back) from the sandbox dashboard, so you can rehearse the full lifecycle including the days-later confirmation without waiting days.

Limits

  • GBP, EUR and USD only, one scheme per currency.
  • No instant confirmation: that is the nature of bank debits, not a fault. If you need money confirmed at checkout, collect by card and offer bank debit for renewals.
  • yRecurring can read your saved mandates back out of GoCardless. Moving here from another billing system and keeping the same GoCardless account? The importer fetches your customers' mandates directly instead of asking you for a file. See migrating saved payment methods.