Skip to main content
Data Mapping defines how Export Item data must be translated into Accounting System (AS) journal or invoice fields. Mappings are applied after:
  • Export Items are fetched
  • Pre-validation has passed
  • Accounts Mapping has been resolved

Implementation

See the corresponding how-to article for API usage and step-by-step instructions:

Mapping Order (Implementation Flow)

Integrations should apply mappings in the following order:
  1. Mandatory datapoints (always required)
  2. Invoice datapoints (invoice-related items only)
  3. Optional datapoints (system-dependent)
  4. Apply VAT handling rules
Mapped datapoints are then used to construct journal entries or invoices in the Accounting System according to the selected bookkeeping method.

Mandatory Datapoints

Mandatory datapoints represent the minimum information required for reconciliation and accounting accuracy.

Required Data

  • Expense GL Account (Category)
  • Expense amount (wallet currency, derived from line amounts)
  • Accounting Dimensions (Tags)
  • Tax Code
  • Expense Date
  • Reconciliation ID
  • Reconciled Entries (reimbursements)
  • Consolidated Description
  • Vendor (Accounts Payable only)
  • Attendees Information

Mandatory Datapoint Mapping (Pleo → AS)

Entry-Level Mapping

Accounting ConceptPleo API FieldNotes
Expense Datedata[].dateTransaction date
Reconciliation IDdata[].additionalInformation.reconciliationIdMap to external reference or description field (≥50 chars)
Reconciled Entriesdata[].additionalInformation.reconciledEntriesUsed for reimbursement linking; map to reference/description field (≥50 chars)
Attendeesdata[].additionalInformation.attendeesMap to description/comment field (≥100 chars)
Description / Notedata[].supplier.name + data[].user.name + data[].noteConcatenated description (use initials if length constrained)

Accounts Payable Only (Entry-Level)

Accounting ConceptPleo API FieldNotes
Vendor Namedata[].vendor.nameRequired for accounts_payable
Vendor Codedata[].vendor.codeUsed for vendor matching in AS

Line-Level Mapping

Accounting ConceptPleo API FieldNotes
Expense GL Accountdata[].accountingEntryLines[].account.codeExpense/category account
Expense Amount (Wallet, per line)data[].accountingEntryLines[].lineAmount.inWalletCurrency.valueSum lines if AS requires total
Currency Codedata[].accountingEntryLines[].lineAmount.inWalletCurrency.currency
Dimensiondata[].accountingEntryLines[].tags.groupCodee.g. Project, Cost Center
Dimension Valuedata[].accountingEntryLines[].tags.code
Tax Codedata[].accountingEntryLines[].tax.code
Tax Ratedata[].accountingEntryLines[].tax.rateOnly if required (usually derived from Tax Code in AS)

Invoice Datapoint Mapping

Invoice datapoints extend mandatory mappings with supplier invoice information.

Rules

  • invoice → use Supplier currency
  • invoice_payment → use Wallet currency
  • Provide exchange rate if required by the Accounting System
Accounting ConceptPleo API FieldNotes
Invoice Due Datedata[].additionalInformation.invoiceInformation.dueDateDedicated due date field
Invoice Datedata[].additionalInformation.invoiceInformation.invoiceDate
Invoice Numberdata[].additionalInformation.invoiceInformation.invoiceNumber
Payment Datedata[].additionalInformation.invoiceInformation.paymentDateFor payment entries
Supplier Amountdata[].accountingEntryLines[].lineAmount.inSupplierCurrency.valueLine-level
Supplier Currencydata[].accountingEntryLines[].lineAmount.inSupplierCurrency.currencyUse AS foreign currency field

Optional Datapoints

Optional datapoints improve reporting but must never replace mandatory data.

Examples

  • Internal document number
  • Net and tax amounts
  • Team dimensions
  • Export job date

Optional Datapoint Mapping

Accounting ConceptPleo API FieldNotes
Net Amountdata[].accountingEntryLines[].netAmount.inWalletCurrency.valueOnly if AS requires net values for tax calculation
Net Currencydata[].accountingEntryLines[].netAmount.inWalletCurrency.currency
Tax Amountdata[].accountingEntryLines[].tax.amount.inWalletCurrency.valueOnly if AS cannot calculate VAT
Tax Currencydata[].accountingEntryLines[].tax.amount.inWalletCurrency.currency
Team (Dimension)data[].team.codeMap to configured dimension value
Internal Document Number(AS generated)Do not overwrite; allow AS to assign
Export Date(integration-defined)Use instead of expense date when posting aggregated entries

VAT Handling

VAT handling depends on Accounting System capabilities.

Default Behaviour

The Accounting System calculates VAT using:
  • line amounts
  • tax codes

When to Send VAT Amounts

Only send VAT values if the Accounting System:
  • cannot calculate tax automatically, or
  • requires explicit VAT posting
  • If AS calculates VAT → do NOT send VAT amount
  • If AS cannot calculate VAT → send VAT from Pleo

Upstream Dependencies

  • Export Job has been claimed (status = in_progress)
  • Fetch Export Item Data (data layer)
  • Bookkeeping method resolved
  • Accounts Mapping – determines which GL accounts are debited and credited

Downstream Dependencies

  • Attachment Handling – links receipts and supporting documentation
  • Accounting Periods – assigns entries to the correct accounting period
  • Posting Behaviour – determines whether entries are created as drafts or finalised
  • Export Item status update – updates outcome of Export Item (successful or failed)
  • Export Job status update – updates outcome of Export Job (completed, completed_with_errors or failed)

What Comes Next?