hotrecharge

NODEJS Library for Hot Recharge

Sign up for a merchant account at Hot Recharge

You will need your email and your password to make successful requests

Prerequisites

The library has a set of prerequisites that must be met for it to work

  1. Node.js
  2. NPM (Node Package Manager)

Installation

Install the library using either npm or yarn

$ npm install hotrecharge --save
$ yarn add hotrecharge

Usage

Import the library

const HotRecharge = require("hotrecharge").HotRecharge;

or

const { HotRecharge } = require("hotrecharge");

Declare and instantiate a new instance of HotRecharge

const recharge = new HotRecharge({
email: 'email address',
password: 'password',
});

Direct airtime recharge of user's mobile account

let response = await recharge.pinlessRecharge('amount', 'targetMobile', 'BrandID', 'CustomerSMS')
Sample Response
{
ReplyCode: 2,
ReplyMsg: 'Recharge to 077111111 of $1 was successful. The initial balance was $0.05 final balance is $1.05',
WalletBalance: 25,
Amount: 1,
Discount: 0,
InitialBalance: 0.0494,
FinalBalance: 1.0494,
Window: '2021-05-15T18:33:23.7622021+02:00',
Data: 0,
SMS: 0,
AgentReference: 'xxxxxxx',
RechargeID: 0000000
}

Direct data bundle recharge of user's mobile account

let response = await recharge.dataBundleRecharge('productcode', 'mobile number', 'custom message')

Get agent wallet balance

let response = await recharge.walletBalance()

Get end user wallet balance

let response = await recharge.customerWalletBalance('mobile number')

Get list of available data bundle options

let response = await recharge.dataBundleOptions()
Sample Response
{
ReplyCode: 2,
Bundles: [
{
BundleId: 47,
BrandId: 2,
Network: 'Econet',
ProductCode: 'SMSD5',
Amount: 125,
Name: 'SMS - 5MB',
Description: 'SMS Daily Bundle',
ValidityPeriod: 1
},
],
AgentReference: 'xxxxxx'
}

Query a transaction

let response = recharge.queryTransactionReference('transaction reference')
Sample response
{
RawReply: '{"ReplyCode":2,"ReplyMsg":"Recharge to 0771111111 of $1 was successful. The initial balance was $0.05 final balance is $1.05","WalletBalance":25.0000,"Amount":1.0,"Discount":0.0000,"InitialBalance":0.0494,"FinalBalance":1.0494,"Window":"2021-05-15T18:33:23.7622021+02:00","Data":0.0,"SMS":0,"AgentReference":"xxxxxxx","RechargeID":0000000}',
ReplyCode: '2',
ReplyMsg: 'Recharge to 0771111111 of $1 was successful. The initial balance was $0.05 final balance is $1.05',
OriginalAgentReference: 'xxxxxxx',
AgentReference: 'yyyyyyy'
}

Purchase Zesa Tokens

const response = await recharge.rechargeZesa(amount, mobileNumberToSendTokenTo, meterNumber)
Sample Response
{
ReplyCode: replyCode,
ReplyMsg: replyMsg,
WalletBalance: walletBalance,
Amount: amount,
Discount: discount,
Meter: meter,
AccountName: accountName,
Address: address,
Tokens: [
{
Token: token,
Units: units,
NetAmount: netAmount,
Levy: levy,
Arrears: arrears,
TaxAmount: taxAmount,
ZesaReference: zesaReference,
}
],
AgentReference: agentReference,
RechargeID: rechargeID,
}

Check Zesa Agent Wallet Balance

const response = await recharge.zesaWalletBalance()
Sample Response
{
ReplyCode: 2,
ReplyMsg: 'Your HOT ZESA Balance is $ 0.00. You can sell approximately $ 0.00.',
WalletBalance: 0,
AgentReference: '11d9f48c9c464e0f81268ee7cab8c90c'
}

Check Zesa Customer Details

const response = await recharge.enquireZesaCustomer('meterNumber')
Sample Response
{
ReplyCode: 2,
ReplyMsg: 'PRINCE JONATHAN T KUIPA\n9999 9999 MUTAMBARA MISSION',
Meter: 'xxxxxxxx',
CustomerInfo: {
Reference: '',
CustomerName: 'PRINCE JONATHAN T KUIPA\n9999 9999 MUTAMBARA MISSION',
Address: '',
MeterNumber: 'xxxxxxxxx'
},
AgentReference: null
}
By Ngonidzashe Mangudya (Python Port from @donnC)

Generated using TypeDoc