Reserved Accounts

Reserved accounts are accounts that remains valid once they are generated. Multiple payments can be made to this account with no limit to the number of transactions or amount to be paid.


How to integrate

This integration requires you to send a post request with the required data to the endpoint https://api.marasoftpay.live/reserved_account/create the response will be a data object with account details to make the payment to.



Required Parameters
Param Required? Description
enc_key yes Your encryption Key
first_name Yes Your first name as on your government issued ID
last_name Yes Your first name as on your government issued ID
tag Yes the tag id
bvn Yes Your Bank Verification Number
dob Yes Date of birth linked with the sent bvn format '01 September 1998'
phone_number Yes Your phone number


Request Sample
    <?php

    $enc_key = "your encryption key";
    $first_name = $_POST['first-name'];
    $last_name = $_POST['last-name'];
    $tag = $_POST['tag'];
    $bvn = $_POST['bvn'];
    $dob = $_POST['dob'];
    $phone_number = $_POST['phone-number'];
    
    $url = "https://api.marasoftpay.live/reserved_account/create";
    
    $curl = curl_init($url);
    curl_setopt($curl,CURLOPT_URL,$url);
    curl_setopt($curl,CURLOPT_POST,true);
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
    
    $headers = array (
        "Content-Type: application/x-www-form-urlencoded",
    );
    
    curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
    
    $data = "enc_key=$enc_key&first_name=$first_name&last_name=$last_name&tag=$tag&bvn=$bvn&phone_number=$phone_number&dob=$dob";
    
    curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
    
    echo $resp = curl_exec($curl);
    curl_close($curl);
    router.get("/generate-account", (req,res) => {
    const enc_key = "your encryption key";
    
    const data = { enc_key, first_name, last_name,bvn,dob,phone_number};
    
    const url = "https://api.marasoftpay.live/reserved_account/create";
    
    axios
        .post(url,data)
        .then((response) => {
            console.log(response);
        })
        .catch((error)=>{
            console.log(error);
        })
    })

Response Sample
{
    "success":true, 
    "data":{
            "account_name": "Adekunle Adeyeye", 
            "account_number": "9011746788", 
            "bank": "Polaris Bank", 
            "reference":"7366041361667828575435761958"
        },
            
    "message": "Account created successfully"
}

Important notes

1. Once payment is confirmed for a reserved account it can no longer be used. Webhooks for reserved account transactions are sent to your collections webhook url.

2. Dynamic account transactions can be viewed from the dashboard