Closing the books with Xero sync
How Printer's Friend invoices land in Xero, how to handle credits, and the one reconciliation trap to avoid.
End-of-month reconciliation is where small print shops bleed time. Here's how to get it from 8 hours a month to 30 minutes.
The connection
Integrations > Accounting. Set the provider to xero and paste the OAuth credentials from your Xero app: access token, refresh token, client id, client secret and your Xero tenant id. It is a credential paste rather than a one-click button, but it is a one-off: the access token is then refreshed automatically as it nears expiry.
What syncs
- Invoice issued in PF: the customer is upserted as a Xero contact and the invoice is pushed across by a background job, with the external id and sync status recorded against the invoice.
- Payment recorded in Xero: pulled back hourly, over a 25-hour look-back window, and matched to the invoice, which marks it paid in PF.
The payment flow is one way: Xero to PF. A payment you record in PF, a bank transfer say, marks the invoice paid in PF and you still reconcile it in Xero as normal. Credit notes are not written to Xero either: an RMA credit note is recorded in PF and you raise the matching credit note yourself.
The trap to avoid
Don't manually edit a synced invoice in Xero. The next change in PF will overwrite your edit. If you need to amend an invoice, do it in PF; the sync will push the change.
If you're tempted to "just fix this one thing" in Xero, use a manual journal entry instead. It sits alongside the synced invoice and survives the next push.
Reconciling at month end
Pull the Xero AR aging report. Pull the PF invoices report (Reports > Invoices, last month). The two should reconcile to the dollar.
If they don't, the most common reason is a part-paid invoice: PF marks it paid when the payments cover the total, Xero might still show $5 outstanding if you took a part-payment by cash. Record the cash part-payment in both places: PF for the job's status, Xero for the ledger, because that direction does not sync itself.
The 30-minute month-end
- 5 min: pull AR aging from Xero, AR from PF, eyeball the totals.
- 10 min: chase any invoices in PF marked overdue. The chaser is automatic but the personal nudge moves the needle.
- 10 min: check that all RMAs from the month either refunded or credited, and that each credit note has a matching credit note raised in Xero. None should be stuck at "received".
- 5 min: lock the month in Xero. PF keeps writing into the next month; the lock just stops you accidentally backdating.
That's it. Eight hours a month of reconciliation pain is now thirty minutes of glance-and-confirm.