Transaction Processor

This transaction processing application is designed to facilitate secure and efficient financial transactions, adhering to industry standards like ISO-8583 for messaging between financial institutions. The system’s core function is to process, route, and authenticate transactions, ensuring smooth operation for payments, deposits, and other financial services between local, intra-bank, and inter-bank systems.

Key Technologies:

  • Entity Framework: Manages database operations, such as retrieving account details, transaction logs, and routing information.
  • ASP.NET MVC: Provides a structured web-based interface for handling transaction requests and responses in a maintainable way.
  • MSSQL Server: Supports the application with data storage for transactions, users, routes, and fees.

Core Features:

  1. Transaction Processing:
    • The application handles a variety of financial transactions such as payments, deposits, transfers, and balance inquiries.
    • Each transaction is processed using ISO-8583 message formatting to ensure compatibility with external banking and payment systems.
    • The application identifies the transaction type, checks card validity (including expiry), and calculates transaction amounts.
  2. User Authentication and Card Validation:
    • Validates the user’s identity through fields like the card number, BIN (Bank Identification Number), and expiry date.
    • Automatically rejects expired cards and logs failed transactions with corresponding error codes.
  3. Routing and Communication:
    • Transactions are routed based on card BINs, ensuring they reach the correct destination bank or financial institution.
    • The system interacts with external nodes (called sink nodes) to complete the transaction, confirming their status (active/inactive) before proceeding.
    • If a transaction fails at the destination, the system handles errors and initiates reversals when necessary.
  4. Fee Calculation and Application:
    • Supports dynamic fee structures, including flat-rate or percentage-based fees, depending on the transaction type and the associated channel (ATM, online banking, etc.).
    • The system calculates fees based on predefined rules and applies them to the transaction before forwarding it for final processing.
  5. Transaction Logging and Auditing:
    • Every transaction is logged, whether successful or failed, for audit and traceability purposes.
    • Logs include details such as the transaction type, amount, card BIN, response codes, and any errors that occurred.
  6. Error Handling and Reversal:
    • The system generates appropriate response codes (e.g., expired card, insufficient funds, inactive route) for each transaction based on predefined scenarios.
    • If a transaction fails mid-process, the system can flag it for reversal, ensuring that funds are not wrongly debited or credited.
  7. Compliance with ISO-8583:
    • The application adheres to the ISO-8583 standard, which governs the structure of financial transaction messages.
    • This standardization allows seamless communication between different banking systems, making the application compatible with global financial networks.
  8. Multi-bank and Intra-bank Support:
    • Designed to handle local, intra-bank, and inter-bank transactions, ensuring that payments, transfers, and deposits can be completed between different financial institutions.
  9. Scalability and Security:
    • The application is built to handle high volumes of transactions securely, with features such as encryption and authentication to protect sensitive financial data.
    • It can be scaled horizontally to support additional transactions as the number of users grows.

Link to Github