A Laravel package to effortlessly integrate the Monnify payment gateway API into your Laravel projects.
Install via Composer:
composer require monnify/monnify-laravel
Publish the configuration file:
php artisan vendor:publish --provider="Monnify\MonnifyLaravel\MonnifyServiceProvider"
Add environment variables (.env
):
MONNIFY_API_KEY=your_api_key
MONNIFY_SECRET_KEY=your_secret_key
MONNIFY_CONTRACT_CODE=your_contract_code
MONNIFY_WALLET_ACCOUNT_NUMBER=your_wallet_number
MONNIFY_ACCOUNT_NUMBER=your_account_number
MONNIFY_ENVIRONMENT=SANDBOX # or LIVE
Here's how to quickly initialize a payment transaction:
use Monnify\MonnifyLaravel\Facades\Monnify;
$data = [
'amount' => 100.00,
'customerName' => 'Jane Doe',
'customerEmail' => '[email protected]',
'paymentReference' => 'UNIQUE_REF_001',
'paymentDescription' => 'Payment for Service',
'currencyCode' => 'NGN',
'contractCode' => config('monnify.contract_code'),
'redirectUrl' => 'https://your-site.com/payment-confirmation',
'paymentMethods' => ['CARD', 'ACCOUNT_TRANSFER'],
];
try {
$response = Monnify::transactions()->initialise($data);
return redirect($response['checkoutUrl']);
} catch (Exception $e) {
// Handle error
$errorMessage = $e->getMessage();
// $e->status // error status
// $e->error // error object
}
This package throws exceptions for various error cases. Hence, wrapping your API calls in try-catch blocks.
This package provides the following services:
- Transaction Service: Manage payments, authorizations, and statuses.
- Customer Reserved Account Service: Create/manage virtual accounts.
- Invoice Service: Generate and manage invoices.
- Disbursement Service: Manage single and bulk fund transfers.
- Wallet Service: Manage wallet creation, balances, and transactions.
- Verification Service: Perform account, BVN, NIN verifications.
- Sub Account Service: Create/manage sub-accounts for split payments.
- Refund Service: Handle payment refunds.
- Settlement Service: Settlement transaction handling.
- Limit Profile Service: Manage transaction limits.
- Pay Code Service: Generate and manage pay codes.
- Direct Debit Service: Manage direct debit mandates.
- Recurring Payment Service: Automate recurring payments.
- Helper Service: Utility functions (fetch banks, etc).
The Transaction Service handles all payment-related operations.
// Initialize a new transaction
Monnify::transactions()->initialise($data);
// Initialize bank transfer payment
Monnify::transactions()->payWithBankTransfer($data);
// Charge a card
Monnify::transactions()->chargeCard($data);
/* Card Authorization */
// Authorize with OTP
Monnify::transactions()->authorizeOTP($data);
// Authorize 3D secure card
Monnify::transactions()->authorizeThreeDSCard($data);
/* Transaction Information */
// Get all transactions
Monnify::transactions()->all();
// Get transaction status
Monnify::transactions()->status($transactionReference);
// Get status by reference
Monnify::transactions()->statusByReference($reference, $type);
Monnify::transactions()->initialise($data);
Required fields: amount
, customerName
, customerEmail
, paymentReference
, currencyCode
, contractCode
, redirectUrl
.
Optional fields: paymentMethods
, incomeSplitConfig
.
Initializes a bank transfer payment.
Monnify::transactions()->payWithBankTransfer($data);
Required Parameters:
$data = [
'amount' => 1000.00,
'customerName' => 'John Doe',
'customerEmail' => '[email protected]',
'paymentReference' => 'UNIQUE-REF-123',
'currencyCode' => 'NGN',
'contractCode' => 'CONTRACT-CODE'
];
Process a card payment.
Monnify::transactions()->chargeCard($data);
Required Parameters:
$data = [
'transactionReference' => 'TRANS-REF-123', // string: Transaction reference
'card' => [
'number' => '5399********4444', // string: Card number
'expiryMonth' => '07', // string: Card expiry month
'expiryYear' => '25', // string: Card expiry year
'cvv' => '123' // string: Card CVV
]
];
Monnify::transactions()->authorizeOTP($data);
Required Parameters:
$data = [
'transactionReference' => 'TRANS-REF-123',
'otp' => '123456'
];
Monnify::transactions()->authorizeThreeDSCard($data);
Required Parameters:
$data = [
'transactionReference' => 'TRANS-REF-123',
'authorizationCode' => 'AUTH-CODE-123'
];
Monnify::transactions()->status($transactionReference);
Parameters:
$transactionReference
(string): The transaction reference to check
Check transaction status using different reference types.
Monnify::transactions()->statusByReference($reference, $referenceType);
Parameters:
$reference
(string): The reference number$referenceType
(string): Either 'transaction' or 'payment' (default: 'transaction')
Manages reserved account operations.
// Create general account
Monnify::customerReservedAccount()->createGeneralAccount($data);
// Create invoice account
Monnify::customerReservedAccount()->createInvoiceAccount($data);
// Get account details
Monnify::customerReservedAccount()->get($accountReference);
// Add linked accounts
Monnify::customerReservedAccount()->addLinkedAccounts($ref, $data);
// Remove account
Monnify::customerReservedAccount()->deallocateAccount($ref);
/** Account Updates **/
// Update BVN
Monnify::customerReservedAccount()->updateBVN($ref, $bvn);
// Update KYC info
Monnify::customerReservedAccount()->updateKYCInfo($ref, $data);
// Update payment sources
Monnify::customerReservedAccount()->allowedPaymentSource($ref, $data);
// Update split config
Monnify::customerReservedAccount()->updateSplitConfig($ref, $data);
/** Transaction Information **/
// Get transactions
Monnify::customerReservedAccount()->transactions($ref, $params);
Creates a new reserved general account.
Monnify::customerReservedAccount()->createGeneralAccount($data);
Required Parameters:
$data = [
'accountReference' => 'ACC-REF-123', // string: Unique account reference
'accountName' => 'John Doe', // string: Account holder name
'currencyCode' => 'NGN', // string: Currency code
'contractCode' => 'CONTRACT-CODE', // string: Your contract code
'customerEmail' => '[email protected]', // string: Customer email
'customerName' => 'John Doe', // string: Customer name
'getAllAvailableBanks' => true // boolean: Get all available banks
];
Optional Parameters:
$data['preferredBanks'] = ['035', '058']; // array: Preferred bank codes
$data['restrictPaymentSource'] = true; // boolean: Restrict payment sources
$data['allowedPaymentSource'] = [ // array: Allowed payment sources
'bvns' => ['12345678901']
];
$data['incomeSplitConfig'] = [ // array: Split payment configuration
[
'subAccountCode' => 'SUB-ACC-123',
'feePercentage' => 1.5,
'splitPercentage' => 30.0,
'feeBearer' => true
]
];
Creates a new reserved invoice account.
Monnify::customerReservedAccount()->createInvoiceAccount($data);
Required Parameters:
$data = [
'contractCode' => 'your_contract_code',
'accountName' => 'Account Name',
'currencyCode' => 'NGN',
'accountReference' => 'unique_reference',
'customerEmail' => '[email protected]',
'reservedAccountType' => 'INVOICE'
];
Optional Parameters:
$data['customerName'] = 'Customer Name';
$data['bvn'] = '12345678901';
$data['nin'] = '000000009090897878'
Get the full reserved account detail.
Monnify::customerReservedAccount()->get($accountReference);
Parameters:
$accountReference
(string): The reference of the main account
Add additional accounts to a reserved account.
Monnify::customerReservedAccount()->addLinkedAccounts($accountReference, $data);
Parameters:
$accountReference
(string): The reference of the main account$data
(array): Linked accounts configuration
$data = [
'accountNames' => [
[
'preferredName' => 'Business Account',
'accountName' => 'John Doe Business'
]
],
'getAllAvailableBanks' => true,
'preferredBanks' => ['035'] // Optional
];
Monnify::customerReservedAccount()->deallocateAccount($accountReference);
Parameters:
$accountReference
(string): The reference of the main account
Monnify::customerReservedAccount()->updateBVN($accountReference, $bvn);
Parameters:
$accountReference
(string): Account reference$bvn
(string): Bank Verification Number
Monnify::customerReservedAccount()->updateKYCInfo($accountReference, $data);
Parameters:
$accountReference
(string): Account reference$data
(array): KYC info (BVN, NIN or both)
$data = [
'bvn' => '21212121212',
'nin' => ''
];
Monnify::customerReservedAccount()->allowedPaymentSource($accountReference, $data);
Parameters:
$accountReference
(string): Account reference$data
(array): payment source setttings
$data = [
'restrictPaymentSource' => true,
'allowedPaymentSources' => [
'bvns' => [
'21212121212',
'20202020202'
]
]
];
Monnify::customerReservedAccount()->updateSplitConfig($accountReference, $data);
Parameters:
$accountReference
(string): Account reference$data
(array): split configs
$data = [
[
'subAccountCode' => 'MFY_SUB_305040939040',
'feePercentage' => 10.50
]
];
Monnify::customerReservedAccount()->transactions($accountReference, $parameters);
Parameters:
$accountReference
(string): Account reference$parameters
(array): Optional parameters
$parameters = [
'page' => 0, // integer: Page number (default: 0)
'size' => 10 // integer: Items per page (default: 10)
];
Manage invoice creation and operations.
// Create new invoice
Monnify::invoice()->create($data);
// Get invoice details
Monnify::invoice()->get($invoiceReference);
// Get all invoices
Monnify::invoice()->all();
// Cancel invoice
Monnify::invoice()->cancel($invoiceReference);
// Attach reserved account
Monnify::invoice()->attachReservedAccount($data);
Monnify::invoice()->create($data);
Required Parameters:
$data = [
'amount' => 1000.00, // float: Invoice amount
'customerName' => 'John Doe', // string: Customer name
'customerEmail' => '[email protected]', // string: Customer email
'expiryDate' => '2024-12-31', // string: Invoice expiry date
'invoiceReference' => 'INV-123', // string: Unique invoice reference
'description' => 'Service payment', // string: Invoice description
'currencyCode' => 'NGN', // string: Currency code
'contractCode' => 'CONTRACT-CODE' // string: Your contract code
];
Retrieve details of a specific invoice.
Monnify::invoice()->get($invoiceReference);
Parameters:
$invoiceReference
(string): The invoice reference to retrieve
Monnify::invoice()->all();
Monnify::invoice()->cancel($invoiceReference);
Parameters:
$invoiceReference
(string): The invoice reference to cancel
Monnify::invoice()->cancel($invoiceReference);
Required Parameters:
$data = [
'amount' => '999',
'invoiceReference' => '18389131823445',
'accountReference' => 'reference---1290034',
'description' => 'test invoice',
'currencyCode' => 'NGN',
'contractCode' => config('monnify.contract_code'),
'customerEmail' => '[email protected]',
'customerName' => 'Jane Doe',
'expiryDate' => '2025-04-30 12:00:00'
];
Optional Parameters:
$data['incomeSplitConfig'] = []; // array: income split config
$data['redirectUrl'] = 'https://your-website.com';
Handles money transfers and disbursements.
// Single Transfers
Monnify::transfer()->single($data, $async);
// Authorize single transfer
Monnify::transfer()->authoriseSingle($data);
// Get single transfer status
Monnify::transfer()->singleStatus($reference);
// Bulk Transfer
Monnify::transfer()->bulk($data);
// Authorize bulk transfer
Monnify::transfer()->authoriseBulk($data);
// Get bulk status
Monnify::transfer()->bulkStatus($ref, $pageSize, $pageNumber);
// Get transactions
Monnify::transfer()->bulkTransaction($ref, $pageSize, $pageNumber);
/** Other Operations **/
// Resend OTP
Monnify::transfer()->resendOTP($reference);
// Get all transfers
Monnify::transfer()->all($type, $pageSize, $pageNumber);
// Search
Monnify::transfer()->search($accountNumber, $pageSize, $pageNumber);
Process a single money transfer.
Monnify::transfer()->single($data, $async = false);
Required Parameters:
$data = [
'amount' => 1000.00, // float: Amount to transfer
'reference' => 'TRANSFER-123', // string: Unique transfer reference
'narration' => 'Salary payment', // string: Transfer description
'destinationBankCode' => '058', // string: Bank code
'destinationAccountNumber' => '0123456789', // string: Account number
'currency' => 'NGN', // string: Currency code
'sourceAccountNumber' => '1234567890' // string: Source account number
];
Optional Parameters:
$async
(boolean): Whether to process transfer asynchronously (default: false)
Process multiple transfers at once.
Monnify::transfer()->bulk($data);
Required Parameters:
$data = [
'title' => 'Bulk Payments', // string: Batch title
'batchReference' => 'BULK-123', // string: Unique batch reference
'narration' => 'Monthly payments', // string: Batch description
'sourceAccountNumber' => '1234567890', // string: Source account
'onValidationFailure' => 'CONTINUE', // optional
'notificationInterval' => 10, // optional
'transactions' => [ // array: List of transfers
[
'amount' => 1000.00,
'reference' => 'TRANSFER-1',
'destinationBankCode' => '058',
'destinationAccountNumber' => '0123456789',
'narration' => 'Payment 1',
'currency' => 'NGN'
],
// More transactions...
]
];
Monnify::transfer()->authoriseSingle($data); // For single transfer
Monnify::transfer()->authoriseBulk($data); // For bulk transfer
Required Parameters:
$data = [
'reference' => 'TRANSFER-123', // string: Transfer reference
'authorizationCode' => '123456' // string: OTP received
];
// Single transfer status
Monnify::transfer()->singleStatus($reference);
// Bulk transfer status
Monnify::transfer()->bulkStatus($batchReference, $pageSize = 10, $pageNumber = 0);
// Bulk transfer status
Monnify::transfer()->bulkTransaction($batchReference, $pageSize = 10, $pageNumber = 0);
// Resend OTP
Monnify::transfer()->resendOTP($reference);
// Get all transfers
Monnify::transfer()->all($type, $pageSize, $pageNumber);
// Search
Monnify::transfer()->search($accountNumber, $pageSize, $pageNumber);
Parameters:
$accountNumber
(string): Wallet account Number$reference
(string): transaction reference$type
(string): type of transaction (single
orbulk
)$pageSize
(integer): Number of records per page (default: 10)$pageNumber
(integer): Page number (default: 0)
Manages wallet operations.
// Create wallet
Monnify::wallet()->create($data);
// Get wallet details
Monnify::wallet()->get($customerEmail, $pageSize, $pageNumber);
// Get balance
Monnify::wallet()->balance($accountNumber);
// Get transactions
Monnify::wallet()->transactions($accountNumber, $pageSize, $pageNumber);
Monnify::wallet()->create($data);
Required Parameters:
$data = [
'customerEmail' => '[email protected]', // string: Customer email
'customerName' => 'John Doe', // string: Customer name
'accountNumber' => '0123456789', // string: Account number
'accountName' => 'John Doe', // string: Account name
'bvnDetails' => [
'bvn' => '22222222226', // string: BVN
'bvnDateOfBirth' => '1994-09-07' // string: Date of Birth
],
];
Monnify::wallet()->get($customerEmail, $pageSize = 10, $pageNumber = 0);
Parameters:
$customerEmail
(string): Customer's email address$pageSize
(integer): Number of records per page (default: 10)$pageNumber
(integer): Page number (default: 0)
Monnify::wallet()->balance($accountNumber);
Parameters:
$accountNumber
(string): Wallet account number
Monnify::wallet()->transactions($accountNumber, $pageSize, $pageNumber);
Parameters:
$accountNumber
(string): Wallet account number$pageSize
(integer): Number of records per page (default: 10)$pageNumber
(integer): Page number (default: 0)
// Verify account
Monnify::verificationAPI()->bankAccount($accountNumber, $bankCode);
// Verify BVN
Monnify::verificationAPI()->bvnInformation($data);
// Match BVN
Monnify::verificationAPI()->matchBVNAndBankAccount($bvn, $bankCode, $accountNumber);
// Verify NIN
Monnify::verificationAPI()->nin($nin);
Monnify::verificationAPI()->bankAccount($accountNumber, $bankCode);
Required Parameters:
$accountNumber
(string): Account number to verify$bankCode
(string): Bank code
Monnify::verificationAPI()->bvnInformation($data);
Required Parameters:
$data = [
'bvn' => '12345678901', // string: BVN to verify
'name' => 'John Doe', // string: Name to match
'dateOfBirth' => '1990-01-01' // string: Date of birth (YYYY-MM-DD)
'mobileNo' => '08142223149' // string: mobile number
];
Monnify::verificationAPI()->matchBVNAndBankAccount($bvn, $bankCode, $accountNumber);
Required Parameters:
$bvn
(string): BVN to match$bankCode
(string): Bank code$accountNumber
(string): Account number
Monnify::verificationAPI()->nin($nin);
Manages sub-accounts for split payments.
// Create sub account
Monnify::subAccount()->create($data);
// Get all sub accounts
Monnify::subAccount()->all();
// Update sub account
Monnify::subAccount()->update($data);
// Delete sub account
Monnify::subAccount()->delete($subAccountCode);
Creates a new sub-account for split payments.
Monnify::subAccount()->create($data);
Required Parameters:
$data = [
'bankCode' => '058', // string: Bank code
'accountNumber' => '0123456789', // string: Account number
'email' => '[email protected]', // string: Sub-account email
'currencyCode' => 'NGN' // string: Currency code (NGN, USD, etc.)
'defaultSplitPercentage' => 20.87 // integer: split percentage
];
Retrieves all sub-accounts associated with your contract.
Monnify::subAccount()->all();
Updates an existing sub-account's details.
Monnify::subAccount()->update($data);
Required Parameters:
$data = [
'subAccountCode' => 'SUB-ACC-123', // string: Sub account code
'bankCode' => '058', // string: New bank code
'accountNumber' => '0123456789', // string: New account number
'email' => '[email protected]', // string: New email
'currencyCode' => 'NGN' // string: Currency code
'defaultSplitPercentage' => 20.87 // integer: split percentage
];
Removes a sub-account from your contract.
Monnify::subAccount()->delete($subAccountCode);
Required Parameters:
$subAccountCode
(string): The unique code of the sub-account to delete
// Initialize a refund
Monnify::refund()->initialise($data);
// Get all refunds
Monnify::refund()->all($pageSize, $pageNumber);
// Check refund status
Monnify::refund()->status($refundReference);
Creates a new refund request.
Monnify::refund()->initialise($data);
Required Parameters:
$data = [
'transactionReference' => 'TRANS-123', // string: Original transaction reference
'refundReference' => 'REFUND-123', // string: Unique refund reference
'refundReason' => 'Customer request', // string: Refund reason
'refundAmount' => 1000.00, // float: Amount to refund
'customerNote' => 'An optional note', // string: customer side note
];
Check the status of a specific refund.
Monnify::refund()->status($refundReference);
Parameters:
$refundReference
(string): Refund reference to check
Retrieves all refunds with pagination.
Monnify::refund()->all($pageSize = 10, $pageNumber = 0);
Optional Parameters:
$pageSize
(integer): Number of records per page (default: 10)$pageNumber
(integer): Page number (default: 0)
Manages settlement information and transactions.
// Get settlement transactions
Monnify::settlements()->transactions($settlementReference, $pageSize, $pageNumber);
// Get by transaction reference
Monnify::settlements()->getByTransaction($transactionReference);
Retrieves transactions for a specific settlement.
Monnify::settlements()->transactions($settlementReference, $pageSize = 10, $pageNumber = 0);
Required Parameters:
$settlementReference
(string): Settlement reference to query
Optional Parameters:
$pageSize = 10; // integer: Number of records per page
$pageNumber = 0; // integer: Page number for pagination
Retrieves settlement details for a specific transaction.
Monnify::settlements()->getByTransaction($transactionReference);
Required Parameters:
$transactionReference
(string): Transaction reference to query
Manages transaction limits.
// Get all profiles
Monnify::limitProfile()->all();
// Create profile
Monnify::limitProfile()->create($data);
// Update profile
Monnify::limitProfile()->update($limitProfileCode, $data);
// Reserve account
Monnify::limitProfile()->reserveAccount($data);
// Update account reserved account with Limit profile
Monnify::limitProfile()->updateReserveAccount($accountRef, $limitProfileCode);
Monnify::limitProfile()->all();
Monnify::limitProfile()->create($data);
Required Parameters:
$data = [
'limitProfileName' => 'Basic Tier', // string: Profile name
'dailyTransactionLimit' => 1000000, // float: Daily limit
'dailyTransactionVolume' => 100, // integer: Daily transaction count
'singleTransactionLimit' => 100000 // float: Single transaction limit
];
Monnify::limitProfile()->update($limitProfileCode, $data);
Parameters:
$limitProfileCode
(string): Profile code to update$data
(array): New limit settings (same structure as create)
Creates a reserved account with specific limits.
Monnify::limitProfile()->reserveAccount($data);
Required Parameters:
$data = [
'accountReference' => 'ACC-REF-123', // string: Account reference
'limitProfileCode' => 'LIMIT-123', // string: Limit profile code
'contractCode' => config('monnify.contract_code'), // string: Contract code
'accountName' => "Kan Yo' Reserved with Limit", // string: Account Name
];
Monnify::limitProfile()-updateReserveAccount($accountReference, $limitProfileCode);
Manages payment codes.
// Create pay code
Monnify::payCodeAPI()->create($data);
// Get pay code details
Monnify::payCodeAPI()->get($payCodeReference);
// Get unmasked pay code
Monnify::payCodeAPI()->getUnMasked($payCodeReference);
// Get pay code history
Monnify::payCodeAPI()->history($parameters);
// Delete pay code
Monnify::payCodeAPI()->delete($payCodeReference);
Monnify::payCodeAPI()->create($data);
Required Parameters:
$data = [
'amount' => 1000.00, // float: Amount
'paycodeReference' => 'PAYCODE-123', // string: Unique reference
'beneficiaryName' => 'John Doe', // string: Beneficiary name
'clientId' => 'sEYUG-123', // string: Client Id
'expiryDate' => '2024-12-31' // string: Expiry date
];
Retrieve the full detail of a payment code
Monnify::payCodeAPI()->get($payCodeReference);
Retrieve the full detail of a payment code Unmasked
Monnify::payCodeAPI()->getUnMasked($payCodeReference);
Retrieves history of payment codes.
Monnify::payCodeAPI()->history($parameters);
Parameters:
$parameters = [
'transactionReference' => '', // string: Transaction Reference
'beneficiaryName' => '', // string: Beneficiary Name
'transactionStatus' => '', // string: Transaction status
'from' => '', // string: Start date (YYYY-MM-DD)
'to' => '' // string: End date (YYYY-MM-DD)
];
Monnify::payCodeAPI()->delete($payCodeReference);
Manages direct debit mandates.
// Create mandate
Monnify::directDebitMandate()->create($data);
// Get mandate details
Monnify::directDebitMandate()->get($mandateReference);
// Debit mandate
Monnify::directDebitMandate()->debit($data);
// Get mandate status
Monnify::directDebitMandate()->status($paymentReference);
// Cancel mandate
Monnify::directDebitMandate()->cancel($mandateCode);
Monnify::directDebitMandate()->create($data);
Required Parameters:
$data = [
'contractCode' => config('monnify.contract_code'),
'mandateReference' => 'unique_ref3_02s600972',
'customerName' => 'Ankit Kushwaha',
'customerPhoneNumber' => '1234567890',
'customerEmailAddress' => '[email protected]',
'customerAddress' => '123 Example Street, City, Country',
'customerAccountNumber' => '0051762787',
'customerAccountBankCode' => '058',
'mandateDescription' => 'Subscription Fee',
'mandateStartDate' => '2024-05-22T10:15:30',
'mandateEndDate' => '2025-05-22T10:15:30'
];
Optional Parameters:
'autoRenew' => false,
'customerCancellation' => true,
'customerAccountName' => 'Ankit Kushwaha',
Get full detail of a mandate payment.
Monnify::directDebitMandate()->get($mandateReference);
Required Parameters:
$mandateReference
(string): Mandate reference
Executes a debit on an existing mandate.
Monnify::directDebitMandate()->debit($data);
Required Parameters:
$data = [
'mandateCode' => 'MANDATE-123', // string: Mandate code
'amount' => 1000.00, // float: Amount to debit
'paymentReference' => 'PAYMENT-123', // string: Unique payment reference
'narration' => 'Monthly subscription' // string: Transaction description
'customerEmail' =>'[email protected]' // string: Cunstomer Email
];
Checks the status of a mandate payment.
Monnify::directDebitMandate()->status($paymentReference);
Required Parameters:
$paymentReference
(string): Payment reference to check
Monnify::directDebitMandate()->cancel($mandateCode);
Required Parameters:
$mandateCode
(string): Mandate code
// Charge card using token
Monnify::recurringPayment()->chargeCardToken($data);
Monnify::recurringPayment()->chargeCardToken($data);
Required Parameters:
$data = [
'cardToken' => 'MNFY_0CD0138B45F7C3EC6D3698969',
'amount' => 20,
'customerEmail' => '[email protected]',
'paymentReference' => '1642776mml0068n2937',
'contractCode' => config('monnify.contract_code'),
'apiKey' => config('monnify.api_key'),
];
Optional Parameters:
'customerName' => 'Marvelous Benji',
'paymentDescription' => 'Paying for Product A',
'currencyCode' => 'NGN',
'incomeSplitConfig' => [],
'metaData' => [
'ipAddress' => '127.0.0.1',
'deviceType' => 'mobile'
]
Provides utility functions.
// Get all banks
Monnify::helper()->banks();
// Get banks with USSD
Monnify::helper()->banksWithUSSD();
Wrap API calls in try-catch blocks to handle exceptions efficiently:
try {
$response = Monnify::transactions()->initialise($data);
} catch (Exception $e) {
$error = $e->getMessage();
}
Run package tests with:
composer test
- Fork repository
- Create feature/fix branch
- Submit Pull Request
Report security issues directly to [email protected].
This package is licensed under the MIT License.
For support, contact Babatunde Adelabu.