Smarter Invoice Sync
Invoice syncing to Xero now detects when an invoice has been voided, approved, or paid directly in Xero. Previously, trying to sync changes to these invoices would fail repeatedly with no clear resolution. Now the system handles each case automatically:
- Voided invoices are automatically unlinked and re-created as a fresh invoice in Xero on the next sync — no manual steps needed.
- Approved or paid invoices are clearly flagged as blocked, with a one-click "Unlink from Xero & Re-sync" button to create a new copy when you're ready.
Better Error Visibility
The sync validation modal now shows specific, actionable messages when an invoice can't be synced. Instead of a generic error, you'll see exactly why it's blocked and what to do about it. The new "Blocked" status badge makes it easy to spot invoices that need attention at a glance.
Reliability Improvements
Invoices that previously failed to sync no longer automatically retry on every sync cycle. Failed invoices now require an explicit retry, which prevents unnecessary API calls and makes it clear which invoices need your attention. Force sync is still available when you want to re-sync everything.