Create a customer and a bank account via the GoCardless API, then create a mandate linking the bank account to your creditor — GoCardless handles submission to Bacs on your behalf.
Note that BACS mandates require a processing lead time: new mandates must be submitted to Bacs 3 business days before the first debit (the AUDDIS submission cycle).
After mandate creation, it will enter 'pending_submission' then 'submitted' then 'active' states; do not create a payment until the mandate is 'active'.
Create a payment by specifying the mandate ID, amount, and charge_date — the charge_date must be at least 2 business days in the future to allow Bacs processing.
Listen for GoCardless webhook events on mandate and payment resources: handle 'mandate_cancelled', 'payment_failed' (with failure reason), and 'payment_paid_out'.
For recurring charges, use GoCardless subscriptions (a higher-level object) which automatically schedule payments and handle retries within Bacs rules.
Known gotchas
BACS payments cannot be cancelled once submitted to the Bacs clearing cycle — the cutoff for cancellation is typically 2 business days before the charge date.
Mandate cancellations triggered by the bank (e.g., account closed) arrive via webhook asynchronously and may lag the actual bank event by 1-2 business days.
Unlike card payments, BACS does not provide a real-time decline — a failed payment is only discovered after clearing, so build a post-debit reconciliation step rather than relying on synchronous confirmation.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp