Skip to main content
Tax Sync is how Pleo keeps its Tax Codes up to date by synchronising tax code records from an external Accounting System into Pleo. It ensures bookkeepers always have an accurate, current list of tax codes to reference when assigning tax codes to expenses in Pleo, without having to manually maintain those codes.

Purpose of Tax Sync

Tax Sync exists to:
  • Remove the need to manually create or maintain Tax Codes in Pleo
  • Reflect the current state of active tax codes from the Accounting System
  • Enable accurate bookkeeping by ensuring expenses carry the correct tax codes before export
  • Keep tax code data synchronised between systems

Core Concept

Tax Sync is based on a direct mapping between systems:
Accounting SystemPleo
Tax code entryTax Code
Tax code identifierTax Code code
Tax code nameTax Code name
Tax rateTax Code rate
Reverse taxTax Code type: reverse
All other taxesTax Code type: inclusive
For detailed field-level mapping, see Tax Sync Data Mapping.

How Tax Codes Are Used in Pleo

Tax Sync works alongside Chart of Accounts Sync as part of Level 3. Both must be in place for the full tax assignment flow to work: accounts are synced and mapped to categories, tax codes are synced, and the bookkeeper then sets a default tax code on each category in the Pleo Web App. From that point, when a spender selects a category on an expense, the default tax code is automatically applied. The full chain is:
  1. Accounting System Tax Codes: the source of tax code data, synced into Pleo via Tax Sync
  2. Accounting System Chart of Accounts: accounts are synced into Pleo via Chart of Accounts Sync and mapped to categories by the bookkeeper
  3. Pleo Categories: the bookkeeper sets a default tax code on each category in the Pleo Web App
  4. Expenses: when a user selects a category, the default tax code is auto-selected; the bookkeeper confirms or overrides before export
  5. Export: the expense is exported to the Accounting System with the assigned tax code
This is why keeping Pleo’s Tax Codes accurate matters: if the tax code data is stale or incorrect, expenses may carry the wrong tax codes when exported.

What Happens in Pleo Once Synchronised

  • Each active, relevant tax code from the Accounting System is reflected as a Tax Code in Pleo
  • Tax Codes are available for bookkeepers to assign to expenses
  • If a tax code’s name or rate changes in the Accounting System, it is updated in Pleo on the next sync
  • Tax Codes no longer active in the Accounting System are archived in Pleo
This ensures expenses always reference the correct tax codes without requiring manual input.

System Guarantees

These are invariant rules that always hold true regardless of implementation or sync frequency.
GuaranteeDescription
Source of TruthThe Accounting System is the authoritative source of all tax code data
Structural MappingTax Codes map directly from the Accounting System into Pleo
Identity ModelMatching is performed using code, not tax code name
Non-Destructive BehaviourTax Codes are never deleted; they are only archived when no longer active in the Accounting System
IdempotencyRe-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.
AreaResponsibility
ConnectionConnect to the Accounting System
Data RetrievalRetrieve active, relevant tax codes from the Accounting System
FilteringExclude tax codes not relevant to expense management (e.g. Sales VAT) and blocked or inactive codes
Sync ExecutionExecute reconciliation operations in Pleo via the Tax Codes API
SchedulingDefine and execute sync schedule (including optional manual triggers)

Pleo Responsibilities

Pleo provides storage, user experience, and downstream usage of tax codes.
AreaResponsibility
Data StorageStore Tax Codes
User InterfaceDisplay Tax Codes for assignment to expenses
Data RetentionRetain archived Tax Codes for historical consistency

High-Level Process

Tax Sync runs as a single reconciliation process:
  1. Fetch relevant active tax codes from the Accounting System (filtering out irrelevant or inactive codes)
  2. Fetch Tax Codes from Pleo (active and archived)
  3. Reconcile: match by code and apply create, update, unarchive, or archive operations
Each sync run reconciles Pleo against the current state of the Accounting System.

Operational Model

Sync Direction

Tax 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

ConstraintDescription
Scheduling OwnershipThe integration is responsible for defining when sync runs occur, including optional manual triggers
Sync ExecutionThe integration is responsible for executing sync runs and applying all changes to Pleo via the API
Execution ModelEach sync run performs full reconciliation of Pleo against the Accounting System
Rate LimitsThe integration must respect Accounting System API rate limits. See Pleo API rate limits.
ConcurrencySync 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 Tax Sync Periodicity and Scheduling.