Skip to main content
GoCardless is a bank payment provider that lets buyers authorize payments through their bank.

Sign-up

GoCardless provides a self-service sign-up for a sandbox account. To sign up for an account, visit the sign-up page and fill in the details.

Credentials

When setting up GoCardless in the dashboard, configure the following credentials, which are obtained from GoCardless:
  • Webhook secret: Optional value used to validate incoming webhooks. Create a webhook in GoCardless using the URL shown after you set up the connector.
  • Purpose code: Optional value used for AUD PayTo transactions when required by your bank.

Create access token

Find the access token in the GoCardless Admin Portal under Developers -> API Settings -> Access Tokens.
GoCardless Access Token
If there are no access tokens in the list, create a new access token by clicking Create an access token.
GoCardless Create Access Token

Supported countries

GoCardless supports transactions from buyers in the following countries:
Country codeCountry codeCountry codeCountry codeCountry codeCountry code
ATAUBEBGCHCY
CZDEESFIFRGB
HRHUIEITLUMT
NLNONZPTROSE
SKUS

Supported currencies

GoCardless supports processing payments in the following currencies:
Currency codeCurrency codeCurrency codeCurrency codeCurrency code
AUDCADEURGBPUSD

Features

GoCardless supports the following features:
  • Payment method tokenization: Store a bank payment method for reuse.
  • Refunds: Refund transactions in full or in part.
  • Transaction sync: Receive asynchronous updates for final status changes.

Limitations

The following limitations apply:
  • USD and CAD transactions require tokenization: USD and CAD transactions use ACH and PAD respectively by default, which do not support Instant Bank Pay. Set store=true before you create a USD or CAD transaction.
  • Purpose code required for AUD PayTo: Provide a Purpose code either as a credential (global) or a connection option (per transaction). The credential value takes precedence.
  • Statement descriptor is required: A statement_descriptor must be provided in the API request, containing either a name or a description.
  • Concurrent refunds not supported: Submit a new refund only after the previous refund finishes processing.
  • Metadata limits: GoCardless supports up to three metadata keys. One key is reserved, so extra keys are ignored.
  • Tokenized transactions start as pending: Transactions made with a saved payment method initially have a pending status while GoCardless establishes the mandate. This process can take several days based on the bank scheme. Rely on webhooks or polling to confirm the final status.

Integration

GoCardless supports redirect integration only. Create a transaction with a redirect payment method, then send the buyer to the approval URL.
var transaction = await client.Transactions.CreateAsync(
    transactionCreate: new TransactionCreate()
    {
        Amount = 1299,
        Currency = "GBP",
        Country = "GB",
        PaymentMethod =
            TransactionCreatePaymentMethod.CreateCheckoutSessionWithUrlPaymentMethodCreate(
                new RedirectPaymentMethodCreate()
                {
                    Method = "gocardless",
                    RedirectUrl = "https://example.com/callback",
                }
            ),
    }
);
After you create the transaction, the API response includes payment_method.approval_url and the buyer_approval_pending status. Redirect the buyer to the approval_url to approve the payment, then rely on webhooks or polling to confirm the final status.