Claude Code for Automating Intercompany Reconciliation

The month-end close is a pressure cooker for every finance team. But within that cycle, no single process generates more friction, more manual labor, and more last-minute fire drills than intercompany reconciliation. When subsidiaries operate on different ERP systems, with different currencies, different chart of accounts, and different cut-off dates, the simple act of matching a payable in one entity against a receivable in another becomes a multi-hour slog through spreadsheets, PDF statements, and email chains. The result is predictable: reconciling items pile up, adjustments are booked blindly, and the consolidated trial balance never quite ties until someone manually forces it.

This pain is not trivial. For a mid-market company with five subsidiaries, intercompany reconciliation can consume three to five full-time equivalent days per month. For larger enterprises with dozens of legal entities, the cost runs into the hundreds of thousands of dollars annually in finance labor alone. Worse, the process is error-prone. A single misclassified intercompany loan or a misapplied FX rate can distort segment reporting, trigger audit findings, and delay the entire close.

Claude Code changes this dynamic entirely. By treating intercompany reconciliation as a structured data problem rather than a manual matching exercise, Claude can ingest transaction files from multiple sources, apply matching logic at scale, flag exceptions with clear rationale, and even draft adjusting journal entries. The tool does not replace the judgment of a controller, but it eliminates the drudgery of cell-by-cell comparison and frees the finance team to focus on investigation and resolution. What follows are two battle-tested prompts that turn Claude Code into a dedicated intercompany reconciliation analyst.

Why Claude Code Works for Intercompany Work

Intercompany reconciliation is uniquely suited for large language model automation because it follows rigid, repeatable patterns. Every intercompany transaction has a counterparty, an amount, a currency, a date, and a settlement status. These fields are structured, even when buried inside unstructured email attachments or PDF statements. Claude Code can parse diverse input formats, normalize them into a consistent schema, and then apply deterministic matching rules alongside probabilistic fuzzy matching for near-duplicates. The result is a reconciliation that is both faster and more consistent than manual effort.

The key insight is that Claude Code does not guess. When given explicit matching criteria and clear instructions for exception handling, it produces auditable output. Every match or mismatch can be traced back to the source data and the rule applied. This transparency is critical for controllers who need to defend reconciliation results during audit.

I want to automate intercompany reconciliation between three subsidiaries for the month ending May 31 2026 so that I can reduce manual matching time from 8 hours to under 30 minutes and produce an auditable exception report.

First, read these files completely before responding:
subsidiary_a_trial_balance_may2026.csv — contains all intercompany receivable and payable accounts with balances, counterparty codes, and currency
subsidiary_b_trial_balance_may2026.csv — same structure for subsidiary B
subsidiary_c_trial_balance_may2026.csv — same structure for subsidiary C
ic_mapping_guide.pdf — corporate policy document defining which accounts are intercompany, acceptable FX rate sources, and materiality thresholds

Here is a reference for what I want to achieve:
I have attached a manually prepared reconciliation from last month that shows the exact format I need: a summary sheet with matched items, a detail sheet with unmatched items, and a journal entry proposal sheet. The reference uses bold headers, conditional formatting indicators for status, and a notes column for resolution comments.

Here’s what makes this reference work:
Each matched pair shows the two subsidiary line items side by side with the difference in local currency and reporting currency
Unmatched items are grouped by aging category: current, 30-60 days, 60+ days
Journal entries are presented as debit/credit pairs with natural account numbers and narrative explanations
FX revaluation impact is calculated separately using the corporate rate from the last business day of the month

Here’s what I need for my version / SUCCESS BRIEF:
Type of output + length: Single Excel workbook with three sheets (Matched, Unmatched, Journal Entries). Approximately 50-200 rows total depending on transaction volume.
Recipient’s reaction: The controller should be able to open the file and immediately see which items are clean and which require investigation. No formatting cleanup needed.
Does NOT sound like: A generic AI output with no business context. Do not use phrases like “based on the data provided” or “it appears that.” Every exception must cite the specific source line and rule violated.
Success means: The reconciliation is complete enough that the controller only needs to review the unmatched sheet and the journal entry sheet. No need to cross-check against source files.

My context file contains my standards, constraints, audience. Read it fully before starting.
DO NOT start executing yet. Ask clarifying questions first.

Give me your execution plan (5 steps max) before you begin.

The prompt above establishes a clear boundary between what Claude Code should automate and what requires human judgment. Notice the explicit reference to the corporate mapping guide and the materiality thresholds. This prevents Claude from matching immaterial differences that would waste the controller’s time. The success brief is particularly important here: it tells Claude that the output must be immediately useful, not a draft that needs cleanup. The instruction to avoid generic AI language ensures the output reads like a finance professional prepared it, not a chatbot.

Once Claude Code processes this prompt, it will generate the three-sheet workbook. The Matched sheet will show pairs where the intercompany balance agrees within the defined tolerance, with the FX impact calculated separately. The Unmatched sheet will flag items where the counterparty has no corresponding entry, where amounts differ beyond tolerance, or where the currency does not match corporate policy. The Journal Entries sheet will propose adjusting entries for FX revaluation and for any timing differences that can be resolved with a standard entry.

Taking It Further: Automated Investigation of Exceptions

The first prompt handles the bulk matching. But the real value lies in what happens next: investigating the exceptions. In a manual process, the analyst spends most of their time emailing subsidiary controllers to ask about unmatched items. Claude Code can automate this investigation by querying the subsidiary trial balances for supporting detail and by scanning the email archive for explanations already provided.

I want to investigate the unmatched intercompany items from the May 2026 reconciliation and generate a resolution memo for each exception so that the controller can approve or reject the proposed resolution without needing to contact subsidiary teams.

First, read these files completely before responding:
unmatched_items_may2026.xlsx — the output from the previous reconciliation run, containing unmatched items with subsidiary, account, amount, currency, and counterparty code
subsidiary_a_transaction_detail_may2026.csv — line-item detail for all intercompany transactions in subsidiary A, including invoice numbers, dates, descriptions, and approval status
subsidiary_b_transaction_detail_may2026.csv — same for subsidiary B
subsidiary_c_transaction_detail_may2026.csv — same for subsidiary C
email_archive_intercompany_may2026.pdf — exported email thread between subsidiary controllers regarding disputed or unclear intercompany items

Here is a reference for what I want to achieve:
I have attached a resolution memo from a prior month that shows the format: each exception gets a header with the item ID and counterparty, followed by a brief investigation narrative, then a proposed resolution, and finally a risk rating (Low, Medium, High). The reference memo uses clear, declarative sentences and cites specific invoice numbers and email dates.

Here’s what makes this reference work:
Every resolution includes a “source of truth” citation — either a specific invoice in the transaction detail or a specific email in the archive
Risk ratings are based on a simple rubric: Low = under materiality and no prior history, Medium = over materiality or recurring pattern, High = over materiality and unresolved for more than 60 days
Proposed resolutions are either “adjust in current month,” “carry forward to next month,” or “escalate to corporate controller”

Here’s what I need for my version / SUCCESS BRIEF:
Type of output + length: A single memo document, approximately 3-5 pages, with one section per unmatched item. Expect 5-15 items.
Recipient’s reaction: The controller should be able to read each section and make a decision in under 30 seconds. No ambiguity about what is proposed and why.
Does NOT sound like: A generic investigation report. Do not use “further analysis is needed” or “this requires additional review.” If the source data is insufficient to reach a conclusion, mark the item as “insufficient data” and state exactly what data is missing.
Success means: The controller approves at least 80% of proposed resolutions without modification. Items marked as insufficient data are clearly scoped so the controller knows exactly what to request from the subsidiary.

My context file contains my standards, constraints, audience. Read it fully before starting.
DO NOT start executing yet. Ask clarifying questions first.

Give me your execution plan (5 steps max) before you begin.

This second prompt transforms Claude Code from a matching engine into an investigative analyst. By feeding it the transaction-level detail and the email archive, Claude can often resolve exceptions without any human intervention. For example, if subsidiary A shows an unmatched receivable of 50,000 EUR and subsidiary B shows a matching payable of 50,000 EUR but in a different GL account, Claude can trace both entries to the same invoice number in the transaction detail and propose a reclassification journal entry. If the email archive contains an explanation from the subsidiary B controller that the payment was delayed due to a bank holiday, Claude can cite that email and propose a carry-forward treatment.

The risk rating rubric embedded in the prompt is particularly valuable. It forces Claude to apply consistent judgment across all exceptions, eliminating the variability that occurs when different analysts review different items. The controller can then focus their limited time on the High-risk items, confident that the Low and Medium items have been properly vetted and documented.

For finance teams looking to implement this today, start with a single month and a single intercompany pair. Run the first prompt, review the output, and refine the matching rules based on what you find. Intercompany reconciliation is a process of diminishing returns: the first 80 percent of matches are easy, the next 15 percent require some judgment, and the final 5 percent require human intervention. Claude Code excels at the first 95 percent, which is precisely where the bulk of the time and cost currently resides.

A practical next step is to combine these two prompts into a weekly cycle. Run the matching prompt every Monday morning against the previous week’s transactions. Run the investigation prompt on Wednesday. By Thursday, the controller has a clean reconciliation with proposed resolutions for every exception. This cadence prevents the end-of-month pileup and keeps intercompany balances current throughout the period. The result is a faster close, a cleaner audit trail, and a finance team that spends its time on analysis instead of data entry.

Published on June 3, 2026 on growwithgpt.com