Monnify Web SDK

Installing the Monnify SDK can be completed in a couple of minutes by simply following 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() { MonnifySDK.initialize({ 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. console.log(response); }, onClose: function(data){ //Implement what should happen when the modal is closed here console.log(data); } }); } </script>

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

You will 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")


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.


Boolean to determine if the sub account should bear transaction fees or not


The percentage of the transaction fee to be borne by the sub account


The percentage of the amount paid to be split into the sub account.


An array containing payment methods which will be displayed to select from. It's defaulted to both account and card payment methods.