Accounting
Mirror invoices, bills, and GL journals to Xero, QuickBooks, or Rillet, and keep exchange rates current.
Carbon synchronizes accounting data with Xero, QuickBooks Online, or Rillet. Ledger synchronization requires Enterprise Edition or the Carbon Cloud Business plan. The Exchange Rates service is available on every plan.
How the sync works
PaidOnce Sync is on, Carbon sends customers, vendors, items, sales invoices, bills, and automated GL journals to the provider. Carbon is the source of truth: Carbon changes take precedence, and stable record mappings prevent duplicates. Provider payments synchronize back to Carbon and settle the matching invoice or bill.
Journal mirroring is automatic while sync is on
While Sync is on, Carbon mirrors every automated GL posting to the connected provider. Journals with a Manual source do not synchronize.
A provider payment creates a Carbon payment and , then posts to Carbon's . Rillet, Xero and QuickBooks also accept outbound Carbon payments.
Connect a ledger
Xero and QuickBooks Online use OAuth. Rillet uses a per-company API key. Step-by-step: Connect Xero.
Authorize the connection
Authorize Xero or QuickBooks through OAuth, or enter the Rillet connection fields below.
Configure the sync
A new connection starts with Sync off, so nothing reaches the ledger while you set it up. Set the account mapping, dimensions, and posting-sync options (below). If the ledger already has customers and vendors, run Import customers & vendors now — it works while sync is off, and links them so the first sync updates them instead of creating duplicates.
Turn on sync
Turn on the Sync switch at the top of the integration. It stays locked until every account marked Required on the Account Mapping tab is mapped. Turning it off later pauses the sync again; a reconnect to the same organization keeps it where it was.
Run the initial sync
For Xero, select Run Initial Sync to seed the ledger. Subsequent changes synchronize continuously.
Rillet's connection fields:
api.rillet.com) or Sandbox (sandbox.api.rillet.com).QuickBooks Online is not available yet
The QuickBooks Online card reads Not Configured and cannot be installed. On a self-hosted deployment, Xero needs XERO_CLIENT_ID and XERO_CLIENT_SECRET; without them the connection fails with Xero OAuth not configured. See Environment variables. Rillet is always available because it authenticates with a per-company API key.
Configure the sync
An accounting integration has four tabs beyond the basic connection settings.
The Posting Sync tab controls three things:
Watch it run
The Sync Activity tab lists each operation's Status, Entity, Direction, Trigger, Attempts, Last Attempt, and Error. Filter by status, Retry or Skip a failed operation, Re-send a completed operation, or Retry all. Export CSV downloads every operation under the current status filter, with the document number, provider ID, and full error. Carbon creates an in-app notification when failures remain after an outbound run.
Weekly reconciliation writes the Sync Tie-Out report under Accounting → Reports → Sync Tie-Out. Each row compares Posted, Synced, and Provider balances for one accounting period, account, and integration. The report flags Internal and External Delta values.
Sync Activity is for operators, Tie-Out is for the books
Use Sync Activity to inspect individual operations. Use Tie-Out to compare ledgers by account and period. Sync Activity links to the integration's tie-out summary.
Exchange rates
Enable Exchange Rates to refresh currency rates daily. It requires no additional configuration and is available on every plan.
Carbon Cloud retrieves rates from exchangeratesapi.io with a EUR base, then converts them to each company's base currency.