Skip to contentSkip to Content
Agent CatalogPayment Reconciler

Payment Reconciler

Slug: ai-payment-reconciliation · Category: Billing & Collections · Provisioning: Requires AgentLane staff approval

Runs every night, matches the previous day’s Stripe charges against the outstanding invoice list, and emails the bookkeeper only the ones a human has to decide about. The failure it prevents is the expensive one: chasing a customer for money they already sent.

Required credentials

ProviderUsed for
anthropicExplains the ambiguous rows in plain language — never the matched ones, and never any figure
stripeReads charges. Use a restricted key (rk_...) with read access to charges; a key that can move money has no business in this connection
resendDelivers the exceptions email

Stripe is reached through an ordinary HTTP step with the key as a bearer token, the same route Cal.com already takes.

Industry fit

Home Services, Construction, Solar, Automotive, Accounting, Legal, Insurance, Dental, Veterinary, Healthcare, Recruitment — the verticals that invoice after the work and wait to be paid. It pairs with the Invoice & Payment Chaser.

How to deploy

Request it like any non-instant agent, then set the outstanding invoice list on the provisioned workflow’s config as outstandingInvoices — an array of { reference, amountDue, customerEmail }. AgentLane triggers the flow at 2am in the client’s own timezone; a client whose list has never been set is skipped rather than reconciled against nothing, which would report every payment the business took as unexplained.

AgentLane does not keep a ledger of your clients’ own invoices, so this list is yours to maintain. (PartnerInvoice in AgentLane is AgentLane billing the agency — a different thing entirely.)

Flow

Nightly trigger ──► Look up client config ──► Fetch Stripe charges ──► Reconcile (code) ──► Summarise exceptions (Claude) ──► Apply results ──► Email exceptions (Resend)

Every match is decided in the code step, on normalised reference, customer and exact minor-unit amount. Refunded and unsuccessful charges are ignored. A charge that matches an invoice for a different amount is classified partial, not matched — the difference is a human’s decision, not a rounding one. No monetary figure ever passes through the model on its way to a total.

The results are handed back to your own system through your registered webhook endpoints, and any running chase sequence for that client is called off.


Payment Reconciler — AgentLane