A Vite + React application that simulates common payment reconciliation problems faced by businesses when matching internal transaction records with bank statements.
This simulator demonstrates the following real-world reconciliation challenges:
-
Amount Mismatches
- Payment processor fees not accounted for
- Currency conversion discrepancies
- Tax/fee calculation differences
-
Missing Transactions
- Internal transactions without corresponding bank records
- Bank transactions without internal records
- Failed webhook deliveries
-
Duplicate Transactions
- Double-click submissions
- Retry logic errors
- Processing system glitches
-
Timing Discrepancies
- Settlement delays
- Timezone differences
- Processing cutoff times
-
Status Mismatches
- Failed vs successful payment status
- Pending vs completed transactions
- Chargeback notifications
-
Special Cases
- Chargebacks and disputes
- Refunds processing delays
- Unknown/unmatched payments
- Node.js (v18 or higher)
- npm or yarn
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
src/
├── components/
│ ├── TransactionList.jsx # Displays internal/bank transactions
│ ├── ProblemsView.jsx # Shows detailed reconciliation problems
│ └── StatsOverview.jsx # Summary statistics and metrics
├── data/
│ └── reconciliationData.js # Mock data with realistic scenarios
├── App.jsx # Main application component
├── main.jsx # Application entry point
└── index.css # Styling and layout
The application includes realistic mock data representing:
- 9 Internal Transactions ($1,284.73 total)
- 8 Bank Transactions ($1,346.50 total including fees)
- 7 Reconciliation Problems across different severity levels
- $58.82 in processing fees
- Multiple problem types for comprehensive testing
Problem Type | Severity | Description |
---|---|---|
Amount Mismatch | Warning | Internal vs bank amount differences |
Timing Mismatch | Info | Date discrepancies between systems |
Missing Internal | Critical | Bank transaction without internal record |
Missing Bank | Critical | Internal transaction without bank record |
Duplicate | Warning | Multiple transactions with same reference |
Failed Payment | Info | Transaction marked as failed |
Chargeback | Critical | Customer dispute resulting in reversal |
The application features three main sections:
- Overview - Summary statistics and key metrics
- Transactions - Side-by-side view of internal vs bank records
- Problems - Detailed analysis of reconciliation issues
This simulator is perfect for:
- Training payment operations teams
- Understanding common reconciliation challenges
- Demonstrating reconciliation software capabilities
- Testing reconciliation algorithms and processes
- Educational purposes for fintech development
- Frontend: React 18 + Vite
- Styling: Modern CSS with responsive design
- Icons: Lucide React
- Date Handling: date-fns
- Development: ESLint for code quality
This is a demonstration application. To extend it:
- Add new problem types in
reconciliationData.js
- Create additional components for new visualizations
- Implement real-time reconciliation logic
- Add export/import functionality for actual data
This project is for educational and demonstration purposes.