Appearance
Xero Integration
YardPilot connects to Xero to automatically sync invoices and record your payment revenue, making bookkeeping and bank reconciliation simple.
What Gets Synced
YardPilot syncs invoices and payments to Xero:
| What | When It Syncs | Xero Result |
|---|---|---|
| Invoices | When sent to client | Draft or Authorised invoice in Xero |
| Invoice payments | When payment recorded against synced invoice | Payment allocation in Xero |
| Stripe/Square | When payout confirmed | Payout summary (revenue, fees, net) |
| Cash payments | Immediately on recording | Receive Money to Undeposited Funds |
| Bank transfers | Not synced (see below) | N/A — arrives via bank feed |
Stripe & Square Payouts
When Stripe deposits money into your bank account, YardPilot creates three transactions in Xero:
| Transaction | Purpose | Example |
|---|---|---|
| Receive Money | Records your revenue (minus refunds) | $1,000 gross sales |
| Spend Money | Records processor fees | $30 Stripe fees |
| Bank Transfer | Moves net amount to your bank | $970 to ANZ Business |
This matches exactly what appears in your bank feed, making reconciliation effortless.
Why payout summaries?
Syncing individual payments creates reconciliation headaches — your bank shows one deposit, but Xero shows dozens of transactions. Payout summaries match your bank 1:1.
Cash Payments
For cash payments, YardPilot syncs each payment individually to Xero as a Receive Money transaction into your Undeposited Funds account.
| Transaction | Purpose | Example |
|---|---|---|
| Receive Money | Records customer payment | $150 from John Smith |
Key differences from processor payouts:
- One transaction per payment (not batched into daily payouts)
- Customer as contact (actual customer name, not "Stripe")
- Simpler setup (only need Undeposited Funds account, no clearing account)
Undeposited Funds
This is a standard accounting practice — hold cash payments in a holding account until you physically deposit them at the bank. When you do a bank deposit, transfer from Undeposited Funds to your actual bank account.
Bank Transfer Payments
Bank transfers are NOT synced to Xero from YardPilot. Here's why:
When a customer pays by bank transfer, the money goes directly into your bank account. Your bank feed automatically imports this transaction into Xero. If YardPilot also synced the payment, you'd have duplicate transactions — one from the bank feed and one from YardPilot.
Your workflow for bank transfers:
- Customer transfers money to your bank account
- You see the deposit in your bank statement
- You manually record the payment in YardPilot (marks invoice as paid, updates customer balance)
- In Xero, you reconcile the bank feed transaction by matching it to the customer
YardPilot does not automatically create Xero transactions for bank transfers — your bank feed handles that.
Reconciling bank transfers in Xero
When you see a bank transfer deposit in your Xero bank feed:
- Click Find & Match or Create → Receive Money
- Select the customer who paid
- Allocate to the appropriate revenue account
This approach prevents duplicates while still giving you accurate payment records in both systems.
Connecting to Xero
- Go to Settings → Integrations → Xero
- Click Connect to Xero
- Log in to your Xero account and authorise YardPilot
- Select your Xero organisation
After connecting, you'll be prompted to configure your Xero accounts.
Configuring Xero Accounts
After connecting Xero, set up the accounts that YardPilot uses to sync invoices and payments.
- Go to Settings → Integrations → Xero
- Under Xero Accounts, configure:
| Account | Purpose | Xero Account Type |
|---|---|---|
| Revenue Account | Where sales income is recorded on invoices/payouts | Revenue |
| Fees Account | Where processor fees are recorded | Expense |
| Bank Account | Where payments are deposited | Bank |
These accounts are shared across all payment processors and invoice sync — you configure them once, and YardPilot applies them everywhere.
Auto-populated from existing config
If you previously configured accounts on a payment processor, YardPilot pre-populates these fields from your existing settings. Review and save to confirm.
Account requirements
- Revenue Account: Must be a Revenue-type account (e.g., "Sales - Lawn Care", account code 200)
- Fees Account: Must be an Expense-type account (e.g., "Merchant Fees")
- Bank Account: Must be a Bank-type account where deposits arrive (e.g., "ANZ Business")
Changing Accounts
You can change your Xero accounts at any time. When you save:
- All payment processors (Stripe, Square, etc.) are updated automatically
- Future invoice syncs use the new accounts
- Previously synced transactions in Xero are not affected
Setting Up Clearing Accounts
A clearing account is a special bank-type account in Xero that acts as a temporary holding place for payments before they're deposited into your real bank account. YardPilot uses clearing accounts to:
- Track revenue and fees from each payout
- Create transactions that match your bank feed exactly
- Keep your accounting organised by payment processor
When You'll See This
The clearing account setup appears when:
- You first connect Xero and enable YardPilot accounting for Stripe
- You reconnect Xero after a disconnection
- You switch a processor's accounting source to "YardPilot"
Setup Options
You have two choices when setting up a clearing account:
Option 1: Use an Existing Account
If you already have a suitable bank account in Xero, you can adopt it:
- Click Select Existing Account
- Choose from the list of available accounts
- YardPilot validates your selection automatically
- Click Confirm Selection
Requirements for existing accounts:
- Must be a Bank type account
- Must be Active (not archived)
- Must use AUD currency
- Must not have a bank feed connected
TIP
Using an existing account works well if you've previously set up a clearing account manually or migrated from another system.
Option 2: Create a New Account
Let YardPilot create a dedicated clearing account:
- Click Create New Account
- YardPilot creates "YardPilot Pay Clearing - Stripe" in Xero
- The account is automatically configured correctly
This is the recommended option for most businesses — it keeps YardPilot transactions separate from your other accounts.
Per-Processor Accounts
Each payment processor (Stripe, Square, etc.) can have its own clearing account. This helps you:
- Track revenue by processor
- Reconcile each processor independently
- See clear transaction history per payment method
Account Validation
When selecting an existing account, YardPilot checks:
| Criteria | Why It Matters |
|---|---|
| Bank type | Clearing accounts must be bank-type for transfers |
| Active status | Archived accounts can't receive transactions |
| AUD currency | Must match your business currency |
| No bank feed | Prevents duplicate transactions from automatic feeds |
If validation fails, you'll see which criteria weren't met and can either fix the account in Xero or choose a different one.
Changing Your Clearing Account
Once configured, clearing accounts can't be changed automatically. If you need to switch:
- Contact support to discuss the migration
- Ensure all pending payouts are reconciled first
- The new account will be used for future payouts only
WARNING
Don't delete or archive your clearing account while it has a balance. Reconcile all transactions first.
Setting Up Payment Processors
After connecting Xero, configure which payment processors YardPilot should sync.
Stripe (Recommended)
- Go to Settings → Integrations → Xero → Payment Processors
- Find Stripe and set:
- Accounting Source:
YardPilot(YardPilot posts to Xero) - Clearing Account: Select or create a clearing account (see below)
- Accounting Source:
Revenue, fees, and bank accounts are configured once in the Xero Accounts section above and apply to all processors automatically.
Cash Payments
For cash payments, setup is simpler — you only need to configure an Undeposited Funds account:
- Go to Settings → Integrations → Xero → Payment Processors
- Find Cash and set:
- Accounting Source:
YardPilot(YardPilot posts to Xero) - Undeposited Funds Account: Select your holding account (see below)
- Accounting Source:
Only one account needed
Unlike Stripe/Square, cash payments don't have processor fees, so you only need to configure where payments go — no fees account or clearing account required.
Bank transfers don't need configuration
Bank transfer payments are not synced to Xero (they arrive via your bank feed), so there's no YardPilot configuration needed for bank transfers.
Creating an Undeposited Funds Account in Xero
If you don't already have an Undeposited Funds account, create one in Xero:
- In Xero, go to Accounting → Chart of Accounts
- Click Add Account
- Configure the account:
- Account Type: Bank
- Account Name:
Undeposited Funds(or similar, e.g., "Cash on Hand") - Code: Optional (e.g.,
1050) - Description:
Holding account for cash payments before deposit - Currency: AUD
- Click Save
- Return to YardPilot and refresh the Payment Processors page
- Select your new account from the dropdown
Don't enable bank feeds
Do not connect a bank feed to your Undeposited Funds account. This is a holding account, not a real bank account.
Square & Other Processors
| Method | Accounting Source | Notes |
|---|---|---|
| Square | External | If using Square's own Xero integration |
Don't double-sync
If Square (or another processor) has its own Xero integration, set it to External in YardPilot. Setting it to YardPilot will create duplicate entries.
Invoice Sync
When enabled, YardPilot automatically creates a matching invoice in Xero every time you send an invoice to a client. This keeps your invoicing in sync across both systems without manual data entry.
How It Works
- You send (or mark as sent) an invoice in YardPilot
- YardPilot creates or finds the customer as a Xero contact
- A matching invoice is created in Xero with all line items, amounts, and GST
- When you record a payment in YardPilot, the payment is allocated against the Xero invoice
The sync is one-way — YardPilot pushes to Xero. Changes made directly in Xero are not pulled back into YardPilot.
Setting Up Invoice Sync
- Go to Settings → Integrations → Xero
- Ensure a Revenue Account is configured in Xero Accounts above — this is required before enabling invoice sync
- Under Invoice Sync, toggle it on
- Choose the Xero Invoice Status:
| Status | What Happens in Xero | Best For |
|---|---|---|
| Draft | Invoice created as draft for review | Bookkeeper reviews before approving |
| Authorised | Invoice created as approved, ready for payment | Automated workflows, payment matching |
Draft vs Authorised
Draft (default) is safest — your bookkeeper can review invoices in Xero before approving. Choose Authorised only if you want full automation and don't need Xero-side review.
Bank account for Authorised invoices
If you choose Authorised, make sure you've also configured a Bank Account in Xero Accounts. Xero needs this to allocate payments against authorised invoices.
What Gets Mapped
Each YardPilot invoice maps to a Xero invoice:
| YardPilot Field | Xero Field | Notes |
|---|---|---|
| Invoice number | InvoiceNumber | e.g., INV-0042 |
| Issued date | Date | |
| Due date | DueDate | |
| Customer | Contact | Created in Xero if not found |
| Line items | LineItems | Name, quantity, unit price |
| GST included | LineAmountTypes | Inclusive or Exclusive |
| Discount | Negative line | Added as a negative line item |
| Adjustment | Extra line | Added as a positive/negative line item |
Per-Item Account Codes
By default, all invoice line items use your company's revenue account. But you can map individual products or services to different Xero accounts.
For example, if "Lawn Mowing" should go to account 200 but "Pool Cleaning" should go to account 210:
- Go to Settings → Products & Services
- Edit the catalog item (e.g., "Pool Cleaning")
- Under Xero Account, select the Xero revenue account
- Save
When an invoice containing that item is synced, the line item uses the item's account code instead of the default.
Fallback chain
If a catalog item doesn't have a Xero account set, or the line item isn't linked to a catalog item, the company's default revenue account is used.
Invoice Void Sync
When you void an invoice in YardPilot that was already synced to Xero, YardPilot automatically handles the Xero side:
| Xero Invoice Status | What YardPilot Does |
|---|---|
| Draft | Deletes the draft |
| Authorised | Voids the invoice |
If the invoice was already voided or deleted in Xero, YardPilot detects that and skips the API call.
Invoice Update Sync
If you edit a synced invoice and the Xero invoice was created as Draft, YardPilot updates the Xero draft to match your changes. Authorised Xero invoices cannot be updated — you'll need to void and recreate them.
Payment Allocation
When you record a payment against a YardPilot invoice that's been synced to Xero as Authorised, YardPilot creates a matching payment in Xero against that invoice.
Draft invoices and payments
Xero doesn't allow payments against Draft invoices. If your Xero invoice status is set to Draft, payments won't be allocated in Xero until the invoice is approved there.
Retry Failed Syncs
If a sync fails (e.g., temporary Xero API issue), you can retry it:
- Open the invoice in YardPilot
- Look for the Xero Sync status showing an error
- Click Retry Sync
Invoices with sync errors are also automatically retried in the background.
Account Mapping
Revenue, fees, and bank accounts are configured in Xero Accounts (see "Configuring Xero Accounts" above). Here's what each account is used for:
Revenue Account
Where your sales income is recorded. Must be:
- Type: Revenue
- GST: GST on Income (10%)
Common examples:
- Sales - Lawn Care
- Service Revenue
- Sales Income
Fees Account
Where processor fees are recorded. Must be:
- Type: Expense
- GST: GST Free Expenses
Bank Account
Your business bank account where deposits arrive. Must be:
- Type: Bank
- Status: Active
- Currency: AUD
How Reconciliation Works
Stripe/Square (Payout Flow)
- Customer pays invoice via Stripe → Payment recorded in YardPilot
- Stripe batches payments and initiates payout → YardPilot waits
- Stripe confirms payout complete → YardPilot posts to Xero:
- Receive Money (revenue) into clearing account
- Spend Money (fees) from clearing account
- Transfer from clearing account to your bank
- Bank feed shows deposit → Match to the Transfer in Xero
When you open Bank Accounts → your business account in Xero, you'll see:
- A deposit from Stripe (from bank feed)
- A matching Transfer transaction from YardPilot
Click OK to reconcile. Done.
Clearing Account Balance: The clearing account should always be $0 after reconciliation. If it has a balance, unreconciled payouts are waiting for bank feed match.
Cash Payments (Immediate Flow)
- You record a cash payment in YardPilot
- YardPilot immediately syncs to Xero:
- Creates the customer as a Xero contact (if not already exists)
- Posts a Receive Money transaction to your Undeposited Funds account
- When you deposit cash at the bank, transfer from Undeposited Funds to your bank account in Xero
To reconcile your bank deposit:
- In Xero, go to Bank Accounts → your business account
- Find the cash deposit in your bank feed
- Create a Transfer from Undeposited Funds to your bank account
- Match the transfer to the bank deposit
Batching deposits
If you deposit multiple cash payments at once, the Undeposited Funds balance will accumulate. Transfer the total amount when you make your bank deposit.
Bank Transfer Payments (No Sync)
Bank transfer payments follow a simpler flow since they don't sync to Xero:
- Customer transfers payment to your bank account
- You see the deposit in your bank statement
- You manually record the payment in YardPilot (marks invoice as paid)
- Bank feed imports the deposit into Xero automatically
- In Xero, reconcile the bank feed transaction by matching it to the customer
You manually track the payment in YardPilot (for invoice status, customer balance) while Xero receives the transaction via bank feed.
Reconciliation Alerts
If a payout hasn't been reconciled in Xero after 5 business days, YardPilot will alert you with:
- Payout reference and amount
- Expected arrival date
- Link to Xero reconciliation
- Suggested actions
This helps catch issues like:
- Bank feed not updating
- Payout sent to wrong bank account
- Stripe payout delays
Troubleshooting
Invoice not appearing in Xero
Check: Is Invoice Sync enabled?
- Go to Settings → Integrations → Xero
- Verify a revenue account is configured in Xero Accounts
- Verify Invoice Sync is toggled on
Check: Was the invoice sent?
Invoice sync triggers when you send an invoice or mark it as sent. Draft invoices are not synced — they may still change before you commit to sending.
Check: Does the invoice show a sync error?
- Open the invoice in YardPilot
- Look for the Xero Sync status badge
- If it shows an error, click Retry Sync
Invoice synced with wrong account code
If a line item ended up in the wrong Xero revenue account:
- Check if the catalog item has a custom Xero account set in Settings → Products & Services
- If so, update the Xero account on the catalog item
- The next invoice containing that item will use the corrected account
- For already-synced Draft invoices, edit and resave the invoice in YardPilot to trigger an update
Payment not allocated to Xero invoice
Check: Is the Xero invoice Authorised?
Xero only allows payments against Authorised invoices. If your invoice status setting is Draft, payments won't be allocated until the invoice is approved in Xero.
Check: Is a bank account configured?
- Go to Settings → Integrations → Xero → Xero Accounts
- Ensure a bank account is selected
Payout not appearing in Xero
Check: Is the processor set to YardPilot accounting source?
- Go to Settings → Integrations → Xero → Payment Processors
- Verify Stripe shows "Synced by YardPilot"
Check: Has Stripe confirmed the payout?
YardPilot only syncs after Stripe confirms the payout is complete. Check your Stripe dashboard for payout status.
Amounts don't match
If the Transfer amount doesn't match your bank deposit:
- Refunds: Check if refunds were processed — they reduce the payout
- Disputes: Chargebacks reduce payout amounts
- Multiple payouts: Some days have multiple payouts — check dates
- Currency: Ensure your Xero org uses AUD
Clearing account has a balance
This is normal if payouts are waiting for reconciliation. To clear it:
- Open Bank Accounts → YardPilot Pay Clearing - Stripe
- Match each Transfer to the corresponding deposit in your bank account
Duplicate entries
If you see duplicate revenue/fees:
- Check if another integration is syncing the same processor
- Set conflicting processors to External in YardPilot
- Delete duplicate transactions in Xero
Cash payment not syncing
Check: Is the Cash processor set to YardPilot accounting source?
- Go to Settings → Integrations → Xero → Payment Processors
- Verify Cash shows "Synced by YardPilot"
Check: Is an Undeposited Funds account configured?
- In Payment Processors, check that an account is selected for Cash
- If the dropdown is empty, you may need to create an Undeposited Funds account in Xero (see "Creating an Undeposited Funds Account in Xero" above)
Check: Does the payment show a sync error?
- Go to the payment detail page in YardPilot
- Look for the Xero Sync status — if it shows an error, click Retry Sync
- If errors persist, check your Xero connection status
Cash payment synced but customer contact is wrong
YardPilot creates or finds Xero contacts based on the customer's email address. If a cash payment synced to the wrong contact:
- Check the customer's email in YardPilot matches their Xero contact
- If needed, merge duplicate contacts in Xero
- Future payments will use the correct contact once emails match
Undeposited Funds account dropdown is empty
If you don't see any accounts when configuring Cash:
- Verify your Xero connection — go to Settings → Integrations → Xero and check the connection status
- Check account requirements — the account must be:
- Type: Bank
- Status: Active (not archived)
- Currency: AUD
- No bank feed connected
- Create a new account — follow the "Creating an Undeposited Funds Account in Xero" instructions above
Bank transfer not appearing in Xero
Bank transfers are not synced from YardPilot to Xero — this is intentional. Your bank feed automatically imports bank transfer deposits into Xero.
To reconcile a bank transfer in Xero:
- Go to Bank Accounts → your business account
- Find the transfer in the bank feed
- Click Create → Receive Money
- Select the customer and allocate to your revenue account
Disconnecting Xero
To disconnect:
- Go to Settings → Integrations → Xero
- Click Disconnect
- Confirm
WARNING
Disconnecting stops all syncing. Transactions already in Xero remain unchanged. You'll need to record future payouts manually.
Backfilling Historical Data
If you connect Xero after already processing payments:
- Go to Settings → Integrations → Xero → Payment Processors
- Click Backfill next to Stripe
- Select a start date
- YardPilot will sync all confirmed payouts from that date
TIP
Only backfill from a date where you haven't already recorded entries manually. Overlapping dates will create duplicates.
GST Handling
YardPilot applies GST correctly for Australian businesses:
| Transaction | GST Treatment |
|---|---|
| Revenue (Receive Money) | GST on Income (10%) |
| Fees (Spend Money) | GST Free Expenses |
| Transfer | No GST (bank transfers are not taxable) |
This ensures your BAS reporting is accurate.
What's Not Synced
These features are not included in the current integration:
- Two-way sync — changes made in Xero are not pulled back into YardPilot
- Full contact sync — contacts are only created in Xero when syncing invoices or cash payments
- Bank transfer payments — handled by your bank feed, not YardPilot (see above)
- Multi-currency transactions — AUD only
- Dispute automation — disputes must be handled manually in Stripe/Xero
- Bulk backfill of invoices — only invoices sent after enabling sync are pushed to Xero
YardPilot remains your source of truth for invoices and customer records. Xero receives copies for accounting and reconciliation.
