Skip to content
← ~/work

Reporting to a foreign regulator out of a core banking system

FATCA returns assembled out of the bank's core banking system for the US IRS, plus a utility payments integration that lifted collections over 10%.

client
First Atlantic Bank
period
2018 to 2019
track
#engineering#advisory
JavaC#Oracle FlexCubeSQL ServerREST APIs

Context

First Atlantic Bank is a commercial bank in Accra. I joined in October 2018 as a junior software developer, on the team that builds and maintains the bank's internal applications. It was my first job in a regulated institution, and the first time compliance was something I had to build rather than something another department handled.

The problem

FATCA obliges financial institutions outside the United States to identify accounts held by US persons and report them to the IRS. Getting it wrong is not a bug report. It is withholding penalties and sanctions against the bank.

The account data lived in the core banking system. The report the IRS wanted did not, and nobody was going to assemble it by hand every reporting cycle at the accuracy that regime requires.

Separately, customers had to leave the bank to pay an electricity bill, which meant the bank saw none of that traffic.

What I did

  • Built and maintained an application that interfaces with the bank's core banking system, Oracle FlexCube, taking scheduled extracts and assembling the FATCA return for the IRS.
  • Put the assembled data behind a dashboard so the compliance team could reconcile it on demand, in their own time, without a developer sitting between them and the numbers they were accountable for.
  • Built and maintained a branch module application and a REST API service integrating the Electricity Company of Ghana payments API, so utility payments could be made through the bank.
  • Supported and trained bank staff across the applications the development team had built, which is where I learned that an application nobody can operate is an application that does not work.

What it cost

  • The data had to come out of a live core banking system. FlexCube is what the bank runs on all day, so it does not hand over extracts on demand. You take them on a schedule it can tolerate, and everything downstream inherits that cadence, including how current the numbers are when compliance opens the dashboard.
  • Reconciliation stayed manual. Compliance opened the dashboard and worked through the numbers themselves, every cycle. That does not scale: the effort grows with the account book, and it lands on whoever is free when the deadline arrives. A year later at ReachAfrika I built the automated end-of-day reconciliation I had not built here, and financial errors fell by over 75%. That is the one I would go back and change.

Outcome

  • FATCA reporting to the IRS delivered off the core banking system, keeping the bank clear of fines and sanctions.
  • Revenue collections and commissions up over 10% after the utility payments integration.

This is the oldest work on the site and the smallest in scope. It is here because the thread starts here: every regulated engagement since, from ISO 27001 and a central bank licence at Fast Pace Transfer to ASVS Level 2 and separation of duties on custody work, is the same job at a larger size.