idnasirasira
Back to works
1320182020Full-Stack Developer

Multi-Bank Mutation Auto-Detection & Transfer Validation

Automated bank account mutation monitoring for Pondok Lensa—ingests transfer notifications across multiple Indonesian banks, parses deposits, and validates customer payments against pending rental orders without manual bank-app checking.

Loading views...

Overview

Built an internal payment validation system for Pondok Lensa's rental platform to solve a daily operations bottleneck: staff had to manually open multiple banking apps and cross-check incoming transfers against open bookings. The system monitors mutation (account statement) feeds from several bank accounts, normalizes transaction data into a common format, and automatically matches incoming transfers to pending orders by amount, unique payment code, and time window. When a match is confident, the booking payment status updates automatically; ambiguous cases are flagged for quick human review.

The Challenge

Customers paid via bank transfer to different company accounts (BCA, Mandiri, BNI, and others depending on branch or promo). Finance staff spent hours daily verifying screenshots and mutasi lists, causing delayed order confirmations, double bookings on “unpaid” reservations, and human error from fatigue during peak rental seasons. Each bank exposes mutations differently—SMS formats, email alerts, export layouts—so there was no unified pipeline. Manual validation did not scale as online bookings grew across Bandung, Bali, and Jakarta.

The Solution

Designed a bank-agnostic ingestion layer with per-bank parsers that extract date, amount, sender reference, and description from mutation sources. Stored raw and normalized transactions in MySQL with deduplication to handle delayed or duplicate notifications. Implemented matching rules: exact amount + unique payment code in transfer description (primary), fallback heuristics within configurable time tolerance, and a manual override queue for edge cases. Hooked confirmed matches into the existing CodeIgniter rental system to mark orders paid and trigger confirmation workflows. Added admin views for unmatched mutations, failed matches, and audit logs.

Results & Impact

  • Automated 70%+ of transfer validations during normal operations
  • Cut average payment confirmation time from hours to under 5 minutes
  • Supported multiple bank accounts and mutation formats in one dashboard
  • Reduced booking cancellations caused by slow manual payment checks
  • Eliminated duplicate crediting through transaction deduplication
  • Finance team shifted from full manual checking to exception-only review
  • Improved customer experience with faster rental confirmation after transfer

Key Features

  • Multi-bank mutation ingestion (BCA, Mandiri, BNI, and other supported banks)
  • Per-bank parser adapters for heterogeneous notification formats
  • Normalized transaction store with duplicate detection
  • Automatic matching by unique payment code and amount
  • Configurable time-window tolerance for delayed transfers
  • Auto-update rental order payment status on confident match
  • Exception queue for ambiguous or partial matches
  • Admin dashboard: pending, matched, and failed transactions
  • Audit log for automated vs manual approvals
  • Cron-based polling and near-real-time processing
  • Integration with existing Pondok Lensa rental platform

Want to build a system like these?

From ERP and logistics to web and mobile apps—I can help you design and build it. Get in touch to discuss your project.

Discuss your project