Baokim Api Documentation

Mục Lục
Introduction
Welcome! Baokim’s mission is to deliver automated payment infrastructure solutions for your business. We help with both money in (collection payments) and money out (disbursement payments). Our users range from platforms businesses, fintech, e-Commerce, and everything else in between.
We have language bindings in Shell, Json! You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.
Benefits of Baokim
- Fast integration
- Instant transfers
- Daily reconciliation
- Simple & competitive pricing – no hidden fees
Regulations and requirements
To authorize, use this shell code:
curl --request GET --url https://replacedomain/Sandbox --header 'Authorization: Basic YmFva2ltOmJrQDEyMzQ1Ng==' }
– API that Baokim deployed, will be built on the Restful architecture, data transmission between the two sides will be Json.
– Baokim will restrict access to the API by one or more IPs based on each Partner. So before joining , Partner will send the IP list to Baokim to open the access.
– Baokim uses Basic Authentication to allow access to the API. Account information will be provided by Bao Kim at the start of the integration.
Authorization: Basic YmFva2ltOmJrQDEyMzQ1Ng==
You must replace YmFva2ltOmJrQDEyMzQ1Ng==
with your account.
Restful and Digital Signature
Restfull Web Service
REST (Representational State Transfer) has been widely adopted instead of Web services based on SOAP and WSDL. REST defines architectural rules for designing Web services that focus on system resources, including how resource states are formatted and transported via HTTP through a large number of users and are written by different languages.
In order to be able to connect REST with the tool and test with BAOKIM, the PARTNER can load and use one of the following two universal tools:
– Postman: https://www.getpostman.com
– Soap UI: https://www.soapui.org
Digital signature
Private key and public key
Baokim is currently using digital signature by RSA-SHA1
There are several ways to generate RSA key pairs.
Way 1:
Generate your RSA key pairs online:
Generate now
Way 2:
Using OpenSSL software for Windows:
Step 1: Download the software at:
http://slproweb.com/products/Win32OpenSSL.html. Partner should download the installer . Then install in any directory, for example
Step 2: Access then open the command prompt. Type the command to declare the environment config.
set OPENSSL_CONF=C:OpenSSL-Win64binopenssl.cfg
Step 3: Generate private key and public key
openssl genrsa -aes256 -out c:opensslkeyspartnerpartner_privatekey.pem 2048
openssl rsa –in c:opensslkeyspartnerpartner_privatekey.pem -pubout >c:opensslkeyspartnerpartner_publickey.pem
After successful pairing, Partner will send back to Baokim the public key to authenticate the signature that the Partner sends via the API
Disbursement payments
* Introduction documents and business processes on services: Download
Definition API
Environment
Method
Url
Test
POST
http://13.250.110.81:9095/Sandbox/FirmBanking
Production
POST
Provided when the contract is completed
Now we will see the details of each function
Verify customer information
Process:
1. Partner will call the customer authentication function, Baokim will check the data format and signature authentication..
2. Baokim continues to check customer information and corresponding bank
3. If the information is correct, Baokim will return successful information and corresponding customer name.
Body request samples:
{ RequestId: "PARTNERBK2018033000001", RequestTime: "2018-03-30 11:20:32", PartnerCode: "PARTNER", Operation: 9001, BankNo: "970436", AccNo: "0021000382448", AccType: 0, Signature: "hBMeZuDNPDD1TE9q3ojo+SSwA/FehW3H77y+3JkNHrdpRentPD 1TE9q3ojo FehW3H77y+3JkNHrdpRentPD =", }
Request pamram
#
Parameters
Datatypes
Condition
Description
1
RequestId
String (50)
Required
The only code that corresponds to an upload request. Proposed format is as follows: PartnerCode + BK + YYYYMMDD + UniqueId
2
RequestTime
String (19)
Required
It is time to send request from Partner, format: YYYY-MM-DD HH:MM:SS
3
PartnerCode
String (20)
Required
The partner code is defined in the Baokim system. This code will send to the partner when the integration begins.
4
Operation
Int (4)
Required
This parameter will determine which function that partner is calling. For customer authentication functions, the fix is “9001”
5
BankNo
String (20)
Required
Bank code in accordance with Baokim is defined in the section 8. List of remittance banks
6
AccNo
String (22)
Required
Account number or bank card number of the customer.
7
AccType
Int (1)
Required
AccNo classification
0: Bank account number
1: Bank card number
8
Signature
String (500)
Required
The partner will sign with digital signature of data transmitted using the algorithm RSACryptoServiceProvider. Before sending ,data will be base64 encoding. Data follow this structure:
RequestId|RequestTime| PartnerCode|Operation|BankNo| AccNo|AccType
Body response success samples:
{ ResponseCode: 200, ResponseMessage: "Successful", RequestId: "PARTNERBK2018033000001", BankNo: "970436", AccNo: "0021000382448", AccType: 0, AccName: "TRUONG DUC THUAN", Signature: "zoUhBMeZuDNPDD1TE9q3ojo+SSwA/FehW3H77y+3JkNHrdpRentPD 1TE9q3ojo FehW3H77y+3JkNHrdpRentPDmwk =", }
Body response Account no/Card no. does not exist samples:
{ ResponseCode: 119, ResponseMessage: "Account no./Card no. does not exist", RequestId: "PARTNERBK2018033000001", BankNo: "970436", AccNo: "0021000382448", AccType: 0, AccName: "", Signature: "qwhBMeZuDNPDD1TE9q3ojo+SSwA/FehW3H77y+3JkNHrdpRentPD 1TE9q3ojo FehW3H77y+3JkNHrdpRentPDPxe =", }
Response pamram
#
Parameters
Datatypes
Description
1
ResponseCode
Int (4)
The response status, is defined in Response Code
2
ResponseMessage
String (200)
Description for return status, defined in Response Code
3
RequestId
String (50)
Partner information posted
4
BankNo
String (20)
Partner information posted
5
AccNo
String (22)
Partner information posted
6
AccType
Int (1)
Partner information posted
7
AccName
String (50)
Baokim Customer’s name response if customer information is submitted correctly
8
Signature
String (200)
Baokim will sign with digital signature of data returned using RSACryptoServiceProvider. Returns the base64 encoding. Data is structured:
ResponseCode|ResponseMessage|RequestId| BankNo|AccNo|AccType|AccName
Transfer money
Process:
1. Partner will call the money transfer function, Baokim will check the data format and signature authentication, then will check the customer information, the amount to transfer.
2. If the correct information will return successful transfer.
Body request samples:
{ RequestId: "PARTNERBK2018033000002", RequestTime: "2018-03-30 11:20:32", PartnerCode: "PARTNER", Operation: 9002, ReferenceId: "5CBCAB920C63CED5E0540010E099E090", BankNo: "970436", AccNo: "0021000382448", AccType: 0, RequestAmount: 1000000, Memo: "transfer money to customers", Signature: "zzhBMeZuDNPDD1TE9q3ojo+SSwA/FehW3H77y+3JkNHrdpRentPD 1TE9q3ojo FehW3H77y+3JkNHrdpRentPDbb =", }
Request pamram
#
Parameters
Datatypes
Condition
Description
1
RequestId
String (50)
Required
The only code that corresponds to an upload request. Proposed format is as follows: PartnerCode + BK + YYYYMMDD + UniqueId
2
RequestTime
String (19)
Required
It is time to send request from Partner, format: YYYY-MM-DD HH:MM:SS
3
PartnerCode
String (20)
Required
The partner code is defined in the Baokim system. This code will send to the partner when the integration begins.
4
Operation
Int (4)
Required
This parameter will determine which function partner is calling. For the transfer function, the fix is “9002”
5
ReferenceId
String (50)
Required
Transaction code sent by the partner
6
BankNo
String (20)
Required
Bank code in accordance with Baokim is defined in the section 8. List of remittance banks
7
AccNo
String (22)
Required
Account number or bank card number of the customer.
8
AccType
Int (1)
Required
AccNo classification
0: Bank account number
1: Bank card number
9
RequestAmount
Int (9)
Required
The amount requested by the partner to transfer to the recipient.
10
Memo
String (100)
Optional
Money transfer contents
11
Signature
String (500)
Required
The partner will sign with digital signature of data transmitted using the algorithm RSACryptoServiceProvider. Before sending ,data will be base64 encoding. Data follow this structure:
RequestId|RequestTime|PartnerCode|
Operation|ReferenceId|BankNo|AccNo|
AccType|RequestAmount|Memo
Body response success samples:
{ ResponseCode: 200, ResponseMessage: "Successful", ReferenceId: "5CBCAB920C63CED5E0540010E099E090", TransactionId: "BK5CF8D68AE3CF8JY", TransactionTime: "2019-06-06", BankNo: "970436", AccNo: "0021000382448", AccName: "TRUONG DUC THUAN" AccType: 0, RequestAmount: 1000000, TransferAmount: 1000000, AffterBalance : 100000000, AfterDisbursementDay : 100000000, Signature: "zzhBMeZuDNPDD1TE9q3ojo+SSwA/FehW3H77y+3JkNHrdpRentPD 1TE9q3ojo FehW3H77y+3JkNHrdpRentPDbb =", }
Body response fail samples:
{ ResponseCode: 11, ResponseMessage: "Failed", ReferenceId: "5CBCAB920C63CED5E0540010E099E090", TransactionId: "BK5CF8D68AE3CF8JY", TransactionTime: "2019-06-06", BankNo: "970436", AccNo: "0021000382448", AccName: "TRUONG DUC THUAN" AccType: 0, RequestAmount: 1000000, TransferAmount: null, AffterBalance : null, AfterDisbursementDay : null, Signature: "zzhBMeZuDNPDD1TE9q3ojo+SSwA/FehW3H77y+3JkNHrdpRentPD 1TE9q3ojo FehW3H77y+3JkNHrdpRentPDbb =", }
Response pamram
#
Parameters
Datatypes
Description
1
ResponseCode
Int (4)
The response status, is defined in Response Code
2
ResponseMessage
String (200)
Description for return status, defined in Response Code
3
ReferenceId
String (50)
Partner information posted
4
TransactionId
String (50)
Transaction code recorded side Baokim
5
TransactionTime
String (50)
Finishing time side Baokim. Format YYYY-MM-DD
6
BankNo
String (20)
Partner information posted
7
AccNo
String (22)
Partner information posted
8
AccName
String (50)
Full name of the recipient, may or may not, depending on the time
9
AccType
Int (1)
Partner information posted
10
RequestAmount
Int (9)
Partner information posted
11
TransferAmount
Int (9)
The actual amount transferred to the recipient. Will be less if the remittance
12
AffterBalance
Int (9)
Current balance of investors
13
AfterDisbursementDay
Int (9)
Continue disbursement amount (in limit)
14
Signature
String (500)
BAOKIM will sign by digital signature of response data. Data is structured: ResponseCode| ResponseMessage| ReferenceId|TransactionId| TransactionTime|BankNo|AccNo|AccName|AccType| RequestAmount|TransferAmount
Look up for transfer info
Process:
1. PARTNER will call the transaction information search function, BAOKIM will check the data format and signature authentication, then will check the transaction code..
2. If the information is correct, return the transaction information..
Body request samples:
{ RequestId: "PARTNERBK2018033000002", RequestTime: "2018-03-30 11:20:32", PartnerCode: "PARTNER", Operation: 9003, ReferenceId: "5CBCAB920C63CED5E0540010E099E090", Signature: "zzhBMeZuDNPDD1TE9q3ojo+SSwA/FehW3H77y+3JkNHrdpRentPD 1TE9q3ojo FehW3H77y+3JkNHrdpRentPDbb =", }
Request pamram
#
Parameters
Datatypes
Condition
Description
1
RequestId
String (50)
Required
The only code that corresponds to an upload request. Proposed format is as follows: PartnerCode + BK + YYYYMMDD + UniqueId
2
RequestTime
String (19)
Required
It is time to send request from Partner, format: YYYY-MM-DD HH:MM:SS
3
PartnerCode
String (20)
Required
The partner code is defined in the Baokim system. This code will send to the partner when the integration begins.
4
Operation
Int (4)
Required
This parameter will determine which function partner is calling. For transactional lookup information, the fix is “9003”
5
ReferenceId
String (50)
Required
Transaction code from PARTNER submitted
6
Signature
String (500)
Required
The partner will digitally sign up data using the RSACryptoServiceProvider algorithm. Before sending to will base64 encoding. Data is structured:
RequestId|RequestTime|PartnerCode| Operation|ReferenceId
Body response success samples:
{ ResponseCode: 200, ResponseMessage: "Successful", ReferenceId: "5CBCAB920C63CED5E0540010E099E090", TransactionId: "BK5CF8D68AE3CF8JY", TransactionTime: "2019-06-06", BankNo: "970436", AccNo: "0021000382448", AccName: "TRUONG DUC THUAN" AccType: 0, RequestAmount: 1000000, TransferAmount: 1000000, Signature: "zzhBMeZuDNPDD1TE9q3ojo+SSwA/FehW3H77y+3JkNHrdpRentPD 1TE9q3ojo FehW3H77y+3JkNHrdpRentPDbb =", }
Response pamram
#
Parameters
Datatypes
Description
1
ResponseCode
Int (4)
The response status, is defined in Response Code
2
ResponseMessage
String (200)
Description for return status, defined in Response Code
3
ReferenceId
String (50)
This is the ReferenceID of the input parameter
4
TransactionId
String (50)
Transaction code recorded side Baokim
5
TransactionTime
String (50)
Finishing time side Baokim. Format YYYY-MM-DD
6
BankNo
String (20)
Partner information posted
7
AccNo
String (22)
Partner information posted
8
AccName
String (50)
Full name of the recipient, may or may not, depending on the time
9
AccType
Int (1)
Partner information posted
10
RequestAmount
Int (9)
Partner information posted
11
TransferAmount
Int (9)
The actual amount transferred to the recipient. Will be less if the remittance
12
Signature
String (500)
BAOKIM will sign by digital signature of response data. Data is structured: ResponseCode| ResponseMessage| ReferenceId|TransactionId| TransactionTime|BankNo|AccNo|AccName|AccType| RequestAmount|TransferAmount
Look up for Partner balance
Process:
1. Partner will call the partner balance searching function, Baokim will check the data format and signature authentication
2. If the information is correct, return the availale balance
Body request samples:
{ RequestId: "PARTNERBK2018033000002", RequestTime: "2018-03-30 11:20:32", PartnerCode: "PARTNER", Operation: 9004, Signature: "xzzhBMeZuDNPDD1TE9q3ojo+SSwA/FehW3H77y+3JkNHrdpRentPD 1TE9q3ojo FehW3H77y+3JkNHrdpRentPDbbqw =", }
Request param
#
Parameters
Datatypes
Condition
Description
1
RequestId
String (50)
Required
The only code that corresponds to an upload request. Proposed format is as follows: PartnerCode + BK + YYYYMMDD + UniqueId
2
RequestTime
String (19)
Required
It is time to send request from Partner, format: YYYY-MM-DD HH:MM:SS
3
PartnerCode
String (20)
Required
The partner code is defined in the Baokim system. This code will send to the partner when the integration begins.
4
Operation
Int (4)
Required
This parameter will determine which function partner is calling. For lookup balance information, the fix is “9004”
5
Signature
String (500)
Required
The partner will digitally sign up data using the RSACryptoServiceProvider algorithm. Before sending to will base64 encoding. Data is structured:
RequestId|RequestTime| PartnerCode|Operation
Body response samples:
{ ResponseCode: 200, ResponseMessage: "Successful", RequestId: "PARTNERBK20190606001", PartnerCode: "PARTNER" Available: 150000000, Holding: 2500000, Signature: "xzzhBMeZuDNPDD1TE9q3ojo+SSwA/FehW3H77y+3JkNHrdpRentPD 1TE9q3ojo FehW3H77y+3JkNHrdpRentPDbbqw =", }
Response param
#
Parameters
Datatypes
Description
1
ResponseCode
Int (4)
The response status, defined in Response Code
2
ResponseMessage
String (200)
Description for response status, defined in Response Code
3
RequestId
String (50)
Request id that partner sent
4
PartnerCode
String (20)
The code of partner
5
Available
BigInt (30)
Total partner’s available balance
6
Holding
BigInt (30)
Total money is pending
7
Signature
String (500)
BAOKIM will sign by digital signature of response data. Structured data:
ResponseCode|ResponseMessage| RequestId | PartnerCode | Available | Holding
Describe the mechanism handling the transaction timeout
Due to traffic problems or during request processing at Baokim, transaction timeout may be generated. Baokim will describe the processing mechanism consists of two cases as follows:
Case 1: Baokim proactively returns error code timeout, error code 99
– This case occurs when the two parties set the maximum time to return the results for a transaction but for some reason the Baokim or Bank has not finished processing should be proactive return error code timeout
– The way to deal with this situation: Partner when receiving the timeout error code will call the check transaction status. In this function Baokim will return the transaction status for Partner.
Case 2: Timeout due to transmission line failure, does not get the result returned
In this case it is possible to timeout from Partner-> Baokim or Baokim-> Partner. So can not determine whether the transaction Baokim reception or not.
– The way to deal with this situation:
1. The Partner will call Check Transaction Status to look up transaction status. If the result is received then the Partner will update the partner status. If timeout is still the case then move on to step 2.
2. In cases where transmission lines meet with long incidents, Baokim and Partner will coordinate with human handling to certification. Partner will email to Baokim to request sending status for a transaction, the Baokim’s technique will confirm the status and return to Partner
Response Code
ResponseCode
ResponseMessage
200
Successful
99
Transaction timeout
11
Failed
101
Error processing from Baokim
102
Duplicated RequestId
103
Incorrect signature
110
Incorrect PartnerCode
111
PartnerCode deleted from the system
112
PartnerCode not yet activated
113
Operation code is required
114
Incorrect Operation code
115
BankID is required
116
BankID not supported
117
Account no. /Card no. should be from 6-22 characters in length
118
Invalid account no./Card no.
119
Account no./Card no. does not exist
120
Incorrect account type
121
Transaction ID sent from Partner is required
122
Transaction ID sent by Partner is existing
123
Transaction unfound
124
Transfer amount required
125
Invalid transfer amount
126
Error processing between Baokim and bank
127
Error connecting to bank
128
Error processing from bank
129
Insufficient disbursement limit or expired guarantee period
130
Exceeded transfer limit on day
List of bank transfer assistance
#
BankNo
BankName
Account
Card
1
970423
TIEN PHONG COMMERCIAL JOINT STOCK BANK
✓
✓
2
970437
Ho Chi Minh City Development Joint Stock Commercial Bank
✓
✓
3
970408
Global Petro Sole Member LimitedCommercial Bank
✓
✓
4
970407
Vietnam Technological and Commercial Joint Stock Bank
✓
✓
5
970442
Hong Leong Commercial Joint Stock Bank
✓
✓
6
970414
Ocean Commercial Joint – Stock Bank
✓
✓
7
970438
Bao Viet Joint Stock Commercial Bank
✓
✓
8
970422
Military Commercial Joint Stock Bank
✓
✓
9
970432
Vietnam Prosperity Joint-Stock Commercial Bank
✓
✓
10
970439
Public Bank Vietnam Limited (PBVN)
✓
✓
11
970415
VIETNAM JOINT STOCK COMMERCIAL BANK FOR INDUSTRY AND TRADE (Viettinbank)
✓
✓
12
970431
VIETNAM EXPORT IMPORT COMMERCIAL JOINT STOCK BANK (Eximbank)
✓
✓
13
970440
Southeast Asia Commercial Joint Stock Bank (SeABank)
✓
✓
14
970429
Sai Gon Joint StockCommercial Bank
✓
✓
15
970448
Orient Commercial Joint StockBank (OCB)
✓
✓
16
970425
An BinhCommercial Joint Stock Bank
✓
✓
17
970426
Vietnam Maritime Commercial Stock Bank (MSB)
✓
✓
18
970427
Vietnam Asia Commercial Joint Stock Bank (VietA)
✓
✓
19
970419
National Citizen Commercial Joint Stock Bank (NCB)
✓
✓
20
970418
Joint Stock Commercial Bank for Investment and Development of Vietnam (BIDV)
✓
✓
21
970443
Sai Gon- Ha Noi Commercial Joint Stock Bank
✓
✓
22
970406
DongA Joint Stock Commercial Bank
✓
✓
23
970441
Vietnam International Commercial Joint Stock Bank (VIB)
✓
✓
24
970424
Shinhan Bank Vietnam Limited
✓
✓
25
970433
Vietnam Thuong Tin Commercial Joint Stock Bank (Vietbank)
✓
✓
26
970454
VIET CAPITAL COMMERCIAL JOINT STOCK BANK (Ban Viet)
✓
27
970452
Kien Long Commercial Joint -Stock Bank
✓
✓
28
970430
PETROLIMEX GROUPCOMMERCIAL JOINT STOCK BANK
✓
✓
29
970400
Sai Gon Joint Stock Commercial Bank (Saigon Bank)
✓
✓
30
970405
Vietnam Bank for Agriculture and Rural Development or Agribank (Agribank)
✓
✓
31
970403
Sacombank
✓
✓
32
970412
Vietnam Public Joint Stock Commercial Bank (Vietnam dai chung)
✓
✓
33
970421
Vietnam-Russia Joint Venture Bank – VRB
✓
✓
34
970428
Nam A Commercial Joint Stock Bank (Nam A Bank)
✓
✓
35
970434
Indovina Bank Ltd
✓
✓
36
970449
LienViet Post Joint Stock Commercial Bank (LienViet Post bank)
✓
✓
37
970457
Woori Bank Vietnam Limited
✓
38
970436
Joint Stock Commercial Bank for Foreign Trade of Vietnam (Vietcombank)
✓
✓
39
970416
Asia Commercial Joint Stock Bank
✓
40
970458
UNITED OVERSEAS BANK (VIETNAM) LIMITED
✓
✓
41
970446
Co-operative bank of VietNam
✓
42
970455
Industrial Bank of Korea – Ha Noi Branch
✓
43
970409
North Asia Commercial Joint Stock Bank
✓
✓
44
422589
CIMB Bank (Vietnam) Limited
✓
✓
45
796500
Ngân hàng DBS – Chi nhánh Hồ Chí Minh(DBS)
✓
46
458761
TNHH MTV HSBC Việt Nam(HSBC)
✓
47
970410
TNHH MTV Standard Chartered Việt Nam(SCVN)
✓
48
801011
Nonghuyp – Chi nhánh Hà Nội(NHB)
✓
Cash transfer by identification
* Introduction documents and business processes on services: Download
Definition API
Environment
Method
Url
Test
POST
http://13.250.110.81:9095/Sandbox/Cash
Production
POST
Provided when the contract is completed
Now we will see the details of each function
Create new cash transfer by indentification
Process:
1. PARTNER calls Cash transfer by identification function , BAOKIM will check the data format and signature authentication.
2. If the information is correct, BAOKIM will return the transaction information.
3. BAOKIM will send a secret code to cumstomer.
Body request samples:
{ RequestId : "PARTNERBK201906141107220001", RequestTime : "2019-06-14 11:07:22", PartnerCode : "PARTNER", Operation : "9011", ReferenceId : "PARTNERREF0001", AccName : "Nguyen Van A", ClientIdNo : "123456789", IssuedPlace : "Ha Noi, Viet Nam", IssuedDate : "2018-06-14", ContractId : "PARTNERCON0001", RequestAmount : "10000000", Email : "[email protected]", Memo : "Chi tiền mặt tại quầy", ExpiredDate : "2019-06-29", Phone : "0912345678", Signature : "hBMeZuDNPDD1TE9q3ojo+SSwA/FehW3H77y+3JkNHrdpRent =" }
Request pamram
#
Parameters
Datatypes
Condition
Description
1
RequestId
String (50)
Required
The only code that corresponds to an upload request. Proposed format is as follows: PartnerCode + BK + YYYYMMDD + UniqueId
2
RequestTime
String (19)
Required
It is time to send request from Partner, format: YYYY-MM-DD HH:MM:SS
3
PartnerCode
String (20)
Required
The partner code is defined in the Baokim system. This code will send to the partner when the integration begins.
4
Operation
Int (4)
Required
This parameter will determine which function PARTNER is calling. For the transfer by identification function, the fix is “9011”
5
ReferenceId
String (50)
Required
Transaction code sent by partner.
6
AccName
String (50)
Required
Full name of customer.
7
ClientIdNo
String (12)
Required
Client id no / passport number of customer (9 or 12 digits and start with ‘C’ with passport)
8
IssuedPlace
String (100)
Required
Issued place client id / passport of customer.
9
IssuedDate
String (10)
Required
Issued date client id / passport of customer. Format: YYYY-MM-DD
10
ContractId
String (50)
Required
Contract id of customer.
11
RequestAmount
Int (9)
Required
Amount partner want to disbursement.
Maximum: 50,000,000 vnd.
Minimum: 100,000 vnd.
12
Email
String (50)
Optional
Email of customer.
13
Memo
String (200)
Required
Cash transfer contents
14
ExpiredDate
String (10)
Optional
Expired date. Up to 15 days from the date of transaction creation. Format: YYYY-MM-DD.
15
Phone
String (10)
Required
Phone number of customer.
16
Signature
String (500)
Required
The partner will sign with digital signature of data transmitted using the algorithm RSACryptoServiceProvider. Before sending ,data will be base64 encoding. Data follow this structure:
RequestId|RequestTime|PartnerCode| Operation|ReferenceId|AccName| ClientIdNo|IssuedPlace|IssuedDate| ContractId|RequestAmount|Email| Memo|ExpiredDate|Phone
Body response success samples:
{ ResponseCode : "99", ResponseMessage : "Pending", RequestId : "PARTNERBK201906141107220001", PartnerCode : "PARTNER", ReferenceId : "PARTNERREF0001", AccName : "Nguyen Van A", ClientIdNo : "123456789", IssuedPlace : "Ha Noi, Viet Nam", IssuedDate : "2018-06-14", ContractId : "PARTNERCON0001", RequestAmount : "10000000", Email : "[email protected]", Memo : "Chi tien mat tai quay", ExpiredDate : "2019-06-29", Phone : "0912345678", RealAmount : "9992200", Signature : "L0mlttgDODK00Ksw46A6DHERwaU4yKnJLBSUj7km5ayVFndsS =" }
Body response ClientIdNo is invalid samples:
{ ResponseCode : "204", ResponseMessage : "ClientIdNo is invalid", RequestId : "PARTNERBK201906141107220001", PartnerCode : "PARTNER", ReferenceId : "PARTNERREF0001", AccName : "Nguyen Van A", ClientIdNo : "12c45b78e", IssuedPlace : "Ha Noi, Viet Nam", IssuedDate : "2018-06-14", ContractId : "PARTNERCON0001", RequestAmount : "10000000", Email : "[email protected]", Memo : "Chi tien mat tai quay", ExpiredDate : "2019-06-29", Phone : "0912345678", RealAmount : "9992200", Signature : "L0mlttgDODK00Ksw46A6DHERwaU4yKnJLBSUj7km5ayVFndsS =" }
Response pamram
#
Parameters
Datatypes
Description
1
ResponseCode
Int (4)
The response status, is defined in Response Code. Default return 99.
2
ResponseMessage
String (200)
Description for return status, defined in Response Code
3
RequestId
String (50)
Partner information posted
4
PartnerCode
String (50)
PartnerCode PARTNER sent
5
ReferenceId
String (50)
ReferenceId PARTNER sent
6
AccName
String (20)
Customer name PARTNER sent.
7
ClientIdNo
String (12)
Client id / passport id of customer PARTNER sent
8
IssuedPlace
String (100)
Issued place client id / passport id of customer PARTNER sent.
9
IssuedDate
String (10)
Issued date client id / passport id of customer PARTNER sent
10
ContractId
String (50)
Contract id of customer PARTNER sent
11
RequestAmount
Int (9)
Amount PARTNER want to transfer to customer PARTNER sent
12
Email
String (50)
Email of customer PARTNER sent
13
Memo
String (200)
Cash transfer content after convert
14
ExpiredDate
String (10)
Expired date PARTNER sent or BAOKIM will auto add 15 days from the date PARTNER sent request to create a transaction.
15
Phone
String (10)
Phone number of customer PARTNER sent
16
RealAmount
Int (9)
Real amount BAOKIM will transfer to customer.
17
Signature
String (200)
Baokim will sign with digital signature of data returned using RSACryptoServiceProvider. Returns the base64 encoding. Data is structured:
ResponseCode|ResponseMessage|RequestId| PartnerCode|ReferenceId|AccName|ClientIdNo| IssuedPlace|IssuedDate|ContractId| RequestAmount|Email|Memo|ExpiredDate| Phone|RealAmount
Transaction by identification status checking
Process:
1. PARTNER will call transaction by identification status checking, , BAOKIM will check the data format and signature authentication
2. If the information is correct, BAOKIM will return the transaction information.
Body request samples:
{ RequestId : "PARTNERBK201906141107220001", RequestTime : "2019-06-14 11:07:22", PartnerCode : "PARTNER", Operation : "9012", ReferenceId : "PARTNERREF0001", Signature : "AckeZuDNPDQECE9q3ojo+SSlm/FehW3H77y+3JkNHrdpRalk =" }
Request pamram
#
Parameters
Datatypes
Condition
Description
1
RequestId
String (50)
Required
The only code that corresponds to an upload request. Proposed format is as follows: PartnerCode + BK + YYYYMMDD + UniqueId
2
RequestTime
String (19)
Required
It is time to send request from Partner, format: YYYY-MM-DD HH:MM:SS
3
PartnerCode
String (20)
Required
The partner code is defined in the Baokim system. This code will send to the partner when the integration begins.
4
Operation
Int (4)
Required
This parameter will determine which function partner is calling. For the Transaction by identification status checking, the fix is “9012”
5
ReferenceId
String (50)
Required
Transaction code sent by partner.
6
Signature
String (500)
Required
The partner will sign with digital signature of data transmitted using the algorithm RSACryptoServiceProvider. Before sending ,data will be base64 encoding. Data follow this structure:
RequestId|RequestTime|PartnerCode| Operation|ReferenceId
Body response success samples:
{ ResponseCode : "200", ResponseMessage : "Success", RequestId : "PARTNERBK201906151107220001", PartnerCode : "PARTNER", ReferenceId : "PARTNERREF0001", AccName : "Nguyen Van A", ClientIdNo : "123456789", IssuedPlace : "Ha Noi, Viet Nam", IssuedDate : "2018-06-14", ContractId : "PARTNERCON0001", RequestAmount : "10000000", ExpiredDate : "2019-06-29", Email : "[email protected]", Memo : "Chi tien mat tai quay", Phone : "0912345678", RealAmount : "9992200", DisbursementTime : "2019-06-24 12:00:00", RecordedTime : "2019-06-14 11:07:25", Signature : "xm0zQcSiswbCQVfP93j49N8vdRD977hsR79SuP7nOcXG4gTXMO", }
Body response Transaction unfound samples:
{ ResponseCode : "123", ResponseMessage : "Transaction unfound", RequestId : "", PartnerCode : "PARTNER", ReferenceId : "", AccName : "", ClientIdNo : ", IssuedPlace : ", IssuedDate : ", ContractId : ", RequestAmount : ", Email : ", Memo : ", ExpiredDate : ", Phone : ", RealAmount : ", Signature : "L0mlttgDODK00Ksw46A6DHERwaU4yKnJLBSUj7km5ayVFndsS =" }
Response pamram
#
Parameters
Datatypes
Description
1
ResponseCode
Int (4)
The response status, is defined in Response Code. Default return 99.
2
ResponseMessage
String (200)
Description for return status, defined in Response Code
3
RequestId
String (50)
Partner of transaction
4
PartnerCode
String (50)
PartnerCode PARTNER sent
5
ReferenceId
String (50)
ReferenceId of transactiont
6
AccName
String (20)
Customer name PARTNER sent.
7
ClientIdNo
String (12)
Client id / passport id of customer PARTNER sent
8
IssuedPlace
String (100)
Issued place client id / passport id of customer PARTNER sent.
9
IssuedDate
String (10)
Issued date client id / passport id of customer PARTNER sent
10
ContractId
String (50)
Contract id of customer PARTNER sent
11
RequestAmount
Int (9)
Amount PARTNER want to transfer to customer PARTNER sent
12
Email
String (50)
Email of customer PARTNER sent
13
Memo
String (200)
Cash transfer content after convert
14
ExpiredDate
String (10)
Expired date PARTNER sent or BAOKIM will auto add 15 days from the date PARTNER sent request to create a transaction.
15
Phone
String (10)
Phone number of customer PARTNER sent
16
RealAmount
Int (9)
Real amount BAOKIM will transfer to customer.
17
DisbursementUnit
String (200)
Disbursement unit name.
18
DisbursementbBranch
String (200)
Disbursement branch name.
19
DisbursementTime
String (19)
Disbursement time. Format: YYYY-MM-DD HH:MM:SS.
20
RecordedTime
String (19)
Disbursement time. Format: YYYY-MM-DD HH:MM:SS.
21
Signature
String (200)
Baokim will sign with digital signature of data returned using RSACryptoServiceProvider. Returns the base64 encoding. Data is structured:
ResponseCode|ResponseMessage|RequestId| PartnerCode|ReferenceId|AccName|ClientIdNo| IssuedPlace|IssuedDate|ContractId| RequestAmount|Email|Memo|ExpiredDate| Phone|RealAmount|DisbursementUnit| DisbursementbBranch|DisbursementTime| RecordedTime
Cancel pending cash transfer transaction
Process:
1. PARTNER will call transaction by identification status checking, , BAOKIM will check the data format and signature authentication
2. If the information is correct, BAOKIM will cancel pending cash transfer transaction and return response to PARTNER.
Body request samples:
{ RequestId : "PARTNERBK201906141107220001", RequestTime : "2019-06-14 11:07:22", PartnerCode : "PARTNER", Operation : "9012", ReferenceId : "PARTNERREF0001", ContractId: "PARTNERCON0001", Signature : "xmglqcSiswbCQVfP93j49N8vdRD977h1ưe9SuP7nOcXG4gTXMO =" }
Request pamram
#
Parameters
Datatypes
Condition
Description
1
RequestId
String (50)
Required
The only code that corresponds to an upload request. Proposed format is as follows: PartnerCode + BK + YYYYMMDD + UniqueId
2
RequestTime
String (19)
Required
It is time to send request from Partner, format: YYYY-MM-DD HH:MM:SS
3
PartnerCode
String (20)
Required
The partner code is defined in the Baokim system. This code will send to the partner when the integration begins.
4
Operation
Int (4)
Required
This parameter will determine which function partner is calling. For the Cancel pending cash transfer transaction, the fix is “9013”
5
ReferenceId
String (50)
Required
Transaction code sent by partner.
6
ContractId
String (50)
Required
Contract id sent by partner.
7
Signature
String (500)
Required
The partner will sign with digital signature of data transmitted using the algorithm RSACryptoServiceProvider. Before sending ,data will be base64 encoding. Data follow this structure:
RequestId|RequestTime|PartnerCode| Operation|ReferenceId|ContractId
Body response success samples:
{ ResponseCode : "201", ResponseMessage : "Cancel pending transaction success", RequestId : "PARTNERBK201906141107220001", PartnerCode : "PARTNER", ReferenceId : "PARTNERREF0001", AccName : "Nguyen Van A", ClientIdNo : "123456789", IssuedPlace : "Ha Noi, Viet Nam", IssuedDate : "2018-06-14", ContractId : "PARTNERCON0001", RequestAmount : "10000000", ExpiredDate : "2019-06-29", Email : "[email protected]", Memo : "Chi tien mat tai quay", Phone : "0912345678", RealAmount : "9992200", Signature : "L0mlttgDODK00Ksw46A6DHERwaU4yKnJLBSUj7km5ayVFndsS =", }
Body response Cannot cancel cash transfer transaction samples:
{ ResponseCode : "202", ResponseMessage : "Cannot cancel pending transaction", RequestId : "PARTNERBK201906141107220002", PartnerCode : "PARTNER", ReferenceId : "PARTNERREF0001", AccName : "Nguyen Van A", ClientIdNo : "123456789", IssuedPlace : "Ha Noi, Viet Nam", IssuedDate : "2018-06-14", ContractId : "PARTNERCON0001", RequestAmount : "10000000", ExpiredDate : "2019-06-29", Email : "[email protected]", Memo : "Chi tien mat tai quay", Phone : "0912345678", RealAmount : "9992200", Signature : "KTMttgDODK00Ksw46A6DHERwaU423asKnJLBSUj7km5ayVFndsS =", }
Response pamram
#
Parameters
Datatypes
Description
1
ResponseCode
Int (4)
The response status, is defined in Response Code. Default return 99.
2
ResponseMessage
String (200)
Description for return status, defined in Response Code
3
RequestId
String (50)
Partner information posted
4
PartnerCode
String (50)
PartnerCode PARTNER sent
5
ReferenceId
String (50)
ReferenceId of transaction
6
AccName
String (20)
Customer name PARTNER sent.
7
ClientIdNo
String (12)
Client id / passport id of customer PARTNER sent
8
IssuedPlace
String (100)
Issued place client id / passport id of customer PARTNER sent.
9
IssuedDate
String (10)
Issued date client id / passport id of customer PARTNER sent
10
ContractId
String (50)
Contract id of customer PARTNER sent
11
RequestAmount
Int (9)
Amount PARTNER want to transfer to customer PARTNER sent
12
Email
String (50)
Email of customer PARTNER sent
13
Memo
String (200)
Cash transfer content after convert
14
ExpiredDate
String (10)
Expired date PARTNER sent or BAOKIM will auto add 15 days from the date PARTNER sent request to create a transaction.
15
Phone
String (10)
Phone number of customer PARTNER sent
16
RealAmount
Int (9)
Real amount BAOKIM will transfer to customer.
17
Signature
String (200)
Baokim will sign with digital signature of data returned using RSACryptoServiceProvider. Returns the base64 encoding. Data is structured:
ResponseCode|ResponseMessage|RequestId| PartnerCode|ReferenceId|AccName|ClientIdNo| IssuedPlace|IssuedDate|ContractId| RequestAmount|Email|Memo|ExpiredDate|Phone| RealAmount
Response Code
ResponseCode
ResponseMessage
200
Successful
99
Transaction timeout
11
Failed
101
Error processing from Baokim
102
Duplicated RequestId
103
Incorrect signature
110
Incorrect PartnerCode
111
PartnerCode deleted from the system
112
PartnerCode not yet activated
113
Operation code is required
114
Incorrect Operation code
121
Transaction ID sent from Partner is required
122
Transaction ID sent by Partner is existing
123
Transaction unfound
124
Transfer amount required
125
Invalid transfer amount
130
Exceeded transfer limit on day
201
Cancel pending transaction success
202
Cannot cancel pending transaction
203
AccName is invalid
204
ClientIdNo is invalid
205
IssuedPlace is invalid
206
IssuedDate is invalid
207
ContractId is invalid
208
RequestAmount is invalid
209
ExpiredDate is invalid
210
Phone number is invalid
211
Email is invalid
212
ClientIdNo and ContractId are existed
213
Memo is invalid
Collection payments version 2
Change log:
Version
Updated at
Updated by
Updated Content
2.2
2020-09-20
Nguyen Nhu Tuan Anh
Add: Notice of account bank switching (PARTNER Provide)
Update 9001 – Register VA
Response:
AccountInfo: Change key from WOORIBANK to BANK
Update 9002 – Update VA Information
Response:
AccountInfo: Change key from WOORIBANK to BANK
2.3
2021-08-09
Nguyen Thanh Dat
Add QrCode into AccountInfo when create (9001) or update (9002) VA
* Introduction documents and business processes on services: Download
Note:
+ In case PARTNER want to use collect via Virtual Account, PARTNER will need to buid:
– Register virtual account
– Update virtual account informations
– Virtual account information searching
– Collection transaction status searching
– Notice of collection transaction
– Notice of account bank switching
+ In case PARTNER want to use collect at point, PARTNER will need to buid:
– Register virtual account
– Update virtual account informations
– Virtual account information searching
– Collection transaction status searching
– Collect at point
– Notice of collection transaction
– Notice of account bank switching
Definition API
Environment
Method
Url
Test
POST
https://devtest.baokim.vn/Sandbox/Collection/V2
Production
POST
Provided when the contract is completed
Request information to BAOKIM
Ingredient
Parameters
Describe
Header
Content-Type
application/json
Signature
PARTNER will sign the Data with sha1WithRSA
algorithm and use base64 encryption
Body
Data
Information (See details in section Details of functions)
Response from BAOKIM to PARTNER
Ingredient
Parameters
Describe
Header
Content-Type
application/json
Signature
BAOKIM will sign the Data with sha1WithRSA
algorithm and use base64 encryption
Body
Data
Information (See details in section Details of functions)
Now we will see the details of each function
Register virtual account
Process:
1. PARTNER will call transaction by identification status checking, , BAOKIM will check the data format and signature authentication
2. If the information is correct, BAOKIM will cancel pending cash transfer transaction and return response to PARTNER.
Header request samples:
{ Content-Type: "application/json", Signature:"hBMeZuDNPDD1TE9q3ojo+SSwA/FehW3H77y+3JkNHrdpRent =" }
Body request samples:
{ RequestId : "BK201907260657365", RequestTime : "2019-07-26 13:58:06", PartnerCode : "NTDAT", Operation : "9001", CreateType : 2, AccName : "Nguyen Van A", CollectAmountMin : 50000, CollectAmountMax : 50000000, ExpireDate : "2025-05-09 12:00:00", OrderId : "de83d309aad465b59cadb223f", AccNo : NULL }
Request pamram
#
Parameters
Datatypes
Condition
Description
1
RequestId
String (50)
Required
Unique code , recomment format: PartnerCode + BK + YYYYMMDD + UniqueId.
2
RequestTime
String (19)
Required
Time send the request from PARTNER , format: YYYY-MM-DD HH:MM:SS.
3
PartnerCode
String (20)
Required
Unique code BAOKIM provide
4
Operation
Int (4)
Required
Fix: 9001
5
CreateType
Int (4)
Required
Note: BK won’t check this field, can send 2
6
AccName
String (50)
Required
The name of Account holder (name of USER)
7
CollectAmountMin
Int (11)
Require
Min collect amount (Min 50.000
vnd)
8
CollectAmountMax
Int (11)
Require
Max collect amount (Max
50.000.000vnd)
9
AccNo
String(17)
Optional
VA number (Max 17 characters).Note: BK won’t check this field, can send NULL
10
OrderId
String (25)
Require
Unique id for each VA
11
ExpireDate
String (10)
Optional
Expire date. Format: YYYYMM-DD HH:II:SS
Body response success samples:
{ ResponseCode:200, ResponseMessage:"Success", PartnerCode:"BK201907260657365", OrderId:"ORDER202002030001", CollectAmountMin:"50000", CollectAmountMax:"50000000", ExpireDate:"2025-05-09 12:00:00", AccountInfo: { "BANK":{ "BankName":"Ngân hàng TNHH MTV Woori Việt Nam", "BankShortName":"WOORIBANK", "BankBranch":"Hà Nội", "AccNo":"902003000001", "AccName":"NGUYEN VAN AN", "Qr" : "base64 image return here", "QrPath" : "link qr image here", } } }
Response pamram
#
Parameters
Datatypes
Description
1
ResponseCode
Int (4)
The response status, is defined in Response Code.
2
ResponseMessage
String (200)
Description for return status, defined in Response Code
3
PartnerCode
String(6)
Account number code has been successfully created
4
OrderId
String (50)
Unique id for each VA (partner sent)
5
CollectAmountMin
Int(11)
Collect amount min
6
CollectAmountMax
Int(11)
ICollect amount max
7
ExpireDate
String(10)
Exprie date
8
AccountInfo
JSON
Account list
Process:
1. PARTNER wanto change and save the USER changed informations , will call to “Virtual account information update”.
2. BAOKIM will check about datatype and the signature accuracy .
3. If every submitted datas are correct, BAOKIM will update the virtual account by the provided datas, At the same time BAOKIM will response to PARTNER.
Header request samples:
{ Content-Type: "application/json", Signature:"hBMeZuDNPDD1TE9q3ojo+SSwA/FehW3H77y+3JkNHrdpRent =" }
Body request samples:
{ RequestId : "BK201907261428559", RequestTime : "2019-07-26 14:28:55", PartnerCode : "NTDAT", Operation : "9002", AccNo : "900300002294", AccName : "Nguyen Van B", CollectAmountMin : "50000", CollectAmountMax : "50000000", OrderId : "ORDER202002030001", ExpireDate : "2025-05-09 12:00:00", }
Request pamram
#
Parameters
Datatypes
Condition
Description
1
RequestId
String (50)
Required
The unique id for each Request
from PARNTER to BAOKIM.
Format:
PARTNERCODE+YYYYMMD
DHHIISS+UniqueId
2
RequestTime
String (19)
Required
Time send the request from PARTNER , format: YYYY-MM-DD HH:MM:SS.
3
PartnerCode
String (20)
Required
Unique code BAOKIM provide
4
Operation
String (4)
Required
Fixed: 9002
5
AccNo
String (20)
Required
VA number need to update
information
6
AccName
String(50)
AccName
The name of Account holder (name of USER)
7
CollectAmountMin
Int (11)
Optional
Min collect amount (Min 50.000
vnd)
8
CollectAmountMax
Int (11)
Optional
Min collect amount (Min 50.000.000
vnd)
9
OrderId
String (25)
Required
Unique id for each VA
10
ExpireDate
String (10)
Optional
Expire date. Format: YYYYMM-DD HH:II:SS
Body response success samples:
{ ResponseCode : 200, ResponseMessage : "Success", PartnerCode : "BAOKIM", OrderId : "ORDER202002030001", CollectAmountMin : "50000", CollectAmountMax : "50000000", ExpireDate : "2020-05-09 12:00:00", AccountInfo : { "BANK": { "BankName":"Ngân hàng TNHH MTV Woori Việt Nam", "BankShortName":"WOORIBANK", "BankBranch":"Hà Nội", "AccNo":"900300002294", "AccName":"NGUYEN VAN B", "Qr" : "base64 image return here", "QrPath" : "link qr image here" } } }
Response pamram
#
Parameters
Datatypes
Description
1
ResponseCode
Int (4)
The response status, is defined in Response Code.
2
ResponseMessage
String (200)
Description for return status, defined in Response Code
3
PartnerCode
String(6)
Fix: BAOKIM
4
OrderId
String (50)
Unique id for each VA (partner sent)
5
CollectAmountMin
Int(11)
Collect amount min
6
CollectAmountMax
Int(11)
Collect amount max
7
ExpireDate
String(10)
Exprie date
8
AccountInfo
JSON
Account list
Virtual account information searching
Process:
1. When PARTNER want to get detail information of a virtual account, PARTNER will call to “Virtual account information searching”
2. BAOKIM will check the data type and the signature accuracy, if every submitted data is correct, BAOKIM will get and return all detail infomations of this virtual account , else return error.
Header request samples:
{ Content-Type: "application/json", Signature:"hBMeZuDNPDD1TE9q3ojo+SSwA/FehW3H77y+3JkNHrdpRent =" }
Body request samples:
{ RequestId : "BK201907261509591", RequestTime : "2019-07-26 15:09:59", PartnerCode : "NTDAT", Operation : "9003", AccNo : "900300002294", }
Request pamram
#
Parameters
Datatypes
Condition
Description
1
RequestId
String (50)
Required
The unique id for each Request
from PARNTER to BAOKIM.
Format:
PARTNERCODE+YYYYMMD
DHHIISS+UniqueId
2
RequestTime
String (19)
Required
Time send the request from PARTNER , format: YYYY-MM-DD HH:MM:SS.
3
PartnerCode
String (20)
Required
Unique code BAOKIM provide
4
Operation
Int (4)
Required
Fix: 9003.
5
AccNo
String (20)
Require
VA number need to check information
Body response success samples:
{ ResponseCode : 200, ResponseMessage : "Success", PartnerCode : "NTDAT", AccName : "NTDAT NGUYEN VAN B", AccNo : "900300002294", OrderId : "de83d309aad465b59cadb223f", CollectAmountMin : "50000", CollectAmountMax : "50000000", ExpireDate : "2020-07-28 00:00:00", TransactionList : null, }
Response pamram
#
Parameters
Datatypes
Description
1
ResponseCode
Int (4)
The response status, is defined in Response Code.
2
ResponseMessage
String (200)
Description for return status, defined in Response Code
3
PartnerCode
String (20)
Fix: BAOKIM
4
AccName
String (20)
VA owner name (unmarked,
capitalized)
5
AccNo
String (20)
VA number PARTNER want to check
6
OrderId
String (25)
Unique id for each VA
7
CollectAmountMin
Int (11)
Collect amount min
8
CollectAmountMax
Int (11)
Collect amount max
9
ExpireDate
String (10)
Expire date partner sent
10
TransactionList
String
Transaction list
Collection transaction status searching
Process:
1. When PARTNER want to get all Collection transaction detail information, PARTNER will call to “Collection transaction detail information searching”.
2. BAOKIM will check about datatype and the signature accuracy, If every submitted datas are correct, BAOKIM will reponse exactly detail informations of this collection transaction.
Header request samples:
{ Content-Type: "application/json", Signature:"hBMeZuDNPDD1TE9q3ojo+SSwA/FehW3H77y+3JkNHrdpRent =" }
Body request samples:
{ RequestId : "BK201907261549323", RequestTime : "2019-07-26 15:49:32", PartnerCode : "NTDAT", Operation : "9004", ReferenceId : "PARTNERCODE4b9e1152bf98d2e82935", }
Request pamram
#
Parameters
Datatypes
Condition
Description
1
RequestId
String (50)
Required
The unique id for each Request from
PARNTER to BAOKIM.
Format:
PARTNERCODE+YYYYMMDDHHIIS
S+UniqueId
2
RequestTime
String (19)
Required
Time to send Request.
Format: YYYY-MM-DD HH:II:SS
3
PartnerCode
String (20)
Required
Unique code BAOKIM provide
4
Operation
Int (4)
Required
Fixed: 9004
5
ReferenceId
String (50)
Required
Transaction code (Generate when BAOKIM noti collection transaction to PARTNER via API)
Body response success samples:
{ ResponseCode : 200, ResponseMessage : "Success", PartnerCode : "BAOKIM", AccNo : "900300000122", AccName : "BK NTDAT NGUYEN VAN B", PayerName : "Nguyen Van A", TransTimeBk : "2020-02-03 20:00:00", TransTimePartner : "2020-02-03 20:00:30", TransIdBk : "BK0000000001", TransIdPartner : "REFID0000000001", TransAmount : 500000, Memo : "Test giao dich", }
Response pamram
#
Parameters
Datatypes
Description
1
ResponseCode
Int (4)
The response status, is defined in Response Code.
2
ResponseMessage
String (200)
Description for return status, defined in Response Code
3
PartnerCode
String (20)
Fixed: BAOKIM
4
AccNo
String (20)
VA numbers
5
AccName
String (50)
VA owner name (unmarked,
capitalized)
6
PayerName
String (50)
Payer name
7
TransTimeBk
String (19)
Trans time at BAOKIM system
8
TransTimePartner
String (19)
Trans time at PARTNER system
9
TransIdBk
String(50)
Transaction id in BAOKIM system
10
TransIdPartner
String(50)
Transaction id in PARTNER system
11
TransAmount
int (11)
Collect amount
12
Memo
String (200)
Content of money transfer
Collection at point
Process:
1. USER move to collection point then provide VA number (receive from Register virtual account).
2. Collection point send VA numbers to BAOKIM
3. BAOKIM will check then send information to PARTNER
4. PARTNER search information then response to BAOKIM, BAOKIM will response to collection point
Header request samples:
{ Content-Type: "application/json", }
Body request samples:
{ RequestId:"PARTNERBK201909031120320001", RequestTime:"2019-09-03 11:20:32", PartnerCode:"BAOKIM", AccNo:"ACC00198374", Signature : "FYQ071FtJpPctvrvWScLwmG4Yiefl+48Ila8Og27+2JaGw0FEANa3hcL2Km4PRafzNPpgVRSAXRgfP7mqpfLUWmnLdWV9WRX6DI+ES/xows+XQRM6M3zhEPV3YfnuEn8Yf/Pp4r+jpSkScdruprXSmon79WxoL3TJzxZNFYR3YI=" }
Request pamram from BAOKIM
#
Parameters
Datatypes
Condition
Description
1
RequestId
String (50)
Required
The unique id for each Request from
PARNTER to BAOKIM.
Format:
PARTNERCODE+YYYYMMDDHHIIS
S+UniqueId
2
RequestTime
String (19)
Required
Time send the request from PARTNER , format: YYYY-MM-DD HH:MM:SS.
3
PartnerCode
String (20)
Required
Partner code is defined in BAOKIM system, this code will be sent when partner start intergrating with BAOKIM
4
AccNo
String (50)
Required
VA numbers
5
Signature
String (500)
Require
The partner will digitally sign data transmitted by RSA and hash SHA1. Before sending to will base64 encoding. Format:
RequestId|RequestTime|PartnerCode|AccNo
Body response success samples:
{ ResponseCode:"200", ResponseMessage:"Success", AccNo:"900300000122", AccName:"NGUYEN VAN A", ClientIdNo:"123456789", OrderId:"OD2019090300001", ExpireDate:"2019-09-20", CollectAmount:"500000", CollectAmountMin:"50000", CollectAmountMax:"50000000", Info:{ "Phone":"09123456789", "Address":"Số 102 Thái Thịnh, Đống Đa, Hà Nội", "ClientIdIssuedPlace":"Công an thành phố Hà Nội", "ClientIdIssuedDate":"12-10-2015" }, Signature:"hBMeZuDNPDD1TE9q3ojo+SSwA/FehW3H77y+3JkNHrdpRent =", }
Partner response pamram to BaoKim
#
Parameters
Datatypes
Description
1
ResponseCode
Int (4)
The response status, is defined in Response Code.
2
ResponseMessage
String (200)
Description for return status, defined in Response Code
3
AccNo
String (50)
VA number BAOKIM send
4
AccName
String (50)
VA owner name
5
ClientIdNo
String(12)
Client id no
6
OrderId
String (50)
Unique id for each VA
7
ExpireDate
String (10)
Expire date
8
CollectAmount
Int (11)
Collect amount
9
CollectAmountMin
Int (11)
Collect amount min
10
CollectAmountMax
Int (11)
Collect amount max
11
Info
JSON
User information
12
Signature
String (200)
Baokim will sign with digital signature of data returned using RSACryptoServiceProvider. Returns the base64 encoding. Data is structured:
ResponseCode|ResponseMessage|AccNo| AccName|ClientIdNo|OrderId|ExpireDate| CollectAmount|CollectAmountMin| CollectAmountMax
Notice of collection transaction (PARTNER Provide)
Process:
1. PARTNER build the system, to receive data notice the collection transaction.
2. When receive a new collection transaction, BAOKIM will call to “collection transaction notification” that provided by PARTNER to notice PARTNER need to update data.
Header request samples:
{ Content-Type: "application/json", }
Body request samples:
{ RequestId : "BK72f3af40ef29600", RequestTime : "2019-07-26 16:33:12", PartnerCode : "NTDAT", AccNo : "900300001223", ClientIdNo : "909140379139", TransId : "5d3ac8a5a1a6b", TransAmount : 500000, TransTime : "2019-07-26 16:33:02", BefTransDebt : 9500000, AffTransDebt : 10000000, AccountType : 2, OrderId : "66c1ef5ed93eea2189fb8566e", Signature : "FYQ071FtJpPctvrvWScLwmG4Yiefl+48Ila8Og27+2JaGw0FEANa3hcL2Km4PRafzNPpgVRSAXRgfP7mqpfLUWmnLdWV9WRX6DI+ES/xows+XQRM6M3zhEPV3YfnuEn8Yf/Pp4r+jpSkScdruprXSmon79WxoL3TJzxZNFYR3YI=" }
Request pamram
#
Parameters
Datatypes
Condition
Description
1
RequestId
String (50)
Required
Unique id for each request BAOKIM send
to PARTNER.
2
RequestTime
String (19)
Required
Time to send partner.
Format: YYYY-MM-DD HH:II:SS
3
PartnerCode
String (20)
Required
Fix: BAOKIM
4
AccNo
String (50)
Required
VA number
5
ClientIdNo
String (20)
Require
Client id no
6
TransId
String (20)
Require
Unique transaction id in BAOKIM system
7
TransAmount
Int (11)
Require
Collect amount
8
TransTime
String (19)
Require
Transaction time at BAOKIM system
9
BefTransDebt
Int (11)
Require
Amount before transaction
10
AffTransDebt
Int (11)
Require
Amount after transaction
11
AccountType
Int (1)
Require
Account with indentifier or without indentifier.
1: Account with identifier.
2: Account without identifier.
12
OrderId
Int (11)
Require
Unique id for each VA
13
Signature
String (500)
Require
BAOKIM will sign the data on the
following structure sha1withRSA:
RequestId|RequestTime|PartnerCode|
AccNo|ClientIdNo|TransId|TransAmount|
TransTime|BefTransDebt|AffTransDebt|
AccountType|OrderId
Sau đó sẽ sử dụng mã hoá base64
Body response success samples:
{ ResponseCode : 200, ResponseMessage : "Success", ReferenceId : "PARTNERCODE58b480bcb05126f7f789", AccNo : "900300001223", AffTransDebt : 9500000, Signature : "HqsE04yJKM/82YWPDXN9KBCGbwA5T/MhgQHmo4fkzbG9LGxPBdX+8vLDlR6EzO9HnMM5FNIQ8AjfReD+d13ksIwImzocr80S13gnPfYiCL611hfpQFZDz3KsXnYIXrm9TcIhwnuRnFibQ9GoBHCqGjiV9I5SPIoykzFiiyzdtKI=" }
Partner response pamram to BaoKim
#
Parameters
Datatypes
Description
1
ResponseCode
Int (4)
The response status, is defined in Response Code.
2
ResponseMessage
String (200)
Description for return status, defined in Response Code
3
ReferenceId
String (50)
Unique transaction id in
PARTNER system
4
AccNo
String (20)
VA number has transaction
5
AffTransDebt
Int (11)
Remain amount of VA
6
Signature
String (200)
Baokim will sign with digital signature of data returned using RSACryptoServiceProvider. Returns the base64 encoding. Data is structured:
ResponseCode|ResponseMessage|ReferenceId| AccNo|AffTransDebt
Notice of account bank switching (PARTNER Provide)
Process:
1. When Bank A fails to use the support service, BAOKIM will update all VA accounts from other bank B as desired by the partner.
2. Successful update of BAOKIM will send information about this transaction via API to PARTNER.
3. PARTNER will check the information and return the results to BAOKIM
Header request samples:
{ Content-Type: "application/json", Signature:"hBMeZuDNPDD1TE9q3ojo+SSwA/FehW3H77y+3JkNHrdpRent =" }
Request Header
#
Parameters
Datatypes
Description
1
Content-Type
application/json
2
Signature
String(50)
BAOKIM will sign the Data with sha1WithRSA algorithm and use base64 encryption
Body request samples:
{ RequestId : "BK72f3af40ef29600", RequestTime : "2020-02-03 16:19:11", PartnerCode : "BAOKIM", AccName : "BK Nhu Anh", AccNo : "909140379139", ExpirDate : "2020-09-21 16:20:01", OrderId : 500000, BankShortName : "VPBANK", }
Request pamram
#
Parameters
Datatypes
Condition
Description
1
RequestId
String (50)
Required
Unique id for each request BAOKIM send
to PARTNER.
2
RequestTime
String (19)
Required
Time to send partner.
Format: YYYY-MM-DD HH:II:SS
3
PartnerCode
String (20)
Required
Fix: BAOKIM
4
AccNo
String (50)
Required
VA number
5
AccName
String (50)
Required
VA owner name
6
ExpireDate
Int (11)
Require
Expire date. Format: YYYYMM-DD HH:II:SS
7
OrderId
String(25)
Require
Corresponding order code of USER
8
BankShortName
String(20)
Require
Short name of the bank
Body response success samples:
{ ResponseCode : 200, ResponseMessage : "Success", AccNo : "909140379139", Signature : "HqsE04yJKM/82YWPDXN9KBCGbwA5T/MhgQHmo4fkzbG9LGxPBdX+" }
Partner response pamram to BaoKim
#
Parameters
Datatypes
Description
1
ResponseCode
Int (4)
The response status, is defined in Response Code.
2
ResponseMessage
String (200)
Description for return status, defined in Response Code
3
AccNo
String (20)
VA number has transaction
4
Signature
String (200)
PARTNER will sign the Data with sha1WithRSA algorithm and use base64 encryption
Collection response code
ResponseCode
ResponseMessage
200
Successful
99
Transaction timeout
11
Failed
101
Error processing from Baokim
102
Error from Bank
103
Operation is incorrect
104
RequestId or request is incorrect
105
PartnerCode is incorrect
106
AccName is incorrect
107
ClientIdNo is incorrect
108
IssuedDate hoặc IssuedPlace is incorrect
109
CollectAmount is incorrect
110
ExpireDate is incorrect
111
AccNo is incorrect
112
AccNo is not exist
113
RefferenceId is incorrect
114
RefferenceId isn’t exists
115
TransAmount is incorrect
116
TransTime is incorrect
117
BefTransDebt is incorrect
118
TransId is incorrect
119
AffTransDebt is incorrect
120
Signature is incorrect
121
AccountType is incorrect
122
OrderId is incorrect
* Red codes represent errors that will arpear when developing the function: “Notice of collection transaction”