Virtual Cards (USD & NGN)

Learn how to issue virtual cards.

Overview

Creating virtual cards with Mono Issuing

Learn how to create a virtual bank card via APIs in 3 simple steps.

Step 1: Get Account Holder ID
Step 2: Create a Virtual Card
Step 3: Get Card Details


Step 1: Get Account Holder ID

The Account holder ID is required to issue a virtual card. 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.

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": "INDIVIDUAL",
      "identity": {
        "type": "NIN",
        "number": "1111:10111222112",
        "url": "https://mono-business-assets.s3.eu-west-2.amazonaws.com/identity-FunVlKB_OKMHuQFLCT5ek-test_1.png"
      },
      "bvn": "00000000000",
      "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 Virtual Card

Here, we will create a virtual card and assign it to an account holder. This request contains the account holder ID, the currency (which can be either usd or ngn) and the amount field for which the card will be funded immediately after the card has been created. Please note that the amount passed should be in the lowest denomination (e.g For USD 20, you would be passing 2000 cents instead).

API Reference

curl --location --request POST 'https://api.withmono.com/issuing/v1/cards/virtual' \
--data-raw '{
    "account_holder": "61a7363bc2d313658ce82d38",
    "currency": "usd", // OR "ngn"
    "amount": 10000 // USD 100
}'
{
  "status": "successful",
  "message": "Card creation is been processed",
  "data": {
    "id": "61bb3a0d5f53902db40eb478"
  }
}

📘

NOTES

  • Mono returns a card object upon creation, and sends the issuing.virtual_card_created webhook event.

Step 3: Get Card Details

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

API Reference

curl --location --request GET 'https://api.withmono.com/issuing/v1/cards/61ad48adf9032a4fdd140d7f
{
  "status": "successful",
  "message": "Card fetched successfully",
  "data": {
    "id": "630ba6ca8f77d1341fd412345",
    "disposable": false,
    "status": "active",
    "type": "virtual",
    "currency": "USD",
    "brand": "VISA",
    "name_on_card": "Daniel Alves",
    "balance": 3100,
    "created_at": "2022-08-28T17:32:58.756Z",
    "billing_address": {
      "country": "US",
      "street": "256 Chapman Road STE 105-4",
      "postal_code": "19702",
      "city": "Newark",
      "state": ""
    },
    "card_number": "949eba2844880e33770307271ba960fe85f1df45398e98a6ccd0daf12345",
    "card_pan": "484224******1234",
    "cvv": "c11138bffee7e99e6c5c2c49f885bcbf1f25de5c2b633ade312345",
    "expiry_month": "7099ac2cdfeab891080a3ab9f3163da9e30715f12345",
    "expiry_year": "d6ec1967f2b16b9ecb918b69606ef93bf49be7f712345",
    "last_four": "d9512f70a9d7a3d3780a145340a8aa11f6f28693c512345",
    "account_holder": "61e05687f66f67be54321"
  }
}

📘

CARD DECRYPTION

Kindly refer to our guide here to decrypt card information.


Funding Virtual Cards

To fund a Live Virtual Card, you will only need to:

Fund Virtual Card

Proceed to make an API call to the Fund Virtual Card API to fund the desired card with the amount field parsed into the body request.

API Reference

curl --location --request POST 'https://api.withmono.com/issuing/v1/cards/61ad4c25a7fb0a544e4c5cc2/fund' \
--data-raw '{
    "amount":"50000"
}'
{
  "status": "successful",
  "message": "Virtual Card Funded Successfully"
}

📘

NOTE

Virtual card issuance fee will be taken from the USD wallet

Mock Card Transaction

In a sandbox environment, you can perform a mock amount on a Virtual card created in Sandbox via the ID.

API Reference

curl --location --request POST 'https://api.withmono.com/issuing/v1/cards/61b354e233b1ba7122226907/mocktransaction' \
--data-raw '{
    "amount": "20000"
}'
{
  "status": "success",
  "message": "Card Mock Transaction Sent Successfully"
}

Did this page help you?