Professional Documents
Culture Documents
Prepared by:
Version:1.699
4-11-2020
Table of Content
1.Introduction............................................................................................................................................. 6
2.Transaction Flow ................................................................................................................................... 6
2.1 C Scan B ............................................................................................................................................... 6
2.2 B Scan C ............................................................................................................................................... 6
3.Communication And Signature Rules ................................................................................................... 7
3.1 Communication mode ......................................................................................................................... 7
3.2 Signature Rule ..................................................................................................................................... 7
3.3 Message structure................................................................................................................................ 9
3.4 Data Field Type Definition ................................................................................................................. 9
4.QR code Rules ....................................................................................................................................... 9
4.1 Summary .............................................................................................................................................. 9
4.2 Format Rules ....................................................................................................................................... 9
4.3 Organization TagID Definition ........................................................................................................ 11
4.4 Field Definition .................................................................................................................................. 11
4.5 Example.............................................................................................................................................. 12
5. Development instructions ...................................................................................................................... 13
5.1 Transaction ........................................................................................................................................ 13
5.2 Merchant ............................................................................................................................................ 15
6.Interface Technical Specifications ....................................................................................................... 15
6.1 Merchant Status Query Interface .................................................................................................... 15
6.2 Fixed QR Code Payment Interface .................................................................................................. 19
6.3 Dynamic QR Code Payment Interface ............................................................................................ 23
6.4 Order payment status Interface ....................................................................................................... 27
6.5 Bank Card Information Query Interface ........................................................................................ 29
6.6 Transfer transaction the interface ................................................................................................... 31
6.7 Generate Dynamic QR Code Interface............................................................................................ 35
6.8 Create Merchant Interface ............................................................................................................... 37
6.9 Merchant Binding Collection Account Interface............................................................................ 40
6.10 Create Sub Merchant Interface ..................................................................................................... 42
6.11 Merchant Information Query Interface ........................................................................................ 44
6.12 Merchant Transaction Record Query Interface ........................................................................... 47
6.13 Create Merchants In Batch Interface ............................................................................................ 52
6.14 Create Sub Merchants in Batch Interface..................................................................................... 55
6.15 Transaction Fee Inquiry Interface ................................................................................................. 59
6.16 Cancel Dynamic QR Code Interface.............................................................................................. 61
Document Control
Data Describe Version
Modify Create merchant interface, add bank account and fee borne party
parameters.
2021-09-26 1.68
Modify Create merchant in batch interfaces, add bank account and fee borne
party parameters.
2021-10-15 Add Cancel Dynamic QR Code Interface 1.69
2.Transaction Flow
2.1 C Scan B
The cardholder scans the merchant QR code (Fixed QR Code or Dynamic QR Code) and
the payment process is as follows:
(1) The cardholder consumes and settles at the merchant, opens the App of the banking
institution or the third party to scan the QR code of the merchant;
(2) The App application recognizes the QR code information, obtains the merchant's
payment information through the interface, and displays the payment page;
(3) The payer inputs or confirms the amount to be paid and settled;
(4) The payer enters the transaction password;
(5) App application uploads the amount and other information to the QR platform through
the interface
(6) The QR platform initiates the transaction according to the information received, and
returns the transaction response result to the app through the interface.
2.2 B Scan C
The cardholder presents the payment QR code to the merchant during consumption at the
merchant. The payment process is as follows:
(1) The cardholder consumes and settles at the merchant, opens the banking institution or
the third-party app, and presents the payment code to the merchant;
(2) Merchant App (or payment device) scans and recognizes the QR code information of
consumers, and uploads the information to the QR platform through the interface;
(3) The QR platform returns a response;
(4) The payer confirms the payment settlement amount, and if there is a payment password,
the payer enters the transaction password;
(5) The merchant App application (or payment device) initiates a payment request to the
QR platform;
(6) The QR platform initiates a transaction based on the received information, and returns
the transaction response result to the App through the interface.
3.1.1 Summary
HTTPS/HTTP request/reply messages must use ASCII encoding to set the header field:
Content-length: required item, value is the Length of the message body;
Content-type: required item, value is "application/json; Charset = GBK ".
3.2.1 Summary
QR system uses signature verification technology to ensure the identity reliability and data
integrity of both parties.
Based on Internet interaction, the message originator needs to encrypt the business domain
outside the common part and then sign the remaining domain after encryption. The receiver of
the message shall prior sign and decrypt after passing the check.
Signature is generated:
(1) Arrange the parameters whose sending data parameter value is not empty according to
the order of parameter name ASCII code from small to large (dictionary order), and press
“key1=value1&key2=Value2&...” The format is spliced into a string “stringA”.
Example:
stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100
";
(2) The key is spliced at the end of the string 'stringa' (the key is provided to the
mechanism by nibss), Get 'stringsigntemp' string;
Example:
key=192006250b4c09247ec02edce69f6a2d;
stringSignTemp=stringA+key;
(3) Perform an MD5 operation on “stringSignTemp”, Then convert all characters of the
resulting string to uppercase;
Example:
sign=MD5(stringSignTemp).toUpperCase();
3.2.3 Example
1 Step: The parameters of the "non-null" value are arranged from small to large according to
ASCII code.
account_number=5050138001&bank_number=999070&channel=1&institution_number=I0
000000001×tamp=1581312432
2 Step: The tail concatenation key for the string. (the key will be obtained when the
management background creates the institution)。
KEY=QER5HKWePAFeFRM7RD8wPjwdWAfWPQHR
account_number=5050138001&bank_number=999070&channel=1&institution_number=I0
000000001×tamp=1581312432QER5HKWePAFeFRM7RD8wPjwdWAfWPQHR
The request and response message structures in this document are all json-formatted strings.
4.1 Summary
The QR code of the QR platform uses EMVCo standard formats. And according to the
actual scene, it is divided into two types: fixed QR Code and dynamic two-dimensional code, and
fixed QR Code is divided into two types: custom amount code and fixed amount code.
(1) An ID shall be coded as a two-digit numeric value and shall have a value "00" to "99".
(2) There shall be only one occurrence of a data object with a specific ID under the root and
there shall be only one occurrence of a specific ID within a template.
(1) Length shall be equal to the number of characters in the value field.
(2) Length shall be coded as a two-digit numeric value and shall have a value "01" to "99".
Data objects with a format of numeric [N] shall only contain values represented by digits
"0" to "9". Each digit is encoded in the QR Code by its binary representation as defined by
[Unicode].
Data objects with a format of Alphanumeric Special [ans] shall only contain values defined
in the Common Character Set of [EMV Book 4]. Each character is encoded in the QR Code by
its binary representation as defined by [Unicode].
4.2.3.3 String Values
Data objects with a format of String [S] shall only contain precomposed values defined in
[Unicode]. Each precomposed character is encoded in the QR Code by its binary representation
as defined by [Unicode].
0019NG.COM.NIBSS-
PLC.QR0111S00000000010 Reverse domain + sub merchant
26 72 (Fixed length)
23099916620052109225201 number + order number
6378356101
4.5 Example
Message sample
00020101021215314434056600520446****M000000000126720019NG.COM.NIBSS-
PLC.QR0111S000000000102309991662005210922520163783561015204000053035665402
105802NG5913Test Merchant6007Nigeria6304A54A
Message analysis
Tag:00 Length:2 Value:01
Tag:01 Length:2 Value:12
Tag:52 Length:4 Value:0000
Tag:53 Length:3 Value:566
Tag:54 Length:2 Value:10
Tag:26 Length:72 Value:0019NG.COM.NIBSS-
PLC.QR0111S00000000010230999166200521092252016378356101
Tag:58 Length:2 Value:NG
Tag:59 Length:13 Value:Test Merchant
Tag:60 Length:7 Value:Nigeria
Tag:15 Length:31 Value: 4434056600520446****M0000000001
Tag:63 Length:4 Value:A54A
Tag:26 Length:72 Value:0019NG.COM.NIBSS-
PLC.QR0111S00000000010230999166200521092252016378356101
Tag:00 Length:19 Value:NG.COM.NIBSS-PLC.QR
Tag:01 Length:11 Value:S0000000001
Tag:02 Length:30 Value:999166200521092252016378356101
5. Development instructions
5.1 Transaction
(1) App scan QR code (including fixed QR code and dynamic QR code);
(3) The string is parsed according to the rules to get the parameters;
(5) Call <Merchant status query interface> to query merchant status and QR code type;
(6) If the merchant status is valid, call the <transaction fee inquery interface> to query and
obtain parameters such as transaction commission (Fee), tax (VAT) and borne party (including
(7) Display different collection pages according to the 'QrType' parameter value (QrType =
(10) Enter the payment password and call different payment interfaces according to the value
of 'qr_cate' parameter (qr_cate= "1", calls <Fixed QR Code Payment Interface>; qr_cate="2",
calls <Dynamic QR Code Payment Interface>).
5.2 Merchant
When a merchant is created through a three-party Institution system, the interface required for
creating a merchant needs to be called:
(1) Create a level one merchant and upload the merchant's information (including basic
information, business information, settlement information, etc.) to the QR platform through the
merchant creation interface;
(2) The QR platform creates merchants according to the uploaded merchant information;
(3) When creating a merchant, it is necessary to upload the settlement bank information of the
merchant through the binding bank account interface, and the QR platform returns the merchant
creation result;
(4) After the first level merchant is successfully created, it needs to create a sub merchant
again, and upload the sub merchant information to the QR platform through the sub merchant
interface;
(5) QR platform creates sub merchants according to the uploaded sub merchant information,
and returns the result of creating sub merchants and QR code.
6.1.1 Description
Query merchant status and according to the decrypted QR Code parameter information to
query the type of QR code.
http://10.77.75.118/api.php/Bank/query_mer
Failure to return:
{
"ReturnCode":"Fail",
"ReturnMsg":"Merchant closed collection"
}
Whether
Fields Type Description Example
must
institution_n
string Institution number, obtained by email I0000000001 YES
umber
A745DF45DE2475A5
sign string The signature. View signature rules YES
88C26FD2E34D5D93
Whether
Fields Type Description
must
6.2.1 Description:
The App of the bank or the third-party institution scans the fixed QR Code of the merchant
for payment.
http://10.77.75.118/api.php/Bank/pay
{
"channel":"1",
"institution_number":"I0000000001",
"mch_no":"M0000000001",
"sub_mch_no":"S0000000001",
"user_bank_no":"999001",
"user_account_name":"WALIU A FALEYE",
"user_account_number":"1990008116",
"user_bank_verification_number":"22141742470",
"user_kyc_level":"1",
"user_gps":"9.55679,9.692809",
"amount":"12.00",
"order_no":"202002181138119382008332",
"timestamp":"1581997091",
"sign":"DF4003ECA742CF5343E6593DEC033511"
}
6.2.4 Fixed QR Code Payment Response
Successful return:
{
"ReturnCode":"Success",
"SessionID":"999166200521210807008930002836",
"NameEnquiryRef":"",
"DestinationInstitutionCode":"999058",
"ChannelCode":"12",
"BeneficiaryAccountName":"OGUNLANA TUNJI",
"BeneficiaryAccountNumber":"0122047425",
"BeneficiaryKYCLevel":"1",
"BeneficiaryBankVerificationNumber":"22141784665",
"OriginatorAccountName":"",
"OriginatorAccountNumber":"",
"OriginatorBankVerificationNumber":"",
"OriginatorKYCLevel":"1",
"TransactionLocation":"9.55679,9.692809",
"Narration":"mobile pay",
"PaymentReference":"20200726113811938200833807NIBSSQR"
"Amount":"12"
}
Failure to return:
{
"ReturnCode":"Fail",
"ReturnMsg":"Sign error"
}
Whether
Fields Type Description Example
must
Default value is 1.
Please note that this 'channel' is the
channel string 1 YES
payment channel ID number defined by
QR platform(Non-NIP 'ChannelCode' ).
user_account_numb
string Bank card number 1990008116 YES
er
8C26FD2E34D5D93
Whether
Fields Type Description
must
fails.
6.3.1 Description:
The App of the bank or tripartite Institution scans the dynamic QR code for payment.
http://10.77.75.118/api.php/Bank/codepay
{
"institution_number":"I0000000001",
"order_sn":"999166210609091415047567988413",
"order_amount":"100.54",
"user_bank_no":"999070",
"user_account_name":"Saturnin",
"user_account_number":"5050104057",
"user_bank_verification_number":"22141742438",
"user_kyc_level":"3",
"user_gps":"9.55679,9.692809",
"timestamp":"1581997091",
"sign":"DF4003ECA742CF5343E6593DEC033511"
}
Whether
Fields Type Description Example
must
A745DF45DE2475A5
sign string The signature. View signature rules YES
88C26FD2E34D5D93
6.3.6 Response Field Descriptions
Whether
Fields Type Description
must
http://10.77.75.118/index.php/CodePay/code?sub_id=1
6.4 Order payment status Interface
6.4.1 Description:
Query order status. Dynamic QR code interface device or plug-in side needs to use.
http://10.77.75.118/api.php/Gateway/orderquery
order_no request
{
"institution_number":"I0000000001",
"order_no":"202004301144434947004595",
"timestamp":"1581312432",
"sign":"C23692948DDD86DA6D1DE89382B983DF"
}
order_sn request
{
"institution_number":"I0000000001",
"order_sn":"999166200430114443323564809423",
"timestamp":"1581312432",
"sign":"C23692948DDD86DA6D1DE89382B983DF"
}
Successful return:
{
"ReturnCode":"Success",
"order_sn":"999166200430114443323564809423",
"order_no":"202004301144434947004595"
}
Paying retrun:
{
"ReturnCode":"Paying",
"order_sn":"999166200430114443323564809423",
"order_no":"202004301144434947004595"
}
Failure to return:
{
"ReturnCode":"Fail",
"ReturnMsg":"sign error "
}
Conditional
Order number from dynamic 99916620043011444332 selection, and
order_sn string
QR code content 3564809423 order_ no 2
choose 1
Whether
Fields Type Description
must
ReturnMsg string Reason for failure, return when payment fails. YES
6.5.1 Description:
The three-party institution needs to call this interface if it does not have the details of the
bank card.
http://10.77.75.118/api.php/Bank/query_account
{
"institution_number":"I0000000001",
"channel":"1",
"bank_number":"999058",
"account_number":"0122047425",
"timestamp":"1581312432",
"sign":"DF4003ECA742CF5343E6593DEC033511"
}
Successful return:
{
"ReturnCode":"Success",
"SessionID":"999166200521203631869003676187",
"DestinationInstitutionCode":"999058",
"ChannelCode":"12",
"AccountNumber":"0122047425",
"AccountName":"OGUNLANA TUNJI",
"BankVerificationNumber":"22141784665",
"KYCLevel":"2"
}
Failure to return:
{
"ReturnCode":"Fail",
"ReturnMsg":"Beneficiary Bank not available"
}
Whether
Fields Type Description Example
must
Default value is 1.
Please note that this 'channel' is the
channel string payment channel ID number defined 1 YES
by QR platform (non NIP
'ChannelCode' ).
A745DF45DE2475A5
sign string The signature. View signature rules YES
88C26FD2E34D5D93
6.5.6 Response Field Descriptions
6.6.1 Description:
The bank Institution App realizes the transfer function to the third party bank account
through the transfer interface.
http://10.77.75.118/api.php/Bank/transfer
{
"institution_number":"I0000000001",
"channel":"1",
"amount":"8.90",
"order_no":"2020053000000000002",
"order_type":"3",
"payee_bank_no":"999001",
"payee_account_name":"WALIU A FALEYE",
"payee_account_number":"1990008116",
"payee_bank_verification_number":"22141742470",
"payee_kyc_level":"1",
"payer_bank_no":"999058",
"payer_account_name":"OGUNLANA TUNJI",
"payer_account_number":"0122047425",
"payer_bank_verification_number":"22141784665",
"payer_kyc_level":"7",
"user_gps":"9.55679,9.692809",
"timestamp":"1581997091",
"sign":"DF4003ECA742CF5343E6593DEC033511"
}
Successful return:
{
"ReturnCode":"Success",
"SessionID":"999166200521213651088550087925",
"NameEnquiryRef":"",
"DestinationInstitutionCode":"999058",
"ChannelCode":"12",
"BeneficiaryAccountName":"OGUNLANA TUNJI",
"BeneficiaryAccountNumber":"0122047425",
"BeneficiaryKYCLevel":"1",
"BeneficiaryBankVerificationNumber":"22141784665",
"OriginatorAccountName":"WALIU A FALEYE",
"OriginatorAccountNumber":"1990008116",
"OriginatorBankVerificationNumber":"22141742470",
"OriginatorKYCLevel":"1",
"TransactionLocation":"9.55679,9.692809",
"Narration":"mobile payment",
"PaymentReference":"20200726113811938200833807NIBSSQR",
"Amount":"8.9"
}
Failure to return:
{
"ReturnCode":"Fail",
"ReturnMsg":"Ssign error"
}
Whether
Fields Type Description Example
must
Default value is 1.
Please note that this 'channel' is
channel string the payment channel ID number 1 YES
defined by QR platform (non
NIP 'ChannelCode' ).
payee_bank_verificatio
string Payer BVN 22141742470 YES
n_number
payer_bank_verificatio
string Payee BVN 22141784665 YES
n_number
A745DF45DE2475A
The signature. View signature
sign string 588C26FD2E34D5D YES
rules
93
Whether
Fields Type Description
must
‘Success’: success;
ReturnCode string ‘Fail’: failure YES
Notice that the first letter is uppercase
ReturnMsg string Reason for failure, return when payment fails. YES
6.7 Generate Dynamic QR Code Interface
6.7.1 Description
The dynamic QR code generated by the merchant equipment calling interface is used for
user scanning payment. The equipment generating QR code needs to call the order status query
interface every 3-5 seconds to query the order status.
http://10.77.75.118/api.php/Gateway/codepay
{
"channel":"1",
"institution_number":"I0000000001",
"mch_no":"M0000000001",
"sub_mch_no":"S0000000002",
"code_type":"1",
"amount":"12.00",
"order_no":"202002181138119382008332",
"order_type":"4",
"unique_id":"kfc001",
"timestamp":"1581997091",
"sign":"DF4003ECA742CF5343E6593DEC033511"
}
Failure to return:
{
"ReturnCode":"Fail",
"ReturnMsg":"Sign error"
}
Whether
Fields Type Description Example
must
A745DF45DE2475A5 YES
sign string The signature. View signature rules
88C26FD2E34D5D93
Whether
Fields Type Description
must
ReturnMsg string Reason for failure, return when payment fails. YES
6.8.1 Description:
Create the first level merchant, and complete the creation of the first level merchant by
uploading the basic information and settlement information of the merchant.
http://10.77.75.118/api.php/Gateway/create_merchant
{
"institution_number":"I0000000001",
"name":"test merchant 001",
"tin":"999175001",
"contact":"somfy",
"phone":"8251359",
"email":"somfy@qq.com",
"address":"dalian kai fa qu",
"bank_no":"999024",
"account_name":"Rajkumar NA Pandey",
"account_number":"2348121522667",
"m_fee_bearer":"0",
"timestamp":"1581312432",
"sign":"DF4003ECA742CF5343E6593DEC033511"
}
Successful return:
{
"ReturnCode": "Success",
"InstitutionNumber": "I0000000001",
"Mch_no": "M0000000061",
"MerchantName": "test merchant 001",
"MerchantTIN": "999175001",
"MerchantAddress": "dalian kai fa qu",
"MerchantContactName": "somfy",
"MerchantPhoneNumber": "8251359",
"MerchantEmail": "somfy@qq.com"
}
Failure to return:
{
"ReturnCode": "Fail",
"ReturnMsg": "Merchant closed collection"
}
6.8.5 Request Field Descriptions:
Whether
Fields Type Description Example
must
ReturnMsg string Reason for failure, return when payment fails. YES
6.9.1 Description:
Bind the bank account information used by the merchant for collection and settlement.
http://10.77.75.118/api.php/Gateway/binding_collection_account
{
"institution_number":"I0000000001",
"mch_no":"M0000000061",
"bank_no":"999024",
"account_name":"Rajkumar NA Pandey",
"account_number":"2348121522667",
"timestamp":"1581312432",
"sign":"DF4003ECA742CF5343E6593DEC033511"
}
6.9.4 Binding Collection Account Response
Successful return:
{
"ReturnCode": "Success",
"InstitutionNumber": "I0000000001",
"Mch_no": "M0000000061"
}
Failure to return:
{
"ReturnCode": "Fail",
"ReturnMsg": "Merchant closed collection"
}
Whether
Fields Type Description Example
must
‘Success’: success;
ReturnCode string ‘Fail’: failure YES
Notice that the first letter is uppercase
ReturnMsg string Reason for failure, return when payment fails. YES
6.10.1 Description:
Merchant's secondary merchants can be used in different stores, cash register configurations,
etc.
http://10.77.75.118/api.php/Gateway/create_sub_merchant
{
"institution_number":"I0000000001",
"mch_no":"M0000000061",
"name":"Cashier002",
"email":"somfy@qq.com",
"phone_number":"0846546546546",
"sub_fixed":"1",
"sub_amount":"588",
"timestamp":"1581312432",
"sign":"DF4003ECA742CF5343E6593DEC033511"
}
6.10.4 Create Sub Merchant Response:
Successful return:
{
"ReturnCode": "Success",
"InstitutionNumber": "I0000000001",
"Mch_no": "M0000000061",
"Sub_name": "Cashier002",
"Sub_mch_no": "S0000000052",
"Emvco_code":
"0002010102111531**999166**999166****M000000013126380019NG.COM.NIB
SS-
PLC.QR0111S000000013152040000530356654035885802NG5906KFC0096007Nig
eria6304B18E"
}
Failure to return:
{
"ReturnCode": "Fail",
"ReturnMsg": "Merchant closed collection"
}
Whether
Fields Type Description Example
must
‘Success’: success;
ReturnCode string ‘Fail’: failure YES
Notice that the first letter is uppercase
ReturnMsg string Reason for failure, return when payment fails. YES
6.11.1 Description:
http://10.77.75.118/api.php/Gateway/query_mer_info
{
"institution_number":"I0000000001",
"mch_no":"M0000000061",
"timestamp":"1581312432",
"sign":"DF4003ECA742CF5343E6593DEC033511"
}
Successful return:
{
"ReturnCode": "Success",
"Mch_no": "M0000000061",
"MerchantName": "test merchant 001",
"MerchantTIN": "999175001",
"MerchantAddress": "dalian kai fa qu",
"MerchantContactName": "somfy",
"MerchantPhoneNumber": "8251359",
"MerchantEmail": "somfy@qq.com",
"MerchantAddTime": "2020-07-13 03:54:39",
"SubMerchantList": [
{
"Sub_name": "Cashier001",
"Sub_no": "S0000000051",
"Emvco_code":
"0002010102111531**999166**999166****M000000006126380019NG.COM.N
IBSS-PLC.QR0111S00000000515204000053035665802NG5917test merchant
0016007Nigeria63047E34"
},
{
"Sub_name": "Cashier002",
"Sub_no": "S0000000052",
"Emvco_code":
"0002010102111531**999166**999166****M000000006126380019NG.COM.N
IBSS-PLC.QR0111S00000000525204000053035665802NG5917test merchant
0016007Nigeria6304D7EF"
}
]
}
Failure to return:
{
"ReturnCode": "Fail",
"ReturnMsg": "Merchant closed collection"
}
Whether
Fields Type Description Example
must
ReturnMsg string Reason for failure, return when payment fails. YES
6.12.1 Description:
The query of merchant transaction record can query and return data according to conditions
http://10.77.75.118/api.php/Gateway/query_mer_transaction
6.12.3 Merchant Transaction Record Query Request
{
"institution_number":"I0000000001",
"mch_no":"M0000000001",
"sub_mch_no":"S0000000002",
"start_time":"2020-07-01 00:00:00",
"end_time":"2020-07-31 23:59:59",
"order_type":"",
"page":"1",
"timestamp":"1581312432",
"sign":"DF4003ECA742CF5343E6593DEC033511"
}
Successful return:
{
"ReturnCode": "Success",
"Page": "1",
"TotalRows": "5",
"TotalPages": "1",
"List": [
{
"InstitutionName": "Testing Institution",
"MerchantName": "Test merchant",
"SubMerchantName": "1-Cashier",
"Amount": "12.00",
"Time": "2020-07-10 13:07:14",
"OrderSn": "999166200710130713913047644681",
"OrderNo": "202007101138119382008338005",
"OrderType": "1"
},
{
"InstitutionName": "Testing Institution",
"MerchantName": "Test merchant",
"SubMerchantName": "1-Cashier",
"Amount": "12.00",
"Time": "2020-07-10 13:05:45",
"OrderSn": "999166200710130545225130427779",
"OrderNo": "202007101138119382008338005",
"OrderType": "1"
},
{
"InstitutionName": "Testing Institution",
"MerchantName": "Test merchant",
"SubMerchantName": "1-Cashier",
"Amount": "12.00",
"Time": "2020-07-10 12:57:07",
"OrderSn": "999166200710125706734698797739",
"OrderNo": "20200710113811938200833802",
"OrderType": "1"
},
{
"InstitutionName": "Testing Institution",
"MerchantName": "Test merchant",
"SubMerchantName": "1-Cashier",
"Amount": "10.00",
"Time": "2020-07-06 08:12:43",
"OrderSn": "999166200706081242156401093860",
"OrderNo": "202007061138119382008001",
"OrderType": "1"
},
{
"InstitutionName": "Testing Institution",
"MerchantName": "Test merchant",
"SubMerchantName": "1-Cashier",
"Amount": "100.00",
"Time": "2020-07-06 08:12:16",
"OrderSn": "999166200706081215886899078615",
"OrderNo": "202007061138119382008001",
"OrderType": "1"
}
]
}
Failure to return:
{
"ReturnCode": "Fail",
"ReturnMsg": "Merchant closed collection"
}
Whether
Fields Type Description Example
must
1: Fixed QR code
order_type string 2: Payment code 1 NO
4: Dynamic QR code
ReturnMsg string Reason for failure, return when payment fails. YES
SubMerchantNa
string Sub Merchant name YES
me
6.13.1 Description:
http://10.77.75.118/api.php/Gateway/batch_create_merchant
{
"institution_number":"I0000000001",
"timestamp":"1581997091",
"sign":"903B4A1EB3262AF1EAFF45E7BC75A896",
"list":[
{
"name":"KFC010",
"tin":"001002060",
"contact":"somfy",
"phone":"08176521062",
"email":"somfy@qq.com",
"bank_no":"999191",
"account_name":"Peter Mokalo - (2348059561196)",
"account_number":"08059561196",
"m_fee_bearer":"0"
},
{
"name":"KFC011",
"tin":"001002061",
"contact":"somfy",
"phone":"08176521062",
"email":"somfy@qq.com",
"bank_no":"999024",
"account_name":"Rajkumar NA Pandey",
"account_number":"2348121522667",
"m_fee_bearer":"1"
}
]
}
Successful return:
{
"ReturnCode": "Success",
"InstitutionNumber": "I0000000001",
"List": [
{
"Name": "KFC010",
"Mch_no": "M0000000141",
"M_tin": "001002060",
"State": "success",
"Remark": "Added successfully"
},
{
"Name": "KFC011",
"Mch_no": "",
"M_tin": "001002061",
"State": "fail",
"Remark": "97 Timeout waiting for response from destination"
}
]
}
Failure to return:
{
"ReturnCode": "Fail",
"ReturnMsg": "Merchant closed collection"
}
6.13.5 Request Field Descriptions:
Whether
Fields Type Description Example
must
Whether
Fields Type Description Example
must
Whether
Fields Type Description
must
ReturnMsg string Reason for failure, return when payment fails. YES
Whether
Fields Type Description
must
6.14.1 Description:
http://10.77.75.118/api.php/Gateway/batch_create_sub_merchant
{
"institution_number":"I0000000001",
"mch_no":"M0000000131",
"timestamp":"1581997091",
"sign":"903B4A1EB3262AF1EAFF45E7BC75A896",
"list":[
{
"sub_name":"KFC-00005",
"sub_email":"somfy@qq.com",
"sub_phone_number":"08176521062",
"sub_fixed":"0",
"sub_amount":""
},
{
"sub_name":"KFC-00006",
"sub_email":"somfy@qq.com",
"sub_phone_number":"08176521062",
"sub_fixed":"1",
"sub_amount":"588"
}
]
}
Successful return:
{
"ReturnCode": "Success",
"InstitutionNumber": "I0000000001",
"Mch_no": "M0000000131",
"List": [
{
"Sub_name": "KFC-00005",
"Sub_mch_no": "S0000000130",
"Emvco_code":
"0002010102111531**999166**999166****M000000013126380019NG.C
OM.NIBSS-
PLC.QR0111S00000001305204000053035665802NG5906KFC0096007Ni
geria6304C3AC"
},
{
"Sub_name": "KFC-00006",
"Sub_mch_no": "S0000000131",
"Emvco_code":
"0002010102111531**999166**999166****M000000013126380019NG.C
OM.NIBSS-
PLC.QR0111S000000013152040000530356654035885802NG5906KFC00
96007Nigeria6304B18E"
}
]
}
Failure to return:
{
"ReturnCode": "Fail",
"ReturnMsg": "Merchant closed collection"
}
Whether
Fields Type Description Example
must
A745DF45DE2475A5
sign string The signature. View signature rules YES
88C26FD2E34D5D93
Whether
Fields Type Description Example
must
Whether
Fields Type Description
must
‘Success’: success;
ReturnCode string ‘Fail’: failure YES
Notice that the first letter is uppercase
Whether
Fields Type Description
must
6.15.1 Description:
The bank calls payment interface to query transaction fee information before launching a
transaction.
http://10.77.75.118/api.php/Bank/query_fee
{
"institution_number":"I0000000001",
"mch_no":"M0000000001",
"sub_mch_no":"S0000001304",
"user_bank_no":"999070",
"amount":"100.00",
"timestamp":"1612874982",
"sign":"AA994A06E798DF8293398786C38A67BF"
}
6.15.4 Transaction Fee Inquiry Response
Successful return:
{
"ReturnCode": "Success",
"MerchantName": " ceo merchant",
"SubMerchantName": "TFCA-ISLAND",
"TransactionAmount": "100.00",
"Fee": "0.5",
"VAT": "0.0375",
"Borne": "Payer",
"PaymentAmount": "100.54",
}
Failure to return:
{
"ReturnCode":"Fail",
"ReturnMsg":"Sign Error"
}
Whether
Fields Type Description Example
must
Whether
Fields Type Description
must
‘Success’: success;
ReturnCode string ‘Fail’: failure. YES
Notice that the first letter is uppercase
Borne string fee borne party: Merchant, Acquirer & Payer YES
ReturnMsg string Reason for failure, return when payment fails. YES
6.16.1 Description
Cancel the dynamic QR code transaction. After cancellation, the original dynamic QR code
will become invalid.
http://10.77.75.118/api.php/Gateway/cancel
6.16.3 Request
{
"institution_number":"I0000000001",
"order_sn":"999166211012063138966779021312",
"timestamp":"1581997091",
"sign":"DF4003ECA742CF5343E6593DEC033512"
}
6.16.4 Response
Successful return:
{
"ReturnCode": "Success",
"OrderSn": "999166211012063138966779021312",
"OrderNo": "202110121138119382008342"
}
Failure to return:
{
"ReturnCode": "Fail",
"OrderSn": "999166211012063138966779021312",
"OrderNo": "202110121138119382008342",
"ReturnMsg": "The current transaction cannot be cancelled"
}
Whether
Fields Type Description Example
must
Whether
Fields Type Description
must
‘Fail’: failure.
Notice that the first letter is uppercase
ReturnMsg string Reason for failure, return when payment fails. YES