Financial Reconciliation Engine
AI ↔ AIParallel extraction from two sources, matching, discrepancy classification, and resolution.
5 nodes · 5 edgesfinance
agentdbsystem
Visual
Extract Agent (Source A)agent
Pull transaction records from core banking ledger.
↓parallel→ Matching Agent
Extract Agent (Source B)agent
Pull corresponding records from payment processor settlement files.
↓parallel→ Matching Agent
Matching Agentagent
Fuzzy-match transactions by amount, date, and reference using learned rules.
↓sequential→ Discrepancy Classifier
Discrepancy Classifieragent
Categorize unmatched items: timing difference, amount mismatch, missing entry, duplicate.
↓sequential→ Resolution Suggestions
Resolution Suggestionsagent
Propose corrective journal entries or investigation steps for each discrepancy.
↓fallback→ Matching Agent
uc-reconciliation-engine.osop.yaml
osop_version: "1.0"
id: "reconciliation-engine"
name: "Financial Reconciliation Engine"
description: "Parallel extraction from two sources, matching, discrepancy classification, and resolution."
nodes:
- id: "extract_a"
type: "agent"
subtype: "worker"
name: "Extract Agent (Source A)"
description: "Pull transaction records from core banking ledger."
- id: "extract_b"
type: "agent"
subtype: "worker"
name: "Extract Agent (Source B)"
description: "Pull corresponding records from payment processor settlement files."
- id: "match"
type: "agent"
subtype: "llm"
name: "Matching Agent"
description: "Fuzzy-match transactions by amount, date, and reference using learned rules."
- id: "classify"
type: "agent"
subtype: "llm"
name: "Discrepancy Classifier"
description: "Categorize unmatched items: timing difference, amount mismatch, missing entry, duplicate."
- id: "resolve"
type: "agent"
subtype: "llm"
name: "Resolution Suggestions"
description: "Propose corrective journal entries or investigation steps for each discrepancy."
edges:
- from: "extract_a"
to: "match"
mode: "parallel"
- from: "extract_b"
to: "match"
mode: "parallel"
- from: "match"
to: "classify"
mode: "sequential"
- from: "classify"
to: "resolve"
mode: "sequential"
- from: "resolve"
to: "match"
mode: "fallback"
label: "Re-match with relaxed tolerance if too many unresolved"