GoCardless is a global payment infrastructure platform specializing in bank-to-bank payment collection — including Bacs Direct Debit in the UK, SEPA Direct Debit across Europe, ACH in the United States, BECS in Australia, and PAD in Canada. It enables businesses to collect recurring and one-off payments directly from customer bank accounts across 30+ countries, abstracting away the complexity of local direct debit schemes through a single API integration. GoCardless provides programmatic control over the full payment lifecycle — including mandate creation, payment scheduling, subscription management, refunds, and payout tracking — and is widely used by subscription businesses, SaaS platforms, and marketplaces for predictable, low-cost payment collection.
Power end-to-end data operations for your GoCardless API with Nexla. Our bi-directional GoCardless connector is purpose-built for GoCardless, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to GoCardless or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your GoCardless workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
GoCardless uses access token authentication for all API requests. You will need to generate an access token from your GoCardless Dashboard before configuring the credential in Nexla.
GoCardless provides two environments — Sandbox for development and testing, and Live for production. Each environment requires its own access token. It is recommended to test your integration using the Sandbox environment before switching to Live.
If you do not already have a GoCardless account, register at gocardless.com. For testing and development purposes, you can also register for a free Sandbox account at manage-sandbox.gocardless.com.
Click the Developers link in the left-hand navigation menu to open the Developer section.
Click the Create button in the upper-right area of the Developer section, and select Access token from the menu.
Enter a descriptive name for the token in the Name field (for example, "Nexla Integration").
Select the appropriate permission level for the token:
Read-only: Allows Nexla to read data from GoCardless but not make any changes. Select this permission when using GoCardless as a data source only.
Read-write: Allows Nexla to both read data from and write data to GoCardless. Select this permission when using GoCardless as a destination or when creating payments, mandates, or subscriptions through Nexla.
Click Create access token.
Important
Copy the access token immediately after it is generated. GoCardless displays the token only once and it cannot be retrieved after you leave the page. Store the token securely, such as in a password manager or secrets vault.
GoCardless access tokens are environment-specific. A token created in the Sandbox environment will only work with the Sandbox API (https://api-sandbox.gocardless.com), and a token created in the Live environment will only work with the Live API (https://api.gocardless.com). Ensure you generate a token in the correct environment for your use case.
After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Enter the GoCardless API access token you generated in Prerequisites in the Access Token field. The token authenticates all API requests that Nexla makes to your GoCardless account.
Nexla uses the Bearer authentication scheme when passing this token to the GoCardless API. You do not need to include the word "Bearer" in the field — enter only the token value itself.
Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the GoCardless API connector tile, then select the credential that will be used to connect to GoCardless, and click Next; or, create a new GoCardless credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common GoCardless API endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.
List Payments
Returns a list of all payments in the GoCardless account, useful for financial reporting and payment status monitoring.
Sends a GET request to the GoCardless payments endpoint and returns an array of payment objects.
Response data is located at $.payments[*].
No parameters are required. For incremental pulls, use the Date/Time Macros feature to filter payments by creation date using the created_at[gte] query parameter.
List Refunds
Returns a list of all refunds issued in the GoCardless account, useful for reconciliation and customer service workflows.
Sends a GET request to the GoCardless refunds endpoint and returns an array of refund objects.
Response data is located at $.refunds[*].
No parameters are required. Each refund record includes the amount, associated payment, and refund status.
List Mandates
Returns a list of all mandates in the GoCardless account, representing authorized Direct Debit agreements with customers.
Sends a GET request to the GoCardless mandates endpoint and returns an array of mandate objects.
Response data is located at $.mandates[*].
No parameters are required. Mandate status (e.g., active, cancelled, failed) is included in each record.
List Payouts
Returns a list of payouts made from GoCardless to your bank account, useful for reconciling settlement activity.
Sends a GET request to the GoCardless payouts endpoint and returns an array of payout objects.
Response data is located at $.payouts[*].
No parameters are required. Each payout record includes the amount, currency, arrival date, and associated payment IDs.
Retrieve Account Metadata
Retrieves metadata information for a specific bank account via the GoCardless Bank Account Data API.
Response data is located at $ (the top-level response object).
Configure the following parameter: Account ID — the unique identifier of the bank account.
This endpoint uses the GoCardless Bank Account Data (Open Banking) API, which requires a separate access token from the standard GoCardless API. Ensure your credential is configured for bank account data access.
Retrieve Account Balances
Retrieves current balance information for a specific bank account via the GoCardless Bank Account Data API.
Response data is located at $.transactions.booked[*].
Configure the following parameters: Account ID — the bank account ID; Date From — start date for transaction filtering; Date To — end date for transaction filtering.
Date From and Date To are optional. Use date/time macros in the URL for incremental transaction pulls. Requires bank account data access credentials.
Retrieve End-User Agreement
Retrieves details of a specific end-user agreement (EUA) by its ID, including consent scope and access duration.
Response data is located at $ (the top-level response object).
Configure the following parameters: Agreement ID — the EUA to accept; User Agent — the user agent string of the accepting user; IP Address — the IP address of the accepting user.
All three parameters are required. User Agent and IP Address are used to record the acceptance context for compliance purposes.
Retrieve EUA Reconfirmation
Retrieves reconfirmation details for a specific end-user agreement, used to manage ongoing consent for bank account data access.
Response data is located at $[*] (the top-level array).
Configure the following parameters: Country Code — filter by two-letter country code; additional boolean filters for account types and capabilities such as Business Accounts Supported, Card Accounts Supported, Pending Transactions Supported, and others.
All parameters are optional. Use the Country Code filter to narrow results to institutions operating in a specific country.
Get Institution
Retrieves details for a specific financial institution supported by GoCardless Bank Account Data by its unique ID.
Response data is located at $ (the top-level response object).
Configure the following parameter: Id — the unique identifier of the institution.
Institution IDs can be obtained via the List Supported Institutions endpoint. Each institution record includes its name, logo, and supported capabilities.
Get Requisition
Retrieves details for a specific GoCardless Bank Account Data requisition, which represents a user's bank linking session.
Response data is located at $ (the top-level response object).
Configure the following parameter: Id — the unique identifier of the requisition.
Requisitions contain the list of account IDs that were linked by the user. Use the returned account IDs with the account-level endpoints to retrieve balances and transactions.
List Customer Bank Accounts
Lists all customer bank accounts registered in the GoCardless account, used for Direct Debit mandate creation.
Sends a GET request to the GoCardless customer bank accounts endpoint and returns an array of customer bank account objects.
Response data is located at $.customer_bank_accounts[*].
No parameters are required. Customer bank account IDs are needed when creating new mandates.
List Customers
Lists all customers in the GoCardless account, providing a complete view of the customer base for reporting and analysis.
Sends a GET request to the GoCardless customers endpoint and returns an array of customer objects.
Response data is located at $.customers[*].
No parameters are required. Each customer record includes contact details, creation date, and associated bank accounts and mandates.
List Subscriptions
Lists all subscriptions in the GoCardless account, representing recurring payment schedules set up against mandates.
Sends a GET request to the GoCardless subscriptions endpoint and returns an array of subscription objects.
Response data is located at $.subscriptions[*].
No parameters are required. Each subscription record includes the amount, interval, start date, and associated mandate ID.
List Events
Lists all audit events in the GoCardless account, capturing state changes across payments, mandates, subscriptions, and other resources.
Sends a GET request to the GoCardless events endpoint and returns an array of event objects.
Response data is located at $.events[*].
No parameters are required. Events are useful for building audit trails and triggering downstream workflows based on payment state changes. Consider using date-range filtering for incremental ingestion.
List Payout Items
Lists all line items within a GoCardless payout for detailed reconciliation of settlement activity.
Sends a GET request to the GoCardless payout items endpoint and returns an array of payout item objects.
Response data is located at $.payout_items[*].
No parameters are required. Each payout item represents an individual payment or fee included in a settlement payout.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
GoCardless data sources can also be manually configured to ingest data from any valid GoCardless API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.
The GoCardless REST API base URL is https://api.gocardless.com for the live environment and https://api-sandbox.gocardless.com for sandbox. Common endpoints include /payments, /mandates, /customers, /subscriptions, /payouts, /refunds, and /events. GoCardless list responses wrap the resource array under a key matching the resource name (for example, {"payments": [...], "meta": {...}}), so set the Path to Data field to a JSON path such as $.payments[*] to extract individual records — the $.meta object holds pagination cursor information (cursors.before and cursors.after) and can be referenced as metadata. For incremental pulls, use the created_at[gte] and created_at[lte] query parameters with date/time macros. Consider adding a GoCardless-Version request header (e.g., GoCardless-Version:2015-07-06) to pin your integration to a specific API version.
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new GoCardless data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.
Click the + icon on the Nexset that will be sent to the GoCardless destination, and select the Send to Destination option from the menu. Select the GoCardless connector from the list of available destination connectors, then select the credential that will be used to connect to GoCardless, and click Next; or, create a new GoCardless credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common GoCardless API endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.
Create Customer
Creates a new customer record in GoCardless, which is a prerequisite for creating customer bank accounts and mandates.
Each record should include at minimum the customer's email address and given name.
GoCardless requires POST request bodies to wrap the resource data in a top-level key matching the resource type (e.g., {"customers": {...}}). Use the Property Inside JSON Object grouping algorithm with the property name set to customers.
Create Customer Bank Account
Creates and attaches a bank account to an existing GoCardless customer, enabling mandate and payment creation.
Each record should include the account number, sort code (or IBAN for SEPA), and the customer ID of the linked customer.
A customer must exist before a bank account can be attached to it. Use the Create Customer endpoint first if needed. Wrap the payload in a top-level customer_bank_accounts key.
Create Mandate
Creates a Direct Debit mandate against an existing customer bank account, authorizing future payment collections.
Each record should include the customer bank account ID to link the mandate to.
A customer bank account must exist before a mandate can be created. Wrap the payload in a top-level mandates key. The returned mandate ID is required for creating payments and subscriptions.
Create Payment
Creates a one-off or recurring payment against an existing GoCardless mandate.
Each record should include the amount (in pence/cents), currency, charge date, and mandate ID.
Amounts must be specified in the smallest currency unit (e.g., pence for GBP). Wrap the payload in a top-level payments key. Set batch size to 1 — GoCardless does not accept bulk payment arrays.
Create Refund
Creates a refund against a settled GoCardless payment, returning funds to the customer's bank account.
Each record should include the refund amount, payment ID, and an idempotency key to prevent duplicate refunds.
Refunds can only be created against payments that have been collected (settled). Wrap the payload in a top-level refunds key. Include an Idempotency-Key header to prevent accidental duplicate refunds.
Create Subscription
Creates a recurring payment schedule (subscription) against an existing GoCardless mandate for automated periodic billing.
Each record should include the amount, currency, interval unit (e.g., monthly), and mandate ID.
Subscriptions automatically generate payments on the defined schedule. Wrap the payload in a top-level subscriptions key. A mandate must be active before a subscription can be created against it.
Cancel Payment
Cancels a GoCardless payment before it has been submitted to the banks, stopping it from being collected.
Configure the following parameter: Id — the unique identifier of the payment to cancel.
Payments can only be cancelled while they are in a cancellable state (e.g., pending_submission). Payments that have already been submitted to the banks cannot be cancelled.
Delete End-User Agreement
Deletes a specific end-user agreement, revoking the associated bank account data access consent.
Configure the following parameter: Agreement ID — the unique identifier of the end-user agreement to delete.
Deleting an EUA revokes all associated bank account data access. This should only be done when the user has explicitly withdrawn consent.
Create EUA Reconfirmation
Creates a reconfirmation request for an end-user agreement to refresh the user's consent for continued bank account data access.
Sends a POST request to the GoCardless Bank Account Data EUA reconfirmation endpoint with the reconfirmation payload.
Configure the following parameter: Id — the unique identifier of the end-user agreement to reconfirm.
Reconfirmation is required periodically for some institutions under Open Banking regulations. Use this endpoint to initiate the reconfirmation flow before the existing EUA expires.
Delete Requisition
Deletes a GoCardless Bank Account Data requisition and revokes any associated access to the linked account data.
GoCardless destinations can also be manually configured to send data to any valid GoCardless API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.
GoCardless accepts application/json for all write operations — select JSON as the content format. POST request bodies must wrap the resource data in a top-level key matching the resource type (for example, {"customers": {"email": "...", "given_name": "...", ...}}), so use the Property Inside JSON Object grouping algorithm with the property name set to the resource type (e.g., customers, payments, mandates), and set Batch Size to 1 since most GoCardless create endpoints accept only a single resource per request. Common destination endpoints include https://api.gocardless.com/customers, /payments, /mandates, /subscriptions, and /refunds. Consider adding a GoCardless-Version header (e.g., GoCardless-Version:2015-07-06) to pin your integration to a specific API version, and an Idempotency-Key header on payment and refund requests to prevent duplicate resource creation.
Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured GoCardless endpoint, open the destination resource menu, and select Activate.
The Nexset data will not be sent to GoCardless until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.