pennylane-reconciliationlisted
Install: claude install-skill Xileades/pennylane-api-toolkit
# Reconciliation and lettering
**Prerequisite: `pennylane-access`.**
Scopes: `transactions:all`, `supplier_invoices:all`, `customer_invoices:all`,
plus `ledger_entries:all` for accounting lettering.
Two **distinct** mechanisms, routinely confused:
1. **Payment matching** — links a bank transaction to an invoice. This is what
you want in 95 % of cases.
2. **Lettering** — groups ledger entry lines on a counterparty account. A lower,
accounting-level operation.
## 1. Establish the picture
**There is no server-side filter on reconciliation state, amount or label of a
transaction.** The only filters are `id`, `bank_account_id`, `journal_id`,
`date`. Everything else happens in memory.
```powershell
$tx = PLGetAll 'company-a' 'transactions' @(
@{ field = 'date'; operator = 'gteq'; value = '2026-01-01' }
)
$needsJustifying = $tx | Where-Object { $_.attachment_required }
```
On supplier invoices, `payment_status` **is** filterable:
```powershell
PLGetAll 'company-a' 'supplier_invoices' @(
@{ field = 'payment_status'; operator = 'in'; value = @('to_be_paid','partially_paid') }
)
```
### Which field tells the truth
The documentation declares none authoritative. In practice:
| Question | Source |
|---|---|
| Which links exist? | `PLMatchesSupplier` / `PLMatchesCustomer` — the real list |
| How much is left to pay? | `remaining_amount_with_tax` on the invoice |
| Transaction balance? | `outstanding_balance` |
| Convenience flag | `reconciled` (**supplier invoice only*