Manual bank reconciliation is one of the most tedious financial tasks in any Indonesian business. It's also one of the most error-prone. Someone matches each incoming bank transfer to the corresponding invoice, one by one, based on the transfer amount and a reference number that the customer may or may not have filled in correctly.
In a busy month with hundreds of inbound payments, this process consumes serious staff hours. Mistakes — payments matched to wrong invoices, payments that aren't matched at all — create AR aging that's inaccurate and sometimes invoices that were paid but never closed.
Payment gateway integration with ERP solves this.
The Reconciliation Problem in Indonesian B2B
In Western markets, most B2B payments move through systems with built-in reconciliation data — credit card networks that include invoice reference information, or ACH transfers with structured remittance data. In Indonesia, the dominant B2B payment method is bank transfer, often BI-FAST or regular interbank transfer, where the reference field is limited, often optional, and frequently filled in inconsistently by customers.
Your customer sends Rp 45,750,000 via BCA transfer. Your bank statement shows a credit with reference "INV" or a customer name that doesn't quite match your records. Your finance team then has to look through open invoices to find which one this payment corresponds to.
When you have 20 customers paying monthly, this is manageable. When you have 200 customers on different payment cycles, it's a daily burden.
What Integration Changes
When your payment gateway connects to your ERP, the reconciliation flow looks like this:
- You generate an invoice in ERP and send it to the customer
- The invoice includes a unique payment link or virtual account number (generated by the gateway)
- The customer pays to that specific virtual account
- The payment gateway receives the payment, knows exactly which invoice it corresponds to, and sends a notification to the ERP via API
- The ERP automatically marks the invoice as paid, updates the customer's AR balance, and records the transaction in the general ledger
No manual matching. No interpretation required. The payment amount either matches the invoice exactly (full payment) or it doesn't (partial payment or overpayment), and the system handles both cases according to rules you define.
The Two Main Options: Midtrans and Xendit
For Indonesian businesses not dealing with enterprise-level payment volumes directly through bank APIs, there are two dominant payment gateway providers. Payment gateway integration is one part of a broader ERP third-party integration picture — it's worth understanding how it fits alongside other system connections like e-commerce platforms and logistics APIs.
Midtrans (now part of GoTo Financial) is well-established with broad bank support, QRIS integration, and retail payment channel options. It's particularly strong for businesses that need to accept a variety of payment methods — credit cards, bank transfers, e-wallets, convenience store payments — through a single integration. Midtrans's virtual account feature is the reconciliation mechanism most businesses use for B2B invoice payment.
Xendit has grown rapidly and offers a developer-friendly API that many Indonesian tech companies prefer. Its virtual account product works similarly to Midtrans — each invoice or payment request gets a unique virtual account number tied to a specific transaction. Xendit also has strong regional coverage beyond Indonesia into the Philippines and Southeast Asia, which matters for businesses with cross-border operations.
Both support webhook notifications that fire when a payment is received — this is the mechanism the ERP integration uses to automatically update payment status.
The choice between them often comes down to your existing banking relationships, transaction fee structure at your payment volume, and which your development team is more comfortable integrating.
Direct Bank API for Higher Volumes
For businesses with high payment volumes and existing banking relationships, direct integration with a bank's corporate API is an option. BCA, Mandiri, BNI, and BRI all offer corporate internet banking APIs that allow automated disbursement, virtual account management, and payment notification.
This approach has lower per-transaction fees at high volume and can be tightly integrated with ERP through dedicated API access. The trade-off is higher setup complexity, the need for a corporate internet banking agreement, and typically higher minimum account balance requirements.
For most Indonesian SMEs, a gateway like Midtrans or Xendit is the more practical starting point. Move to direct bank API when transaction volumes and fee sensitivity make the switch worth the additional setup.
What the Technical Integration Involves
For a business audience, the key points about ERP-payment gateway integration:
The gateway exposes an API — a set of endpoints that the ERP can call to create payment requests, check payment status, and receive webhooks when payments arrive. The ERP sends invoice data to the gateway, receives a virtual account number back, and then listens for webhook notifications that confirm payment.
This is well-documented for both Midtrans and Xendit. An experienced developer can build the core integration in two to four weeks depending on the ERP architecture. The more complex work is usually on the ERP side — defining exactly how different payment scenarios (partial payments, overpayments, payments across multiple invoices) should be handled in the accounting logic.
Testing is important: you want to simulate edge cases — a payment of Rp 1 more than the invoice amount, a payment split across two transactions — before going live, not after.
The Business Case in Numbers
A finance team spending three hours per week on manual bank reconciliation across 200 active customer invoices per month is spending around 150 hours per year on this task alone. At a loaded cost of Rp 50,000 per hour for a finance staff member, that's Rp 7.5 million per year in direct labor cost.
But the real cost is accuracy. A reconciliation error that results in an invoice being left open — and the customer not being reminded because the system shows it's paid — can mean AR that's never collected. A single missed invoice for Rp 10 million makes the integration cost look trivial.
Payment gateway integration is one of the higher-ROI integrations an Indonesian business can implement. The savings are immediate, the risk reduction is real, and the complexity is manageable.
CERIS builds ERP systems with Indonesian payment gateway integration from the ground up. See what we build or contact us to discuss what reconciliation automation looks like for your business.