> ## Documentation Index
> Fetch the complete documentation index at: https://developers.pleo.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Accounts Payable Bookkeeping

export const RememberCallout = ({title, children}) => <div className="callout-box callout-remember">
    <div className="callout-row">
      <span className="callout-icon">
        <svg width="22" height="22" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="currentColor"><path d="M229.66,98.34,172.39,155.8c11.46,22.93-1.72,45.86-10.11,57a8,8,0,0,1-12,.83L42.34,105.76A8,8,0,0,1,43,93.85c29.65-23.92,57.4-10,57.4-10l57.27-57.46a8,8,0,0,1,11.31,0L229.66,87A8,8,0,0,1,229.66,98.34Z" opacity="0.2" /><path d="M235.32,81.37,174.63,20.69a16,16,0,0,0-22.63,0L98.37,74.49c-10.66-3.34-35-7.37-60.4,13.14a16,16,0,0,0-1.29,23.78L85,159.71,42.34,202.34a8,8,0,0,0,11.32,11.32L96.29,171l48.29,48.29A16,16,0,0,0,155.9,224c.38,0,.75,0,1.13,0a15.93,15.93,0,0,0,11.64-6.33c19.64-26.1,17.75-47.32,13.19-60L235.33,104A16,16,0,0,0,235.32,81.37ZM224,92.69h0l-57.27,57.46a8,8,0,0,0-1.49,9.22c9.46,18.93-1.8,38.59-9.34,48.62L48,100.08c12.08-9.74,23.64-12.31,32.48-12.31A40.13,40.13,0,0,1,96.81,91a8,8,0,0,0,9.25-1.51L163.32,32,224,92.68Z" /></svg>
      </span>
      <div>
        {title && <div className="callout-title">
            {title}
          </div>}
        <div className="callout-body">
          {children}
        </div>
      </div>
    </div>
  </div>;

export const BookkeepingMethodsAccountsPayableDiagram = () => {
  const [isDark, setIsDark] = useState(false);
  useEffect(() => {
    const check = () => setIsDark(document.documentElement.classList.contains("dark"));
    check();
    const observer = new MutationObserver(check);
    observer.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ["class"]
    });
    return () => observer.disconnect();
  }, []);
  const nodeFill = isDark ? "#212222" : "#EEF4F4";
  const nodeStroke = isDark ? "#848989" : "#E1E6E6";
  const nodeTextStyle = isDark ? ",color:#EEF4F4" : ",color:#131414";
  const subgraphFill = isDark ? "#131414" : "#ffffff";
  const subgraphStroke = isDark ? "#848989" : "#6B7070";
  const subgraphTextStyle = isDark ? ",color:#EEF4F4" : ",color:#131414";
  const linkStyle = isDark ? "" : "linkStyle default stroke:#848989,stroke-width:1px;";
  const themeVariables = {
    fontSize: "14px",
    ...isDark ? {} : {
      edgeLabelBackground: "#FAFCFC"
    }
  };
  const diagram = `
%%{init: {"themeVariables": ${JSON.stringify(themeVariables)}}}%%
flowchart TD
    A[Export Job Created in Pleo] --> B[Integration detects pending Export Job]
    B --> C[Mark Export Job as Started]
    C --> D[Pre-Export Validation: AS available?]
    D -->|No| E[Fail Export Job with failureReason]
    D -->|Yes| F[Fetch Export Items from Job]

    subgraph ItemLoop [For each Export Item]
      F --> G[Validate Item: required config & data?]
        G -->|No| H[Mark Item as Failed with failureReason]
        G -->|Yes| I[Accounts Payable Processing]

        subgraph APProcess [Per-Item AP Steps]
          I --> J[Create Invoice Entry &#40;vendor liability#41;]
          J --> K[Optional: Split Lines for multiple categories/tax treatments]
          K --> L[Create Payment Entry &#40;actual payment#41;]
          L --> M[Optional: Credit Note &#40;refund/chargeback#41;]
        end

        M --> N[Assign Accounting Period]
        N --> O[Apply Posting Behaviour &#40;Draft / Finalised#41;]
        O --> P[Update Export Item Status #40;Success/Failure#41;]
    end

    P --> Q{More Export Items?}
    Q -->|Yes| G
    Q -->|No| R[Update Export Job Status: Completed / Completed with Errors / Failed]

    %% Styling for wrapping
    style A white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}
    style B white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}
    style C white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}
    style D white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}
    style E white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}
    style F white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}
    style G white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}
    style H white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}
    style I white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}
    style J white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}
    style K white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}
    style L white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}
    style M white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}
    style N white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}
    style O white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}
    style P white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}
    style Q white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}
    style R white-space:normal,fill:${nodeFill},stroke:${nodeStroke}${nodeTextStyle}

    %% Make subgraph transparent with black border
    style ItemLoop fill:${subgraphFill},stroke:${subgraphStroke}${subgraphTextStyle}
    style APProcess fill:${subgraphFill},stroke:${subgraphStroke}${subgraphTextStyle}
${linkStyle}
`;
  return <Mermaid chart={diagram} />;
};

<RememberCallout title="Remember">Accounts Payable (AP) bookkeeping separates vendor liabilities from payments, supporting accurate reconciliation, auditability, and financial clarity in Accounting Systems.</RememberCallout>

Pleo supports Accounts Payable bookkeeping for Export Items that require tracking **vendor liabilities independently from payments**, unlike Journal Entry bookkeeping where expenses are recorded directly in the general ledger.

Each expense may generate:

* **Invoice entry** – represents the liability owed to a vendor
* **Payment entry** – represents the actual payment

This method enables:

* Accurate reconciliation of vendor invoices and payments
* Clear tracking of refunds, chargebacks, and credit notes
* Handling of split expenses with multiple categories or tax treatments
* Vendor-specific or single Accounts Payable GL account assignment

By understanding these principles, developers can anticipate **how exported expenses will appear in the Accounting System**, and how AP bookkeeping interacts with other export capabilities.

<BookkeepingMethodsAccountsPayableDiagram />

## Core Principles

### Invoice vs Payment Separation

* Each expense produces an **invoice entry** representing the vendor liability, and a **payment entry** representing the actual payment.
* Invoice and payment entries may be recorded independently and at different times.
* Many Accounting Systems provide **Invoice Objects** (e.g., Purchase Invoices in Business Central) to record liabilities separately from journal entries.
* Pleo exports create invoice entries in these objects, while payment entries may be applied by:
  * Marking the invoice object as paid, and/or
  * Recording a payment in a journal, depending on the Accounting System’s capabilities.

### Vendor Assignment

* Each expense must be linked to a **vendor**, which can be:
  * **Supplier** – external company providing goods or services
  * **Employee** – when an employee covers an expense out-of-pocket; the reimbursement is treated as the payment entry
* Correct vendor assignment ensures invoice and payment entries are recorded accurately.

### Accounts Payable GL Account

* All vendor liabilities are tracked through a dedicated **Accounts Payable account**.
* This account can be configured as:
  * Vendor-specific, or
  * A single account for all vendors, depending on the Accounting System.

### Refunds and Chargebacks

* Refunds and chargebacks are recorded as **credit notes**, acting as the inverse of invoices.
* Credit notes allow separate tracking of returned funds versus original invoices.
* Pleo supports exporting credit notes for applicable expenses if the Accounting System provides this functionality.

### Split Expenses

* Expenses with multiple categories or tax treatments are recorded as **separate lines** on the invoice.
* Payments may still be recorded as a single entry reflecting the total amount.
* This ensures both detailed accounting records and accurate reconciliation.

## Relationship to Other Export Concepts

Accounts Payable bookkeeping interacts with other export capabilities during **per-item processing**:

* **Accounts Mapping** – determines which GL accounts are debited and credited for invoices, payments, and credit notes
* **Data Mapping** – ensures amounts, dates, dimensions, identifiers, and VAT/tax information are recorded correctly
* **Attachment Handling** – links receipts and supporting documents to invoice, payment, or credit note entries
* **Accounting Periods** – assigns entries to the correct accounting period
* **Posting Behaviour** – determines whether entries are created as drafts or finalised

Understanding these relationships helps developers anticipate **how AP bookkeeping integrates into the Export Lifecycle**.

***

## What Comes Next?

To understand how AP bookkeeping is exported in practice, see:

* [Accounts Mapping](/docs/current/platform/exports/accounts-mapping)
* [Data Mapping](/docs/current/platform/exports/data-mapping)
* [Attachment Handling](/docs/current/platform/exports/attachments)
* [Accounting Periods](/docs/current/platform/exports/accounting-periods)
* [Posting Behaviour](/docs/current/platform/exports/posting-behaviour)

For alternative bookkeeping methods, see:

* [Journal Entry Bookkeeping](/docs/current/platform/exports/bookkeeping-methods-journal-entry)

***

## Related Reading

* [Export Lifecycle](/docs/current/platform/exports/lifecycle)
* [Bookkeeping Methods Overview](/docs/current/platform/exports/bookkeeping-methods-overview)
* [Integration Design - Accounts Payable Handling](/docs/current/integration-design/exports/integration-design-exports-bookkeeping-method-accounts-payable)
* [AS/ERP Processing Workflow Guide](/docs/current/guides/accounting-system-processing-workflow-guide)

***
