Adani Ports
Adani Ports invoice reconciliation
Payment reconciliation where each invoice gets a dedicated virtual account and every payment lands in an immutable history.
50%
less manual payment validation, approximately
- Invoiceone virtual account each
- Razorpaypayment webhooks
- Fastify APImatches payment to invoice
- PostgreSQLimmutable history
- Admin dashboardReact, audit logs
The problem
Payments against port invoices were validated by hand, matching bank credits to invoices one at a time.
Stack
React, Fastify, PostgreSQL, Razorpay, Docker
What I built
- 1Gave each invoice a dedicated virtual account, so every incoming payment identifies its invoice.
- 2Razorpay webhooks write into PostgreSQL, keeping an immutable transaction history.
- 3An admin dashboard for audit logs, with Dockerized deployments.