All plugins
v1.0.0·Core·MIT · forkable

arfiti-core-reconciliation

Automated + manual payment-to-invoice matching

A complete payment-to-invoice reconciliation workflow that combines automated and manual matching. Mode 1 (Full Reconciliation) runs the 6-pass reconciliation agent first — exact amount, reference number, cross-reference, approximate FX, amount grouping, and Haiku fuzzy matching — then analyzes what remains and proposes manual matches for complex patterns like N:N splits and partial payments. Mode 2 (Quick Manual Match) lets you directly apply a payment to specific invoices with split amounts and rounding write-offs. Mode 3 (Health Check) provides a read-only status dashboard showing matched, partial, and unmatched counts with aging analysis and next-action recommendations.

↗ View on GitHubClone the repo
COMMANDS · 3

Slash commands shipped.

/reconcile

Execute the complete reconciliation: assess current state, run the automated 6-pass matching agent, analyze remaining unmatched items grouped by party, propose manual matches (1:1, 1:N, N:1, N:N, partial), apply confirmed matches, categorize unresolvable items, and show before/after summary with match rate.

/match-payment

Directly match a specific payment to one or more invoices. Search for the payment, list open invoices for the same party, specify applied amounts per invoice, preview the match with status changes, and apply with confirmation. Supports partial matching and rounding write-offs up to $100.

/reconciliation-status

Read-only status dashboard showing AP and AR payment reconciliation breakdown (matched, partial, unmatched), open invoice counts, aging of oldest unmatched items, and recommended next action.

HOW IT WORKS

Workflow steps · agent runs · validation gates.

Full Reconciliation

  1. 1

    Assess current state — load unmatched payment and open invoice counts for AP and AR

  2. 2

    Run automated reconciliation agent (6-pass matching algorithm)

  3. 3

    Review agent results — how many matched, what remains unmatched

  4. 4

    Group remaining unmatched items by party (vendor/customer)

  5. 5

    For each party: load payments + invoices, propose manual matches using 6 strategies

  6. 6

    Present match proposals as tables with amounts, logic explanation, and differences

  7. 7

    User reviews and confirms matches (one confirmation per party batch)

  8. 8

    Apply confirmed matches via submit("reconciliation", "match", {...})

  9. 9

    Categorize unresolvable items (missing bills, unknown parties, overpayments)

  10. 10

    Show before/after summary with total match rate

Quick Manual Match

  1. 1

    Identify the payment (by ID or search)

  2. 2

    List open invoices for the same party with amounts due

  3. 3

    User specifies which invoice(s) and amounts to apply

  4. 4

    Preview the match — show status changes for payment and each invoice

  5. 5

    Apply after confirmation

VALIDATION CHECKPOINTS · 5

Every run must pass.

If any checkpoint fails, the workflow stops and reports the issue. Nothing posts to the ledger until every check passes.

Legal entity exists and has posted transactions

Agent run completed successfully (Mode 1)

All proposed matches are valid — same party, amounts within limits, invoice has amount_due > 0

User has reviewed and confirmed match preview before applying

Post-reconciliation counts match expected changes

REFERENCE DATA · 3 FILES

Structured knowledge included.

Formulas, templates, regulatory rules — not hardcoded values. Forkable per firm, per client.

matching-strategies.md

Six matching strategies in priority order: exact 1:1, partial, 1:N split, N:1 group, N:N complex, rounding write-off — with decision rules and examples

reconciliation-types.md

AR vs AP scope configuration, submit payload format, financial update behavior, and audit trail structure

troubleshooting.md

Common issues: no matches found, tax payments without bills, rounding differences, party mismatches, agent failures, and multi-currency FX handling

MIT · BUILT FOR ARFITI · OPEN FOR EVERYONE

Designed to work out-of-the-box with the Arfiti ledger. Claude fetches your data, runs calculations, validates results, and submits entries automatically through MCP.

Or fork it. Skills, commands, validation logic, and reference data are all MIT-licensed. Swap the MCP tool calls for your own backend, or use the reference files as standalone Claude project resources.

SUBSCRIBE · NEW POSTS · NO SPAM

Get the next post in your inbox.

Practitioner notes on AI-native finance. One email when something new ships. Unsubscribe any time.