Skip to content
Back to skills

Reconciliation

ASecurity

Match bank transactions to invoices and surface unpaid / unmatched items in a Well workspace. Use when the user asks what's paid vs unpaid, to reconcile the bank, to find missing payments, or to match transactions to invoices.

  • 342 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 1, 2026
toolsgo

Security analysis

A100/100

Scanned September 1, 2026

npx -y skills add WellApp-ai/Well --skill reconciliation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Reconciliation?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Reconciliation
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/wellapp-ai-reconciliation/badge)](https://www.skillsdirectory.com/skills/wellapp-ai-reconciliation)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: reconciliation
description: Match bank transactions to invoices and surface unpaid / unmatched items in a Well workspace. Use when the user asks what's paid vs unpaid, to reconcile the bank, to find missing payments, or to match transactions to invoices.
---

# Reconciliation in Well

Goal: connect money movement (`transactions`) to commercial documents (`invoices`) and report what is matched, unpaid, or unexplained.

## What Well already links

Well's pipelines maintain the link between a bank transaction and the invoice(s) it settles. Check the schema before computing matches by hand:

1. `well_get_schema("invoice_transactions")` — the join between invoices and transactions, if exposed. Querying this root is the fastest path to "which invoices are settled by which transactions".
2. `well_get_schema("invoices")` — look for a payment-status / amount-paid / outstanding field and the `grand_total`.
3. `well_get_schema("transactions")` — amount, value/booking date, counterparty, and remittance fields.

## Do this

- **Unpaid invoices**: query `invoices` filtered on the payment-status / outstanding field the schema exposes (don't infer "unpaid" by subtracting sums if a status field exists). Sort by due date or amount.
- **Matched**: read `invoice_transactions` (or the link the schema shows) to list invoice ↔ transaction pairs.
- **Unmatched transactions**: `transactions` with no linked invoice — candidates for manual review (could be fees, transfers, or a missing invoice).
- When matching by hand (no link exposed), match on **amount + date proximity + counterparty**, never on amount alone.

## Do NOT

- Do not declare an invoice paid purely because a transaction of the same amount exists — confirm via the link or counterparty + date.
- Do not sum across currencies without converting (see `exchange_rates`).

## Present it

Three buckets — **Matched**, **Unpaid invoices**, **Unexplained transactions** — each with counts and totals, plus the currency. Offer to drill into any bucket with `well_get_entity`.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.