Moniepoint Group
Card and payments infrastructure for Nigerian commercial banks.
- Role
- Senior Software Engineer
- When
- 2023-now
- Stack
- Node.js, NestJS, PostgreSQL, React, HSM, Mastercard Dispute API
- Links
Context
Most people experience a card payment as a tap. I have spent the last three years building what happens around it.
Moniepoint’s TeamApt division builds banking and payment-processing software for Nigerian commercial banks. My work there covers most of the life of a card transaction: preparing the chip before a card is issued, authenticating the cardholder online, monitoring transactions, clearing them with the card schemes, and resolving the disputes that follow.
These are systems where “mostly works” is not an option. A record written twice, or built from stale data, is a real problem, so I think hard about transactions, locking and consistency under load.
Card issuing
I built the data preparation application for chip card personalisation. It generates the EMV data written to a card as TLV (tag, length, value) structures, and integrates with a Hardware Security Module so card keys are generated and handled securely.
The bug I remember best came from here. Hexadecimal conversion and length calculation were mishandling leading zeros and 00 bytes. Finding it took byte-level inspection of the output, and fixing it meant correcting both the conversion and the length generation.
3D Secure
I developed the Merchant Plug-In (MPI) server for a 3D Secure system. It supports issuer-side cardholder authentication and authorisation for online card payments.
Monitoring
Moniepoint’s transaction monitoring and dispute resolution platform is deployed in more than twelve Nigerian commercial banks. Each deployment processes over a million transactions and more than 2 billion naira in value.
My part of that platform was the integration with NIBSS for merchant and terminal onboarding and storage, which supports more than three million active merchant records.
Clearing
I built automated clearing tools that convert encoded DCF and TC33 files into valid Mastercard IPM and Visa BASE II formats, including the segregation of on-us transactions. They are in production at a leading Nigerian commercial bank.
Disputes
For the Mastercard dispute resolution system I built the collaboration response flow and the queue-fetching engine. It integrates with the Mastercard Dispute API to poll, process and respond to dispute queues inside scheme-mandated response windows, where a missed deadline means the bank loses the case by default.
Each case has to be handled once, and retried safely when a scheme response times out.
Interfaces
I build the React interfaces for these systems alongside the backend, so card and dispute teams can see where each job stands and act quickly when something fails.
Recognition
This work earned me an MVP Award at Moniepoint. In 2025 I completed EMV Technical Training with Intreensic, covering chip card structure, card applications, EMV cryptography and fraud mitigation, and applied it directly to the personalisation work.
A note
These systems are proprietary. This page describes my role and the shape of the problems, not internal architecture or the banks involved.