Skip to main content
Accounts Mapping determines which General Ledger (GL) accounts are used to record debit and credit entries for each Export Item. All exported expenses follow double-entry bookkeeping, meaning every transaction must have both:
  • a debit account
  • a credit (counter) account
Accounts Mapping occurs after:

Implementation

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

Mapping Inputs

Accounts Mapping depends on:
  • data[].type and data[].subType (e.g., card_purchase, invoice, wallet_topup)
  • Expense category (Expense GL Account)
  • Bookkeeping method:
    • journal
    • accounts_payable

Required Account Configuration

The integration must obtain the following GL accounts from user configuration in the Accounting System:
  • Pleo Wallet Account
  • Pleo Out-of-Pocket Account
  • Pleo Contra Account
  • Accounts Payable Account (fallback)
These accounts define the base posting structure used across all Export Items.

Vendor-Specific Accounts Payable

When Accounts Payable Applies

If:
data[].bookkeeping.method = accounts_payable
the counter account is determined using vendor resolution logic.

Vendor Resolution Logic

  1. If data[].vendor exists:
  • Match vendor in the Accounting System using:
    • vendor.code (preferred)
    • or supplier.code (legacy support)
  1. If a match is found:
  • Use vendor-specific Accounts Payable account
  1. If no match or vendor is missing:
  • Use fallback Accounts Payable account from configuration

Example

  • Vendor = ACME Ltd → matched → 2901-AP-ACME
  • Vendor not found → 2000-AP-Default

Expense Booking Logic

Scope

This section defines how debit and credit accounts are assigned once:
  • bookkeeping method is resolved
  • (for Accounts Payable) vendor resolution is completed

Line-Level Expense Account

Each Export Item line provides the expense (debit) account:
data[].accountingEntryLines[].account

Fields

  • id – internal Pleo account ID
  • name – category name
  • code – ERP-facing GL account code
  • identifier – ERP-facing identifier

Counter Account Sources

The counter account is determined as follows:

Journal Entries

If:
data[].bookkeeping.method = journal
Counter account is determined using:
  • data[].type + data[].subType
  • Expense Type Mapping rules
  • data[].contraAccount (when provided)
  • configured accounts:
    • Wallet account
    • Out-of-pocket account
    • Contra account

Accounts Payable Entries

If:
data[].bookkeeping.method = accounts_payable
Counter account is:
  • vendor-specific AP account (if resolved)
  • otherwise fallback AP account

Mapping Rule Summary

  1. Identify bookkeeping method
  2. Set expense (debit) account from:
    • data[].accountingEntryLines[].account
  3. Determine counter account:
    • journal
      • Based on Expense Type Mapping rules
      • data[].type + data[].subType
      • data[].contraAccount (if applicable)
      • configured wallet / out-of-pocket / contra accounts
    • Accounts Payable
      • Vendor-specific Accounts Payable account if matched
      • Otherwise fallback Accounts Payable account

Example Mapping Table

Export Item TypeBookkeeping MethodDebit Account (Expense)Credit Account (Counter)
card_purchasejournaldata[].accountingEntryLines[].accountdata[].contraAccount (wallet/bank)
invoiceaccounts_payabledata[].accountingEntryLines[].accountVendor AP account or fallback
wallet_topupjournalWallet accountContra account (direction depends on flow)

Expense Type Mapping Dependency

Accounts Mapping relies on Expense Type Mapping, which defines:
  • how type and subType determine accounting treatment
  • how counter accounts are selected for journal entries

Upstream Dependencies

  • Export Job has been claimed (status = in_progress)
  • Fetch Export Item Data (data layer)
  • Bookkeeping method resolved

Downstream Dependencies

  • Data Mapping – ensures amounts, dates, dimensions, identifiers, and VAT/tax information are recorded correctly
  • 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?