Documentation

Complete guide to using the GHL GoCardless integration.

1. Introduction

The GHL GoCardless Integration connects your GoHighLevel account with GoCardless Direct Debit payment processing. This allows you to:

  • Check mandate status — Instantly see if a contact has an active Direct Debit mandate
  • Create billing requests — Send secure links for customers to set up Direct Debit
  • Collect payments — Take one-off or recurring payments from existing mandates
  • Set up instalments — Create payment plans with multiple scheduled payments
  • Sync automatically — Keep payment statuses in sync between both platforms

What is GoCardless?

GoCardless is a Direct Debit payment processor supporting:

  • UK BACS — 3 working day collection
  • EU SEPA — Euro payments across Europe
  • ACH — US bank transfers

Direct Debit is ideal for recurring payments as customers only need to authorise once.

2. Getting Started

Prerequisites

Before you begin, ensure you have:

  • ✅ A GoHighLevel account with API access
  • ✅ A GoCardless account (sandbox for testing, live for production)
  • ✅ Admin access to install marketplace apps

GoCardless Account Setup

  1. Create an account at gocardless.com
  2. Complete verification (live accounts require business verification)
  3. Generate an API access token:
    • Go to DevelopersAPI Keys
    • Create a new access token with full permissions

3. Installation

From GHL Marketplace

  1. Open GoHighLevel and navigate to Marketplace
  2. Search for "GoCardless Integration"
  3. Click Install
  4. You'll be redirected to authorise the integration
  5. Grant the requested permissions:
    • Read/Write Contacts
    • Read/Write Invoices
    • Access Custom Fields

Connect GoCardless

After installing, you'll be prompted to connect your GoCardless account:

  1. Select your environment:
    • Sandbox — For testing (no real payments)
    • Live — For production use
  2. Enter your GoCardless API token
  3. Click Connect
  4. The integration will verify your connection and display your merchant details

4. Configuration

Settings Overview

Access settings via the integration dashboard:

Setting Description
EnvironmentSandbox or Live mode
Email TemplateTemplate for sending DD setup links
SMS TemplateTemplate for SMS mandate requests
Auto-Check MandateCheck mandate on contact creation
Auto-Sync PaymentsMark GHL invoices as paid automatically

Email Templates

Create a GHL email template with the placeholder {{mandate_link}} where the GoCardless setup link should appear.

Example template:
Subject: Set Up Direct Debit

Hi {{contact.first_name}},

Please click below to set up your Direct Debit:

{{mandate_link}}

This secure link will take you to GoCardless to authorise the payment.

Thanks,
{{location.name}}

5. Features

Mandate Check

Instantly verify if a contact has an active Direct Debit mandate.

  • Searches by email address
  • Returns mandate status, ID, and bank details (masked)
  • Can be automated on contact creation

Mandate Statuses:

StatusMeaning
activeReady to collect payments
pending_submissionAwaiting bank processing
submittedSent to bank
cancelledCustomer or merchant cancelled
failedBank rejected the mandate
expiredNo payments for 13+ months

Create Billing Request

Send a secure link for new customers to set up Direct Debit.

Options:

  • Send via Email
  • Send via SMS
  • Copy link manually

Flow:

  1. Customer receives link
  2. Opens GoCardless hosted page
  3. Enters bank details
  4. Confirms authorisation
  5. Mandate becomes active (1-3 days)
  6. You receive webhook notification

Collect Payment

Take a one-off payment from an active mandate.

FieldDescription
AmountPayment amount in pence/cents
DescriptionShown on customer's bank statement
ReferenceYour internal reference
Charge DateWhen to collect (optional)

Payment Timeline (BACS):

  • Day 0: Payment created
  • Day 1: Submitted to bank
  • Day 3: Confirmed
  • Day 4-5: Funds received

Instalment Plans

Create scheduled payment series for payment plans.

Example: £1,200 in 12 monthly instalments of £100

  • Total amount or individual amounts
  • Start date
  • Frequency (weekly, monthly, yearly)
  • Number of instalments
  • Automatic retry on failure
  • Cancel remaining instalments if needed

6. Using the Integration

Check a Contact's Mandate

  1. Open a contact in GHL
  2. Click the GoCardless tab (or custom field)
  3. View mandate status:
    • Has Mandate — Shows mandate ID and bank
    • No Mandate — Option to send setup link

Send a Mandate Setup Link

Via Dashboard:

  1. Go to integration dashboard
  2. Click New Billing Request
  3. Enter customer details: Email (required), Name, Phone (for SMS)
  4. Select delivery method
  5. Click Send

Via Workflow (Automation):

  1. Create a GHL workflow
  2. Add HTTP Request action
  3. Configure:
POST /api/billing-request
{
  "email": "{{contact.email}}",
  "name": "{{contact.full_name}}",
  "description": "Monthly Plan",
  "send_email": true
}

Collect a Payment

  1. Open contact with active mandate
  2. Click Collect Payment
  3. Enter amount (e.g., £99.00) and description
  4. Click Collect
  5. Payment status updates automatically

Create Instalments

  1. Open contact with active mandate
  2. Click Create Instalment Plan
  3. Configure: Total amount, number of instalments, frequency, start date
  4. Click Create Plan
  5. View scheduled payments in dashboard

7. Troubleshooting

Common Issues

"Mandate not found"

Cause: Email doesn't match GoCardless customer

Fix: Search by alternative email or check GoCardless dashboard

"Payment failed"

Cause: Insufficient funds, cancelled mandate, or bank rejection

Fix: Check failure reason, contact customer, or create new mandate

"Token expired"

Cause: GoCardless access token revoked or expired

Fix: Reconnect in Settings → GoCardless → Reconnect

Error Codes

CodeMeaningAction
401Invalid API tokenReconnect GoCardless
403Insufficient permissionsCheck token scopes
404Resource not foundVerify mandate/payment ID
422Validation errorCheck request parameters
429Rate limitedWait and retry

8. FAQ

Q: Is this secure?

A: Yes. All sensitive data (tokens, bank details) is encrypted. GoCardless is FCA-regulated and PCI-DSS compliant. We never store full bank account numbers.

Q: Can I use sandbox for testing?

A: Yes. Start with sandbox to test the flow without real payments. Switch to live when ready.

Q: How much does GoCardless cost?

A: GoCardless charges 1-2% per transaction (varies by region). Check gocardless.com/pricing for current rates.

Q: How long does mandate setup take?

A: Typically 1-3 business days for BACS (UK). SEPA can be instant with supporting banks.

Q: Can customers cancel their mandate?

A: Yes, customers can cancel via their bank. You'll receive a webhook notification.

Q: When do I receive funds?

A: BACS payments: 4-5 working days. SEPA: 3-4 working days. Your GoCardless payout schedule may add 1-2 days.

Q: Can I use this with multiple GHL locations?

A: Yes, each location can connect their own GoCardless account.

Need Help?

Contact us for support

guy@zoom-photo.co.uk