Core CONA Logic
Reconciliation system
Reconciliation System
Overview
The reconciliation system in CONA automatically identifies and processes matching general ledger entries to balance accounts. It groups entries by reconciliation identifiers (GIDs) and processes them when credits equal debits, ensuring accurate financial record-keeping.
Key Concepts
Reconciliation Groups
- Definition: Collections of general ledger entries that share the same reconciliation identifier (GID)
- Eligibility: Groups are reconcilable when:
- Total balance equals zero (credits = debits)
- Contains multiple entries (minimum 2)
- Entries are on accounts marked
to_be_reconciled = true
Reconciliation Identifiers (GIDs)
- Credit GID:
credit_should_reconcile_gid
- identifies credit entries for reconciliation - Debit GID:
debit_should_reconcile_gid
- identifies debit entries for reconciliation - Purpose: Groups related transactions (e.g., invoice + payment) for automatic reconciliation
Account Configuration
- Chart of Accounts:
to_be_reconciled
field determines which accounts participate in reconciliation - Typical Accounts: receivables, payables, clearing accounts
System Architecture
Database Schema
Core Components
-
@cona/core Package
get-reconciliation-groups.ts
- Finds reconcilable groupsprocess-reconciliation-group.ts
- Processes and reconciles groups
-
Temporal Workflows Package
sync-reconciliation-global.ts
- Orchestrates organization-wide reconciliationsync-organization-reconciliation.ts
- Processes single organization- Activities that wrap core functions
-
Web Application
- Manual reconciliation actions
- Search and filtering capabilities
- Reconciliation management UI
Reconciliation Process Flow
1. Group Discovery
2. Group Processing
3. Automated Workflow
Manual vs Automated Reconciliation
Automated Reconciliation
- Trigger: Temporal scheduled workflow
- Scope: All organizations with auto-reconciliation enabled
- Processing: Batch processing with concurrency limits
- Monitoring: Comprehensive logging and error handling
Manual Reconciliation
- Trigger: User action from web interface
- Scope: Single organization or account
- Processing: On-demand reconciliation
- Interface: Search, filter, and process specific entries
Key Features
Account-Specific Reconciliation
- Only accounts marked
to_be_reconciled = true
participate - Separate tracking for credit and debit sides
- Flexible account configuration per organization
Document Connection
- Automatically connects related documents during reconciliation
- Links invoices, payments, and other related transactions
- Maintains audit trail of connected documents
Batch Processing
- Handles large volumes with pagination
- Configurable batch sizes for performance tuning
- Concurrent processing across organizations
Error Handling
- Graceful failure handling in workflows
- Detailed logging for debugging
- Rollback capabilities for failed reconciliations