Case study
Monnify Laravel Package Contribution
Merged contribution to Monnify's official Laravel package: test coverage, CI, dependency injection refactor, contract fixes, and safer transport handling.
Overview
Monnify's official Laravel package gives Laravel teams a first-party integration path for payment collection, verification, webhooks, disbursements, virtual accounts, bills payment, and related payment workflows.
My merged contribution in PR #1 improved the package's reliability and maintainability: expanded automated coverage, added CI, refactored service wiring toward Laravel's container, fixed Monnify contract mismatches, and improved transport failure handling.
Packages
Monnify Laravel Package
Contributor to Monnify's official Laravel package:
- Packagist: monnify/monnify-laravel
- GitHub: Monnify/monnify-laravel
- Merged PR: Improve test coverage and align Monnify contract handling
- Added PHPUnit coverage across package wiring, shared request behavior, core services, and validators
- Added GitHub Actions test workflow across supported PHP versions
- Refactored package internals toward container-driven dependency injection and lazy service resolution
- Fixed verified Monnify contract mismatches, including disbursement validation and direct debit split payload support
- Hardened API transport failure handling and token cache behavior
Nomba SDK
Full Laravel SDK for Nomba (formerly Kuda Business) covering virtual accounts, payouts, and collections. In active development.
OPay & KoraPay
SDKs for OPay and KoraPay currently in progress — both following the same clean interface design as the Monnify and Nomba packages.
Design Principles
- Laravel-first — Uses service providers, facades, and config patterns that feel native to Laravel developers
- Testable — All packages ship with full test coverage and mock-friendly interfaces
- Developer ergonomics — Minimal boilerplate to get a working integration; sensible defaults throughout
- Consistent interface — All four SDKs share a common interface contract so switching providers requires minimal code changes