Bank Accounts

Learn how to create a bank account.

Overview

Bank accounts are business accounts issued by an MFB

Issue a bank account via APIs in 3 simple steps.

Step 1: Get Account Holder ID
Step 2: Create Bank Account
Step 3: Fetch Bank Account Details


Step 1: Get Account Holder ID

The Account holder ID is required to issue a virtual bank account. If an Account Holder doesn’t exist at the moment, please visit the documentation page above to get started. As a business or developer, you can also get a list of all created Account Holders with the Get Account Holders API.

🚧

Note

A business account holder is required when creating a bank account

API Reference

curl --location --request GET 'https://api.withmono.com/issuing/v1/accountholders' \
--header 'mono-sec-key: live_sk_EtJWxTkkQEQn0vPrg2wc' \
--data-raw ''
{
  "status": "successful",
  "message": "Account holders fetched",
  "data": [
    {
      "address": {
        "country": "nigeria",
        "lga": "ikeja",
        "city": "ikeja",
        "state": "lagos",
        "postal_code": "100001",
        "address_line1": "banana island",
        "address_line2": "banana island"
      },
      "phone": "111109030841956",
      "entity": "BUSINESS",
      "identity": {
        "type": "NIN",
        "number": "1111:10111222112",
        "url": "https://mono-business-assets.s3.eu-west-2.amazonaws.com/identity-FunVlKB_OKMHuQFLCT5ek-test_1.png"
      },
      "bvn": "22923001290",
      "email": "[email protected]",
      "business": "6172811205af5c47a1f31e49",
      "app": "60ffd3fee03417c574fa1f55",
      "live": false,
      "created_at": "2021-12-08T22:21:40.428Z",
      "updated_at": "2021-12-08T22:21:40.428Z",
      "id": "61b12ff41f933f527efc6c90",
      "first_name": "ifeoluwa",
      "last_name": "olanipekun",
      "selfie_url": "https://mono-business-assets.s3.eu-west-2.amazonaws.com/identity-FunVlKB_OKMHuQFLCT5ek-test_1.png"
    },
  ],
  "meta": {
    "total": 5,
    "pages": 1,
    "previous": null,
    "next": null
  }
}

Step 2: Create a Bank Account

Here, we will create a bank account and assign it to an account holder.
This request contains the account holder ID.

API Reference

curl --request POST \
     --url https://api.withmono.com/issuing/v1/bankaccounts \
     --header 'Accept: application/json' \
     --header 'Content-Type: application/json' \
     --header 'mono-sec-key: live_sk_EtJWxTkkQEQn0vPrg2wc' \
     --data '
{
     "account_holder": "610adeddjhfghgvjhvjhb"
}
'
{
  "status": "successful",
  "message": "Bank account generation is processing",
  "data": {
    "id": "62f0536c50e1f24351f2c8c3"
  }
}

📘

BANK ACCOUNT WEBHOOKS

  1. On successful creation, we send an issuing.bank_account_created webhook event.

  2. On failed creation, we send an issuing.bank_account_failed webhook event with a reason.

Step 3: Fetch Bank Account Details

With a bank account already created, we can get detailed information about this account via the created bank account ID.

API Reference

curl --request GET \
     --url https://api.withmono.com/issuing/v1/bankaccounts/62f0536c50e1f24351f2c8c3 \
     --header 'Accept: application/json' \
     --header 'mono-sec-key: live_sk_EtJWxTkkQEQn0vPrg2wc'
{
  "status": "successful",
  "message": "Bank Account fetched successfully",
  "data": {
    "id": "62f0536c50e1f24351f2c8c3",
    "currency": "NGN",
    "balance": 190000,
    "status": "active",
    "bank_name": "Safe Haven MFB",
    "bank_code": "090286",
    "account_holder": "62ea9b8472ece79828a5385a",
    "kyc_level": "2",
    "created_at": "2022-08-07T23:59:51.470Z",
    "updated_at": "2022-08-08T08:06:30.478Z",
    "account_name": "Femi Alayesanmi",
    "account_number": "8036031517"
  }
}

Fund Transfer

Two types of fund transfer operations can be performed within a Bank Account:

  1. Fund Transfer to a bank account number
  2. Fund Transfer between issued accounts

Fund Transfer to a bank account number

A bank account can initiate a bank transfer into any Nigerian Bank Account Number via API by passing the desired amount, a narration, a reference, the destination account number, and the bank code. (A list of all bank codes can be found here)

API Reference

curl --request POST \
     --url https://api.withmono.com/issuing/v1/bankaccounts/62f0536c50e1f24351f2c8c3/transfers \
     --header 'Accept: application/json' \
     --header 'Content-Type: application/json' \
     --header 'mono-sec-key: live_sk_EtJWxTkkQEQn0vPrg2wc' \
     --data '
{
     "amount": "100000",
     "bank_code": "057",
     "account_number": "20356787876",
     "reference": "asqqw323123",
     "narration": "Matured Investment",
     "meta": {
          "my_reference": "user_id_123132"
     } // Optional
}
'
{
  "status": "successful",
  "message": "Transfer is processing",
  "data": {
    "id": "62f0c405dcf59e51e408daf9"
  }
}

2. Fund Transfer between issued bank accounts

A bank account can initiate a bank transfer into an already created bank account via the beneficiary bank account id, via API by passing the desired amount, a narration, a reference, and the destination account id.

API Reference

curl --request POST \
     --url https://api.withmono.com/issuing/v1/bankaccounts/62f0536c50e1f24351f2c8c3/transfers \
     --header 'Accept: application/json' \
     --header 'Content-Type: application/json' \
      --header 'mono-sec-key: live_sk_EtJWxTkkQEQn0vPrg2wc' \
     --data '
{
     "amount": 150000,
     "narration": "Loan repayment",
     "reference": "asqqw3231239",
     "account_id": "61a73645c2d313658ce82d44",
     "meta": {
          "my_reference": "customer_id"
     } // Optional
}
'
{
    "status": "successful",
    "message": "Transfer is processing",
    "data": {
        "id": "62f0c405dcf59e51e408daf9"
    }
}

👍

QUICK NOTE

Please do not include any special characters while setting a payment reference.



Did this page help you?