The GoCardless MCP connector routes your AI agent's tool calls to GoCardless's own MCP server through Scalekit. Each user signs in to GoCardless once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 24 tools.
- Tools
- 24
- What they doRead · write · destructive
- 17 · 2 · 517 read2 write5 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the GoCardless MCP connection
In AgentKit > Connections, create a GoCardless MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for GoCardless MCP server, so you don't need to register an OAuth app.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'gocardlessmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize GoCardless MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'gocardlessmcp_get_environment',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "gocardlessmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize GoCardless MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="gocardlessmcp_get_environment",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolgocardlessmcp_get_customerRetrieve a single customer by ID, with PII fields partially masked.Read-onlyGet Customer
Retrieve a single customer by ID, with PII fields partially masked.
Inputs
idstringrequired- Customer ID (e.g. CU000123)
gocardlessmcp_get_environmentReturn the current GoCardless environment (sandbox or live) and setup instructions.Read-onlyGet Environment
Return the current GoCardless environment (sandbox or live) and setup instructions.
Inputs
This tool takes no inputs.
gocardlessmcp_get_mandateRetrieve a single mandate (Direct Debit authorisation) by its mandate ID.Read-onlyGet Mandate
Retrieve a single mandate (Direct Debit authorisation) by its mandate ID.
Inputs
idstringrequired- Mandate ID (e.g. MD000123)
gocardlessmcp_get_paymentRetrieve a single payment by its payment ID.Read-onlyGet Payment
Retrieve a single payment by its payment ID.
Inputs
idstringrequired- Payment ID (e.g. PM000123)
gocardlessmcp_get_payoutRetrieve a single payout (bank settlement) by its payout ID.Read-onlyGet Payout
Retrieve a single payout (bank settlement) by its payout ID.
Inputs
idstringrequired- Payout ID (e.g. PO000123)
gocardlessmcp_get_refundRetrieve a single refund by its refund ID.Read-onlyGet Refund
Retrieve a single refund by its refund ID.
Inputs
idstringrequired- Refund ID (e.g. RF000123)
gocardlessmcp_get_subscriptionRetrieve a single subscription (recurring payment schedule) by its subscription ID.Read-onlyGet Subscription
Retrieve a single subscription (recurring payment schedule) by its subscription ID.
Inputs
idstringrequired- Subscription ID (e.g. SB000123)
gocardlessmcp_integrate_with_gocardlessReturn an overview of GoCardless integration options for collecting one-off and recurring payments.Read-onlyIntegrate With Gocardless
Return an overview of GoCardless integration options for collecting one-off and recurring payments.
Inputs
This tool takes no inputs.
gocardlessmcp_list_customersList customers, optionally filtered by creation date range.Read-onlyList Customers
List customers, optionally filtered by creation date range.
Inputs
afterstring- Cursor for next page
created_at_gtestring- Filter: created at or after this ISO 8601 datetime
created_at_ltestring- Filter: created at or before this ISO 8601 datetime
limitnumber- Number of results per page (default 50, max 500)
sort_directionstring- Sort direction: asc or desc
gocardlessmcp_list_eventsList audit log events for state changes across all resources, optionally filtered by resource type, action, or date range.Read-onlyList Events
List audit log events for state changes across all resources, optionally filtered by resource type, action, or date range.
Inputs
actionstring- Filter by action (e.g. created, confirmed, failed, paid_out, cancelled)
afterstring- Cursor for next page
created_at_gtestring- Filter: created at or after this ISO 8601 datetime
created_at_ltestring- Filter: created at or before this ISO 8601 datetime
limitnumber- Number of results per page (default 50, max 500)
mandatestring- Filter by mandate ID
paymentstring- Filter by payment ID
payoutstring- Filter by payout ID
refundstring- Filter by refund ID
resource_typestring- Filter by resource type: payments, mandates, payouts, refunds, subscriptions, instalment_schedules
subscriptionstring- Filter by subscription ID
gocardlessmcp_list_mandatesList mandates (Direct Debit authorisations), optionally filtered by status, customer, or scheme.Read-onlyList Mandates
List mandates (Direct Debit authorisations), optionally filtered by status, customer, or scheme.
Inputs
afterstring- Cursor for next page
customerstring- Filter by customer ID
limitnumber- Number of results per page (default 50, max 500)
schemestring- Filter by scheme: bacs, sepa_core, ach, autogiro, becs, becs_nz, betalingsservice, faster_payments, pad, pay_to
statusstring- Filter by status: pending_customer_approval, pending_submission, submitted, active, suspended_by_payer, failed, cancelled, expired, consumed, blocked
gocardlessmcp_list_paymentsList payments, optionally filtered by status, customer, mandate, subscription, currency, or date range.Read-onlyList Payments
List payments, optionally filtered by status, customer, mandate, subscription, currency, or date range.
Inputs
afterstring- Cursor for next page (from previous response's next_cursor)
created_at_gtestring- Filter: created at or after this ISO 8601 datetime
created_at_ltestring- Filter: created at or before this ISO 8601 datetime
currencystring- Filter by currency code (e.g. GBP, EUR, USD)
customerstring- Filter by customer ID (e.g. CU000123)
limitnumber- Number of results per page (default 50, max 500)
mandatestring- Filter by mandate ID (e.g. MD000123)
sort_directionstring- Sort direction: asc or desc
statusstring- Filter by status: pending_submission, submitted, confirmed, paid_out, cancelled, customer_approval_denied, failed, charged_back
subscriptionstring- Filter by subscription ID (e.g. SB000123)
gocardlessmcp_list_payoutsList payouts (bank settlements), optionally filtered by status, currency, or date range.Read-onlyList Payouts
List payouts (bank settlements), optionally filtered by status, currency, or date range.
Inputs
afterstring- Cursor for next page
created_at_gtestring- Filter: created at or after this ISO 8601 datetime
created_at_ltestring- Filter: created at or before this ISO 8601 datetime
currencystring- Filter by currency code (e.g. GBP, EUR, USD)
limitnumber- Number of results per page (default 50, max 500)
statusstring- Filter by status: pending, paid, bounced
gocardlessmcp_list_refundsList refunds, optionally filtered by payment, mandate, or date range.Read-onlyList Refunds
List refunds, optionally filtered by payment, mandate, or date range.
Inputs
afterstring- Cursor for next page
created_at_gtestring- Filter: created at or after this ISO 8601 datetime
created_at_ltestring- Filter: created at or before this ISO 8601 datetime
limitnumber- Number of results per page (default 50, max 500)
mandatestring- Filter by mandate ID
paymentstring- Filter by payment ID
gocardlessmcp_list_subscriptionsList subscriptions (recurring payment schedules), optionally filtered by status, customer, or mandate.Read-onlyList Subscriptions
List subscriptions (recurring payment schedules), optionally filtered by status, customer, or mandate.
Inputs
afterstring- Cursor for next page
customerstring- Filter by customer ID
limitnumber- Number of results per page (default 50, max 500)
mandatestring- Filter by mandate ID
statusstring- Filter by status: pending_customer_approval, active, cancelled, finished, paused
gocardlessmcp_read_gocardless_resourceRead the contents of a GoCardless resource by URI to fetch API endpoint details or documentation.Read-onlyRead Gocardless Resource
Read the contents of a GoCardless resource by URI to fetch API endpoint details or documentation.
Inputs
uristringrequired- The gocardless:// resource URI to read
gocardlessmcp_submit_feedbackSubmit a helpfulness rating (1–5) for the current MCP session, with an optional comment.Read-onlySubmit Feedback
Submit a helpfulness rating (1–5) for the current MCP session, with an optional comment.
Inputs
ratingnumberrequired- How helpful was this session? 1 = not helpful at all, 5 = extremely helpful
commentstring- Optional additional feedback
gocardlessmcp_create_payment_linkCreate a Billing Request — a single-use GoCardless-hosted authorisation link for a specific payer, supporting mandate setup, one-off IBP payments, or VRP consent.WriteCreate a payment link
Create a Billing Request — a single-use GoCardless-hosted authorisation link for a specific payer, supporting mandate setup, one-off IBP payments, or VRP consent.
Inputs
schemestringrequired- Payment scheme for the mandate (or for IBP when payment_only=true). Examples: faster_payments, bacs, sepa_core, ach, pad, becs, pay_to.
amountnumber- Amount in minor units (e.g. pence for GBP). Required when payment_only=true.
constraints_end_datestring- Latest date by which payments can be taken (YYYY-MM-DD). Leave unset for an open-ended agreement.
constraints_max_amount_per_paymentnumber- Maximum amount in minor units that can be charged per payment. Required for PayTo and VRP mandates.
constraints_start_datestring- Earliest date from which payments can be taken (YYYY-MM-DD). Defaults to the day the payer authorises.
currencystring- ISO 4217 currency code. Required when amount is set.
customer_bank_account_idstring- Existing GoCardless customer bank account ID to pre-fill, skipping the bank account collection step.
customer_idstring- Existing GoCardless customer ID to link, optional.
descriptionstring- Description shown to the payer during authorisation.
fallback_enabledboolean- If true, the billing request can fall back to Direct Debit if the payer's bank does not support the requested scheme (IBP or VRP). Applies to both IBP payment requests and VRP mandate requests. Do not set if GoCardless payment intelligence is enabled.
mandate_verifystring- Verification preference for the mandate: minimum, recommended (default), when_available, or always.
payment_context_codestring- Payment context for cVRP mandates. One of: billing_goods_and_services_in_advance, billing_goods_and_services_in_arrears, pisp_payee, ecommerce_merchant_initiated_payment, face_to_face_point_of_sale, transfer_to_self, transfer_to_third_party, bill_payment, ecommerce_goods, ecommerce_services, other, party_to_party. Required for cVRP.
payment_onlyboolean- Set true for a payment-only (IBP) flow — no mandate will be created. Requires amount and currency.
payment_purpose_codestring- Underlying payment purpose for cVRP mandates (e.g. loan_repayment, bank_loan_delayed_draw_funding, salary_payment). See VRP Commercial Payment Purpose Codes for the full list. Required for cVRP.
payment_request_schemestring- Override the IBP scheme used for the payment_request in a combined flow. Omit to let the API infer from currency. Only valid when amount is set and payment_only=false.
periodic_limit_alignmentstring- How the period resets: calendar (end of current period, e.g. end of month) or creation_date (same date next period). Defaults to creation_date.
periodic_limit_max_total_amountnumber- Maximum total amount in minor units that can be charged within the periodic_limit_period. Required for VRP mandates.
periodic_limit_periodstring- Period for the VRP periodic limit. One of: intraday, day, week, fortnight, month, quarter, half_year, year, flexible. Required when setting a periodic limit.
purpose_codestring- High-level purpose category for the mandate and/or payment. Common values: loan, salary_payment, supplier_payment, tax_payment, commercial, consumer, dividend, pension_payment. See Billing Request Purpose Codes for the full list.
redirect_uristring- URL to redirect the payer to after they complete the GoCardless-hosted flow. This is the post-flow landing page — not the bank authorisation redirect used in CPP flows. Omit to use the GoCardless default success screen.
sweepingboolean- Set true for sVRP (Sweeping VRP) — money moved between accounts owned by the same payer. Only valid for faster_payments mandate-only flows; do not combine with payment_only=true.
gocardlessmcp_create_payment_template_linkCreate a reusable Billing Request Template — a permanent shareable link that can be sent to multiple customers, each visit creating a new authorisation session.WriteCreate a payment template link
Create a reusable Billing Request Template — a permanent shareable link that can be sent to multiple customers, each visit creating a new authorisation session.
Inputs
namestringrequired- Name for this template shown in the dashboard (max 255 chars).
mandate_request_currencystring- ISO 4217 currency code for the mandate (e.g. GBP, EUR). Usually inferred from scheme.
mandate_request_descriptionstring- Description shown to the customer during mandate setup.
mandate_request_schemestring- Scheme for the mandate. Supported: bacs, sepa_core, ach, pad, becs, becs_nz, autogiro, betalingsservice, pay_to, sepa_credit_transfer. Note: faster_payments is blocked (use create_payment_link for VRP).
mandate_request_verifystring- Verification preference for the mandate: minimum, recommended (default), when_available, or always.
metadataobject- Key-value store of custom data for the template. Up to 3 keys, key names up to 50 chars, values up to 500 chars.
payment_request_amountstring- Amount for the one-off payment in full decimal form (e.g. "25.00"), NOT minor units. Required when payment_request_scheme is set.
payment_request_currencystring- ISO 4217 currency code for the one-off payment. Required when payment_request_amount is set.
payment_request_descriptionstring- Description shown to the customer during payment authorisation.
payment_request_schemestring- Scheme for the one-off payment. Limited to: faster_payments, sepa_credit_transfer, sepa_instant_credit_transfer. pay_to is not supported.
redirect_uristring- URL to redirect the customer to after they complete the flow. Omit to use the GoCardless default success screen.
gocardlessmcp_cancel_mandateCancel a mandate (Direct Debit authorisation).DestructiveCancel a mandate
Cancel a mandate (Direct Debit authorisation). This also auto-cancels any active subscriptions and pending payments attached to the mandate. Irreversible once cancelled.
Inputs
confirmedboolean- Set true only after the user has explicitly confirmed the preview in their most recent message. Default false (returns a preview).
mandate_idstring- ID of the mandate to cancel (e.g. MD000123). Must be in a cancellable state — see description.
mandate_idsarray- For bulk cancellations: list of mandate IDs to cancel (max 10). Use instead of mandate_id.
preview_tokenstring- Required when confirmed=true: the preview_token field from this tool's own preceding preview response (the confirmed=false call for these exact same parameters). Rejected if missing, mismatched, already used, or if confirmed=true arrives too soon after the preview — a preview_token is only valid a few seconds after being issued, since it exists to prove a genuine user reply happened in between, not just that a preview call was made. If confirmed=true is rejected for being too soon, wait for the user's actual next message before trying again; do not immediately retry.
gocardlessmcp_cancel_paymentCancel a payment before it is submitted to the bank.DestructiveCancel a payment
Cancel a payment before it is submitted to the bank. Only payments in pending_customer_approval or pending_submission state can be cancelled. Irreversible once cancelled.
Inputs
confirmedboolean- Set true only after the user has explicitly confirmed the preview in their most recent message. Default false (returns a preview).
payment_idstring- ID of the payment to cancel (e.g. PM000123). Must be in pending_customer_approval or pending_submission state.
payment_idsarray- For bulk cancellations: list of payment IDs to cancel (max 10). Use instead of payment_id.
preview_tokenstring- Required when confirmed=true: the preview_token field from this tool's own preceding preview response (the confirmed=false call for these exact same parameters). Rejected if missing, mismatched, already used, or if confirmed=true arrives too soon after the preview — a preview_token is only valid a few seconds after being issued, since it exists to prove a genuine user reply happened in between, not just that a preview call was made. If confirmed=true is rejected for being too soon, wait for the user's actual next message before trying again; do not immediately retry.
gocardlessmcp_create_paymentCreate a one-off payment against an existing mandate.DestructiveCreate a payment against a mandate
Create a one-off payment against an existing mandate. The mandate must be active or pending submission, and the payment currency must match the mandate's currency.
Inputs
amountnumberrequired- Amount in minor units (e.g. pence for GBP, cents for USD).
currencystringrequired- ISO 4217 currency code. Must match the mandate's currency.
mandate_idstringrequired- ID of the mandate to charge (e.g. MD000123). Must be in pending_submission, submitted, or active state.
charge_datestring- Optional charge date (YYYY-MM-DD). Omit to use the next possible charge date for the mandate.
confirmedboolean- Set true only after the user has explicitly confirmed the preview in their most recent message. Default false (returns a preview).
countnumber- Number of identical payments to create against the same mandate (max 25, default 1). When >1, returns a bulk preview before executing.
descriptionstring- Optional name for the payment shown in the GoCardless dashboard and on payer confirmation emails. Helps merchants and payers identify the payment (e.g. "Admin fee", "Invoice 123").
faster_achboolean- ACH only. Set true to explicitly use Faster ACH, false for standard ACH. Omit to let the presence or absence of charge_date determine the processing speed.
preview_tokenstring- Required when confirmed=true: the preview_token field from this tool's own preceding preview response (the confirmed=false call for these exact same parameters). Rejected if missing, mismatched, already used, or if confirmed=true arrives too soon after the preview — a preview_token is only valid a few seconds after being issued, since it exists to prove a genuine user reply happened in between, not just that a preview call was made. If confirmed=true is rejected for being too soon, wait for the user's actual next message before trying again; do not immediately retry.
referencestring- Custom bank statement reference. Scheme-specific length limits apply (e.g. 10 chars for Bacs, 140 for SEPA). Not supported for Faster Payments. Bacs custom references require GoCardless Plus/Pro/Enterprise.
retry_if_possibleboolean- Automatically retry the payment on failure using intelligent retries. Requires Success+ to be enabled in the GoCardless dashboard. Default false.
gocardlessmcp_create_refundRefund all or part of a previously-collected payment back to the payer's bank account.DestructiveRefund a payment
Refund all or part of a previously-collected payment back to the payer's bank account. The payment must be in a refundable state (confirmed or paid_out).
Inputs
amountnumberrequired- Refund amount in minor units (e.g. pence for GBP). Must be <= the payment's remaining refundable amount.
confirmedboolean- Set true only after the user has explicitly confirmed the preview in their most recent message. Default false (returns a preview).
metadataobject- Key-value store of custom data attached to the refund. Up to 3 keys, key names up to 50 chars, values up to 500 chars.
payment_idstring- ID of the payment to refund (e.g. PM000123). Must be in confirmed or paid_out status.
payment_idsarray- For bulk refunds: list of payment IDs to refund (max 10). Each gets the same amount. Use instead of payment_id.
preview_tokenstring- Required when confirmed=true: the preview_token field from this tool's own preceding preview response (the confirmed=false call for these exact same parameters). Rejected if missing, mismatched, already used, or if confirmed=true arrives too soon after the preview — a preview_token is only valid a few seconds after being issued, since it exists to prove a genuine user reply happened in between, not just that a preview call was made. If confirmed=true is rejected for being too soon, wait for the user's actual next message before trying again; do not immediately retry.
referencestring- Optional reference shown on the payer's bank statement where supported (max 18 chars for most schemes).
gocardlessmcp_create_subscriptionCreate a recurring subscription against a mandate, scheduling regular payments on a weekly, monthly, or yearly interval.DestructiveCreate a subscription
Create a recurring subscription against a mandate, scheduling regular payments on a weekly, monthly, or yearly interval.
Inputs
amountnumberrequired- Amount per payment in minor units (e.g. pence for GBP, cents for EUR).
currencystringrequired- ISO 4217 currency code (e.g. GBP, EUR, USD). Must match the mandate's scheme.
interval_unitstringrequired- Time unit between charges: weekly, monthly, or yearly.
confirmedboolean- Set true only after the user has explicitly confirmed the preview in their most recent message. Default false (returns a preview).
countnumber- Total number of payments to take. Omit (or set 0) for an indefinite subscription.
day_of_monthnumber- Day of month to charge (1–28, or -1 for last day). Required for monthly and yearly subscriptions.
intervalnumber- Number of interval_units between charges. Must be ≥ 1. Defaults to 1.
mandate_idstring- ID of the mandate to create the subscription against (e.g. MD000123).
mandate_idsarray- For bulk creation: list of mandate IDs to create the subscription against (max 25). Use instead of mandate_id.
metadataobject- Key-value store of custom data. Up to 3 keys, key names up to 50 chars, values up to 500 chars.
monthstring- Month to charge, lowercase (e.g. january). Required for yearly subscriptions.
namestring- Name for the subscription (max 255 chars). Used as the description on each payment created.
payment_referencestring- Reference shown on the customer's bank statement. For Bacs: requires own Service User Number.
preview_tokenstring- Required when confirmed=true: the preview_token field from this tool's own preceding preview response (the confirmed=false call for these exact same parameters). Rejected if missing, mismatched, already used, or if confirmed=true arrives too soon after the preview — a preview_token is only valid a few seconds after being issued, since it exists to prove a genuine user reply happened in between, not just that a preview call was made. If confirmed=true is rejected for being too soon, wait for the user's actual next message before trying again; do not immediately retry.
retry_if_possibleboolean- Retry failed payments using intelligent retries (Success+). Defaults to false. Requires Success+ enabled in the GoCardless dashboard.
start_datestring- Date of the first payment (YYYY-MM-DD). Must be on or after the mandate's next_possible_charge_date. Defaults to next_possible_charge_date if omitted.
No tools match.