Tax Sync Execution Model
Tax Sync is a deterministic reconciliation process executed by the integration. On each sync run, the integration:- Retrieves relevant active Tax Codes from the Accounting System (filtering out irrelevant or inactive codes)
- Retrieves the current state of Tax Codes from Pleo (active and archived)
- Reconciles Pleo to match the Accounting System state
- Applies the required create, update, unarchive, and archive operations via the Pleo Tax Codes API
High-Level Process
Matching Model
Tax Codes are matched to their AS counterparts using thecode field. For full matching rules, see Sync Tax Codes.
Sync Process
Tax Sync runs as a single reconciliation step on every sync cycle. The integration fetches relevant active tax codes from the Accounting System and all Tax Codes (active and archived) from Pleo, then reconciles the two using thecode field.
Filtering
Before reconciliation, the integration must filter the tax codes retrieved from the Accounting System:- Exclude tax codes not relevant to expense management (for example: Sales VAT)
- Exclude blocked, inactive, or archived tax codes
Reconciliation Outcomes
| Condition | Result |
|---|---|
| Matching active Tax Code in Pleo, details match | Preserve existing Tax Code |
| Matching active Tax Code in Pleo, details differ | Update Tax Code name, rate, and type to match AS |
| Matching archived Tax Code in Pleo | Unarchive Tax Code and update details if needed |
| No matching Tax Code in Pleo | Create new Tax Code with code, name, rate, and type |
| Duplicate codes in Pleo | Retain the Tax Code matching the AS rate; archive the duplicate |
Tax Code Types
Pleo supports two tax code types:inclusive and reverse. For full type mapping rules, see Tax Sync Data Mapping.
Execution Requirements
| Requirement | Description |
|---|---|
| Scheduling Ownership | The integration defines sync timing and execution frequency |
| Full Reconciliation | Every sync execution reconciles against full Accounting System state |
| Non-Overlapping Execution | Sync executions must not overlap |
| API Ownership | All changes are applied through the Pleo Tax Codes API. See the how-to article for step-by-step implementation instructions. |
| Rate Limit Handling | Scheduling must respect the Pleo Tax Codes API rate limit. |
Processing Principles
| Principle | Description |
|---|---|
| Unidirectional Sync | Data only flows from the Accounting System into Pleo |
| Idempotent Execution | Re-running the same sync with unchanged data produces the same final state |
| Deterministic Reconciliation | Identical inputs must produce identical outputs |
| Non-Destructive Updates | Tax Codes are archived instead of deleted |
| Consistent Identity Resolution | Matching logic must behave consistently across executions |
| Stateless Execution | Each sync run must independently reconcile against current source state |
Expected Outcome
After implementation:- Pleo accurately reflects the active, relevant tax codes from the Accounting System
- Tax Codes remain stable across repeated sync runs
- Outdated tax codes are archived automatically
- Bookkeepers always have current, accurate tax codes available for expense assignment
What Comes Next?
Related Reading
- Platform Capabilities: Tax Sync Overview
- Tax Sync Workflow Guide
- Connection and Authorisation Overview