What You’ll Have Built
After implementing this workflow:- Active accounts from the AS are reflected as Accounts in Pleo.
- Accounts are automatically kept up to date on a scheduled basis.
- Bookkeepers can assign current, accurate accounts to expense categories in Pleo.
- The integration aligns with Pleo’s Chart of Accounts Sync guarantees and matching model.
Who This Guide Is For
This guide is intended for:- Integration developers
- Solution architects
- Accounting platform integrators
Before You Start
You should be familiar with:- Pleo’s supported authentication methods.
- The Chart of Accounts Sync platform capabilities page.
Chart of Accounts Sync Workflow Overview
The Chart of Accounts in the Accounting System is the definitive list of accounts used to classify and bookkeep expenses. Each account has a code (the account number visible to admins/bookkeepers), a name, and a stableexternalId that uniquely identifies it in the AS.
Chart of Accounts Sync copies this structure into Pleo. The Accounting System is the source of truth; the integration’s role is to keep Pleo’s Accounts aligned with the current state of the AS so bookkeepers always have accurate, up-to-date options when assigning accounts to expense categories.
Unlike Tags Sync, Chart of Accounts Sync does not have a selection step. All active accounts from the AS are synchronised into Pleo.
The how-to articles in this section use a consistent example to illustrate each step. The table below shows the starting state in both systems before the sync runs.
| Account (AS) | AS Status | Account (Pleo) | Pleo Status | Desired Pleo State |
|---|---|---|---|---|
| 1000 - Office Supplies | Active | 1000 - Office Supplies | Active | Active (no change) |
| 2000 - Travel | Active | 2000 - Travel | Archived | Unarchived |
| 3000 - Software | Active | — | Does not exist | Created |
| 4000 - Marketing | Active | 4000 - Advertising | Active | Updated to match AS |
| — | — | 5000 - Entertainment | Active | Archived (not in AS) |
| Step | Integration action | Outcome |
|---|---|---|
| 1. Fetch and Match Accounts | Fetches accounts from AS and Pleo, matches by externalId | Each account is paired with a required action |
| 2. Create, Update, and Archive Accounts | Creates, updates, unarchives, and archives Accounts in Pleo | Pleo reflects the current Chart of Accounts |
Steps
1. Fetch and Match Accounts
Purpose
This step runs at the start of every Chart of Accounts Sync cycle. The integration retrieves all active accounts from the Accounting System and all Accounts from Pleo (active and archived), then matches them using theexternalId field to determine what action is needed for each account.
Input
- Active accounts from the AS Chart of Accounts
- Active and archived Accounts from Pleo. Archived Accounts are included so they can be unarchived rather than duplicated if an account becomes active in the AS again.
Workflow Process
Output
- Each AS account matched to a Pleo Account (or identified as new)
- Each Pleo Account identified as requiring creation, unarchiving, updating, or no action
- Active Pleo Accounts with no AS match flagged for archiving
Why It Matters
The matching step is the foundation of the reconciliation. Accurate matching byexternalId ensures accounts are updated rather than duplicated, and that accounts removed from the AS are archived rather than left stale in Pleo.
Integration Design
If you’re an integration developer or architect, read the Sync Accounts integration design doc before implementing this step. It covers the matching rules, archiving behaviour, thetaxCodeExternalId reference field, and how the sync handles each reconciliation outcome.
Step-by-Step Instructions
When you’re ready to start implementing, follow the step-by-step instructions in the accompanying how-to article.2. Create, Update, and Archive Accounts
Purpose
This step runs immediately after the matching step. For each account requiring action, the integration creates, updates, unarchives, or archives the corresponding Account in Pleo. After all AS accounts are processed, any active Pleo Account with no matching AS account is archived.Input
- Active accounts from the AS Chart of Accounts (used to drive create, update, and unarchive operations)
- The matched account set from Step 1, identifying which Pleo Accounts require action and which active Pleo Accounts have no AS match
Workflow Process
Output
- Accounts created for AS accounts with no existing match in Pleo
- Archived Accounts unarchived where an active AS account matches
- Account names and codes updated where they differ from the current AS
- Active Accounts archived where their AS account is no longer active
Why It Matters
These write operations bring Pleo’s Chart of Accounts into alignment with the AS. Without them, the account list in Pleo will drift out of date, causing bookkeepers to assign incorrect accounts to expense categories before export.Integration Design
If you’re an integration developer or architect, read the Sync Accounts integration design doc before implementing this step. It covers the API operations, request and response structure, and the data mapping requirements.Step-by-Step Instructions
When you’re ready to start implementing, follow the step-by-step instructions in the accompanying how-to article.What Comes Next?
Once Chart of Accounts Sync is live, admin/bookkeepers and spenders can start using the synced accounts in Pleo:- How to set up your categories: See how Admins/Bookkeepers map accounts to expense categories in Pleo.
- Get reimbursed for out-of-pocket expenses: See how spenders assign a category when submitting an expense via the Pleo Mobile App.
- Tax Sync: Sync tax codes from your Accounting System into Pleo.