SwitchIT 4.0 FT and Bill Payment Consolidated API Documentation
SwitchIT 4.0 FT and Bill Payment Consolidated API Documentation
SwitchIT
Funds Transfer & Bill Payment
APIs(consolidated)
Version 1.0
The material contained in this document or information disclosed during discussions of this document represents the proprietary, confidential information
pertaining to eTranzact International PLC services, methodologies and methods. Other products and brand names may be trademarks or registered trademarks
of their respective owners.
By reading this document, you agree that the information contained herein will not be disclosed outside the Organization and will not be duplicated, used,
or disclosed for any purpose other than to carry out work internal to etranzact International PLC only.
Revision History
Approval Block
4.0 APPENDIX 42
4.1 SAMPLE BILLER PAYMENT PAYLOADS AND SAMPLE CUSTOMER IDs 42
4.1.1 CABLE TV 42
4.1.2 ELECTRICITY 43
4.1.3 TOLL 44
4.1.4 VTU 44
4.1.5 INTERNET SERVICES 45
4.1.6 MOBILE DATA BUNDLE 46
Parameter Value
Terminal id 7000000001
Pin 0006
AES encrypted PIN kghxqwveJ3eSQJip/cmaMQ==
Master key(encryption key) KEd4gDNSDdMBxCGliZaC8w==
Demo Base URL (funds https://demo.etranzact.com/rest/switchIT/api/v1
transfer module)
Live Base URL (funds https://www.etranzact.net/rest/switchIT/api/v1/
transfer module)
Demo Base URL (Bill https://demo.etranzact.com/switchitbillpayment/api/v1/
payments module)
Live Base URL (Bill payments https://www.etranzact.net/switchitbillpayment/api/v1/
module)
Bank account number 0705162854
Bank code 044
Mobile number 2349012345678
Note: you can use any bank account number with the corresponding bank code for the bank that the
account is domiciled in.
1.2 AVAILABLE BANKS/CODES for FUNDS TRANSFER ENDPOINTS
Below table represents banks where transfers can be sent to. The list may be updated at any time,
therefore it is crucial to always use the bank list endpoint to validate available banks at time of
transaction.
All endpoints maintain a standard set response alongside corresponding HTTP status codes.
Kindly note that all attempts to perform Bill-Payment and some Bill-Query on the sandbox will fail,
this is as a result of unavailability of test connections to the billers. For successful end to end tests,
please request for a controlled-live test. This will require migration to production and implies
readiness to go –live(all business requirements fulfilled).
1.4 LIST OF ALLOWED ACTIONS(Request types)
REQUEST PARAMETERS
Parameter Type Description Required?
action string Use “FT” for this endpoint. Refer to section 1.4 Yes
terminalId string Merchant terminal id. Identifies merchant. Yes
transaction object An object holding the transaction information Yes
pin string AES encrypted PIN Yes
senderName string Name of sender, name of receiver, and source account, in Yes
this format:
Sender;Reciever;Source Account
bankCode string Bank Code Yes
amount decimal Transaction amount Yes
description string Transaction description/narration Yes
destination string Destination account number Yes
reference string Client’s reference number. Maximum of 15 characters. Yes
endPoint string Defines type of operation. Local bank transfer(A), local Yes
mobile wallet(M) or international funds transfer(FX), Bulk
batch status query(B) or bulk individual status query(I).
Sample Request
{
"action":"FT",
"terminalId":"7000000001",
"transaction": {
"pin":"kghxqwveJ3eSQJip/cmaMQ==",
"senderName": "JOHN DOE; HELLO WORLD;0123456789",
"bankCode":"033",
"amount":"5",
"description":"Fund Transfer",
"destination":"2125347370",
"reference":"FTRestTest001",
"endPoint":"A"
}
}
RESPONSE PARAMETERS
Parameter Type Description MANDATORY
direction string Parameter to identify a response. Defaults to Yes
“response”.
reference string Etranzact transaction Reference Number Yes
companyId string Company Identifier, Not used here. No
date string Date, Not used here. No
amount decimal Transaction amount Yes
totalFailed integer Total number of transactions that failed No
totalSuccess integer Total number of transactions that succeeded No
error integer Error code. If there is no error, value will be 0, to Yes
mean successfully processed.
message string Description of transaction status Yes
bulkItems object Object holding bulk items. Not used here. No
otherReference string Other reference number No
action string The transaction type in request, for which response Yes
is being given. e.g. FT
records integer Not used here. No
openingBalance decimal Opening Balance, Not used here. No
closingBalance decimal Closing Balance, Not used here. No
Sample Response:
{
"direction": "response",
"reference": "09FG2101180053321838MQIC3",
"companyId": null,
"date": null,
"amount": 0,
"totalFailed": 0,
"totalSuccess": 0,
"error": "0",
"message": "Transaction Successful",
"bulkItems": null,
"otherReference": null,
"action": "FT",
"records": null,
"openingBalance": 0,
"closingBalance": 0
}
2.2 ACCOUNT QUERY
Description: perform an account name enquiry against a bank account.
Endpoint: {base_url}/account-query
Request type: POST
REQUEST PARAMETERS
Parameter Type Description Required?
action string Use “AQ” for this endpoint. Refer to section 1.4 Yes
terminalId string Merchant terminal id. Identifies merchant. Yes
transaction object An object holding the transaction information Yes
pin string AES encrypted PIN Yes
bankCode string Bank Code Yes
amount decimal Transaction amount Yes
description string Transaction description/narration Yes
destination string Destination account number to be queried. Yes
reference string Client’s reference number. Maximum of 15 Yes
characters.
endPoint string Defines type of operation. Local bank transfer(A), Yes
local mobile wallet(M) or international funds
transfer(FX), Bulk batch status query(B) or bulk
individual status query(I).
Sample Request
{
"action":"AQ",
"terminalId":"7000000001",
"transaction": {
"pin":"kghxqwveJ3eSQJip/cmaMQ==",
"bankCode":"700",
"amount":"0.0",
"description":"Account Query",
"destination":"1234567890",
"reference":"FTRestTest002",
"endPoint":"M"
}
}
RESPONSE PARAMETERS
Parameter Type Description MANDATORY
direction string Parameter to identify a response. Defaults to Yes
“response”.
reference string Etranzact transaction Reference Number Yes
companyId string Company Identifier, Not used here. No
date string Date, Not used here. No
amount decimal Transaction amount Yes
totalFailed integer Total number of transactions that failed, Not used No
here.
totalSuccess integer Total number of transactions that succeeded, Not No
used here.
error integer Error code. If there is no error, value will be 0, to Yes
mean successfully processed.
message string Account name on bank account Yes
bulkItems object Object holding bulk items. Not used here. No
otherReference string Other reference number No
action string The transaction type in request, for which response Yes
is being given. e.g. AQ
records integer Not used here. No
openingBalance decimal Opening Balance, Not used here. No
closingBalance decimal Closing Balance, Not used here. No
Sample Response:
{
"direction": "response",
"reference": "",
"companyId": null,
"date": null,
"amount": 0,
"totalFailed": 0,
"totalSuccess": 0,
"error": "0",
"message": "JOHN DOE",
"bulkItems": null,
"otherReference": null,
"action": "AQ",
"records": null,
"openingBalance": 0,
"closingBalance": 0
}
2.3 TRANSACTION STATUS
Description: Fetch status of transaction
Endpoint: {base_url}/transaction-status
Request type: POST
REQUEST PARAMETERS
Parameter Type Description Required?
action string Use “TS” for this endpoint. Refer to section 1.4 Yes
terminalId string Merchant terminal id. Identifies merchant. Yes
transaction object An object holding the transaction information Yes
pin string AES encrypted PIN Yes
description string Transaction description/narration Yes
reference string Client’s reference number. Maximum of 15 Yes
characters.
lineType string Defaults to “OTHERS” for transaction status check. Yes
Sample Request
{
"action":"TS",
"terminalId":"7000000001",
"transaction": {
"pin":"kghxqwveJ3eSQJip/cmaMQ==",
"description":"Status check",
"reference":"FTRestTest001",
"lineType":"OTHERS"
}
}
RESPONSE PARAMETERS
Parameter Type Description MANDATORY
direction string Parameter to identify a response. Defaults to Yes
“response”.
reference string Etranzact transaction Reference Number Yes
companyId string Company Identifier, Not used here. No
date string Date, Not used here. No
amount decimal Transaction amount Yes
totalFailed integer Total number of transactions that failed No
totalSuccess integer Total number of transactions that succeeded No
error integer Error code. If there is no error, value will be Yes
0, to mean successfully processed.
message string Description of Transaction status Yes
bulkItems object Object holding bulk items. Not used here. No
otherReference string Client Reference for which status is sought No
action string The transaction type in request, for which Yes
response is being given. e.g. TS
records integer Not used here. No
openingBalance decimal Opening Balance, Not used here. No
closingBalance decimal Closing Balance, Not used here. No
Sample Response:
{
"direction": "response",
"reference": null,
"companyId": null,
"date": null,
"amount": 0,
"totalFailed": 0,
"totalSuccess": 0,
"error": "0",
"message": "Transaction Successful",
"bulkItems": null,
"otherReference": "FTRestTest002",
"action": "TS",
"records": null,
"openingBalance": 0,
"closingBalance": 0
}
2.4 VTU AIRTIME TOP-UP
Description: instruction topup airtime to a mobile number, after successful payment on
merchant’s platform.
Endpoint: {base_url}/topup
Request type: POST
REQUEST PARAMETERS
Parameter Type Description Required?
action string Use “VT” for this endpoint. Refer to section 1.4 Yes
terminalId string Merchant terminal id. Identifies merchant. Yes
transaction object An object holding the transaction information Yes
pin string AES encrypted PIN Yes
amount decimal Transaction amount Yes
description string Transaction description/narration Yes
provider string This represents alias for telcos and would hold values
such as MTN, GLO, ETISALAT, AIRTEL e.t.c
lineType string Defaults to “VTU” for virtual topup transactions.
destination string Destination account number to be queried. Yes
reference string Client’s reference number. Maximum of 15 characters. Yes
senderName string Name of sender Yes
Sample Request
{
"action":"VT",
"terminalId":"7000000001",
"transaction": {
"pin":"kghxqwveJ3eSQJip/cmaMQ==",
"amount":100,
"description":"Virtual TopUp",
"provider":"GLO",
"lineType":"VTU",
"destination":"07012345678",
"reference":"VTURestTest002",
"senderName":"Etranzact Test"
}
}
RESPONSE PARAMETERS
Parameter Type Description MANDATORY
direction string Parameter to identify a response. Defaults to Yes
“response”.
reference string Etranzact transaction Reference Number Yes
companyId string Company Identifier, Not used here. No
date string Date, Not used here. No
amount decimal Transaction amount Yes
totalFailed integer Total number of transactions that failed No
totalSuccess integer Total number of transactions that succeeded No
error integer Error code. If there is no error, value will be 0, to Yes
mean successfully processed.
message string Transaction status description Yes
bulkItems object Object holding bulk items. Not used here. No
otherReference string Client Reference for which status is sought No
action string The transaction type in request, for which Yes
response is being given. e.g. VT
records integer Not used here. No
openingBalance decimal Opening Balance, Not used here. No
closingBalance decimal Closing Balance, Not used here. No
Sample Response:
{
"direction": "response",
"reference": "09FG21011801011453770D1BV",
"companyId": null,
"date": null,
"amount": 0,
"totalFailed": 0,
"totalSuccess": 0,
"error": "0",
"message": "Transaction Successful",
"bulkItems": null,
"otherReference": null,
"action": "VT",
"records": null,
"openingBalance": 0,
"closingBalance": 0
}
2.5 CARD BALANCE ENQUIRY
Description: Get current balance on merchant’s transaction card.
Endpoint: {base_url}/balanceenquiry
Request type: POST
REQUEST PARAMETERS
Parameter Type Description Required?
action string Use “BE” for this endpoint. Refer to section 1.4 Yes
terminalId string Merchant terminal id. Identifies merchant. Yes
transaction object An object holding the transaction information Yes
pin string AES encrypted PIN Yes
description string Transaction description/narration Yes
reference string Client’s reference number. Maximum of 15 characters. Yes
Sample Request
{
"action":"BE",
"terminalId":"7000000001",
"transaction": {
"pin":"kghxqwveJ3eSQJip/cmaMQ==",
"description":"Virtual TopUp",
"reference":"VTURestTest002"
}
}
RESPONSE PARAMETERS
Parameter Type Description MANDATORY
direction string Parameter to identify a response. Defaults to Yes
“response”.
reference string Etranzact transaction Reference Number Yes
companyId string Company Identifier, Not used here. No
date string Date, Not used here. No
amount decimal Balance on card Yes
totalFailed integer Total number of transactions that failed No
totalSuccess integer Total number of transactions that succeeded No
error integer Error code. If there is no error, value will be 0, to mean Yes
successfully processed.
message string Description of transaction status Yes
bulkItems object Object holding bulk items. Not used here. No
otherReference string Other reference number No
action string The transaction type in request, for which response is Yes
being given. e.g. FT
records integer Not used here. No
openingBalance decimal Opening Balance, Not used here. No
closingBalance decimal Closing Balance, Not used here. No
Sample Response:
{
"direction": "response",
"reference": "09FG21011801011453770D1BV",
"companyId": null,
"date": null,
"amount": 57000.00,
"totalFailed": 0,
"totalSuccess": 0,
"error": "0",
"message": "Transaction Successful",
"bulkItems": null,
"otherReference": null,
"action": "BE",
"records": null,
"openingBalance": 0,
"closingBalance": 0
}
2.6 BANK LIST
Description: Get list of commercial/microfinance banks and mobile wallets, whose accounts
can be credited via Etranzact.
Endpoint: {base_url}/banks
Request type: POST
REQUEST PARAMETERS
Parameter Type Description Required?
action string Use “BL” for this endpoint. Refer to section 1.4 Yes
terminalId string Merchant terminal id. Identifies merchant. Yes
transaction object An object holding the transaction information Yes
pin string AES encrypted PIN Yes
reference string Client’s reference number. Maximum of 15 characters. Yes
Sample Request
{
"action":"BL",
"terminalId":"7000000001",
"transaction": {
"pin":"kghxqwveJ3eSQJip/cmaMQ==",
"reference":"BLRestTest002"
}
RESPONSE PARAMETERS
Parameter Type Description MANDATORY
direction string Parameter to identify a response. Defaults to Yes
“response”.
reference string Etranzact transaction Reference Number Yes
companyId string Company Identifier, Not used here. No
date string Date, Not used here. No
amount decimal Not used here Yes
totalFailed integer Total number of transactions that failed No
totalSuccess integer Total number of transactions that succeeded No
error integer Error code. If there is no error, value will be 0, to Yes
mean successfully processed.
message string Contains list of banks if request was successfully Yes
processed.See sample response for structure.
bulkItems object Object holding bulk items. Not used here. No
otherReference string Other reference number No
action string The transaction type in request, for which response is Yes
being given. e.g. FT
records integer Not used here. No
openingBalance decimal Opening Balance, Not used here. No
closingBalance decimal Closing Balance, Not used here. No
Sample Response:
{
"direction": "response",
"reference": "09FG21011801011453770D1BV",
"companyId": null,
"date": null,
"amount": 57000.00,
"totalFailed": 0,
"totalSuccess": 0,
"error": "0",
"message": "<Banks><bank><bankCode>500</bankCode><bankName>eTranzact Intl Plc</bankName>
<bankAlias>eTranzact</bankAlias></bank><bank><bankCode>771</bankCode><bankName>IMSU
MICROFINANCE
BANK</bankName><bankAlias>MFB</bankAlias></bank><bank><bankCode>770</bankCode><bankName>ALVANA
MICROFINANCE
BANK</bankName><bankAlias>OWERRI</bankAlias></bank><bank><bankCode>767</bankCode><bankName>Ilaro
Poly mfb</bankName><bankAlias>MFI</bankAlias></bank><bank><bankCode>764</bankCode><bankName>Unical
mfb</bankName><bankAlias>MFI</bankAlias></bank><bank><bankCode>761</bankCode><bankName>FED POLY
NASARAWA MFB</bankName><bankAlias>Nasarawa
p</bankAlias></bank><bank><bankCode>754</bankCode><bankName>IMO STATE MFB</bankName><bankAlias>IMO
STATE</bankAlias></bank><bank><bankCode>738</bankCode><bankName>3LineCard Managenent
LTD</bankName><bankAlias>3LineCard</bankAlias></bank> ><bank><bankCode>797</bankCode><bankName>FCE
OBUDU MFB</bankName><bankAlias>FCE</bankAlias></bank><bank><bankCode>785</bankCode><bankName>ASO
SAVINGS</bankName><bankAlias>ASOMOBILE</bankAlias></bank><bank><bankCode>700</bankCode><bankName>P
ocketMoni</bankName><bankAlias>PocketMoni</bankAlias></bank>
><bank><bankCode>732</bankCode><bankName>Parallex
MFB</bankName><bankAlias>eTranzact</bankAlias></bank><bank><bankCode>800</bankCode><bankName>Kadun
a Polytechnic MFB</bankName><bankAlias>KADPOLY
MF</bankAlias></bank><bank><bankCode>710</bankCode><bankName>PocketMoni -
Access</bankName><bankAlias>PocketMoni</bankAlias></bank><bank><bankCode>781</bankCode><bankName>F
UTO MICROFINANCE BANK</bankName><bankAlias>FUTO
MFB</bankAlias></bank><bank><bankCode>714</bankCode><bankName>eTz MFB Global Teller
Scheme</bankName><bankAlias>PocketMoni</bankAlias></bank><bank><bankCode>602</bankCode><bankName>N
IBSS Routed
MMO</bankName><bankAlias>MMO</bankAlias></bank><bank><bankCode>301</bankCode><bankName>Jaiz
Bank</bankName><bankAlias>Jaiz
Bank</bankAlias></bank<bank><bankCode>765</bankCode><bankName>Highland
mfb</bankName><bankAlias>MFI</bankAlias></bank><bank><bankCode>763</bankCode><bankName>Fed Poly
Nekede
mfb</bankName><bankAlias>MFI</bankAlias></bank><bank><bankCode>758</bankCode><bankName>YellowAccou
nt</bankName><bankAlias>YellowAcco</bankAlias></bank><bank><bankCode>719</bankCode><bankName>UBA
Social
Banking</bankName><bankAlias>UBA</bankAlias></bank><bank><bankCode>796</bankCode><bankName>Abia
State University MFB</bankName><bankAlias>ABSU</bankAlias></bank> ",
"bulkItems": null,
"otherReference": null,
"action": "BE",
"records": null,
"openingBalance": 0,
"closingBalance": 0
}
2.7 BULK TRANSFERS
Description: Send transfers to multiple recipients, up to a maximum of 500.
Endpoint: {base_url}/bulk-transfer
Request type: POST
REQUEST PARAMETERS
Parameter Type Description Required?
action string Use “BT” for this endpoint. Refer to section 1.4 Yes
terminalId string Merchant terminal id. Identifies merchant. Yes
transaction object An object holding the transaction information Yes
companyId string Id that identifies a corporate merchant
pin string AES encrypted PIN Yes
amount decimal Total transaction amount
reference string Client’s reference number. Maximum of 15 Yes
characters.
senderName string Sender’s name. Default’s to merchant’s name. Yes
endPoint string Defines type of operation. Local bank transfer(A), Yes
local mobile wallet(M) or international funds
transfer(FX), Bulk batch status query(B) or bulk
individual status query(I).
terminalCard boolean Defaults to False No
bulkItems Object Object containing bulk items Yes
bulkitem array Contains array of individual bulk items Yes
uniqueId String Unique transaction id for each bulk item Yes
bankCode String Destination bank code Yes
accountId String Destination account number(mobile wallet should Yes
start with 234)
beneficiaryName String Name of beneficiary Yes
narration String Funds transfer description Yes
amount decimal Transaction amount for item Yes
Sample Request
{
"action": "BT",
"terminalId": "7000000001",
"transaction": {
"companyId": "TestCompanyID",
"pin": "kghxqwveJ3eSQJip/cmaMQ==",
"amount": 15.00,
"reference": "BTTestBT0002",
"senderName": "Test Accounts",
"endPoint": "A",
"terminalCard": false,
"bulkItems": {
"bulkItem": [
{"uniqueId": "BTTestBT04",
"bankCode": "011",
"accountId": "3028875212",
"beneficiaryName": "Peter Azuka",
"narration": "narration",
"amount": 5.0 },
{"uniqueId": "BTTestBT05",
"bankCode": "033",
"accountId": "2125347370",
"beneficiaryName": "Peter Azuka",
"narration": "narration",
"amount": 5.0 },
{"uniqueId": "BTTestBT06",
"bankCode": "058",
"accountId": "0129915440",
"beneficiaryName": "Peter Azuka",
"narration": "narration", "amount": 5.0 }
]
}
}
}
RESPONSE PARAMETERS
Parameter Type Description MANDATORY
direction string Parameter to identify a response. Defaults to Yes
“response”.
reference string Etranzact transaction Reference Number Yes
companyId string Company Identifier, Not used here. No
date string Date, Not used here. No
amount decimal Total transaction amount Yes
totalFailed integer Total number of transactions that failed No
totalSuccess integer Total number of transactions that succeeded No
error integer Error code. If there is no error, value will be Yes
0, to mean successfully processed.
message string Description of Transaction status Yes
bulkItems object Object holding bulk items. Not used here. No
otherReference string Client Reference for which status is sought No
action string The transaction type in request, for which Yes
response is being given. e.g. BT
records integer Not used here. No
openingBalance decimal Opening Balance, Not used here. No
closingBalance decimal Closing Balance, Not used here. No
Sample Response:
{
"direction": "response",
"reference": "09FG210118005839171BQS6I7",
"companyId": "TestCompanyID",
"date": null,
"amount": 15,
"totalFailed": 0,
"totalSuccess": 3,
"error": "0",
"message": "Transaction Successful",
"bulkItems": null,
"otherReference": null,
"action": "BT",
"records": null,
"openingBalance": 0,
"closingBalance": 0
}
2.8 BULK QUERY
2.8.1 BULK QUERY (BATCH)
Description:Query the status of multiple transactions in a bulk transfer, up to maximum of 50.
Endpoint: {base_url}/bulk-query
Request type: POST
REQUEST PARAMETERS
Parameter Type Description Required?
action string Use “BQ” for this endpoint. Refer to section 1.4 Yes
terminalId string Merchant terminal id. Identifies merchant. Yes
transaction object An object holding the transaction information Yes
companyId string Id that identifies a corporate merchant
pin string AES encrypted PIN Yes
amount decimal Total transaction amount. Not used here
reference string Client’s reference number. Maximum of 15 Yes
characters.
senderName string Sender’s name. Default’s to merchant’s name. Not Yes
used here
endPoint string Defines type of operation. Local bank transfer(A), Yes
local mobile wallet(M) or international funds
transfer(FX), Bulk batch status query(B) or bulk
individual status query(I).
terminalCard boolean Defaults to False No
bulkItems Object Object containing bulk items Yes
bulkitem array Contains array of individual bulk items Yes
uniqueId String Unique transaction id for each bulk item Yes
Sample Request
{
"action": "BQ",
"terminalId": "7000000001",
"transaction": {
"companyId": "TestCompanyID",
"pin": "kghxqwveJ3eSQJip/cmaMQ==",
"amount": 15.00,
"reference": "BTTestBT0002",
"senderName": "Test Accounts",
"endPoint": "B",
"terminalCard": false,
"bulkItems": {
"bulkItem": [
{
"uniqueId": "BTTestBT04"
},
{
"uniqueId": "BTTestBT05"
},
{
"uniqueId": "BTTestBT06"
}
]
}
}
}
RESPONSE PARAMETERS
Parameter Type Description MANDATORY
direction string Parameter to identify a response. Defaults to Yes
“response”.
reference string Etranzact transaction Reference Number Yes
companyId string Company Identifier, Not used here. No
date string Date, Not used here. No
amount decimal Transaction amount Yes
totalFailed integer Total number of transactions that failed No
totalSuccess integer Total number of transactions that succeeded No
error integer Error code. If there is no error, value will be Yes
0, to mean successfully processed.
message string Description of error code Yes
bulkItems object Object holding bulk items. No
bulkitem array Contains array of individual bulk items Yes
uniqueId String Unique transaction id for each bulk item Yes
merchantCode string Not used here No
bankCode String Destination bank code. May not always be No
populated
terminalId string Merchant terminal id. Identifies merchant. Yes
accountId String Destination account number(mobile wallet Yes
should start with 234)
sortCode string Not used here No
beneficiaryName String Name of beneficiary Yes
narration String Funds transfer description Yes
amount decimal Transaction amount for item Yes
status String Transaction status code. Same as error codes Yes
message string Description of status code Yes
otherReference string Client Reference for which status is sought No
action string The transaction type in request, for which Yes
response is being given. e.g. BQ
records integer Not used here. No
openingBalance decimal Opening Balance, Not used here. No
closingBalance decimal Closing Balance, Not used here. No
Sample Response:
{
"direction": "response",
"reference": "09FG210118005839171BQS6I7",
"companyId": "TestCompanyID",
"date": null,
"amount": ,
"totalFailed": 0,
"totalSuccess": 3,
"error": "0",
"message": "Successful",
"bulkItems": {
"bulkItem": [
{
"uniqueId": "BTTestBT04",
"merchantCode": null,
"bankCode": null,
"terminalId": "7000000001",
"accountId": "3028875212",
"sortCode": null,
"beneficiaryName": "Peter Azuka",
"narration": "narration",
"amount": 5, "status": "0",
"message": "SUCCESSFUL"
},
{
"uniqueId": "BTTestBT05",
"merchantCode": null,
"bankCode": null,
"terminalId": "7000000001",
"accountId": "2125347370",
"sortCode": null,
"beneficiaryName": "Peter Azuka",
"narration": "narration",
"amount": 5,
"status": "0",
"message": "SUCCESSFUL"
},
{
"uniqueId": "BTTestBT06",
"accountId": "0129915440",
"sortCode": null,
"beneficiaryName": "Peter Azuka",
"narration": "narration",
"amount": 5,
"status": "0",
"message": "SUCCESSFUL"
}
]
},
"otherReference": null,
"action": "BQ",
"records": null,
"openingBalance": 0,
"closingBalance": 0
}
2.8.2 BULK QUERY (SINGLE TRANSACTION)
Description: Query the status of a single transaction in a bulk transfer.
Endpoint: {base_url}/bulk-query
Request type: POST
REQUEST PARAMETERS
Parameter Type Description Required?
action string Use “BQ” for this endpoint. Refer to section 1.4 Yes
terminalId string Merchant terminal id. Identifies merchant. Yes
transaction object An object holding the transaction information Yes
companyId string Id that identifies a corporate merchant
pin string AES encrypted PIN Yes
amount decimal Total transaction amount. Not used here
reference string Client’s reference number. Maximum of 15 Yes
characters.
senderName string Sender’s name. Default’s to merchant’s name. Not Yes
used here
endPoint string Defines type of operation. Local bank transfer(A), Yes
local mobile wallet(M) or international funds
transfer(FX), Bulk batch status query(B) or bulk
individual status query(I).
terminalCard boolean Defaults to False No
Sample Request
{
"action": "BQ",
"terminalId": "7000000001",
"transaction": {
"companyId": "TestCompanyID",
"pin": "kghxqwveJ3eSQJip/cmaMQ==",
"amount": 0.00,
"reference": "BTTestBT04",
"senderName": "Test Accounts",
"endPoint": "I",
"terminalCard": false,
}
}
RESPONSE PARAMETERS
Parameter Type Description MANDATORY
direction string Parameter to identify a response. Defaults to Yes
“response”.
reference string Etranzact transaction Reference Number Yes
companyId string Company Identifier, Not used here. No
date string Date, Not used here. No
amount decimal Transaction amount Yes
totalFailed integer Total number of transactions that failed No
totalSuccess integer Total number of transactions that succeeded No
error integer Error code. If there is no error, value will be Yes
0, to mean successfully processed.
message string Description of error code Yes
bulkItems object Object holding bulk items. Not used here. No
bulkItem array Not used here. No
otherReference string Client Reference for which status is sought No
action string The transaction type in request, for which Yes
response is being given. e.g. BQ
records integer Not used here. No
openingBalance decimal Opening Balance, Not used here. No
closingBalance decimal Closing Balance, Not used here. No
Sample Response:
{
"direction": "response",
"reference": "09FG210118005839171BQS6I7",
"companyId": "TestCompanyID",
"date": null,
"amount": ,
"totalFailed": 0,
"totalSuccess": 3,
"error": "0",
"message": "Successful",
"bulkItems": {
"bulkItem": [ ]
},
"otherReference": null,
"action": "BQ",
"records": null,
"openingBalance": 0,
"closingBalance": 0
}
3.0 BILL PAYMENTS MODULE
3.1 GET BILLER CATEGORY
Description: Retrieve available list of biller categories
Endpoint: {base_url}/biller-category
Request type: GET
Sample Request
https://demo.etranzact.com/switchitbillpayment/api/v1/biller-category
RESPONSE PARAMETERS
Parameter Type Description MANDATORY
message String Description of status Yes
status boolean Status of the operation performed. Yes
True = Success
False = failed
result array Contains result set Yes
id Integer ID of biller category. Used to get billers under category Yes
categroyName String Name of biller category Yes
description string Description of biller category No
Sample Response:
{
"status": true,
"message": "Biller category retrieved successfully",
"result": [
{
"id": 1,
"categoryName": "Cable TV",
"description": "This is cable TV service biller category "
},
{
"id": 2,
"categoryName": "Electricity",
"description": "This is electricity biller category "
}
]
}
3.2 GET BILLERS IN A CATEGORY
Description: Retrieve available list of billers in category
Endpoint: {base_url}/biller/category/{category-id}
Request type: GET
Sample Request
https://demo.etranzact.com/switchitbillpayment/api/v1/biller/category/1
RESPONSE PARAMETERS
Parameter Type Description MANDATORY
message String Description of status Yes
status boolean Status of the operation performed. Yes
True = Success
False = failed
result array Contains result set Yes
id Integer ID of biller. Used to get billers under category Yes
billerName String Name of biller category Yes
billerCode string Code/alias for biller Yes
description string Description of biller category No
billCategory string Category of biller No
Sample Response:
{
"status": true,
"message": "Biller category retrieved successfully",
"result": [
{
"id": 1,
"billerName": "GOTV",
"billerCode": "gotv",
"description": "This is gotv biller",
"billCategory": null
},
{
"id": 2,
"billerName": "DSTV",
"billerCode": "dstv",
"description": "This is dstv biller",
"billCategory": null
},
{
"id": 3,
"billerName": "Startimes",
"billerCode": "startimes",
"description": "This is startimes biller",
"billCategory": null
}
]
}
3.3 GET BILLER SERVICES AND SERVICE DETAILS
Description: Retrieve available list of services a biller provides. Request payloads in bill-
payment endpoint will differ based on items in expectedFields parameter in response data. See sample
requests payloads for bill-payment in Appendix section of this document.
Endpoint: {base_url}/service-type/biller/{service-id}
Request type: GET
Sample Request
https://demo.etranzact.com/switchitbillpayment/api/v1/service-type/biller/1
RESPONSE PARAMETERS
Parameter Type Description MANDATORY
message String Description of status Yes
status boolean Status of the operation performed. Yes
True = Success
False = failed
result array Contains result set Yes
id Integer ID of biller. Used to get billers under category Yes
billName String Name of biller category Yes
billType string INTEGRATED = biller requires validation of user Yes
data
NON-INTEGRATED = No validation of user data
required
description string Description of biller category No
expectedFields array Parameters expected during bill-query or bill- No
payment requests.
biller object Contains additional Biller information Yes
Id integer Yes
billerCategory string Category of biller Yes
id Integer ID of biller category. Yes
categroyName String Name of biller category Yes
description string Description of biller category No
status integer Indicates Category activity Yes
1 = (Active)
0 = (Inactive)
billerName String Name of biller category Yes
billerCode string Code/alias for biller Yes
description string Description of biller category No
status integer Indicates biller activity Yes
1 = (Active)
0 = (Inactive)
Sample Response:
{
"status": true,
"message": "Service type retrieved successfully",
"result": [
{
"id": 9,
"billName": "PHCN Enugu Prepaid",
"billType": "INTEGRATED",
"description": "This is PHCN Enugu Prepaid.",
"expectedFields": [
"ClientRef",
"BillId",
"CustomerId"
],
"biller": {
"id": 12,
"billerCategory": {
"id": 2,
"categoryName": "Electricity",
"description": "This is electricity biller cat egory",
"status": 1
},
"billerName": "PHCN Enugu Prepaid",
"billerCode": "phcnenu",
"description": "This is phcn enugu prepaid biller" ,
"status": 1
}
}
]
}
3.4 BILL QUERY
Description: Used to validate payer detail defined in a biller’s integrated service.
ADDITIONAL NOTES:
1. The plan ID gotten from this query will be passed in productid parameter in Bill Payment
endpoint.
2. It’s important to highlight or verify with the user making payment, that amount and plan name
are correct.
3. MTN: This biller’s plan IDs are the same but amount and name are always different. The plan ID
should still be sent in productid field during Bill Payment.
4. AIRTEL: This Biller’s plan IDs are in a numbered format. The plan ID should still be sent in
productid field during Bill Payment.
5. ETISALAT: This Biller doesn’t send planIDs but all prices for all Data Bundles are unique. Leave
the productId parameter empty.
6. GLO: This Biller send plan IDs in the format: DATA-XX where XX is a numeric number. Plan ID
should be sent in productid field during Bill Payment.
7. Sample
Endpoint: {base_url}/bill-query
Request type: POST
REQUEST PARAMETERS
Parameter Type Description Required?
clientRef string Client’s reference number. Maximum of 15 characters. Yes
billId string This is the corresponding Biller ID (First ID returned in Yes
the service-type endpoint)
customerId object Holds the biller’s unique customer ID. E.g. smartcard Yes
number, meter number, etc.
Sample Request
{
"clientRef": "TestBillPay004048",
"billId": 8,
"customerId": "45037649550"
}
RESPONSE PARAMETERS
Parameter Type Description MANDATORY
message String Description of status Yes
status boolean Status of the operation performed. Yes
True = Success
False = failed
result array Contains result set Yes
clientRef string Client’s reference number received in request Yes
paymentRef string Internal transaction reference number Yes
REQUEST PARAMETERS
Parameter Type Description Required?
clientRef string Client’s reference number. Maximum of 15 characters. Yes
billQueryRef string This is the unique eTz reference generated in bill-query Yes
stage of process.
This field will require the exact reference returned upon
successful bill query
billId string This is the corresponding Biller ID (First ID returned in the Yes
service-type endpoint)
customerId object Holds the biller’s unique customer ID. E.g. smartcard Yes
number, meter number, etc.
amount decimal Amount to be paid Yes
mobile string Customer’s phone number, when applicable, prefixed with No
234
Sample Request
{
"clientRef": "TestBillPay049",
"billQueryRef":"09FG2101151946145196HKVQP",
"billId": 8,
"customerId": "45037649550",
"amount": 100,
"mobile":"23490766063"
}
RESPONSE PARAMETERS
Parameter Type Description MANDATORY
message String Description of status Yes
status boolean Status of the operation performed. Yes
True = Success
False = failed
result array Contains result set Yes
clientRef string Client’s reference number received in request Yes
paymentRef string Internal etranzact transaction reference number Yes
customerId string Holds the biller’s unique customer ID. E.g. smartcard Yes
number, meter number, etc.
terminalId string Client Identification Number Yes
mobile string Mobile number, when applicable, prefixed with 234 No
productId string Service Plan paid for, when applicable No
billId integer This is the corresponding Biller service ID (First ID Yes
returned in the service-type endpoint)
billName String Name of biller’s service Yes
billerCode Biller’s alias Yes
customerName string Contains customer details. No
status integer Status of query Yes
Sample Response:
{
"status": true,
"message": "Bill Payment was successful",
"result": {
"clientRef": "TestBillPay049",
"paymentRef": "09FG210115194653080AB6MUK",
"customerId": "45037649550",
"terminalId": "7000000001",
"mobile": "23490766063",
"productId": null,
"billId": 12,
"billName": "PHCN Enugu PrePaid",
"billerCode": "phcnenu",
"customerName": null,
"status": "PAID_PROCESSED"
}
}
3.5.2 BILL PAYMENT (DATA BUNDLE VTU WITH SERVICE PLANS)
Description: Used to make a bill payment. Payload may differ depending on biller. All billers
and their respective payload can be found at the end of document. Specification below is for biller
service with service plans e.g. Telco Data bundle.
Endpoint: {base_url}/bill-payment
Request type: POST
REQUEST PARAMETERS
Parameter Type Description Required?
clientRef string Client’s reference number. Maximum of 15 characters. Yes
billQueryRef string This is the unique eTz reference generated in bill-query Yes
stage of process.
This field will require the exact reference returned upon
successful bill query
billId string This is the corresponding Biller ID (First ID returned in the Yes
service-type endpoint)
customerId object Holds the biller’s unique customer ID. E.g. smartcard Yes
number, meter number, etc.
amount decimal Amount to be paid Yes
mobile string Customer’s phone number, when applicable, prefixed with No
234
Sample Request
{
"clientRef": "TestBillPay049",
"billQueryRef":"09FG2101151946145196HKVQP",
"billId": 8,
"customerId": "2348077373795",
"amount": 100,
"productId":"DATA-31"
}
RESPONSE PARAMETERS
Parameter Type Description MANDATORY
message String Description of status Yes
status boolean Status of the operation performed. Yes
True = Success
False = failed
result array Contains result set Yes
clientRef string Client’s reference number received in request Yes
paymentRef string Internal etranzact transaction reference number Yes
customerId string Holds the biller’s unique customer ID. E.g. smartcard Yes
number, meter number, etc.
terminalId string Client Identification Number Yes
mobile string Mobile number, when applicable, prefixed with 234 No
productId string Service Plan paid for, when applicable No
billId integer This is the corresponding Biller service ID (First ID Yes
returned in the service-type endpoint)
billName String Name of biller’s service Yes
billerCode Biller’s alias Yes
customerName string Contains customer details. No
status integer Status of query Yes
Sample Response:
{
"status": true,
"message": "Bill Payment was successful",
"result": {
"clientRef": "TestBillPay052",
"paymentRef": "09FG210115194653080AB6MUK",
"customerId": "2348077373795",
"terminalId": "7000000001",
"mobile": null,
"productId": "DATA-31",
"billId": 35,
"billName": "Glo Data Bundle",
"billerCode": "glo",
"customerName": null,
"status": "PAID_PROCESSED"
}
}
4.0 APPENDIX
4.1 SAMPLE BILLER PAYMENT PAYLOADS AND SAMPLE CUSTOMER IDs
4.1.1 CABLE TV
DSTV/GOTV
{
"clientRef": "96rnui88we65y89jn09iifijiho",
"billQueryRef":"09FG201119101527018O8O24M",
"billId": 4,
"customerId": "2003009470",
"amount": 1050,
"productId": "GOWAWU – GOtv Lite Freeview",
"productName": "GOWAWU – GOtv Lite Freeview Campaign",
"mobile": "2348068267215"
}
STARTIMES
{
"clientRef": "96rnrs4978j9f8hkyuiiyijiho",
"billQueryRef":"09FG201117152411267X7KO8N",
"billId": 6,
"customerId": "02145984666",
"amount": 100
}
ALL ELECTRICITY
{
"clientRef": "96rnr978489r9f8j89giiyjiho",
"billQueryRef":"09FG201119154115921DQC4GX",
"billId": 25,
"customerId": "14260673232",
"amount": 100,
"mobile":"2347039232333"
}
LCC
{
"clientRef": "96rnrs49d79f68hkyuiiyijiho",
"billQueryRef":"09FG2011060933067077QTLCI",
"billId": 2,
"customerId": "14895-00",
"amount": 200.00
}
4.1.4 VTU
AIRTIME
{
"clientRef": "96rnrs49d79f68hkyuiiyijiho",
"billId": 33,
"customerId": "14895-00",
"amount": 200.00
}
SWIFT
{
"clientRef": "96rnrs49d79f68hkyuiiyijiho",
"billQueryRef":"09FG201106145215961QFZLFQ",
"billId": 28,
"customerId": "14895-00",
"amount": 200.00
}
SMILE
{
"clientRef": "96rnrs49d79f68hkyuiiyijiho",
"billQueryRef":"09FG201106145215961QFZLFQ",
"billId": 3,
"customerId": "1512007152",
"amount": 200.00,
"mobile": "2347069029416",
"productId": "624"
}
SPECTRANET
{
"clientRef": "96rnrs49d79f68hkyuiiyijiho",
"billQueryRef":"09FG201106145215961QFZLFQ",
"billId": 29,
"customerId": "18204560",
"amount": 200.00
}
MTN
{ "clientRef": "96rnrs49d79f68hkyuiiyijiho",
"billQueryRef":"09FG201106145215961QFZLFQ",
"billId": 34,
"customerId": "2349039712884",
"amount": 200,
"productId":"9"
}
GLO
{ "clientRef": "djj282617ppp09ho",
"billQueryRef":"09FG201106145215961MYRWC5",
"billId": 35,
"customerId": "2347051825495",
"amount": 50,
"productId":"DATA-17"
}
AIRTEL
{ "clientRef": "196222n1282617ppp09ho",
"billQueryRef":"09FG201106145215961P6RCWL",
"billId": 36,
"customerId": "2347089725597",
"amount": 50,
"productId":"49.99"
}
ETISALAT
{ "clientRef": "djj282617ppp0890909ho",
"billQueryRef":"09FG201106145215961MU5FC1",
"billId": 37,
"customerId": "2348099697234",
"amount": 50,
"productId":""
}
ERROR Description
CODE
-1 Transaction timed out.
0 Transaction Successful
1 Destination Card Not Found
2 Card Number Not Found
3 Invalid Card PIN
4 Card Expiration Incorrect
5 Insufficient balance
6 Spending Limit Exceeded
7 Internal System Error Occurred please contact the service provider
8 Financial Institution Cannot authorize transaction Please try later
9 PIN tries Exceeded
10 Card has been locked
11 Invalid Terminal Id
12 Payment Timeout
13 Destination card has been locked
14 Card has expired
15 PIN change required
16 Invalid Amount
17 Card has been disabled
18 Unable to credit destination account request will be rolled back
19 Transaction not permitted on terminal
20 Exceeds withdrawal frequency
21 Destination Card has Expired
22 Destination Card Disabled
23 Source Card Disabled
24 Invalid Bank Account
25 Insufficient Balance
26 Request/Function not supported
27 No Route to Issuer/Bank
28 Bank TSS not Funded
29 Transaction with this amount, destination account has already
been approved today.
30 Bank Account Restricted
31 Pending transaction, upon confirmation from bank.
32 Transaction status unknown, contact eTranzact after T+1 for status.
92 No Route to Issuer/Bank
99 Transaction Failed
1000 Invalid Session
1001 Invalid Caller
1002 Invalid Transaction Reference
1003 Duplicate Transaction Reference
1004 Invalid Information
1005 Invalid Date Format
1006 Invalid Source Information
1007 Invalid Payout Bank