Overview
GoCardless provides a platform for businesses to manage and collect recurring payments directly from customer bank accounts. Founded in 2011, the service focuses on bank-to-bank payments, including Direct Debit schemes in multiple countries, Instant Bank Pay, and broader Open Banking initiatives. This approach is designed to offer an alternative to card-based payments, which can be susceptible to expiration, fraud, and interchange fees.
The GoCardless API allows developers to integrate payment collection into their existing systems, handling aspects such as mandate creation, payment submission, and reconciliation. It targets businesses with recurring revenue models, including SaaS providers, utility companies, subscription services, and membership organizations. The platform aims to reduce administrative overhead associated with manual payment processing and to improve payment success rates by directly debiting bank accounts rather than relying on card details that can expire or be declined.
GoCardless supports various payment scenarios, from fixed subscriptions to variable usage-based billing and installment plans. Its core products include Direct Debit, which automates collection based on pre-authorized mandates, and Instant Bank Pay, which facilitates immediate, one-off payments directly from a customer's bank account using Open Banking technology. The platform emphasizes compliance with financial regulations such as PSD2 and GDPR, as well as security standards like ISO 27001 and SOC 2 Type II, to ensure secure and compliant payment processing.
The developer experience is supported by comprehensive API documentation and client libraries (SDKs) for languages including Python, Ruby, PHP, Java, and Node.js. A sandbox environment is available for testing integrations before going live, which can help ensure system stability and proper payment flow management. The service is often chosen by businesses looking to minimize payment churn and streamline their financial operations for recurring revenue streams.
Key features
- Direct Debit Processing: Automates the collection of recurring payments directly from customer bank accounts in various countries, including the UK, Eurozone, Sweden, Australia, New Zealand, Canada, and the US.
- Instant Bank Pay: Facilitates immediate, one-off bank payments using Open Banking technology, providing real-time payment confirmation.
- Subscription Management: Tools to set up and manage recurring payment schedules, handle variable amounts, and automate billing cycles.
- Mandate Management: Allows businesses to create, manage, and verify customer mandates, ensuring authorization for bank debits.
- Payment Reconciliation: Provides automated tools to match received payments with outstanding invoices, simplifying accounting processes.
- Failed Payment Recovery: Features designed to automatically re-attempt failed payments or notify customers, aiming to reduce involuntary churn.
- Multi-currency Support: Enables collection in multiple currencies, supporting international business operations.
- Compliance and Security: Adherence to regulatory standards such as PSD2 and GDPR, alongside security certifications like ISO 27001 and SOC 2 Type II.
- Developer SDKs: Client libraries available for Ruby, Python, PHP, Java, and Node.js to streamline API integration.
- Reporting and Analytics: Access to dashboards and reports detailing payment statuses, success rates, and financial metrics.
Pricing
GoCardless operates on a transaction-based pricing model, with no monthly fees for its standard plans. Pricing varies by region and payment type, with different tiers available based on transaction volume and required features. Custom enterprise pricing is available for businesses with high volumes or specific needs.
| Plan | Price (as of 2026-05-28) | Key Features |
|---|---|---|
| Standard | 1% + £0.20 per transaction (capped at £4 for UK Direct Debit) | Core Direct Debit functionality, Instant Bank Pay, API access, reporting. |
| Plus | 0.75% + £0.20 per transaction (capped at £2.50 for UK Direct Debit) | Includes features of Standard, plus custom checkout pages, success/failure notifications, priority support. |
| Pro | Custom pricing | Includes features of Plus, plus advanced reconciliation, multi-user access, custom branding, dedicated account manager. |
| Enterprise | Custom pricing | Tailored solutions for high-volume businesses, including advanced integrations and bespoke service level agreements. |
For more detailed information on specific regional pricing and features, refer to the official GoCardless pricing page.
Common integrations
- Accounting Software: Integrates with platforms like Xero, QuickBooks, and Sage to automate reconciliation of payments with invoices.
- CRM Systems: Connects with Salesforce to manage customer mandates and payment statuses directly within the CRM environment.
- Subscription Management Platforms: Works with services such as Chargebee and Recurly to handle recurring billing and subscription lifecycle management.
- E-commerce Platforms: Integrations with platforms like WooCommerce via plugins to offer Direct Debit as a payment option.
- Workflow Automation: Utilizes platforms like Tray.io to build custom workflows for payment processing and data synchronization.
Alternatives
- Stripe: A comprehensive payment processing platform supporting credit cards, bank transfers, and various local payment methods, known for its developer-friendly APIs.
- Adyen: A global payment platform that offers end-to-end infrastructure for online, in-app, and in-store payments, including various local payment methods.
- Tappable: Provides a platform for businesses to collect recurring payments, focusing on simplifying the setup and management of mandates and payments.
Getting started
To begin using the GoCardless API, you typically need to authenticate your requests using an access token. The following Python example demonstrates how to create a new customer and a Direct Debit mandate using the GoCardless Python SDK. This assumes you have already installed the gocardless-pro library (pip install gocardless-pro) and have your access token configured.
import gocardless_pro
from gocardless_pro.errors import GoCardlessProError
# Initialize the client with your access token and environment (live or sandbox)
client = gocardless_pro.Client(
access_token="YOUR_GOCARDLESS_ACCESS_TOKEN",
environment="sandbox" # Use 'live' for production
)
try:
# 1. Create a customer
customer = client.customers.create({
"email": "[email protected]",
"given_name": "John",
"family_name": "Doe",
"address_line1": "10 Downing Street",
"city": "London",
"postal_code": "SW1A 2AA",
"country_code": "GB"
})
print(f"Customer created: {customer.id}")
# 2. Create a bank account for the customer
# In a real application, bank details would come from a secure form
customer_bank_account = client.customer_bank_accounts.create({
"account_number": "00012345", # Example GB account number
"branch_code": "000000", # Example GB sort code
"account_holder_name": "John Doe",
"currency": "GBP",
"links": {
"customer": customer.id
}
})
print(f"Customer bank account created: {customer_bank_account.id}")
# 3. Create a Direct Debit mandate
mandate = client.mandates.create({
"scheme": "bacs", # For UK Direct Debit
"links": {
"customer_bank_account": customer_bank_account.id
}
})
print(f"Mandate created: {mandate.id}")
# At this point, the customer would need to authorize the mandate.
# For Bacs, this is typically done via an online mandate form hosted by GoCardless
# or a partner, or a paper form.
# The mandate status will initially be 'pending_submission' or similar.
# Example: Fetching the mandate status
fetched_mandate = client.mandates.get(mandate.id)
print(f"Mandate status: {fetched_mandate.status}")
except GoCardlessProError as e:
print(f"An error occurred: {e.errors}")
This snippet illustrates the basic flow for setting up a customer and a Direct Debit mandate. Subsequent steps would involve creating payments linked to this mandate and handling webhooks for payment status updates, as detailed in the comprehensive GoCardless developer documentation.