Table of Contents
- Step 1 — GoCardless Account & API Token
- Step 2 — Bank Accounts
- Step 3 — Supplier & Fee Product
- Step 4 — System Settings
- Step 5 — Credit Terms
- Step 6 — Email Template (Optional)
- Setting Up a Mandate for a Customer
- Taking a Payment Against an Invoice
- Background Processing
- Mandate & Payment Statuses
- Notifications
- Financial Postings
- Frequently Asked Questions
- Troubleshooting
Overview
The Payment Mandates feature allows you to collect payments from your customers via Direct Debit using GoCardless. Once a customer has authorised a mandate (signed up for Direct Debit), you can automatically collect outstanding invoice balances directly from their bank account without any further action from the customer.
The integration handles the full lifecycle:
- Sending the customer an authorisation link by email
- Confirming the mandate is active once the customer has signed up
- Collecting payments when invoices are finalised
- Reconciling funds when GoCardless pays out to your bank account
- Processing GoCardless fee invoices automatically
- Notifying your team when payments fail or are charged back
Glossary of Terms
| Term | Description |
|---|---|
| Mandate | A customer’s authorisation for you to collect money directly from their bank account by Direct Debit. Once set up, it remains in place until cancelled by either party. |
| Billing Request | A GoCardless object created as the first step of the mandate setup process. It describes what you want to collect (scheme, currency) and is linked to the authorisation flow. |
| Billing Request Flow | The GoCardless object that generates the secure authorisation URL sent to the customer. The customer visits this URL to enter their bank details. |
| Mandate Identifier | The GoCardless ID (e.g. MD123ABC) that uniquely identifies the active Direct Debit mandate once the customer has completed authorisation. |
| Request Identifier | The GoCardless Billing Request ID used during the setup process before the mandate is confirmed. |
| Payment | An individual Direct Debit collection against a mandate, linked to a specific sales invoice. |
| Payout | A batch transfer from GoCardless to your bank account, containing the net proceeds of one or more collected payments after fees have been deducted. |
| Payout Item | A line within a GoCardless payout. Items can be collected payments, fee charges, or refunds. |
| Scheme | The Direct Debit scheme used to collect money. Common values are BACS (UK), SEPA (Eurozone), and Autogiro (Sweden). The correct scheme must match the currency and country of the bank account. |
| Clearing Bank Account | A bank account in WinMan that acts as a staging account. GoCardless deposits first appear here when a payment is collected. |
| Payout Bank Account | The bank account in WinMan representing the account GoCardless physically transfers funds to. May be the same as the Clearing Account. |
| Fee Invoice | A purchase invoice automatically created in WinMan to account for the GoCardless transaction fees deducted from each payout. |
| Differential | An internal WinMan marker recording the ID of the last GoCardless event processed, used to avoid reprocessing the same events. |
| Event | A notification from GoCardless that something has changed — for example a mandate was activated, a payment was collected, or a payment failed. |
| Chargeback | A reversal of a collected payment initiated by the customer’s bank. Covered by the Direct Debit Guarantee. |
| account_payment_mandate | The WinMan database record that stores the mandate details for a customer account. |
| sales_invoice_mandate_payment | The WinMan record linking a sales invoice to a Direct Debit payment collection attempt. |
| account_payment_mandate_notification | A WinMan notification record created when mandate or payment events require your attention. |
How It Works — End-to-End Process
┌─────────────────────────────────────────────────────────────────────────┐
│ SETUP │
│ │
│ 1. You create a mandate for the customer in WinMan │
│ 2. WinMan calls GoCardless to create a Billing Request │
│ 3. WinMan calls GoCardless to create a Billing Request Flow │
│ (generating a secure authorisation URL) │
│ 4. WinMan saves the mandate with status: Pending │
│ 5. WinMan emails the authorisation link to the customer │
│ 6. Customer clicks the link and enters bank details on GoCardless │
│ 7. GoCardless fires a "billing_request.fulfilled" event │
│ 8. Background service picks this up → mandate status becomes: Ready │
└─────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ PAYMENT COLLECTION │
│ │
│ 9. Invoice finalised / user triggers payment collection │
│ 10. WinMan looks up the active mandate for the customer │
│ 11. WinMan creates a payment with GoCardless against the mandate │
│ 12. WinMan records a sales_invoice_mandate_payment (status: Pending) │
│ 13. GoCardless collects money from the customer's bank (takes 2-5 days)│
│ 14. GoCardless fires a "payment.paid_out" event │
│ 15. Background service picks this up: │
│ → Creates bank deposit to Clearing Account │
│ → Marks sales_invoice_mandate_payment as: Paid │
└─────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ PAYOUT RECONCILIATION │
│ │
│ 16. GoCardless batches payments and fires a "payout.paid" event │
│ 17. Background service processes the payout: │
│ → Creates a purchase invoice for GoCardless fees │
│ → Creates a bank payment to settle the fee invoice │
│ (reducing the Clearing Account balance) │
│ → Marks related clearing transactions for reconciliation │
│ → Reconciles the Clearing Account │
│ → If Payout Account ≠ Clearing Account: │
│ transfers net amount from Clearing → Payout Account │
└─────────────────────────────────────────────────────────────────────────┘
Setting Up GoCardless
Complete the following steps before using the feature. All settings are found under System Settings → Payment Mandates.
Step 1 — GoCardless Account & API Token
- Log in to your GoCardless dashboard at https://manage.gocardless.com.
- Navigate to Developers → API keys.
- Create or copy your Access Token.
- In WinMan, go to System Settings → Payment Mandates → GoCardless and enter the token into the Access Token field. It is stored encrypted.
Sandbox / Test Mode
GoCardless provides a free sandbox environment at https://manage-sandbox.gocardless.com. Create a separate access token from the sandbox portal for testing. In WinMan, set Test Mode to On while you are testing. Switch to Off (Production) and update the access token before going live.
Step 2 — Bank Accounts
You need two bank accounts in WinMan (they can be the same account if you prefer):
| Setting | Purpose |
|---|---|
| Clearing Bank Account | Receives deposits when GoCardless collects a payment from a customer. Acts as a staging account. |
| Payout Bank Account | Represents the bank account GoCardless physically transfers net funds to. |
Currency: The clearing bank account currency must match the currency used by the GoCardless scheme you have selected. For example, BACS requires a GBP account.
If you use the same account for both clearing and payout, no inter-account transfer is posted on payout day.
Step 3 — Supplier & Fee Product
GoCardless deducts its transaction fees before paying out. WinMan raises a purchase invoice to account for this:
| Setting | Purpose |
|---|---|
| Supplier | The supplier account record in WinMan representing GoCardless Ltd. Create this as a regular supplier account first. |
| Fee Product | A non-stock product used on the fee purchase invoice line. The nominal/GL account on this product determines where the GoCardless fee cost is posted. |
The fee product should have the appropriate tax code and nominal account for bank charges or payment processing fees in your chart of accounts.
Step 4 — System Settings
Open System Settings → Payment Mandates → GoCardless and configure:
| Setting | Recommended Value | Notes |
|---|---|---|
| Enabled | On | Must be enabled for the background service to run. |
| Test Mode | Off (Production) | Use On only for sandbox testing. |
| Scheme | BACS | For UK GBP. Change to SEPA for Euro. Must match customer bank account country. |
| Access Token | (your token) | From GoCardless portal. Stored encrypted. |
| Clearing Bank Account | (your account) | See Step 2 above. |
| Payout Bank Account | (your account) | See Step 2 above. |
| Supplier | GoCardless Ltd | See Step 3 above. |
| Fee Product | Bank Charges / GC Fees | See Step 3 above. |
| Default Email Template | (optional) | See Step 6 below. |
Step 5 — Credit Terms
To have WinMan automatically initiate a payment collection when an invoice is posted:
- Open the relevant Credit Terms record.
- Set the Payment Mandate Provider field to GoCardless.
WinMan will then look up the active mandate for the account associated with invoices on those credit terms when creating payments.
Step 6 — Email Template (Optional)
By default, WinMan sends a built-in HTML authorisation email to the customer. You can replace this with a custom email template:
- Create an Email Template in WinMan.
- The template has access to the
account_payment_mandaterecord. Use the merge field{{account_payment_mandate.auth_url}}to include the authorisation link. - In System Settings → Payment Mandates → GoCardless, set the Default Email Template to the template you created.
If no template is selected, the built-in email is used automatically.
Setting Up a Mandate for a Customer
Once system settings are complete, you can set up a mandate for an individual customer:
- Open the Account (Customer) record.
- Find the Payment Mandates section or tab.
- Click Add GoCardless Mandate.
- Enter the customer’s email address for the authorisation email.
- Check Send Email to send the link immediately, or uncheck to save the mandate and send later.
- Click Save.
WinMan will:
- Create a Billing Request with GoCardless
- Generate the authorisation URL
- Save the mandate record with status Pending
- Email the authorisation link to the customer (if selected)
The customer must click the link and complete the form on the GoCardless secure page. Until they do, the mandate remains Pending and cannot be used to collect payments.
Resending the Authorisation Email
If the customer did not receive the email or the link has expired (links expire after 7 days):
- Open the mandate record from the Account.
- Click Resend Email.
- Confirm or update the email address.
- Click Save.
Note: A new authorisation link is not generated. If the original link has expired, you should create a new mandate record instead.
Cancelling a Mandate
- Open the mandate record.
- Click Cancel.
Cancelling a mandate in WinMan does not automatically cancel it in GoCardless. You should also cancel it in your GoCardless dashboard to prevent any further collections.
Taking a Payment Against an Invoice
Automatic Collection
If the customer’s credit terms have the Payment Mandate Provider set to GoCardless, WinMan will automatically attempt to create a payment when the invoice is finalised.
Manual Collection
You can also trigger a payment manually from the sales invoice. WinMan will:
- Find the active mandate for the customer.
- Verify the mandate status is Active or Submitted in GoCardless.
- Create a payment with GoCardless for the full outstanding invoice amount.
- Record a Sales Invoice Mandate Payment with status Pending.
Currency: The payment currency is taken from the currency on the customer’s account. It must match the GoCardless scheme’s supported currency.
Background Processing
The Payment Mandates background service runs automatically. It polls GoCardless for new events since the last run and processes them. You do not need to take any action for routine processing.
The service processes events in this order:
| Event Type | Action in WinMan |
|---|---|
billing_request.fulfilled | Mandate status updated to Ready, mandate identifier recorded |
payment.paid_out | Bank deposit created to Clearing Account; payment marked as Paid |
payment.failed | Payment marked as Failed; deposit reversed if already posted; notification raised |
payment.cancelled | Payment marked as Cancelled; deposit reversed if already posted; notification raised |
payment.charged_back | Payment marked as Chargeback; deposit reversed; notification raised |
payment.late_failure_settled | Payment marked as Late Failure; deposit reversed; notification raised |
payout.paid | Fee invoice posted; fee bank payment created; clearing account reconciled; transfer posted to Payout Account (if different from Clearing Account) |
Mandate & Payment Statuses
Mandate Statuses
| Status | Meaning |
|---|---|
| Pending | The authorisation email has been sent. The customer has not yet completed the setup. No payments can be collected. |
| Ready | The customer has completed authorisation. The mandate is active and payments can be collected. |
| Cancelled | The mandate has been cancelled. No further payments can be collected. |
Payment Statuses
| Status | Meaning |
|---|---|
| Pending | The payment has been submitted to GoCardless but has not yet been collected from the customer’s bank. |
| Paid | GoCardless has successfully collected the payment. A bank deposit has been posted to the Clearing Account. |
| Failed | The payment was rejected by the bank. Any deposit posted has been reversed. A notification has been raised. |
| Cancelled | The payment was cancelled before collection. |
| Chargeback | The customer’s bank reversed the payment. Any deposit posted has been reversed. A notification has been raised. |
| Late Failure | A failure occurred after the payment appeared to have been collected. Any deposit posted has been reversed. |
Notifications
WinMan creates internal notifications when events require your attention. Notifications appear in the relevant areas of the system:
| Notification Type | Trigger | Links To |
|---|---|---|
| Payment | A payment fails, is cancelled, is charged back, or suffers a late failure | The related Sales Invoice |
| Mandate | Mandate-related events requiring attention | The related Account (Customer) |
| System | System-level events | Finance Hub |
Notifications are sent to all users subscribed to the Account Payment Mandate GoCardless notification event. To subscribe, update your notification preferences or ask a system administrator.
Notifications are marked as read once viewed.
Financial Postings
When a Payment Is Collected (payment.paid_out)
A bank deposit transaction is created against the Clearing Bank Account.
| Entry | Dr / Cr | Account |
|---|---|---|
| Bank Deposit | Dr | Clearing Bank Account |
| Invoice Settlement | Cr | Sales Invoice (reduces outstanding balance via invoice allocation) |
The sales invoice is marked as paid through the bank deposit allocation.
When a Payout Is Received (payout.paid)
A GoCardless payout batches multiple payments together and deducts fees. WinMan makes the following postings:
1. Fee Purchase Invoice
A purchase invoice is raised for the GoCardless fees:
| Entry | Dr / Cr | Account |
|---|---|---|
| Fees Expense | Dr | Nominal account of the Fee Product (e.g. Bank Charges) |
| VAT (if applicable) | Dr | Tax Account |
| Accounts Payable | Cr | GoCardless Supplier |
The fee value is negative (it is a cost to you), so if GoCardless raised a credit on a payout, a purchase credit note is created instead.
2. Fee Bank Payment
A bank payment transaction is created to settle the fee invoice against the Clearing Bank Account:
| Entry | Dr / Cr | Account |
|---|---|---|
| Accounts Payable | Dr | GoCardless Supplier |
| Clearing Bank Account | Cr | Clearing Bank Account |
The fee invoice is allocated and the clearing account balance is reduced by the fee amount. The bank transaction is immediately reconciled.
3. Clearing Account Reconciliation
All bank deposit entries in the Clearing Account that were marked To Be Reconciled are reconciled, netting off the collected payments.
4. Inter-Account Transfer (if Clearing ≠ Payout Account)
If your Clearing Bank Account and Payout Bank Account are different accounts, WinMan posts an inter-account transfer for the net payout amount:
| Entry | Dr / Cr | Account |
|---|---|---|
| Payout Bank Account | Dr | Payout Bank Account |
| Clearing Bank Account | Cr | Clearing Bank Account |
This reflects the physical transfer of funds from GoCardless into your main bank account.
When a Payment Fails or Is Charged Back
If a bank deposit was previously created for the payment, it is reversed:
| Entry | Dr / Cr | Account |
|---|---|---|
| Clearing Bank Account reversal | Cr | Clearing Bank Account |
| Invoice reversal | Dr | Sales Invoice (re-opens outstanding balance) |
The sales invoice returns to outstanding status and can be collected again once the mandate or payment issue is resolved.
Summary — Clearing Account Flow
Customer pays via Direct Debit
│
▼
Dr Clearing Account (bank deposit per payment)
│
▼
Cr Sales Invoice (invoice marked paid)
│
Payout day:
│
├── Cr Clearing Account (fee bank payment — reduces by fee amount)
│ Dr GoCardless Supplier A/P
│
├── Clearing Account reconciled (net of deposits and fee payment)
│
└── If separate payout account:
Dr Payout Account
Cr Clearing Account (inter-account transfer for net amount)
Frequently Asked Questions
Q: How long does it take for a Direct Debit to be collected?
A: Typically 2–5 working days for BACS (UK). SEPA timescales vary by country. GoCardless provides the payment timeline in your dashboard.
Q: What happens if the customer’s bank rejects the payment?
A: A payment.failed event is received. WinMan marks the payment as Failed, reverses any bank deposit, and raises a notification. You can re-attempt the payment manually once the issue is resolved.
Q: Can I have more than one mandate per customer?
A: Yes. WinMan stores multiple mandate records per customer. When collecting a payment, the most recently created mandate for the provider is used. Older mandates should be cancelled if they are no longer required.
Q: What is the Direct Debit Guarantee?
A: A UK consumer protection that entitles customers to an immediate refund from their bank if a payment is taken incorrectly. It applies to all BACS Direct Debits. GoCardless handles the compliance requirements automatically.
Q: Can I use this feature in test mode without affecting live data?
A: Yes. Set Test Mode to On in System Settings and use your GoCardless sandbox access token. In test mode the system connects to api-sandbox.gocardless.com. No real money moves in sandbox mode.
Q: What if the Clearing and Payout Bank Accounts are the same?
A: The inter-account transfer step is skipped. All activity is recorded directly against the single bank account.
Q: The authorisation link has expired — what should I do?
A: GoCardless authorisation links expire after 7 days. Create a new mandate from the Account record. The old Pending mandate can be left or deleted — only Ready mandates are used for payment collection.
Troubleshooting
| Symptom | Likely Cause | Action |
|---|---|---|
| Mandate remains Pending for more than a day | Customer has not clicked the link, or the link expired | Resend the email or create a new mandate |
| Payment collection fails with “No active mandate found” | Mandate status is not Ready, or no mandate exists for the account | Check the mandate record on the Account; verify status is Ready |
| Payment collection fails with “Payment mandate provider not specified” | Credit Terms do not have GoCardless set as the provider | Edit the Credit Terms and set the Payment Mandate Provider to GoCardless |
| Background service not processing events | GoCardless is not enabled in System Settings, or Access Token is wrong | Check System Settings → Payment Mandates → GoCardless |
| Fee invoice not being created | GoCardless Supplier or Fee Product not configured | Set both in System Settings and ensure the supplier account is active |
| Duplicate fee invoice error | Payout has already been processed | This is a safety check — do not reprocess the same payout manually |
| Bank deposit currency mismatch | Clearing Bank Account currency does not match the GoCardless scheme currency | Ensure the clearing account is in the correct currency for the scheme |