Pleo Integration: Sync Company Card Spend
Connect Pleo to DualEntry so company card transactions, out-of-pocket employee expenses, and receipt data flow into your general ledger automatically. The connection is delivered by APIWorx, a managed integration platform that sits between Pleo and DualEntry. The connector codes each Pleo expense to a GL account, cost center, and (where used) project or department, carries the VAT, and posts it to DualEntry so spend is captured continuously without manual export or re-keying.
The flow is inbound only: Pleo spend moves into DualEntry, and DualEntry does not push your chart of accounts or journal entries back to Pleo. Transactions sync near real time on Pleo events where webhooks are available, and on a configurable batch schedule (for example, a daily export of the prior day’s settled transactions) otherwise.
Prerequisites
Confirm the following before APIWorx provisions the connector. Each item maps to a configuration step that cannot be completed without it, so a gap here stops setup partway through rather than at first sync.
- Admin access to your Pleo organization, used to authorize the Pleo API connection.
- Admin access to your DualEntry company, used to authorize the DualEntry connection and confirm account mappings.
- Your chart of accounts finalized in DualEntry. Each Pleo expense category is mapped to a GL account, so the target accounts must exist before mapping.
- Your VAT tax treatments configured in DualEntry, so the connector can carry the VAT amount and rate from each Pleo transaction to a matching DualEntry tax line.
- Cost centers, departments, or projects set up in DualEntry if you plan to map Pleo cost centers or teams to a dimension. This mapping is optional.
- An APIWorx engagement for the DualEntry + Pleo connector. APIWorx hosts and operates the connector; the setup steps below are completed with your APIWorx implementation contact.
How the connector works
The connector moves spend from Pleo into DualEntry in a single direction through APIWorx. A new or updated expense in Pleo, whether a card transaction or an out-of-pocket reimbursement, triggers the sync; APIWorx retrieves the record, applies your mappings, and posts the result to DualEntry. Webhooks drive near real time syncs where Pleo exposes them, and a configurable batch schedule covers everything else.
APIWorx runs the connector as a managed service on its own infrastructure, with continuous monitoring and logging. You do not host or run anything yourself, and there is no Pleo connector tile inside the DualEntry application. Mapping changes and sync settings are maintained through APIWorx rather than in DualEntry.
The connector performs six jobs on each synced record:
- Expense capture. Retrieves card transactions and out-of-pocket expenses from Pleo, including merchant, amount, currency, date, cardholder or employee, category, VAT, and receipt status.
- GL coding. Maps each Pleo expense category to a DualEntry GL account and applies cost-center, department, or project dimensions where configured.
- Tax handling. Carries the VAT amount and rate to the matching DualEntry tax treatment.
- Posting. Creates the expense entry (or card-payable entry) in DualEntry, attributed to the correct cardholder and account.
- Receipt and audit data. Carries the receipt-attached status and Pleo transaction ID onto each posted entry so it is traceable back to its source for audit.
- Updates and reversals. Reflects edits, recategorizations, and reversals made in Pleo as corresponding adjustments in DualEntry.
What syncs into DualEntry
The connector imports two record types from Pleo: company card transactions and out-of-pocket employee expenses. Both arrive in DualEntry as posted entries attributed to the cardholder or employee and the cost center that incurred the spend, so the resulting records carry through to your AP and GL workflows the same way a manually entered card expense would.
The table below summarizes what flows from Pleo into DualEntry on each sync:
| Pleo record | DualEntry record | Notes |
|---|
| Card transaction (purchase) | Expense or card-payable entry | Debits the mapped expense GL account, credits the Pleo card-payable account. |
| Card transaction (reversal) | Adjustment entry | Reverses the original purchase against the same accounts. |
| Out-of-pocket expense | Expense entry | Attributed to the employee for reimbursement. |
| Receipt status | Audit reference on the entry | Receipt-attached status and Pleo transaction ID are carried onto the posted entry. |
Edits made in Pleo after a record has synced (recategorizations, amount changes, reversals) come through as adjustments rather than duplicate postings, so the DualEntry balance tracks the current state of the Pleo transaction.
Field mapping
The connector maps each Pleo transaction field to a DualEntry field during posting. The mapping below is representative; your APIWorx configuration sets the exact category-to-account and cost-center-to-dimension rules for your chart of accounts.
| Pleo field | DualEntry field |
|---|
| Transaction ID | External reference / ID |
| Merchant / description | Line description |
| Amount | Expense amount |
| Currency | Transaction currency |
| Category | Mapped GL account |
| Cost center / team | Cost center / department dimension |
| VAT / tax amount | Tax line |
| Cardholder / employee | Employee / vendor reference |
| Transaction date | Posting date |
| Receipt status | Audit reference / memo |
The category-to-account and cost-center-to-dimension rows are the two mappings you maintain over time. When you add a GL account or restructure cost centers in Pleo, update the corresponding mapping in APIWorx so new categories continue to post to the correct account rather than the default holding account.
Set up the connector with your APIWorx implementation contact. APIWorx authorizes both systems and records the mappings the connector applies on every sync. Work through the items below in order; the mappings depend on the connections being authorized first.
- Authorize the Pleo API connection. Connect APIWorx to your Pleo organization at the organization level so the connector can read card transactions and expenses.
- Authorize the DualEntry company connection. Connect APIWorx to the DualEntry company that receives the postings.
- Map categories to GL accounts. For each Pleo expense category, choose the DualEntry GL account it posts to. Unmapped categories route to a default holding account and are flagged, so map every category you expect to see.
- Map cost centers to dimensions (optional). If you track spend by cost center, department, or project, map each Pleo cost center or team to the corresponding DualEntry dimension.
- Configure VAT and currency handling. Map Pleo VAT to the matching DualEntry tax treatment and confirm how foreign-currency transactions are handled.
- Set the receipt and sync policies. Choose how missing-receipt transactions are handled (see Handle receipts and missing-receipt expenses) and select live event syncing or a scheduled batch export.
After these steps, the connector posts new Pleo spend to DualEntry automatically on the schedule or events you selected.
Handle VAT and tax
The connector carries VAT from each Pleo transaction to a DualEntry tax line, which matters because Pleo is a European platform and most transactions include VAT. During configuration you map Pleo’s VAT to a DualEntry tax treatment; on each sync, the connector reads the VAT amount and rate on the Pleo transaction and posts a matching tax line in DualEntry rather than rolling tax into the expense amount.
Because tax is posted as a separate line, the GL account mapped to the category receives the net expense and the VAT treatment receives the tax. If a transaction’s VAT or currency does not match what the mapped treatment expects, the connector raises a mismatch exception (see Monitor sync health and exceptions) rather than posting a figure that would not reconcile against the Pleo statement.
For how tax treatments are defined in DualEntry, see Non-US taxes.
Handle receipts and missing-receipt expenses
The connector carries Pleo’s receipt status onto each posted entry and lets you choose how transactions without a receipt are handled, which is useful for teams that enforce a receipt policy before an expense reaches the ledger. Each posted entry records whether a receipt is attached in Pleo along with the Pleo transaction ID, so a reviewer in DualEntry can trace any entry back to its source and confirm documentation exists.
You configure missing-receipt behavior during setup. The connector supports two modes:
- Post and flag. The transaction posts to DualEntry and is flagged as missing a receipt, so spend appears in the ledger immediately and the receipt is chased afterward.
- Hold pending receipt. The transaction is held and not posted until a receipt is attached in Pleo, so nothing reaches the ledger without documentation.
Choose hold-pending-receipt only if your close process can tolerate spend that is not yet posted. Held transactions do not appear in DualEntry until the receipt is attached in Pleo, so they are absent from period reports until then.
Monitor sync health and exceptions
The connector surfaces every exception through the APIWorx portal and does not fail silently, so the portal is where you confirm that spend is flowing and find records that need attention. Each sync writes a log entry recording the source transaction ID, the action taken, and the result; APIWorx retains these logs for troubleshooting and audit.
The connector raises three kinds of exception:
| Exception | Cause | Resolution |
|---|
| Unmapped category | A Pleo expense category has no GL account mapping. | The transaction posts to the default holding account and is flagged for coding. Add the mapping in APIWorx, then reprocess. |
| Currency or tax mismatch | A transaction’s VAT or currency does not match the mapped treatment. | Review the flagged record and correct the source or mapping. |
| Failed posting | A transaction could not be posted to DualEntry. | The failure is logged with the Pleo transaction ID and retried automatically per the configured retry policy; persistent failures are flagged for manual review. |
Transient failures retry automatically, so a record in the error list is not necessarily lost. Check whether the connector has already retried and cleared it before reprocessing manually.
Result
After setup, Pleo card transactions and out-of-pocket expenses post into DualEntry automatically, coded to the mapped GL accounts and cost centers, with VAT carried to a separate tax line and the receipt status recorded on each entry for audit. Reversals and recategorizations made in Pleo come through as adjustments, so the card-payable balance in DualEntry tracks Pleo without manual reconciliation.
To confirm the integration is healthy, check that recent Pleo spend appears in DualEntry under the expected accounts, that the receipt status on posted entries matches your policy, and that the APIWorx exception list is empty or every entry is a known exception.
To connect more systems, return to Integrations. For card-spend integrations built natively into DualEntry, see Ramp and Brex. For the Weel connector, which follows the same APIWorx pattern, see Weel. For how the resulting entries behave in AP, see Bill management. For the connector’s own technical reference, see the APIWorx DualEntry + Pleo connector page.