Payment Gateway · Beta
GoCardless
API integration
Ship Payment Gateway features without building the integration. Full GoCardless API access via Proxy and 130+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with GoCardless
Common scenarios for SaaS companies building GoCardless integrations for their customers.
Auto-collect recurring invoices via Direct Debit
Let your users offer their customers a lower-fee, lower-churn alternative to card payments by pulling invoice amounts directly from bank accounts on the due date. Ideal for accounting, ERP, and B2B billing platforms where card fees are prohibitive on large invoices.
Embed subscription billing for vertical SaaS
Property management, gym, and childcare platforms can offer their operators one-click mandate setup and automated monthly collection, replacing manual bank transfers and reducing days sales outstanding.
White-label payments as a master merchant
Provision GoCardless creditors, run KYC, and register bank accounts on behalf of your users so they never leave your product to set up payments. Apply custom branding so their payers see only your customer's identity during checkout.
Reconcile payouts to invoices automatically
Break down lump-sum GoCardless payouts into individual payment line items and fees, so your users' ledgers stay accurate without manual matching. Critical for accounting, bookkeeping, and finance ops tooling.
Intelligent dunning and retry workflows
Build smarter recovery flows by checking funds availability on Open Banking mandates before retrying a failed Direct Debit, avoiding bounce fees and protecting your users' payment success rates.
What You Can Build
Ship these features with Truto + GoCardless
Concrete product features your team can ship faster by leveraging Truto’s GoCardless integration instead of building from scratch.
Embedded mandate authorization flow
Generate hosted Billing Request Flows so end-payers can authorize Direct Debit or Open Banking mandates without leaving your product's UI.
Recurring subscription engine
Create, pause, resume, and cancel GoCardless subscriptions directly from your billing UI, with full lifecycle sync back to your database.
Invoice-to-payment automation
Trigger one-off payments against active mandates whenever your app generates an invoice, and reflect payment status changes back on the invoice record.
Payout reconciliation dashboard
List payouts and their underlying payout items to show your users exactly which invoices settled in each bank deposit, net of GoCardless fees.
Sub-merchant onboarding with KYC
Programmatically create creditors, submit verification details, and attach creditor bank accounts to onboard your users as sub-merchants inside your app.
Branded payer checkout experience
Upload logos and payer themes so mandate setup and confirmation screens carry your customer's brand rather than a generic gateway look.
SuperAI
GoCardless AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
create_a_go_cardless_customer
Create a GoCardless customer with the contact details used for Direct Debit mandates. Returns: id, created_at, email, given_name, family_name, address_line1, address_line2, city, postal_code, country_code, metadata. Requires given_name and family_name; email is required in most cases. Legacy endpoint restricted to GoCardless Pro/Enterprise accounts.
list_all_go_cardless_customers
List GoCardless customers, cursor-paginated. Returns: id, created_at, email, given_name, family_name, address_line1, address_line2, address_line3, city, region, postal_code, country_code, language, phone_number, swedish_identity_number, danish_identity_number, metadata. Filterable by created_at date range, currency, and action_required; sortable via sort_field and sort_direction.
get_single_go_cardless_customer_by_id
Get a single GoCardless customer by id. Returns the full customer object including id, created_at, email, given_name, family_name, address fields, language, phone_number, and metadata. Required: id.
update_a_go_cardless_customer_by_id
Update a GoCardless customer's contact details by id. Returns the updated customer object including id, created_at, email, given_name, family_name, address fields, language, and metadata. Required: id.
delete_a_go_cardless_customer_by_id
Delete a GoCardless customer by id. This action cannot be reversed. Returns an empty 204 response on success.
list_all_go_cardless_webhooks
List GoCardless webhook deliveries, i.e. the webhook requests GoCardless sent to your endpoint. Returns webhook records including id, url, created_at, response_code, response_body, and successful. Supports created_at, successful, and is_test filters.
get_single_go_cardless_webhook_by_id
Get a single GoCardless webhook delivery record by id. Returns the webhook record including id, url, created_at, request_headers, response_code, response_body, and successful. Required: id (webhook id beginning with WB, e.g. WB123).
go_cardless_webhooks_retry
Retry a GoCardless webhook delivery by requesting that a previous webhook be sent again. Returns the webhook record including id, url, response_code, response_body, and successful. Required: webhook_id.
create_a_go_cardless_payment
Create a GoCardless payment taken against a Direct Debit mandate. Returns: id, created_at, amount, amount_refunded, currency, description, charge_date, reference, metadata, status, fx, links, retry_if_possible. Requires amount, currency, and links.mandate.
list_all_go_cardless_payments
List GoCardless payments, returned as a cursor-paginated collection. Returns: id, created_at, amount, amount_refunded, currency, description, charge_date, reference, metadata, status, fx, links, retry_if_possible.
get_single_go_cardless_payment_by_id
Get a single GoCardless payment by id. Returns: id, created_at, amount, amount_refunded, currency, description, charge_date, reference, metadata, status, fx, links, retry_if_possible. Required: id.
update_a_go_cardless_payment_by_id
Update a GoCardless payment by id — this endpoint accepts only the metadata parameter. Returns: id, created_at, amount, amount_refunded, currency, description, charge_date, reference, metadata, status, fx, links, retry_if_possible. Required: id.
go_cardless_payments_cancel
Cancel a GoCardless payment if it has not already been submitted to the banks. Returns the updated payment: id, amount, currency, status, charge_date, reference, metadata. Required: payment_id.
go_cardless_payments_retry
Retry a failed GoCardless payment if the underlying mandate is active; the retry follows the same process as its initial creation (resubmission_requested, then submitted, then confirmed or failed). Returns the payment object including id, status, amount, charge_date, currency, and links. Required: payment_id. Fails with a retry_failed error if the payment has not failed; max 3 retries per payment.
create_a_go_cardless_creditor
Create a GoCardless creditor on behalf of your organisation (restricted to GoCardless Embed customers). Returns the created creditor including id, name, country_code, creditor_type, verification_status, and bank_reference_prefix.
list_all_go_cardless_creditors
List GoCardless creditors with cursor pagination. Returns each creditor's id, name, country_code, creditor_type, verification_status, and created_at. Accepts an optional created_at filter.
get_single_go_cardless_creditor_by_id
Get a single GoCardless creditor by id. Returns the full creditor object including id, name, country_code, creditor_type, verification_status, scheme_identifiers, and default payout account links. Required: id.
update_a_go_cardless_creditor_by_id
Update a GoCardless creditor by id. Accepts the same fields as create (name, country_code, creditor_type, bank_reference_prefix, and links such as default payout accounts) and returns the updated creditor including id, name, created_at, verification_status, and creditor_type. Required: id.
create_a_go_cardless_mandate
Create a mandate in gocardless against a customer bank account. Returns the created mandate including id, reference, status, scheme, next_possible_charge_date, metadata, and links. Required: links.customer_bank_account; links.creditor is only required if your account manages multiple creditors. Legacy endpoint requiring approved custom payment pages — gocardless recommends the Billing Requests…
list_all_go_cardless_mandates
List gocardless mandates. Returns a cursor-paginated list of mandate records including id, reference, status, scheme, next_possible_charge_date, metadata, and links.
get_single_go_cardless_mandate_by_id
Get a single gocardless mandate by id. Returns the mandate record including id, reference, status, scheme, next_possible_charge_date, metadata, and links. Required: id.
update_a_go_cardless_mandate_by_id
Update the metadata of a gocardless mandate by id. Returns the updated mandate including id, reference, status, scheme, and metadata. Accepts only the metadata parameter. Required: id.
go_cardless_mandates_cancel
Cancel a gocardless mandate by id, immediately cancelling the mandate and all associated cancellable payments. Returns the cancelled mandate including id, reference, status, scheme, and metadata. Fails with a cancellation_failed error if the mandate is already cancelled. Required: mandate_id.
go_cardless_mandates_reinstate
Reinstate a cancelled or expired mandate in gocardless, resubmitting it to the banks. Returns the mandate object including id, reference, status, scheme, next_possible_charge_date, and metadata. Required: mandate_id. Fails with mandate_not_inactive if the mandate is already submitted or active; mandates can be resubmitted up to 10 times.
create_a_go_cardless_subscription
Create a GoCardless subscription that schedules recurring payments against a mandate. Returns: id, created_at, amount, currency, name, interval_unit, day_of_month, metadata, links. Required: amount, currency, interval_unit, links.mandate. day_of_month/month are only valid for yearly/monthly intervals per the recurrence rules.
list_all_go_cardless_subscriptions
List GoCardless subscriptions for your account as a cursor-paginated collection; subscriptions belonging to removed customers are excluded. Returns each subscription's id, amount, currency, status, interval_unit, start_date, upcoming_payments, metadata, and links.
get_single_go_cardless_subscription_by_id
Get a single GoCardless subscription by id. Returns: id, created_at, amount, currency, status, name, start_date, end_date, interval, interval_unit, day_of_month, month, payment_reference, earliest_charge_date_after_resume, parent_plan_paused, upcoming_payments, metadata, links, retry_if_possible. Required: id (subscription id beginning with "SB", from a list response).
update_a_go_cardless_subscription_by_id
Update a GoCardless subscription object, such as changing its amount. Returns the updated subscription with id, amount, currency, status, interval_unit, start_date, upcoming_payments, metadata, and links. Required: id. Fails with subscription_not_active if the subscription is no longer active, and amount changes are limited to 10 amendments.
go_cardless_subscriptions_pause
Pause a GoCardless subscription so no further payments are created until it is resumed. Returns the paused subscription with id, status, earliest_charge_date_after_resume, upcoming_payments, metadata, and links. Required: subscription_id. Only subscriptions created with count, without count/end_date, or already paused can be paused.
go_cardless_subscriptions_resume
Resume a paused GoCardless subscription by id. Returns the updated subscription object including its id, status, amount, interval_unit, upcoming_payments, and metadata. Only paused subscriptions can be resumed. Required: subscription_id.
go_cardless_subscriptions_cancel
Cancel a GoCardless subscription by id, immediately stopping all future payments under it. Returns the cancelled subscription object including its id, status, amount, interval_unit, upcoming_payments, and metadata. Required: subscription_id.
create_a_go_cardless_customer_bank_account
Create a gocardless customer bank account for a customer using local bank details, an IBAN, or a customer bank account token. Returns the created account with id, created_at, account_holder_name, account_number_ending, country_code, currency, bank_name, enabled, metadata, and links.customer. Required: links.customer plus bank details (account_holder_name is required unless a customer bank account…
list_all_go_cardless_customer_bank_accounts
List gocardless customer bank accounts, cursor-paginated and filterable by customer, enabled state, and created_at range. Returns: id, created_at, account_holder_name, account_number_ending, account_type, country_code, currency, bank_name, bank_account_token, enabled, metadata, links, trusted_recipient, payer_name_verification_result.customer.
get_single_go_cardless_customer_bank_account_by_id
Get a single gocardless customer bank account by id. Returns: id, created_at, account_number_ending, account_holder_name, country_code, currency, bank_name, metadata, enabled, links.customer. Required: id.
update_a_go_cardless_customer_bank_account_by_id
Update a gocardless customer bank account by id; only the metadata parameter is allowed. Returns the updated account with id, created_at, account_holder_name, account_number_ending, country_code, currency, bank_name, enabled, metadata, and links.customer. Required: id.
go_cardless_customer_bank_accounts_disable
Disable a gocardless customer bank account by id, immediately cancelling all associated mandates and cancellable payments. Returns the disabled account with id, created_at, account_holder_name, account_number_ending, currency, bank_name, enabled, metadata, and links.customer. Required: customer_bank_account_id. Fails with a disable_failed error if the account has already been disabled.
create_a_go_cardless_refund
Create a refund in gocardless for a (partial) refund of a payment back to the customer. Returns the created refund object including its id, created_at, amount, currency, status, metadata, links, and fx. Requires amount, total_amount_confirmation, and links.payment.
list_all_go_cardless_refunds
List refunds in gocardless, returning a cursor-paginated list of (partial) refunds of payments back to customers. Each refund record includes id, created_at, amount, currency, status, reference, metadata, links, and fx. Can be filtered by payment.
get_single_go_cardless_refund_by_id
Get a single refund in gocardless by id, retrieving all details for that refund. Returns: id, created_at, amount, currency, status, reference, metadata, links, fx. Required: id (the refund id, beginning with "RF").
update_a_go_cardless_refund_by_id
Update a refund in gocardless by id, modifying the refund object (e.g. its metadata or reference). Returns the updated refund object including its id, created_at, amount, currency, status, reference, metadata, links, and fx. Required: id.
list_all_go_cardless_payouts
List GoCardless payouts — transfers of collected payments to a creditor, created automatically after payments are collected. Returns: id, amount, arrival_date, deducted_fees, currency, created_at, payout_type, reference, status, fx, tax_currency, metadata, links.
get_single_go_cardless_payout_by_id
Get a single GoCardless payout by id. Returns the payout including id, amount, currency, status, payout_type, arrival_date, and created_at. Required: id.
update_a_go_cardless_payout_by_id
Update a GoCardless payout by id. Only the metadata parameter is accepted (up to 3 keys, key names up to 50 characters, values up to 500 characters). Returns the updated payout: id, amount, currency, status, and arrival_date. Required: id.
list_all_go_cardless_payout_items
List the credit and debit payout items that make up a single GoCardless payout. Returns cursor-paginated items with amount, type, taxes, and links to the related payment. Required: payout. Only serves payouts created in the last 6 months; requests for older payouts return 410 Gone.
create_a_go_cardless_billing_request
Create a billing request in gocardless to collect a payment, set up a mandate, or both. Returns the created billing request including id, created_at, status, payment_request, mandate_request, and actions. Supply a payment_request, a mandate_request, or both.
list_all_go_cardless_billing_requests
List billing requests in gocardless. Returns each billing request including id, created_at, status, payment_request, mandate_request, metadata, and links.
get_single_go_cardless_billing_request_by_id
Get a single billing request by id in gocardless. Returns the billing request including id, created_at, status, payment_request, mandate_request, actions, links, and resources. Required: id.
go_cardless_billing_requests_collect_customer_details
Collect customer details (such as email, name, and address) for a gocardless billing request. Returns the updated billing request including id, status, actions, links, and resources. Required: billing_request_id.
go_cardless_billing_requests_collect_bank_account
Collect bank account details for a gocardless billing request. Returns the updated billing request including id, status, actions, links, and resources. Required: billing_request_id.
go_cardless_billing_requests_confirm_payer_details
Confirm the payer details for a gocardless billing request. Returns the updated billing request including id, created_at, status, mandate_request, payment_request, links, actions, and resources. Required: billing_request_id.
go_cardless_billing_requests_fulfil
Fulfil a gocardless billing request, completing it and creating the associated payment and/or mandate. Returns the billing request including id, created_at, status, mandate_request, payment_request, links, actions, and resources. Required: billing_request_id.
go_cardless_billing_requests_cancel
Cancel a gocardless billing request so it can no longer be used. Returns the billing request including id, created_at, status, mandate_request, payment_request, links, actions, and resources. Required: billing_request_id.
go_cardless_billing_requests_notify
Notify the customer linked to a gocardless billing request by email, asking them to authorise it. Returns the billing request including id, created_at, status, mandate_request, payment_request, links, actions, and resources. Required: billing_request_id. Only supported for Pay by Bank Billing Requests.
go_cardless_billing_requests_fallback
Trigger a gocardless billing request's fallback from the open-banking flow to direct debit. Returns the billing request including id, created_at, status, mandate_request, payment_request, links, actions, and resources. Required: billing_request_id. Requires fallback enabled; restricted to GoCardless Pro and Enterprise accounts with the custom payment pages upgrade.
go_cardless_billing_requests_choose_currency
Complete the choose_currency action on a GoCardless billing request, locking in the currency the payer will be charged in. Returns the updated billing request object including id, status, mandate_request, payment_request, links, actions, and resources. Required: billing_request_id, currency.
go_cardless_billing_requests_select_institution
Complete the select_institution action on a GoCardless billing request, attaching the payer's chosen bank institution. Returns the updated billing request object including id, status, mandate_request, payment_request, links, actions, and resources. Required: billing_request_id. Restricted to GoCardless Pro and Enterprise accounts with the custom payment pages upgrade.
go_cardless_billing_requests_create_with_actions
Create a GoCardless billing request and complete actions such as collecting customer details, selecting an institution, or creating a bank authorisation in a single call. Returns the created billing request object including id, status, payment_request, actions, resources, and links. Calling this creates a new billing request every time; ACH/PAD schemes are not supported, and the endpoint is…
list_all_go_cardless_events
List GoCardless events, cursor-paginated, filterable by a resource ID (e.g. payment, mandate, subscription), action, resource_type, and created_at date range. Returns each event's id, created_at, resource_type, action, details, and links. Events older than 18 months are no longer returned.
get_single_go_cardless_event_by_id
Get a single GoCardless event by id, including what changed and why. Returns: id, created_at, resource_type, action, details, metadata, resource_metadata, links. Required: id.
create_a_go_cardless_redirect_flow
Create a gocardless redirect flow that sends your customer to the gocardless hosted payment pages to set up a Direct Debit mandate. Returns: id, description, session_token, success_redirect_url, created_at, links, prefilled_customer. Required: session_token. Legacy API deprecated for new integrators; redirect flows expire 30 minutes after creation.
get_single_go_cardless_redirect_flow_by_id
Get all details about a single gocardless redirect flow by id. Returns: id, description, session_token, scheme, success_redirect_url, redirect_url, created_at, links. Required: id. Legacy API deprecated for new integrators.
go_cardless_redirect_flows_complete
Complete a gocardless redirect flow after your customer returns from the hosted payment pages; this creates a customer, customer bank account, and mandate. Returns: id, description, session_token, scheme, success_redirect_url, redirect_url, created_at, links. Required: redirect_flow_id. Flows expire 30 minutes after creation and cannot be completed once expired.
create_a_go_cardless_instalment_schedule
Create a new GoCardless instalment schedule together with its associated payments, either schedule-based or with explicit amounts and charge dates. Returns: id, created_at, name, currency, status, total_amount, metadata, payment_errors, links. Requires total_amount, currency, instalments, and links.mandate. Created with status pending and cannot be modified afterwards, only cancelled.
list_all_go_cardless_instalment_schedules
List GoCardless instalment schedules with cursor pagination. Returns instalment schedule records including id, name, currency, status, total_amount, payment_errors, and links (mandate, payments, customer).
get_single_go_cardless_instalment_schedule_by_id
Get a single GoCardless instalment schedule by id. Returns: id, created_at, name, currency, status, total_amount, metadata, payment_errors, links. Required: id. Use after creation to poll until processing completes (status success or error).
update_a_go_cardless_instalment_schedule_by_id
Update a GoCardless instalment schedule by id. Returns the updated schedule: id, name, currency, status, total_amount, payment_errors, and links (mandate, payments, customer). Required: id. Accepts only the metadata parameter.
go_cardless_instalment_schedules_cancel
Cancel a GoCardless instalment schedule by id, immediately stopping collection of any further payments for it. Returns the cancelled schedule: id, name, currency, status, total_amount, payment_errors, and links (mandate, payments, customer). Required: instalment_schedule_id. Fails with a cancellation_failed error if the schedule is already cancelled or has completed.
create_a_go_cardless_mandate_import
Create a new mandate import in gocardless to begin migrating existing mandates from another provider. Returns: id, scheme, status, created_at, links. Required: scheme (all mandates in one import must share the same scheme). Imports are limited to 30,000 entries; add entries, then submit for processing.
get_single_go_cardless_mandate_import_by_id
Get a single gocardless mandate import by id, useful for checking the current status of an import while it is processed. Returns: id, scheme, status, created_at, links. Required: id.
go_cardless_mandate_imports_submit
Submit a gocardless mandate import so it can be processed by the GoCardless team; once submitted, no more entries can be added. Returns the import with id, scheme, status (submitted, or processing in sandbox), created_at, and links. Required: mandate_import_id.
go_cardless_mandate_imports_cancel
Cancel a gocardless mandate import, stopping it before the mandates are imported. Returns the import with id, scheme, status (cancelled), created_at, and links. Required: mandate_import_id.
create_a_go_cardless_mandate_import_entry
Add a mandate import entry to an existing GoCardless mandate import. Returns the created entry: record_identifier, created_at, and links (mandate_import, mandate, customer, customer_bank_account). Required: mandate_import (ID of the mandate import, beginning with 'IM'). A single mandate import accepts at most 30,000 entries.
list_all_go_cardless_mandate_import_entries
List all mandate import entries attached to a GoCardless mandate import - use record_identifier to match entries back to your records once the import is processed. Returns each entry's record_identifier, created_at, links (mandate_import, mandate, customer, customer_bank_account) and processing_errors. Required: mandate_import.
create_a_go_cardless_mandate_pdf
Create a GoCardless mandate PDF and get back a temporary URL for a scheme-rules compliant Direct Debit mandate. Returns: url, expires_at. Supply links.mandate, an iban, or local bank details (account_number, branch_code, country_code), or leave blank for a blank mandate; links.mandate cannot be combined with other details. Generated in English by default.
create_a_go_cardless_billing_request_flow
Create a GoCardless billing request flow that lets a payer authorise a billing request, e.g. via open banking. Returns: id, redirect_uri, exit_uri, created_at, prefilled_customer, links.billing_request. Supply redirect_uri, exit_uri, prefilled_customer, and links.billing_request as needed.
go_cardless_billing_request_flows_initialise
Initialise a GoCardless billing request flow, generating a fresh session token that can be used to power integrations that manipulate the flow. Returns: id, redirect_uri, skip_success_screen, exit_uri, show_redirect_buttons, show_success_redirect_button, authorisation_url, created_at, expires_at, session_token, auto_fulfil, lock_bank_account, lock_currency, lock_customer_details,…
list_all_go_cardless_billing_request_templates
List GoCardless Billing Request Templates, the reusable templates behind multi-user payment links. Returns: id, name, mandate_request_currency, mandate_request_scheme, mandate_request_verify, mandate_request_metadata, payment_request_description, mandate_request_description, mandate_request_constraints, payment_request_amount, payment_request_currency, payment_request_scheme,…
create_a_go_cardless_billing_request_template
Create a Billing Request Template in GoCardless, a reusable template whose authorisation_url generates a new Billing Request each time it is opened. Returns: id, name, mandate_request_currency, mandate_request_scheme, mandate_request_verify, mandate_request_metadata, payment_request_description, mandate_request_description, mandate_request_constraints, payment_request_amount,…
get_single_go_cardless_billing_request_template_by_id
Get a single GoCardless Billing Request Template by id. Returns: id, name, mandate_request_currency, mandate_request_scheme, mandate_request_verify, mandate_request_metadata, payment_request_description, mandate_request_description, mandate_request_constraints, payment_request_amount, payment_request_currency, payment_request_scheme, payment_request_metadata, redirect_uri, authorisation_url,…
update_a_go_cardless_billing_request_template_by_id
Update a GoCardless Billing Request Template by id; changes affect all future Billing Requests created from this template. Returns the updated template with id, name, payment_request_amount, authorisation_url, and updated_at. Required: id.
go_cardless_customer_notifications_handle
Handle a GoCardless customer notification to record that your integration sent it instead of GoCardless. Returns the notification with id, type, action_taken, action_taken_at, action_taken_by, and links to the related customer, event, and payment. Required: customer_notification_id. Fails with an already_actioned error if the notification was already actioned or the deadline to notify has passed.
list_all_go_cardless_tax_rates
List GoCardless tax rates, optionally filtered by jurisdiction (e.g. GB). Returns tax rates with id, jurisdiction, type, percentage, start_date, and end_date.
get_single_go_cardless_tax_rate_by_id
Get a single GoCardless tax rate by id. Returns: id, jurisdiction, type, percentage, start_date, end_date. Required: id.
get_single_go_cardless_transferred_mandate_by_id
Get updated customer bank details for a GoCardless mandate recently transferred through the Current Account Switch Service. Returns: encrypted_decryption_key, public_key_id, encrypted_customer_bank_details, links. Required: id. Restricted to organisations with the Transfer Bank Accounts upgrade.
create_a_go_cardless_creditor_bank_account
Create a new GoCardless creditor bank account for a creditor; payouts are sent to this account. Returns: id, created_at, account_holder_name, country_code, links, account_number, branch_code. Provide either local details (account_number, bank_code, branch_code) or an iban. Creating a duplicate account returns a bank_account_exists error.
list_all_go_cardless_creditor_bank_accounts
List the GoCardless creditor bank accounts that receive your payouts. Returns a cursor-paginated collection of accounts including id, bank_name, currency, enabled, and verification_status. Filterable by creditor, enabled, and created_at ranges.
get_single_go_cardless_creditor_bank_account_by_id
Get a single GoCardless creditor bank account by id. Returns: id, created_at, account_holder_name, account_number_ending, account_type, country_code, currency, bank_name, enabled, links, verification_status. Required: id.
go_cardless_creditor_bank_accounts_disable
Disable a GoCardless creditor bank account so no payouts can be paid out to it. Returns: id, created_at, account_holder_name, account_number_ending, account_type, country_code, currency, bank_name, enabled, links, verification_status. Required: creditor_bank_account_id. Returns a disable_failed error if the account is already disabled; re-enable by creating a new account with the same details.
create_a_go_cardless_bank_authorisation
Create a GoCardless bank authorisation for a billing request against a specific bank. Returns: id, url, qr_code_url, authorisation_type, created_at, expires_at, last_visited_at, authorised_at, redirect_uri, links. Requires a bank_authorisations payload (redirect_uri, links.billing_request). Restricted: permitted only within a compliance-approved checkout flow — use a Billing Request Flow instead.
get_single_go_cardless_bank_authorisation_by_id
Get a single GoCardless bank authorisation by id. Returns: id, url, qr_code_url, authorisation_type, created_at, expires_at, last_visited_at, authorised_at, redirect_uri, links. Required: id.
list_all_go_cardless_institutions
List GoCardless institutions supported when creating Bank Authorisations. Returns each institution's id, name, icon_url, logo_url, country_code, limits, and status.
go_cardless_institutions_list_for_billing_request
List GoCardless institutions valid for a Billing Request. Returns: id, name, icon_url, logo_url, roles, country_code, limits, autocompletes_collect_bank_account, status. Required: billing_request_id, country_code. Supported only for FasterPayments; requires a Pro or Enterprise plan with the custom payment pages upgrade.
create_a_go_cardless_bank_details_lookup
Perform a GoCardless bank details lookup, running modulus and reachability checks on the supplied bank account. Supply details either as an iban or as local details (account_number, branch_code, country_code). Returns: bank_name, bic, available_debit_schemes (empty array means the account is not reachable for collections).
create_a_go_cardless_outbound_payment
Create a GoCardless outbound payment sent from a creditor. Returns the created payment with id, status, amount, scheme, currency, execution_date, and links. Required: amount, scheme, description, and links (creditor, recipient_bank_account).
list_all_go_cardless_outbound_payments
List GoCardless outbound payments from a cursor-paginated collection. Returns payment objects with id, status, amount, currency, execution_date, and links. Filter by created_from, created_to, and status.
go_cardless_outbound_payments_create_withdrawal
Create a GoCardless withdrawal outbound payment to your verified business bank account as the recipient. Returns the created payment with id, status, amount, currency, is_withdrawal, and links. Required: amount, scheme, description, and links.creditor.
go_cardless_outbound_payments_cancel
Cancel a GoCardless outbound payment by id; only payments in verifying, pending_approval, or scheduled status can be cancelled, since once executing the money movement cannot be reversed. Returns the updated payment with id, status, amount, currency, and links. Required: outbound_payment_id.
go_cardless_outbound_payments_approve
Approve a GoCardless outbound payment by id so it can proceed to execution. Returns the updated payment with id, status, amount, currency, and links. Required: outbound_payment_id. Only payments with pending_approval status can be approved.
get_single_go_cardless_outbound_payment_by_id
Get a GoCardless outbound payment by id. Returns: id, created_at, status, amount, scheme, currency, execution_date, description, reference, is_withdrawal, links, verifications, metadata, pending_approval_amount, pending_approval_count, executing_amount, executing_count, scheduled_amount, scheduled_count. Required: id.
update_a_go_cardless_outbound_payment_by_id
Update a GoCardless outbound payment by id. Accepts only the metadata parameter. Returns the updated outbound payment object: id, created_at, status, amount, currency, links, verifications, and metadata. Required: id.
go_cardless_outbound_payments_stats
Get aggregate statistics on GoCardless outbound payments. Returns pending_approval_amount, pending_approval_count, executing_amount, executing_count, scheduled_amount, and scheduled_count — the amount sums (in the lowest currency denomination) and counts of outbound payments in each of those statuses.
create_a_go_cardless_outbound_payment_import
Create a GoCardless outbound payment import to batch multiple outbound payments; entries are processed only after the import is authorised in the GoCardless dashboard. Returns: id, created_at, currency, links. Required: outbound_payment_imports with entry_items (amount, scheme, recipient_bank_account_id) and links.creditor. Max 1000 entries.
list_all_go_cardless_outbound_payment_imports
List GoCardless outbound payment imports. Returns each import with: id, created_at, status, amount_sum, currency, authorisation_url, entry_counts, and links. Filterable by created_at (gt/lt/gte/lte) and status.
get_single_go_cardless_outbound_payment_import_by_id
Get a single GoCardless outbound payment import by id. Returns: id, created_at, status, amount_sum, currency, authorisation_url, entry_counts, links. Required: id (the import identifier beginning with "IM").
create_a_go_cardless_block
Create a GoCardless block that prevents matching customer details from being used when creating mandates. Returns: id, block_type, reason_type, resource_reference, active, created_at, updated_at. Requires block_type, reason_type, and resource_reference; reason_description is required when reason_type is other. Creating a block that already exists but is disabled re-enables it.
list_all_go_cardless_blocks
List GoCardless blocks, cursor-paginated. Returns each block with: id, block_type, reason_type, resource_reference, active, created_at, updated_at. Filterable by created_at, block_type, and reason_type.
get_single_go_cardless_block_by_id
Get a single GoCardless block by id. Returns: id, block_type, reason_type, resource_reference, active, created_at, updated_at. Required: id.
go_cardless_blocks_disable
Disable a GoCardless block so it no longer prevents mandate creation. Returns the updated block with: id, block_type, reason_type, resource_reference, active, created_at, updated_at. Required: block_id.
go_cardless_blocks_enable
Enable a previously disabled GoCardless block so it prevents mandate creation again. Returns the updated block with: id, block_type, reason_type, resource_reference, active, created_at, updated_at. Required: block_id.
go_cardless_blocks_create_by_reference
Create GoCardless blocks for the emails and bank accounts linked to a customer or mandate reference. Returns the created blocks with id, block_type, reason_type, active, and created_at. Required: reference_type, reference_value, and reason_type (reason_description when reason_type is other). Returns 201 if any new block was created, 200 if none were; blocks are active by default.
get_single_go_cardless_payer_authorisation_by_id
Get a GoCardless payer authorisation by id, useful for polling its status. Returns: id, created_at, status, customer, bank_account, mandate, incomplete_fields, links. Required: id. Deprecated for new integrations in favour of Billing Requests.
update_a_go_cardless_payer_authorisation_by_id
Update a GoCardless payer authorisation with additional customer, bank account, or mandate details; the resource is saved even if the data is incomplete. Returns: id, created_at, status, customer, bank_account, mandate, incomplete_fields, links. Required: id. Bank account details (account_number, bank_code, branch_code) must be sent together in one request.
create_a_go_cardless_payer_authorisation
Create a GoCardless payer authorisation, either empty or with already available customer, bank account, and mandate details; it is saved even when incomplete and the returned id is used for the other actions. Returns: id, created_at, status, customer, bank_account, mandate, incomplete_fields, links. Bank account details (account_number, bank_code, branch_code) must be sent together in one request.
go_cardless_payer_authorisations_confirm
Confirm a GoCardless payer authorisation to indicate that the linked resources are ready to be created; resource creation itself happens asynchronously afterwards. Returns: id, created_at, status, customer, bank_account, mandate, incomplete_fields, links. Required: payer_authorisation_id. A payer authorisation cannot be confirmed until it has been submitted.
go_cardless_payer_authorisations_submit
Submit a GoCardless payer authorisation so all previously pushed data is verified; a validation error is returned if it is invalid and it can no longer be edited after a successful submission. Returns: id, created_at, status, customer, bank_account, mandate, incomplete_fields, links. Required: payer_authorisation_id.
create_a_go_cardless_scheme_identifier
Create a scheme identifier (e.g. a Bacs SUN or SEPA CID) in GoCardless that sets the beneficiary name shown on customers' bank statements. Returns: id, created_at, name, scheme, reference, status, minimum_advance_notice, can_specify_mandate_reference, currency, address_line1, address_line2, address_line3, city, region, postal_code, country_code, email, phone_number. New identifiers start as…
list_all_go_cardless_scheme_identifiers
List the GoCardless scheme identifiers (e.g. a SUN in Bacs or a CID in SEPA) that specify the beneficiary name shown on customers' bank statements. Returns: id, created_at, name, scheme, reference, status, minimum_advance_notice, can_specify_mandate_reference, currency, address_line1, address_line2, address_line3, city, region, postal_code, country_code, email, phone_number.
get_single_go_cardless_scheme_identifier_by_id
Get a single GoCardless scheme identifier (e.g. a SUN in Bacs or a CID in SEPA) by id. Returns: id, created_at, name, scheme, reference, status, minimum_advance_notice, can_specify_mandate_reference, currency, address_line1, address_line2, address_line3, city, region, postal_code, country_code, email, phone_number. Required: id.
create_a_go_cardless_verification_detail
Create a verification detail for a GoCardless creditor. Returns the created record including name, company_number, description, address_line1, city, postal_code, country_code, directors, and links. Only supports UK-based limited companies (creditor_type 'company', country_code 'GB'). Required: verification_details.
list_all_go_cardless_verification_details
List verification details belonging to a GoCardless creditor. Returns verification_details records including name, company_number, city, postal_code, country_code, directors, and links. Required: creditor.
get_single_go_cardless_payment_account_by_id
Get the details of an existing GoCardless payment account (a bank account used to fund outbound payments) by id. Returns: id, account_holder_name, account_number_ending, currency, bank_name, links, account_balance. Required: id.
list_all_go_cardless_payment_accounts
List your GoCardless payment accounts, the bank accounts provided to fund outbound payments. Returns each account with id, account_holder_name, account_number_ending, currency, bank_name, links, and account_balance.
get_single_go_cardless_payment_account_transaction_by_id
Get a GoCardless payment account transaction by id. Returns the transaction's id, amount, currency, value_date, direction, reference, description, counterparty_name, balance_after_transaction, and links to related records. Required: id.
go_cardless_payment_account_transactions_list_transactions
List GoCardless payment account transactions for a given payment account. Returns each transaction's id, amount, currency, value_date, direction, reference, description, counterparty_name, balance_after_transaction, and links to related records. Required: payment_account_id, value_date_from, value_date_to.
get_single_go_cardless_bank_account_detail_by_id
Get a customer bank account's encrypted bank details by id in gocardless, returned as a flattened JWE object. Returns: protected, encrypted_key, iv, ciphertext, tag. Required: id. Restricted to organisations with the Encrypted Bank Details Access upgrade; the request must include a Gc-Key-Id header.
create_a_go_cardless_bank_account_holder_verification
Create a bank account holder verification in GoCardless to run a Confirmation of Payee check on a customer bank account before sending outbound payments. Returns: id, result, status, actual_account_name. Requires type and links.bank_account. Only available to organisations with Outbound Payments enabled.
get_single_go_cardless_bank_account_holder_verification_by_id
Get a bank account holder verification in GoCardless by id. Returns: id, result, status, actual_account_name. Requires id.
list_all_go_cardless_balances
List GoCardless balances for a creditor; amounts are typically 3-5 minutes old and may differ from dashboard figures. Returns: balance_type, amount, currency, last_updated_at, links. Required: creditor.
go_cardless_funds_availability_check
Check whether a GoCardless payer's current balance is sufficient to cover the amount the merchant wants to charge within the mandate's consent parameters. Returns the boolean available — the sole field in the response body. Required: funds_availability_id. Only supported for VRP mandates.
list_all_go_cardless_negative_balance_limits
List negative balance limits in GoCardless — the per-creditor thresholds beyond which refunds are not permitted. Returns limit records with id, created_at, balance_limit, currency, and links (creditor, creator_user). Restricted to GoCardless Embed customers.
list_all_go_cardless_currency_exchange_rates
List GoCardless currency exchange rates from its foreign exchange provider. Returns: rate, source, target, time. Filter by source and target currency.
create_a_go_cardless_logo
Create a logo for a GoCardless creditor; the logo appears on billing request flow payment pages and replaces any existing logo already linked to that creditor. Returns the created logo's id. JPG and PNG only, scaled to a maximum of 300px by 40px. Restricted to GoCardless Embed customers.
create_a_go_cardless_payer_theme
Create a payer theme for a creditor in GoCardless; if the creditor already has payer themes, the existing theme is updated. Returns the theme's id (prefixed "PTH"). Send colours (header_background_colour, link_text_colour, button_background_colour, content_box_border_colour) and links.creditor in the payer_themes body. Restricted to GoCardless Embed customers.
get_single_go_cardless_export_by_id
Get a single GoCardless export by id. Returns: id, created_at, export_type, download_url, currency, error_message. Required: id. Restricted to GoCardless Embed customers; the download_url is subject to expiry.
list_all_go_cardless_exports
List file-based exports in GoCardless that are available for download. Returns: id, created_at, export_type, download_url, currency, error_message. Available to GoCardless Embed customers.
list_all_go_cardless_outbound_payment_import_entries
List the outbound payment import entries for a given GoCardless outbound payment import — the individual rows representing each payment to be created. Returns: id, created_at, processed_at, amount, scheme, reference, verification_result, validation_errors, metadata, links. Required: outbound_payment_import.
go_cardless_scenario_simulators_run
Run a GoCardless scenario simulator, such as payment_failed or mandate_activated, against a specific resource to simulate real-world integration paths. Returns the triggered simulator record (scenario_simulators) including its id. Required: scenario_simulator_id and resource (the id of the payment, mandate, etc. to simulate against). Only active in the sandbox environment.
Why Truto
Why use Truto’s MCP server for GoCardless
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 800+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with GoCardless in under an hour. No boilerplate, no maintenance burden.
Link your customer’s GoCardless account
Use Truto’s frontend SDK to connect your customer’s GoCardless account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call GoCardless
Truto’s Proxy API is a 1-to-1 mapping of the GoCardless API. You call us, we call GoCardless, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate GoCardless’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about GoCardless on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does authentication work for GoCardless via Truto?
Truto handles OAuth and access token management for GoCardless on your behalf. Your end users connect their GoCardless account once, and Truto manages token storage, refresh, and signed requests so you can call any tool without managing credentials.
Which GoCardless resources can I read and write through Truto?
You get full CRUD-style coverage for the core objects: customers, customer bank accounts, mandates, payments, subscriptions, instalment schedules, refunds, payouts and payout items, billing requests and flows, creditors, verification details, blocks, events, and more. Lifecycle actions like cancel, retry, pause, resume, and reinstate are exposed as dedicated tools.
Can I support both Direct Debit and Open Banking payments?
Yes. The billing request tools cover both classic Direct Debit mandates and Open Banking / Variable Recurring Payment flows, including institution selection, bank authorisation, and funds availability checks for VRP mandates.
How do I keep payment and mandate status in sync?
Use the events tools to poll or ingest GoCardless events, which represent every state change on payments, mandates, subscriptions, payouts, and refunds. You can also retry webhook deliveries and fetch individual events by ID for backfills and reconciliation.
Can I onboard my users as sub-merchants (embed / partner model)?
Yes. Truto exposes the creditor, verification detail, creditor bank account, scheme identifier, logo, and payer theme tools needed to provision and brand sub-merchants entirely inside your product.
How is pagination handled across list endpoints?
Truto normalizes GoCardless's cursor-based pagination so list calls like list_all_go_cardless_payments, list_all_go_cardless_payout_items, and list_all_go_cardless_events return consistent page tokens, letting you stream large historical datasets without writing gateway-specific pagination logic.
From the Blog
GoCardless integration guides
Deep dives, architecture guides, and practical tutorials for building GoCardless integrations.
GoCardless
Get GoCardless integrated into your app
Our team understands what it takes to make a GoCardless integration successful. A short, crisp 30 minute call with folks who understand the problem.