The short version
---
Connecting Xero
Go to Financials → Integrations. The Xero section sits under QuickBooks Online.
Only owners and admins can connect, disconnect or change the settings. Disconnect removes PortaPro from the organisation's connected apps in Xero. Nothing in Xero is deleted, and your settings and the record of what was pushed are kept, so reconnecting the same organisation never duplicates anything.
One set of books at a time. While QuickBooks and Xero are both connected, neither sync runs. Disconnect the one you are leaving.
---
Settings
Once connected, PortaPro reads your Xero organisation and shows these settings. Sync now stays off until the required ones are saved.
| Setting | What it decides | Required |
|---|---|---|
| Start syncing from | Invoices dated on or after this day go across, with their payments. Use the day you moved to PortaPro if your old software already put your history in Xero. | Yes |
| Where revenue posts | The revenue account for Services, Rentals & equipment and Deposits. The last two use the Services account unless you pick another. | Services |
| Where payments are deposited | The account for Every payment, and optionally a different one for online payments (Stripe), checks, cash, bank transfers recorded by hand, cards taken outside PortaPro and other methods. | Every payment |
| Sales tax | The Xero tax rate for Taxed lines and Untaxed lines. Untaxed lines need a 0% rate, such as Tax Exempt. A higher rate is refused, because Xero would add tax PortaPro never charged. | Untaxed lines |
| Tracking categories | For each category: don't use it, one option on every line, by customer type, or by kind of line. | No |
Every account, tax rate and tracking option is checked against your Xero organisation when you save, so a setting that doesn't exist there is refused right away instead of failing every invoice later.
---
What goes across
Every night at 7:20 UTC, and whenever you click Sync now:
| PortaPro | Xero |
|---|---|
| Customer | Contact, created the first time one of their invoices goes across. A Xero contact with the same name is reused, not duplicated. |
| Issued invoice dated on or after the start date | Approved sales invoice, every line with its account, tax rate and tracking. Surcharges, fees (such as a delivery fee) and discounts go across as their own lines, so the Xero total matches PortaPro's. Drafts never go. An edited invoice goes again with its current values. |
| Settled payment | Payment on the invoice, into the account for how it was paid, for no more than what is still owed there. |
| Overpayment, prepayment or group payment | Money on account (a Xero overpayment) held on the contact. |
| Goodwill, dispute or referral credit | Credit note held on the contact. |
| Credit applied to an invoice | The same amount allocated in Xero. Reversing it removes the allocation. |
| Earned cash discount | Credit note allocated to the invoice, so it reads Paid in Xero when it reads Paid in PortaPro. |
| Write-off or one-off credit note | Its own credit note, allocated to the invoice. |
| Voided invoice | Voided in Xero, after its payments and allocations come off. Once. |
| Reversed or refunded payment | Removed in Xero. After a partial refund, the amount the customer kept goes across as its own payment. |
| Deposit credited to the final invoice | The deposit payment moves to the final invoice and the deposit invoice is voided, so revenue counts once. |
| Revised invoice | A new invoice with the payments moved onto it, and the old one voided. A revision that kept its number goes across as, for example, INV-000955-R2, because Xero keeps invoice numbers unique. |
Optional, off until you choose an account:
---
Push to Xero on one invoice
Push to Xero in an invoice's menu sends that invoice now, with its contact, settled payments, cash discount and any credit applied to it. It ignores the start date: asking for one invoice means it belongs in Xero.
---
Large first syncs and the daily limit
New contacts, invoices and payments go across 50 to a call, so a long history reaches Xero in a few runs. If Xero refuses one item in a group, the rest still go and the log names the one it refused. Xero also caps how many calls an app can make for one organisation each day; if a first sync reaches it, the run stops cleanly and the next day's run carries on. Nothing duplicates.
---
Sales tax and edits in Xero
Xero works out the tax from each line's rate. If its total differs from PortaPro's, the invoice still goes across and the log says by how much; fix the rate in Xero. Xero won't change an invoice that already has payments on it, so if you edit one in PortaPro, the log shows Xero's refusal and you make the change in Xero too.
---
Not sent
Record those in Xero by hand.
---
The sync log
Recent sync activity lists the last 20 results: Success, Skipped with the reason (such as a setting still to choose), and Error in Xero's own words. A fixed error is tried again on the next run.
---
