RUBIES OPEN API

Virtual Account

Collection to create and manage virtual accounts

Amount Control

This is used to control the payment amount.

Fixed Amount:

Customer must pay the exact amount via bank transfer else bank transfer will fail.

Under Payment:

Customer is allowed to pay an amount less than the specified amount.

Over Payment:

Customer is allowed to pay an amount greater than the specified amount.

Variable Amount:

Customer is allowed to pay any amount ( could be useful for donations, collections etc)

  • Create Virtual Account
  • Get virtual account
  • disable virtual account
  • list virtual accounts
  • confirm call back transaction
  • check payment status
  • list transactions

N.B

  • Confirm and validate every call back received from us - /confirmcallbacktransaction
  • Sessionid is unique for every transaction received - please ensure you only credit your wallet once
  • Ensure idempotency as you may receive multiple callback for a single transaction.

This is the sample PAYLOAD sent to specified callback url

{   "originatoraccountnumber": "0765390091",
"amount":  "100.00",
"originatorname":  "UCHECHUKWU JOSEPH",
"service":  "RUBYPAY",
"narration":  "TRF FRM UCHECHUKWU JOSEPH TO RUBYPAY-JOSEPH",
"craccountname":  "RUBYPAY-JOSEPH",
"paymentreference":  "000014200430123404299823865303",
"sessionid":  "000014200430123404299823865303",
"bankname":  "Access",
"craccount":  "4460858848",
"bankcode":  "000014"
}

Create Virtual Account

Creates a virtual account

HEADERS

Authorization

SK-0000000017066353202-PROD-00B1E2681540444F9F54AF2D981C08746934A6923E944B398593187D017C9370

Content-Type

application/json

POST

https://openapi.rubiesbank.io/v1/createvirtualaccount

BODY

raw

}


"virtualaccountname": "Merchant name",
   "amount": "1",
   "amountcontrol": "VARIABLEAMOUNT",
   "daysactive": 0,
   "minutesactive": 30,
   "callbackurl": "https://enxned596fssr.x.pipedream.net",
   "singleuse":"N"

{

1
2
3
4
5
6
7
8
9
10

wget --no-check-certificate --quiet \
 
--method POST \
 
--timeout=0 \
 
--header 'Authorization: SK-000000001-PROD-47296C056DB745908EC2367417600BFFE060F4E31DD342C6A372FC148DAFCD6D' \
 
--header 'Content-Type: application/json' \
 --body-data '{
 
 "request": "banklist"
}' \
Body

Header(9)

{
 "responsecode": "00" ,
 "banklist" : [
   {

     "bankname" : "ABBEY MORTGAGE BANK",
     "bankcode" : "070010"
   },
   {
     "bankname" : "ACCION MFB",
     "bankcode" : "090134"
   },
   {

     "bankname" : "AG MORTGAGE BANK PLC",
     "bankcode" : "100028"
   },
const duplo = require('duplo')('dp_test_P2tH90snfuQB0qlPopnhdgkOpbs');
const virtualAccount = await duplo.card.getAll({FilteringObject});
$duplo = new \Duplo\DuploClient(
 'dp_test_P2tH90snfuQB0qlPopnhdgkOpbs'
);
$duplo->card->getAll();

Disable Virtual Account

To deactivate or disable a virtual account

HEADERS

Authorization

SK-000000001-PROD-AF7A381625B64781951855487ED90507DF671147F69044788B8F00067656F25E

Content-Type

application/json

POST

https://openapi.rubiesbank.io/v1/disablevirtualaccount

BODY

raw

}

{

1
2
3
4
5
6
7
8
9
10

wget --no-check-certificate --quiet \
 
--method POST \
 
--timeout=0 \
 
--header 'Authorization: SK-000000001-PROD-47296C056DB745908EC2367417600BFFE060F4E31DD342C6A372FC148DAFCD6D' \
 
--header 'Content-Type: application/json' \
 --body-data '{
 
 "request": "banklist"
}' \
Body

Header(9)

{
 "responsecode": "00" ,
 "banklist" : [
   {

     "bankname" : "ABBEY MORTGAGE BANK",
     "bankcode" : "070010"
   },
   {
     "bankname" : "ACCION MFB",
     "bankcode" : "090134"
   },
   {

     "bankname" : "AG MORTGAGE BANK PLC",
     "bankcode" : "100028"
   },
const duplo = require('duplo')('dp_test_P2tH90snfuQB0qlPopnhdgkOpbs');
const virtualAccount = await duplo.card.getAll({FilteringObject});
$duplo = new \Duplo\DuploClient(
 'dp_test_P2tH90snfuQB0qlPopnhdgkOpbs'
);
$duplo->card->getAll();

List Virtual Accounts

Provides a list of all generated virtual accounts from inception.

HEADERS

Authorization

SK-000000001-PROD-AF7A381625B64781951855487ED90507DF671147F69044788B8F00067656F25E

Content-Type

application/json

POST

https://openapi.rubiesbank.io/v1/listvirtualaccounts

BODY

raw

}


    "request": "listaccounts",
       "page":1

{

1
2
3
4
5
6
7
8
9
10

wget --no-check-certificate --quiet \
 
--method POST \
 
--timeout=0 \
 
--header 'Authorization: SK-000000001-PROD-47296C056DB745908EC2367417600BFFE060F4E31DD342C6A372FC148DAFCD6D' \
 
--header 'Content-Type: application/json' \
 --body-data '{
 
 "request": "banklist"
}' \
Body

Header(9)

{
 "responsecode": "00" ,
 "banklist" : [
   {

     "bankname" : "ABBEY MORTGAGE BANK",
     "bankcode" : "070010"
   },
   {
     "bankname" : "ACCION MFB",
     "bankcode" : "090134"
   },
   {

     "bankname" : "AG MORTGAGE BANK PLC",
     "bankcode" : "100028"
   },
const duplo = require('duplo')('dp_test_P2tH90snfuQB0qlPopnhdgkOpbs');
const virtualAccount = await duplo.card.getAll({FilteringObject});
$duplo = new \Duplo\DuploClient(
 'dp_test_P2tH90snfuQB0qlPopnhdgkOpbs'
);
$duplo->card->getAll();

Update Call Back URL

To update your CallBackUrl

HEADERS

Authorization

SK-0000000017066353202-PROD-8324645EA1A440A481DB21246474D6EFBAA693AB9780437A87A6B0146078BA29

Content-Type

application/json

POST

https://openapi.rubiesbank.io/v1/updatecallbackurl

BODY

raw

}


"virtualaccount": "4460673934",
   "callbackurl":"https://example.m.pipedream.net"

{

1
2
3
4
5
6
7
8
9
10

wget --no-check-certificate --quiet \
 
--method POST \
 
--timeout=0 \
 
--header 'Authorization: SK-000000001-PROD-47296C056DB745908EC2367417600BFFE060F4E31DD342C6A372FC148DAFCD6D' \
 
--header 'Content-Type: application/json' \
 --body-data '{
 
 "request": "banklist"
}' \
Body

Header(9)

{
 "responsecode": "00" ,
 "banklist" : [
   {

     "bankname" : "ABBEY MORTGAGE BANK",
     "bankcode" : "070010"
   },
   {
     "bankname" : "ACCION MFB",
     "bankcode" : "090134"
   },
   {

     "bankname" : "AG MORTGAGE BANK PLC",
     "bankcode" : "100028"
   },
const duplo = require('duplo')('dp_test_P2tH90snfuQB0qlPopnhdgkOpbs');
const virtualAccount = await duplo.card.getAll({FilteringObject});
$duplo = new \Duplo\DuploClient(
 'dp_test_P2tH90snfuQB0qlPopnhdgkOpbs'
);
$duplo->card->getAll();

Confirm call back transaction

To verify the authenticity of the transaction details

HEADERS

Authorization

SK-000000001-PROD-AF7A381625B64781951855487ED90507DF671147F69044788B8F00067656F25E

Content-Type

application/json

POST

https://openapi.rubiesbank.io/v1/confirmcallbacktransaction

BODY

raw

}


"paymentreference":  "000013200217045801000061575825"

{

1
2
3
4
5
6
7
8
9
10

wget --no-check-certificate --quiet \
 
--method POST \
 
--timeout=0 \
 
--header 'Authorization: SK-000000001-PROD-47296C056DB745908EC2367417600BFFE060F4E31DD342C6A372FC148DAFCD6D' \
 
--header 'Content-Type: application/json' \
 --body-data '{
 
 "request": "banklist"
}' \
Body

Header(9)

{
 "responsecode": "00" ,
 "banklist" : [
   {

     "bankname" : "ABBEY MORTGAGE BANK",
     "bankcode" : "070010"
   },
   {
     "bankname" : "ACCION MFB",
     "bankcode" : "090134"
   },
   {

     "bankname" : "AG MORTGAGE BANK PLC",
     "bankcode" : "100028"
   },
const duplo = require('duplo')('dp_test_P2tH90snfuQB0qlPopnhdgkOpbs');
const virtualAccount = await duplo.card.getAll({FilteringObject});
$duplo = new \Duplo\DuploClient(
 'dp_test_P2tH90snfuQB0qlPopnhdgkOpbs'
);
$duplo->card->getAll();

Check payment status

Provides status of a transaction

HEADERS

Authorization

SK-000000001-PROD-AF7A381625B64781951855487ED90507DF671147F69044788B8F00067656F25E

Content-Type

application/json

POST

https://openapi.rubiesbank.io/v1/checkpaymentstatus

BODY

raw

}


"virtualaccount": "4460284327",
    "amount": "100"

{

1
2
3
4
5
6
7
8
9
10

wget --no-check-certificate --quiet \
 
--method POST \
 
--timeout=0 \
 
--header 'Authorization: SK-000000001-PROD-47296C056DB745908EC2367417600BFFE060F4E31DD342C6A372FC148DAFCD6D' \
 
--header 'Content-Type: application/json' \
 --body-data '{
 
 "request": "banklist"
}' \
Body

Header(9)

{
 "responsecode": "00" ,
 "banklist" : [
   {

     "bankname" : "ABBEY MORTGAGE BANK",
     "bankcode" : "070010"
   },
   {
     "bankname" : "ACCION MFB",
     "bankcode" : "090134"
   },
   {

     "bankname" : "AG MORTGAGE BANK PLC",
     "bankcode" : "100028"
   },
const duplo = require('duplo')('dp_test_P2tH90snfuQB0qlPopnhdgkOpbs');
const virtualAccount = await duplo.card.getAll({FilteringObject});
$duplo = new \Duplo\DuploClient(
 'dp_test_P2tH90snfuQB0qlPopnhdgkOpbs'
);
$duplo->card->getAll();

List transactions

Provides a list of transactions on a virtual account

HEADERS

Authorization

SK-000000001-PROD-AF7A381625B64781951855487ED90507DF671147F69044788B8F00067656F25E

Content-Type

application/json

POST

https://openapi.rubiesbank.io/v1/listtransactions

BODY

raw

}


"virtualaccount": "4460284327",
    "page": "1"

{

1
2
3
4
5
6
7
8
9
10

wget --no-check-certificate --quiet \
 
--method POST \
 
--timeout=0 \
 
--header 'Authorization: SK-000000001-PROD-47296C056DB745908EC2367417600BFFE060F4E31DD342C6A372FC148DAFCD6D' \
 
--header 'Content-Type: application/json' \
 --body-data '{
 
 "request": "banklist"
}' \
Body

Header(9)

{
 "responsecode": "00" ,
 "banklist" : [
   {

     "bankname" : "ABBEY MORTGAGE BANK",
     "bankcode" : "070010"
   },
   {
     "bankname" : "ACCION MFB",
     "bankcode" : "090134"
   },
   {

     "bankname" : "AG MORTGAGE BANK PLC",
     "bankcode" : "100028"
   },
const duplo = require('duplo')('dp_test_P2tH90snfuQB0qlPopnhdgkOpbs');
const virtualAccount = await duplo.card.getAll({FilteringObject});
$duplo = new \Duplo\DuploClient(
 'dp_test_P2tH90snfuQB0qlPopnhdgkOpbs'
);
$duplo->card->getAll();
What’s Next ?
Airtime