Axiomatic

Integrations

Connect Xero, Brex, Ramp, and other financial platforms to sync transactions automatically.

Overview

Axiomatic's connector framework syncs transaction data from external financial platforms into your ledger. Each connection is configured per entity with provider-specific credentials and an optional auto-sync schedule.

Supported Integrations

ProviderAuth TypeData Synced
XeroOAuth 2.0Bank transactions, invoices
BrexAPI keyCard transactions, cash transactions
RampAPI keyCard transactions, reimbursements
PlaidOAuth (Link)Bank, credit card, loan, investment accounts
MercuryAPIBank transactions
StripeAPI keyRevenue transactions
QuickBooksOAuth 2.0Accounting data
CSV UploadManual file import
Custom WebhookInbound event payloads

Setting Up Xero

Xero uses OAuth 2.0 for authentication.

  1. Navigate to Settings → Connections and click New Connection
  2. Select Xero as the provider
  3. Click Connect — you'll be redirected to Xero's authorization page
  4. Sign in to your Xero account and authorize Axiomatic
  5. After redirect, Axiomatic stores your access token, refresh token, and tenant ID
  6. The connection appears as Active and is ready to sync

Xero Configuration

OptionDefaultDescription
syncBankTransactionstrueSync authorized and reconciled bank transactions
syncInvoicestrueSync invoices (excluding drafts and deleted)

Tokens refresh automatically before expiration.

Setting Up Brex

Brex uses an API key for authentication.

  1. In Brex, go to Developer → API Keys and create a new key with read access to transactions
  2. In Axiomatic, navigate to Settings → Connections and click New Connection
  3. Select Brex as the provider
  4. Enter your API token
  5. Click Save

Brex syncs both card transactions and cash transactions from your primary accounts.

Setting Up Ramp

Ramp uses an API key for authentication.

  1. In Ramp, generate an API token from the developer settings
  2. In Axiomatic, navigate to Settings → Connections and click New Connection
  3. Select Ramp as the provider
  4. Enter your API token
  5. Click Save

Ramp syncs cleared card transactions and reimbursements.

Auto-Sync Configuration

Each connection can be configured with a sync frequency:

FrequencyBehavior
ManualSync only when you click Sync Now
HourlyAutomatically syncs every hour
DailyAutomatically syncs every 24 hours
RealtimeSyncs continuously via webhooks (where supported)

A scheduled job checks for connections that are due for sync based on their frequency and lastSyncAt timestamp. Only connections with Active status are included.

To change the sync frequency, edit the connection in Settings → Connections.

Manual Sync

Click Sync Now on any connection to trigger an immediate sync regardless of the configured frequency.

Sync Status and Monitoring

Each connection tracks its sync state:

FieldDescription
StatusACTIVE, PAUSED, ERROR, DISCONNECTED
Last SyncTimestamp of the most recent sync
Last Sync StatusSUCCESS, PARTIAL, FAILED, RUNNING
Last Sync ErrorError message if the last sync failed

Sync Logs

View detailed sync history by clicking on a connection. Each log entry shows:

  • Start and completion time
  • Transactions created
  • Duplicates skipped
  • Quarantined transactions (needing review)
  • Errors encountered

Real-Time Notifications

Sync progress broadcasts via Pusher on the entity channel:

EventDescription
sync:startedSync has begun
sync:progressIn-progress counts
sync:completedFinal totals including duplicates and errors
sync:failedFailure with error details

Troubleshooting Connection Issues

Connection Shows ERROR Status

The connection status changes to ERROR when a sync fails completely. Common causes:

  • Expired credentials — Re-authorize OAuth connections (Xero, QuickBooks) or regenerate the API key (Brex, Ramp)
  • Revoked access — Verify the integration is still authorized in the provider's settings
  • Rate limiting — The system retries on HTTP 429 responses automatically, but sustained rate limiting may cause failures

To resolve: fix the underlying issue, then click Sync Now to retry. A successful sync resets the status to ACTIVE.

Partial Sync

A PARTIAL sync status means some data was synced but errors occurred for a subset. Check the sync logs for details on which transactions failed and why.

Duplicate Transactions

The sync engine uses provider-specific transaction IDs to deduplicate. If you see duplicate entries, check whether the same account is connected through multiple providers (e.g. both Plaid and a direct integration).

Quarantined Transactions

Transactions that can't be processed normally are quarantined for manual review. Common reasons include missing account mappings or unrecognized transaction types.

Migrating from QuickBooks / Xero

When migrating from an existing accounting system, Axiomatic supports two migration modes via the migration wizard at Import → Migrate:

Start Fresh from a Date (Cutover)

Choose a go-live date and import a trial balance as of that date. Accounting periods are generated from the cutover date forward only — no historical periods to close or audit. Bank feeds sync transactions from the cutover date forward.

This is the recommended approach for most companies. Your historical data stays in your previous system.

Import Full History

Sync all available historical transactions from your bank connections. Historical periods are automatically closed as Migrated, allowing you to start closing current periods immediately without auditing imported data.

Use this when you want a complete audit trail in Axiomatic.

For a detailed walkthrough, see the Migration Guide.

Disconnecting

You can disconnect a connection from Import & Sync or Settings → Integrations. Two modes are available:

Disconnect Only

Stops syncing but preserves all imported transactions, events, and journal entries. The linked accounts are deactivated and the Plaid access token is revoked. You can reconnect later and resume syncing.

Disconnect & Remove All Data

Permanently deletes all data imported through this connection:

  • Staged transactions
  • Events (auto-promoted and opening balance)
  • Journal entries and journal lines
  • Match history, execution traces, and canonical settlements
  • Linked account balances and the linked accounts themselves

A preview screen shows exactly what will be deleted before you confirm. The purge is atomic — either everything is deleted or nothing is.

Hard-closed accounting periods will block the purge if any journal entries fall within them, since hard-closed periods cannot be reopened. Soft-closed periods do not block purges.

On this page