If Xero is enabled for your workspace, Turnstile syncs your accounting data to Xero. How that sync works depends on the type of entry:
Invoice events (invoice issued, payment received, invoice voided) sync automatically as native Xero invoice objects; you do not need to sync these manually.
Turnstile remains your source of truth for invoicing. The Xero invoice is a bookkeeping record only; your customers continue to receive invoices from Turnstile or Stripe as usual.
Non-invoice events (revenue recognition entries, Stripe fee entries) sync as journal entries using the manual sync workflow below.
Connect Xero
To enable the Xero integration in Turnstile:
In Turnstile, head to Settings > Integrations.
Click Connect next to the Xero integration.
Complete the Xero authorization flow.
Return to Turnstile to confirm your connection.
Map your Xero chart of accounts to Turnstile
Account mapping links the accounts/categories Turnstile uses in journal entries to your Xero chart of accounts. You will need to map any account you plan to use in journal entries.
In Turnstile, go to Reporting > Accounting.
Select Configure integration.
Open the chart of accounts mapping.
For each Turnstile account/category, select the matching Xero account.
Save changes.
Important: Mappings are required for successful sync. If a journal entry contains a line item tied to an unmapped account, that line item (and/or the journal entry) will not be able to sync until it is mapped.
Sync journal entries to Xero
Turnstile supports syncing selected entries or all entries in the current view. Syncing is not automatic; Turnstile only syncs entries when you initiate the action.
When Xero is connected, journal entry numbers in Turnstile are temporary until the entry is synced. When syncing, Turnstile assigns a final journal entry number based on the existing Xero sequence, which may differ from the number shown in Turnstile before sync.
Xero does not allow syncing journal entries that include Xero accounts receivable (AR) or Xero accounts payable (AP) accounts. These accounts are managed by Xero and can only be updated in Xero. To view only entries that are eligible to sync, use the Hide unsyncable filter in the accounting table.
Sync selected entries
In Turnstile, go to Reporting > Accounting.
Select one or more entries.
Click Sync to Xero.
Sync all entries
In Turnstile, go to Reporting > Accounting.
Apply any filters (for example, a month).
Click Sync all (if available in your workspace).
Mark journal entries as synced
If you've already created or imported some entries in Xero, you can mark them as synced in Turnstile to keep your accounting view up to date, without pushing anything to Xero.
Turnstile supports marking selected entries or all entries in the current view as synced:
In Turnstile, go to Reporting > Accounting.
Select one or more entries.
Click Mark as synced.
View Xero sync status in Turnstile
From Reporting > Accounting, Turnstile labels each entry so you can track progress:
Pending: Shows all items ready to sync but not yet posted to Xero.
Synced: Shows items successfully posted to Xero or manually marked as synced.
Syncing: Line item will be marked with a loading indicator while it's actively being synced, and will stay in Pending until it's synced successfully.
Failed: If a line item couldn't be synced, Turnstile shows a reason so you can fix it. It will stay in Pending until it's synced successfully.
Correct an unsynced journal entry
If a journal entry includes a line item tied to an unmapped account:
The entry will not sync successfully.
Turnstile will mark the item as Failed (or show a sync error state).
Turnstile will display a reason so you know what needs to be mapped or corrected.
To fix an unsynced entry that failed due to the account not being mapped:
Head to Reporting > Accounting > Configure integration and add or correct the mapping.
After you fix the mapping, you can re-sync the affected entries from Reporting > Accounting.