# Auto-reconcile GoCardless payouts in Xero and post to Slack

> When a GoCardless payout lands in your bank, it's split into collections, fees, and refunds, booked as a balanced Xero entry, and summarized for finance in Slack.

- Workflow type: agent
- Services: GoCardless, Xero, Slack Bot
- Categories: Finance
- Published: 2026-07-17

## What it does

- Watches for GoCardless payouts landing in your bank account and starts reconciling them right away, with no manual data entry.
- Breaks each payout back into the customer payments it collected, the refunds it covered, and the GoCardless fees it charged.
- Books a balanced accounting entry in Xero that posts your gross collections, records fees as an expense, and matches the net deposit to the bank line so it reconciles cleanly.
- Posts a tidy summary to your finance Slack channel with the payout reference, gross, fees, refunds, and net.

## What you'll need

- A GoCardless account that pays out to your bank.
- A Xero organization where you keep your accounts.
- A Slack workspace with a finance channel for the summary.
- The Xero accounts you use for bank fees and for GoCardless collections (a clearing or sales account), so entries land in the right place.

## Prompt

When GoCardless notifies us that a payout has been paid into our bank account (the GoCardless payout paid webhook event), automatically reconcile that payout in Xero and let the finance team know. Each GoCardless payout lands in our bank as a single net figure (customer collections minus GoCardless fees and any refunds), so the goal is to break that one deposit back into its parts and record a clean, balanced accounting entry that matches the bank statement line.

Start from the payout referenced in the webhook. Call GoCardless Get Payout to retrieve the payout's net amount, currency, payout reference, and payout date. Remember that GoCardless returns every monetary amount as an integer in the smallest currency unit (pence or cents), not as a decimal.

Then call GoCardless List Payout Items to pull the full itemized breakdown of what the payout covers, paging through every item. Sort the items into three buckets: gross customer collections (the payments that were successfully collected), refunds (money returned to customers), and GoCardless fees (transaction fees plus any app fees or scheme charges). Sum each bucket. A correct payout satisfies gross collections minus refunds minus fees equals the net amount from Get Payout, so use that identity as your integrity check.

Convert every amount from the smallest currency unit into the decimal amount Xero expects (for pound, euro, or dollar payouts, divide by 100). Then record the reconciliation in Xero with Create Manual Journals, posting a single balanced journal: credit the gross customer collections to our GoCardless clearing account (or the sales or debtors account we use), debit the GoCardless fees to a bank fees or merchant fees expense account, debit any refunds to the clearing or refunds account, and debit the net amount to the bank account the payout landed in so the imported statement line reconciles cleanly. Because net equals gross minus fees minus refunds, the total debits (net plus fees plus refunds) equal the total credits (gross), so the journal balances. If we prefer, the same entry can instead be recorded with Create Bank Transactions against the bank account using matching split lines.

Before posting anything, confirm the debits and credits are exactly equal and that the buckets tie back to the payout's net amount. If the numbers do not reconcile, or Xero rejects the journal, do not force a broken entry: skip posting and raise it for a human instead.

Finally, post a short summary to our finance Slack channel using the Slack bot's Send a Message action, showing the payout reference, gross collections, GoCardless fees, refunds, and net amount as human-readable currency, plus a note confirming the Xero journal was posted and is ready to reconcile against the bank line. Use Slack formatting for a tidy, scannable message. If reconciliation could not be completed automatically, post a clear heads-up in the same channel so finance can handle it manually.

## How to customize

- Choose which Xero accounts your collections, fees, and refunds post to.
- Pick the Slack channel that receives the summary and adjust the wording.
- Decide whether to record the entry as a manual journal or as a bank transaction against your bank account.

## FAQ

### Why is my GoCardless deposit smaller than the payments I collected?

GoCardless pays out your collections minus its fees and any refunds as a single net amount. This workflow splits that deposit back into its parts so your books show the full picture, not just the net figure.

### Will the Xero entry actually balance?

Yes. It checks that your collections minus fees and refunds equal the net payout before posting, and it only records an entry when the debits and credits match. If something does not add up, it flags it in Slack instead of booking a broken entry.

### Do I still have to reconcile the bank line myself?

The workflow records the net amount against your bank account so the statement line matches. In most cases you just confirm the match in Xero, because the itemized breakdown and fees are already booked for you.

### What happens to the GoCardless fees?

Fees are recorded as an expense in the Xero account you choose, such as bank fees or merchant fees, so your profit and loss reflects the true cost of collecting payments.

### Can I send the summary to a specific finance channel?

Yes. You choose which Slack channel receives the summary, and you can tailor what it includes.

Use this prompt in General Input: https://www.generalinput.com/prompts/auto-reconcile-gocardless-payouts-in-xero-and-post-to-slack