Monnify Web SDK

Installing the Monnify SDK is very easy and can be completed in a couple of minutes. Simply follow the steps below:

Add the Monnify Web SDK Javascript Snippet to your website

You can simply copy the code snippet below and paste it in your website to install the Monnify SDK.

Monnify Web SDK
<script type="text/javascript" src=""></script>
<button onclick="payWithMonnify()">Pay with Monnify</button>

<script type="text/javascript">
	function payWithMonnify() {
			amount: 5000,
			currency: "NGN",
			reference: '' + Math.floor((Math.random() * 1000000000) + 1),
			customerName: "John Doe",
			customerEmail: "",
			apiKey: "MK_TEST_SAF7HR5F3F",
			contractCode: "4934121693",
			paymentDescription: "Test Pay",
			isTestMode: true,
		    metadata: {
                    "name": "Damilare",
                    "age": 45
			paymentMethods: ["CARD", "ACCOUNT_TRANSFER"],
			incomeSplitConfig: 	[
	    			"subAccountCode": "MFY_SUB_342113621921",
	    			"feePercentage": 50,
		    		"splitAmount": 1900,
		    		"feeBearer": true
		    		"subAccountCode": "MFY_SUB_342113621922",
		    		"feePercentage": 50,
	    			"splitAmount": 2100,
	    			"feeBearer": true
			onComplete: function(response){
				//Implement what happens when transaction is completed.
			onClose: function(data){
				//Implement what should happen when the modal is closed here

Once you've copied this code into your website, you can start receiving payments via Monnify immediately. 

You will likely need to pass in your own values when initializing the SDK. Your contractCode, and apiKey can be found on your Monnify dashboard

When the transaction is completed, Monnify returns a response object to your onComplete function. 

Monnify Web SDK Response Object
	accountReference: null
	amountPaid: "5000.00"
	invoiceReference: null
	paidOn: "26/08/2019 02:13:32"
	paymentDescription: "Test Pay"
	paymentReference: "421168696"
	paymentStatus: "PAID"
	totalPayable: "5000.00"
	transactionHash: "6373d5039175201eed06c1872c557749cfba27f0d56d75ff713e58f06ebad84795d38b34334ca59470ffae8addfbdf113ec36823a1607325c89da4981e1054bf"
	transactionReference: "MNFY|20190826141314|000290"

If a user cancels, Monnify returns the following response to your onClose function

Monnify Web SDK Cancellation Object
	authorizedAmount: 0
	paymentStatus: "USER_CANCELLED"
	redirectUrl: "file:///Users/tamira/Webapps/html/sdk.html"
	responseCode: "USER_CANCELLED"
	responseMessage: "User cancelled Transaction"

We recommend that you always make a get transaction status call whenever a transaction is completed (or cancelled) before saving the transaction on your database. Monnify will also notify you via your webhook url of the status of any transaction.

Simulating Bank Transfers on the Sandbox

To simulate bank transfers on the Monnify Sandbox environment you can use our Banking App Web Simulator. Click here to view the banking app simulator 

Field Reference

(M) indicates fields that are mandatory in the request body

amount (M)The amount to be paid by the customer
currency (M)The currency of the transaction being initialized. "NGN"
reference (M)Merchant's Unique reference for every transaction. (The SDK already has a code snippet that generates this for you, but you can always replace it)
customerName (M)Full name of the customer
customerEmail (M)Email address of the customer
customerMobileNumber (M)Phone number of the customer
apiKey (M)Merchant's API Key (Can be found on the Monnify dashboard)
contractCode (M)Merchant's contract code (Can be found on the Monnify dashboard)
paymentDescription (M)Description for the transaction. Will be used as the account name for bank transfer payments
isTestMode (M)Should be set to true when using the sandbox and false when on production
transactionHash (M)Transaction Hash added to transaction response for security purposes. Click here for information on how to calculate the hash value
paymentStatus (M)Status of the transaction ("PAID", "PENDING" or "FAILED")
incomeSplitConfig Object containing specifications on how payments to this reserve account should be split.
subAccountCode (m)The unique reference for the sub account that should receive the split.
feeBearerBoolean to determine if the sub account should bear transaction fees or not
feePercentageThe percentage of the transaction fee to be borne by the sub account
splitPercentageThe percentage of the amount paid to be split into the sub account.
paymentMethodsAn array containing payment methods which will be displayed to select from. It's defaulted to both account and card payment methods.