1. Documentation /
  2. GoCardless

GoCardless

Overview

↑ Back to top

The GoCardless extension provides the integration between WooCommerce and the UK-based, direct-debit GoCardless payment gateway, so store owners may collect online payments.

Direct Debit (GoCardless) only appears as a payment method if the customer’s billing country is in:

  • Australia (AU)
  • New Zealand (NZ)
  • United States (US)
  • Canada (CA)

or on the list of SEPA countries:

  • Austria (AT), Belgium (BE), Bulgaria (BG), Switzerland (CH), Cyprus (CY), Czech Republic (CZ), Denmark (DK), Estonia (EE), Finland (FI), France (FR), Germany (DE), United Kingdom (GB), Greece (GR, Croatia (HR), Hungary (HU), Ireland (IE), Iceland (IS), Italy (IT), Liechtenstein (LI), Latvia (LV), Lithuania (LT), Luxembourg (LU), Malta (MT), Monaco (MC), Netherlands (NL), Norway (NO), Poland (PL), Portugal (PT), Romania (RO), Sweden (SE), San Marino (SM), Slovakia (SK), Slovenia (SI), Spain (ES).

While GoCardless can collect from customers in the above countries, note that GoCardless can only on-board merchants from:

  • Austria
  • Australia
  • Belgium
  • Denmark
  • Finland
  • France
  • Germany
  • Ireland
  • Luxembourg
  • Netherlands
  • Spain
  • Sweden
  • United Kingdom
  • United States
  • Canada

Requirements

↑ Back to top
  • GoCardless account
  • SSL Certificate with https:// included in path, e.g., https://example.com/wc-api/WC_Gateway_GoCardless/
  • WooCommerce version 8.4 or higher
  • WordPress version 6.1 or higher
  • PHP version 7.2 or higher

Installation

↑ Back to top
  1. Download the .zip file from your WooCommerce account.
  2. Go to: WordPress Admin > Plugins > Add New and Upload Plugin with the file you downloaded with Choose File.
  3. Install Now and Activate the extension.

More information at: Install and Activate Plugins/Extensions.

Register or sign in at GoCardless

↑ Back to top
gocardless-signup

To use GoCardless, you need an existing or new merchant account. To sign up for a new (free) account:

  1. Go to: gocardless.com
  2. Select Sign Up Now.
  3. Complete all fields (required).
  4. Select Create Your Account.

You can also sign up for GoCardless from the plugin settings. However, if you go this route, the instructions will be slightly different than described below in Setup and Configuration.

Setup and Configuration

↑ Back to top

There are two parts: Connecting your GoCardless account and configuring GoCardless settings in your WooCommerce store.

Connect your GoCardless account

↑ Back to top
  1. Go to: WooCommerce > Settings > Payments.
    Note: ‘Payments’ formerly called ‘Checkout’ prior to WooCommerce 3.4.
  2. Use the toggle under Enabled to select Direct Debit (GoCardless).
  3. Select Set Up. You are taken to Direct Debit (GoCardless) settings.
  4. Select Connect with GoCardless.
  5. Log in to your GoCardless account. If you haven’t yet created an account, select Sign Up.
  6. If successful, an authentication notice will appear.
  7. Select the That’s My Site – Redirect Me button.
    That's my site
  8. Skip down to Webhook Secret, and copy the grey URL.
    Webhook
  9. Select Here. A new window opens at GoCardless.
  10. Enter info in the Create Webhook Endpoint screen.
    • Name: Give your webhook a descriptive name so you recognize it in the future
    • URL: Paste the URL from step 6.
    • Secret: Choose a secret string and make a note.
    • Webhook client certificate: Can be de-selected
      Create webhook endpoint
  11. Select the Create Webhook Endpoint button.
  12. Close the GoCardless webhooks endpoints window.
  13. Return to the Direct Debit (GoCardless) settings screen at your store.
  14. Enter the secret string from step 7 for Webhook Secret.
  15. Save changes.

Stay on this screen for next steps.

Configuring Direct Debit (GoCardless) settings

↑ Back to top

To finish setting up your payment gateway:

Plugin settings
  1. Enable/Disable – Turn on or turn off.
  2. Title – Enter a name displayed in checkout. Default is GoCardless.
  3. Description – Enter what the user sees in checkout. Default is: Pay securely via your bank account.
  4. Direct Debit Scheme – Select a scheme. Default is: Automatically detected from the customer’s bank account
  5. Log debug messages – Enabled and useful for troubleshooting purposes, if/when issues arise.
  6. Save changes.

Test Mode – Sandbox

↑ Back to top

To test the GoCardless gateway before going live:

  1. Disconnect from GoCardless if you are connected. If you are already disconnected, go to step 2.
  2. Select the “Not ready to accept live payments?” link.
  3. Repeat the above setup and configuration for setting up a live environment for the test environment.
  4. Test transactions using GoCardless test credentials.
    • In the UK, use the sort code 200000 and the account number 55779911
    • In Sweden, use the clearingnummer (branch code) 5527 and the kontonummer (account number) 1234512
    • Everywhere else, use the IBAN GB60 BARC 2000 0055 7799 11

Ready to go live?

  • Use your live credentials and not the test credentials
  • Connect to GoCardless
  • Enable Direct Debit (GoCardless) on your WooCommerce site

Usage – Checkout flow

↑ Back to top

On the front end, when the payment gateway is enabled, the customer sees an option for GoCardless when checking out:

Checkout with GoCardless

They select GoCardless and Place order, and are redirected to the GoCardless payment form to set up a direct debit.

This creates a mandate — a direct debit instruction is an authorization from customer to collect future payments — and then collects payment for the order.

GoCardless payment form

Customers may also choose to securely save payment information so they need not re-enter for future transactions. Instead, they would select an option:

gocardless-tokenization

After validation, the customer sees a confirmation screen:

GoCardless confirmation

Once the customer confirms the order, they are redirected to your site and shown the standard WooCommerce order confirmation:

WooCommerce confirmation

Opening the order screen, you see all the details. GoCardless gives status of those transactions via the webhook.

Order with GoCardless

Note that direct debit payments don’t process instantly and work differently than card payments. More info at: How Direct Timings Work.

Frequently Asked Questions

↑ Back to top

Does GoCardless support BACS?

↑ Back to top

Yes, the GoCardless extension supports BACS and the payment methods mentioned in the GoCardless API documentation.

I’m based in country x – can I use GoCardless on my site?

↑ Back to top

While GoCardless can collect from customers from many countries, note that GoCardless can only on-board merchants from Austria, Belgium, Finland, France, Germany, Ireland, Luxembourg, Netherlands, Spain, Sweden, United Kingdom, United States, and Canada.

I see the message “GoCardless is almost ready. To get started, please <connect your GoCardless account.” How do I fix this?

↑ Back to top

This message appears if you’re upgrading GoCardless from a version before version 2.4 and haven’t yet connected via the new API. It also appears if you haven’t finished setup and configuration.

Do I need to fill in the webhook secret?

↑ Back to top

Yes, you need to manually fill in the webhook secret and configure the webhook endpoint. It cannot be automated, so we made it as painless as possible.

Why are my orders not redirecting to the thank you page or marked as paid?

↑ Back to top

If you use a security or firewall plugin or have a firewall application on your server, be sure that you allow requests from GoCardless in that plugin’s settings. GoCardless sends webhooks from the following IP addresses which you may wish to add to your firewall’s approved list:

  • 35.204.73.47
  • 35.204.191.250
  • 35.204.214.181

Everything is set up and customers are ordering using this gateway, so why am I not receiving payouts from GoCardless?

↑ Back to top

Ensure that you’re verified by GoCardless, as no payouts are made until this is done. Keep an eye out for emails from GoCardless, and check your Spam folder, as you are also notified when funds are waiting.

Does GoCardless support tokenization?

↑ Back to top

Yes. As described in the Usage section, customers may opt to securely store payment information for future checkout.

Can I use GoCardless (Direct Debit) with pre-orders?

↑ Back to top

GoCardless includes support for WooCommerce Pre-Orders (separate purchase).

Can I use GoCardless (Direct Debit) with subscriptions?

↑ Back to top

Yes, it’s possible to use GoCardless to accept automatic, recurring payments for WooCommerce Subscriptions (separate purchase).

Can I use GoCardless (Direct Debit) with order status control?

↑ Back to top

GoCardless is not compatible with WooCommerce Order Status Control. GoCardless does not use the function $order->payment_complete(); , which marks the order paid and updates the status to Processing.

Do I need to Create an App?

↑ Back to top

Merchants need only click the Connect button to hook up their GoCardless account. It’s not necessary to Create an App.

Create an App is for developers seeking to code their own applications from scratch and not use the GoCardless for WooCommerce extension or any other already made.

Does this work with Pro and Plus packages?

↑ Back to top

Yes. As of version 2.4.5, WooCommerce GoCardless includes support for merchants upgrading to Pro and/or Plus. It:

  • Notifies via webhook with event “mandate_replaced” with the new mandate in the payload.
  • Gives an error response about mandate replacement when payment is created with the old mandate.

Code customization

↑ Back to top

Hooks

↑ Back to top

woocommerce_gocardless_after_success_redirect_flow – do_action( ‘woocommerce_gocardless_after_success_redirect_flow’, [response from after success of redirect flow]’ )
This action hook can be used to further manipulate information after a successful redirect flow. One such example would be to update the customer information on GoCardless side. An example of that would look something like this: add_action( 'woocommerce_gocardless_after_success_redirect_flow', 'process_redirect_flow' ); function process_redirect_flow( $response ) { WC_GoCardless_API::update_customer( $customer_id, $data ); }

Filters

↑ Back to top

Now, there are three filters for updating initial order status:

  • woocommerce_gocardless_create_payment_subscription_order_status — default to processing. Triggered when an order contains a Subscription product
  • woocommerce_gocardless_create_payment_subscription_renewal_order_status — default to processing. Triggered when an order contains a Subscription renewal
  • woocommerce_gocardless_create_payment_order_status — default to on-hold

Questions and Support

↑ Back to top

Something missing from this documentation? Do you still have questions and need assistance?

  • Have a question before you buy this extension? Please fill out this pre-sales form – please include the name of this extension in your query.
  • Already purchased and need some assistance? Get in touch with a Happiness Engineer via the WooCommerce.com Support page and choose this extension name from the “I need help with” dropdown