Reconciliation Service
Purpose
Match external financial records against internal ledger entries and resolve discrepancies.
Responsibilities
- Import external statements
- Automated matching algorithms
- Exception management
- Resolution workflow
- Reconciliation reporting
Non-Responsibilities
- Ledger posting (Ledger Service)
- Payment processing
APIs
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| POST | /api/v1/reconciliation/runs | OPERATIONS | Start reconciliation |
| GET | /api/v1/reconciliation/runs/{id} | OPERATIONS | Run status |
| GET | /api/v1/reconciliation/exceptions | OPERATIONS | List exceptions |
| PUT | /api/v1/reconciliation/exceptions/{id} | OPERATIONS | Resolve exception |
Database
| Table | Key Columns | Description |
|---|---|---|
| reconciliation_runs | id, source, status, started_at | Run metadata |
| reconciliation_items | id, run_id, external_ref, internal_ref, status | Match results |
| exceptions | id, item_id, type, status, resolution | Discrepancies |
Kafka
Produces: ReconciliationCompleted
Consumes: LedgerTransactionCreated
Dependencies
Sync: Ledger Service Async: Batch processing via Spring Batch
Failure Handling
- Unmatched items → INVESTIGATION state
- Large discrepancy → alert operations team
Scaling
Batch-oriented. Scale via Spring Batch partitioning.
Security
OPERATIONS role required. Audit all resolution actions.
Observability
Metrics: reconciliation_match_rate, reconciliation_exceptions_total.