Purpose of Chart of Accounts Sync
Chart of Accounts Sync exists to:- Remove the need to manually create or maintain accounts in Pleo
- Reflect the current state of the Chart of Accounts from the Accounting System
- Enable accurate bookkeeping by ensuring expense categories map to the correct accounts
- Keep account data synchronised between systems
Core Concept
Chart of Accounts Sync is based on a direct mapping between systems:| Accounting System | Pleo |
|---|---|
| Chart of Accounts entry | Account |
| Account identifier | Account externalId |
| Account number | Account code |
| Account name | Account name |
| Default tax code reference | Account taxCodeExternalId |
How Accounts Are Used in Pleo
Accounts synced into Pleo are not assigned directly to expenses. Instead, bookkeepers map each expense category to an account in the Pleo Web App. When a spender assigns a category to an expense, the account mapped to that category is what gets used for bookkeeping and exported to the Accounting System. The full chain is:- Accounting System Chart of Accounts: the source of account data
- Pleo Chart of Accounts: accounts are synced in and kept up to date via Chart of Accounts Sync
- Pleo Categories: bookkeepers map each category to an account in the Pleo Web App
- Expenses: when a spender selects a category on an expense, the mapped account is used for bookkeeping
What Happens in Pleo Once Synchronised
- Each active account from the Accounting System is reflected as an account in Pleo
- Accounts are available for bookkeepers to assign to expense categories
- If an account’s name or code changes in the Accounting System, it is updated in Pleo on the next sync
- Accounts no longer active in the Accounting System are archived in Pleo
System Guarantees
These are invariant rules that always hold true regardless of implementation or sync frequency.| Guarantee | Description |
|---|---|
| Source of Truth | The Accounting System is the authoritative source of all account data |
| Structural Mapping | Accounts map directly from the Accounting System into Pleo |
| Identity Model | Matching is performed using externalId, not account name or code |
| Non-Destructive Behaviour | Accounts are never deleted; they are only archived when no longer active in the Accounting System |
| Idempotency | Re-running a sync produces the same final state without duplication |
Responsibility Model
Integrator Responsibilities
The integration is responsible for all synchronisation logic and API interaction.| Area | Responsibility |
|---|---|
| Connection | Connect to the Accounting System |
| Data Retrieval | Retrieve active accounts from the Chart of Accounts |
| Sync Execution | Execute reconciliation operations in Pleo via the Chart of Accounts API |
| Scheduling | Define and execute sync schedule (including optional manual triggers) |
Pleo Responsibilities
Pleo provides storage, user experience, and downstream usage of accounts.| Area | Responsibility |
|---|---|
| Data Storage | Store accounts |
| User Interface | Display accounts for category assignment |
| Category Mapping | Allow bookkeepers to assign accounts to expense categories |
| Data Retention | Retain archived accounts for historical consistency |
High-Level Process
Chart of Accounts Sync runs as a single reconciliation process:- Fetch active accounts from the Accounting System
- Fetch accounts from Pleo (active and archived)
- Reconcile: match by
externalIdand apply create, update, unarchive, or archive operations
Operational Model
Sync Direction
Chart of Accounts Sync is one-way only:- The Accounting System is the source of truth
- The integration synchronises data from the Accounting System into Pleo
- Pleo does not modify Accounting System data
Operational Constraints
| Constraint | Description |
|---|---|
| Scheduling Ownership | The integration is responsible for defining when sync runs occur, including optional manual triggers |
| Sync Execution | The integration is responsible for executing sync runs and applying all changes to Pleo via the API |
| Execution Model | Each sync run performs full reconciliation of Pleo against the Accounting System |
| Rate Limits | The integration must respect Accounting System API rate limits. See Pleo API rate limits. |
| Concurrency | Sync runs must not overlap; only one execution may run at a time |
Sync Lifecycle and Frequency
The integration is responsible for triggering all sync runs. For schedule, frequency, and rate limit details, see Chart of Accounts Sync Periodicity and Scheduling.Related Reading
- Integration Design: Chart of Accounts Sync Overview
- Chart of Accounts Sync Workflow Guide
- Connection and Authorisation Overview