---
title: GoCardless API Integration on Truto
slug: gocardless
category: Payment Gateway
canonical: "https://truto.one/integrations/detail/gocardless/"
---

# GoCardless API Integration on Truto



**Category:** Payment Gateway  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 137 tools for GoCardless that AI agents can call directly.

- **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.

## How it works

1. **Link your customer's GoCardless account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach GoCardless.** The Proxy API is a 1-to-1 mapping of the GoCardless API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **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

- **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.

## FAQs

### 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.

## Related reading

- [Connect GoCardless to ChatGPT: Automate Mandates and Subscriptions](https://truto.one/blog/connect-gocardless-to-chatgpt-automate-mandates-and-subscriptions/) — Generate a secure, managed MCP server for GoCardless in seconds. Connect it to ChatGPT to automate Direct Debit mandates, subscriptions, and payouts using natural language.
- [Connect GoCardless to Claude: Manage Payments, Payouts, and Refunds](https://truto.one/blog/connect-gocardless-to-claude-manage-payments-payouts-and-refunds/) — Learn how to connect GoCardless to Claude using a managed MCP server. This step-by-step guide covers handling direct debits, mandates, and automated refunds.
- [Connect GoCardless to AI Agents: Handle Billing and Outbound Flows](https://truto.one/blog/connect-gocardless-to-ai-agents-handle-billing-and-outbound-flows/) — Learn how to connect GoCardless to AI agents using Truto's /tools endpoint. Build autonomous workflows to handle Direct Debits, retries, and outbound payments.
