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

Paid

Once 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.

NOTE

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:

FieldType
The Rillet API key that authenticates the connection. Stored as a secret.
Production (api.rillet.com) or Sandbox (sandbox.api.rillet.com).
Optional. The Rillet subsidiary (entity) that Carbon posts into, for multi-entity ledgers.
Optional secret. Inbound payment write-back stays off until this is set.
HEADS UP

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.

FieldType
Map each Carbon posting account to a code in the provider's chart of accounts. Posted journals push using the mapped provider account. Use Suggest with AI or Match by code to fill the map, then resolve anything left unmapped.
Map Carbon dimensions to the provider's tracking slots. Xero and QuickBooks expose two slots. Rillet sends every dimension on each line and provisions the matching fields automatically, so the slot editor does not apply to it.
Choose how posted journals reach the ledger (see below).
Watch every sync operation and retry the ones that failed (see below).

The Posting Sync tab controls three things:

FieldType
Posted journals with these source types always sync. A per-type Daily summary toggle groups a day's journals of that type into one provider entry instead of sending each individually.
How receivables and payables reach the ledger. Each is either Documents (push the invoice or bill itself) or Off — handled outside the sync.
A manual date before which Carbon will not push new entries, so a closed period stays closed.

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.

TIP

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.

NOTE

Carbon Cloud retrieves rates from exchangeratesapi.io with a EUR base, then converts them to each company's base currency.