Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

This endpoint is protected with OAuth 2.0 Bearer token. To find out more about authorization for Monnify endpoints, check Here.

Endpoint URL: {{base_url}}/api/v2/disbursements/single

...

Code Block
languagejson
{
    "amount": 1020,
    "reference":"reference12934ben9-jlo00hdhdjjdfjoj--i",
    "narration":"911 TransactionTest01",
    "destinationBankCode": "035057",
    "destinationAccountNumber": "50001431152085096393",
    "destinationAccountNamecurrency": "Benjamin WilsonNGN",
    "currencysourceAccountNumber": "NGN8016472829",
    "sourceAccountNumberdestinationAccountName": "9624937372Marvelous Benji"
} 

If the merchant does not have Two Factor Authentication (2FA) enabled, the transaction will be processed instantly and the response will be as follows:

...

Code Block
languagejson
{
    "requestSuccessful": true,
    "responseMessage": "success",
    "responseCode": "0",
    "responseBody": {
        "amount": 1020,
        "sessionIdreference": "090405220516131608508626806834ben9-jlo00hdhdjjdfjoj--i",
        "referencestatus": "reference12934SUCCESS",
        "statusdateCreated": "SUCCESS",
2022-11-03T14:13:38.140+0000",
        "dateCreatedtotalFee": 0.00,
   "13/11/2019 09:34:32 PM",
		"totalFee": 20.00     "sessionId": "090405221103151339936348270655",
       }
}

If the merchant has Two Factor Authentication (2FA) enabled, a One Time Password (OTP) will be sent to the designated email address(es). That OTP will need to be supplied via the VALIDATE OTP REQUEST before the transaction can be approved. If 2FA is enabled, the response will be as follows:

Initiate Transfer (Single) Response 2FA Enabled

Code Block
languagejson
{
    "requestSuccessful": true,
    "responseMessage": "success "destinationAccountName": "Marvelous Benji",
        "destinationBankName": "Zenith bank",
        "destinationAccountNumber": "2085096393",
    "responseCode": "0",       "responseBodydestinationBankCode": {
        "amount057":
10,         "reference": "reference12934",
        "status": "PENDING_AUTHORIZATION",}
}

If the merchant has Two Factor Authentication (2FA) enabled, a One Time Password (OTP) will be sent to the designated email address(es). That OTP will need to be supplied via the VALIDATE OTP REQUEST before the transaction can be approved. If 2FA is enabled, the response will be as follows:

Initiate Transfer (Single) Response 2FA Enabled

Code Block
languagejson
{
    "requestSuccessful": true,
    "dateCreatedresponseMessage": "13/11/2019 08:48:32 PM"success",
    "responseCode": "0",
    }
}

...

Initiate Transfer (Single) Failed Disbursement Transaction Request

json
Code Block
language
"responseBody": {
        "amount": 20,
        "reference": "ben9-jlo00hdhdjjdfjoji",
        "status": "PENDING_AUTHORIZATION",
        "dateCreated": "2022-11-03T14:11:12.659+0000",
        "totalFee": 0.00,
        "destinationAccountName": "Marvelous Benji",
        "destinationBankName": "Zenith bank",
        "destinationAccountNumber": "2085096393",
        "destinationBankCode": "057"
    }
}


To simulate a failed disbursement transaction on the sandbox environment, you should use this destination account number: 0035785417 and destination bank code: 044. Here is a sample request: 

Initiate Transfer (Single) Failed Disbursement Transaction Request

Code Block
languagejson
{
    "amount": 20,
    "reference":"ben9-jlo00hdhdjjdfjoji",
    "narration":"Test01",
    "destinationBankCode": "057",
    "destinationAccountNumber": "2085096393",
    "currency": "NGN",
    "sourceAccountNumber": "8016472829",
    "destinationAccountName": "Marvelous Benji"
}

The response will be as follows:

Initiate Transfer (Single) Failed Disbursement Transaction Response

Code Block
languagejson
{
    "requestSuccessful": true,
    "responseMessage": "success",
    "responseCode": "0",
    "responseBody": {
        "amount": 20,
        "reference": "ben900gg00-hhooooji",
        "status": "FAILED",
        "dateCreated": "2023-02-28T09:39:03.936+0000",
        "totalFee": 0.00,
        "destinationAccountName": "Marvelous Benji",
        "destinationBankName": "Zenith bank",
        "destinationAccountNumber": "2085886393",
        "destinationBankCode": "057",
        "comment": "You do not have sufficient balance to process this request. Please fund your account and try again."
    }
}

...

Processing Transfers Asynchronously

You can easily process transfer to your users asynchronously (by simply setting the “async” parameter to true in your request body) so that your server doesn’t have to wait for Monnify to get the final status of the transfer. When transfers are processed asynchronously, a pending status is returned in the response body, so we recommend that you have a disbursement webhook setup on your end(see here for setup; Webhooks) to receive the final status of the transfer. However you can also requery the transfer to check its status(Transfer Status).

Sample Request

Code Block
{
    "amount": 20,
    "reference": 10"a78c632b93",
    "narration":"Test01",
    "destinationBankCode": "057",
    "destinationAccountNumber": "2085096393",
    "referencecurrency": "reference12934NGN",
    "narrationsourceAccountNumber": "911 Transaction8016472829",
    "destinationBankCodedestinationAccountName": "044Marvelous Benji",
    "destinationAccountNumberasync": "0035785417",true
}

Sample Response

Code Block
{
    "destinationAccountNamerequestSuccessful": "Shola Adebayo"true,
    "currencyresponseMessage": "NGNsuccess",
    "sourceAccountNumberresponseCode": "96249373720"
}

The response will be as follows:

Initiate Transfer (Single) Failed Disbursement Transaction Response

Code Block
languagejson
{,
    "responseBody": {
        "requestSuccessfulamount": true20,
        "responseMessagereference": "successa78c632b93",
        "responseCodestatus": "0PENDING",
        "dateCreated":  "responseBody": {"2023-03-17T14: 16: 45.499+0000",
        "amounttotalFee": 500.00,
        "referencedestinationAccountName": "ref1622802875358Marvelous Benji",
        "statusdestinationBankName": "FAILEDZenith bank",
        "dateCreateddestinationAccountNumber": "2021-06-04T10:34:38.269+00002085886393",
        "totalFeedestinationBankCode": 35.00"057"
    }
}

Bulk Transfers

To initiate a bulk transfer,  you will need to send a request to the endpoint below:

...