Skip to main content

Authorization

Process​

  • Merchant calls this API to authorize a transaction that has been authenticated above. Customer's funds are deducted and held in their account.
  • Only call authorization API after completing the Authentication step.
  • Hold time is 5-7 days. During this period, if capture is not called, the funds will automatically reverse.
  • Incremental authorize is used when increasing the hold amount of a previously authorized transaction.

API Information​

Method: POST

URL: (Provided by Baokim)

Request​

Main Parameters​

NoField NameData TypeRequiredDescription
1request_idString(100)✅Unique request ID
2request_timeString(20)✅Request send time. Format: YYYY-MM-DD H:i:s
3master_merchant_codeString(50)✅Unique identifier for master merchant
4sub_merchant_codeString(50)✅Unique identifier for sub merchant
5order_codeString(50)✅Baokim order code from Authentication step
6authorize_typeNumber✅Authorization type: 1 = Authorize / 2 = Incremental Authorize
7authorize_amountNumber✅Hold amount. If type=2: amount to increase
8cardObject✅Card information
9extendObject❌Extended data
10descriptionString(255)❌Transaction description

Card Information​

NoField NameData TypeRequiredDescription
1card_dataString(255)❌Card encrypted per Baokim standard, required if card_token null
2card_tokenString(255)❌Card token. Required if card_data null.

Card_data Information Before Encryption​

No.Field NameData TypeRequiredDescription
1card_numberString(20)✅Card number
2card_nameString(255)✅Cardholder name
3card_monthString(2)✅Card expiry month
4card_yearString(4)✅Card expiry year
5card_cvvString(3)✅Card security code

Extend Information​

No.Field NameData TypeRequiredDescription
1billingObject❌Payer information

Extend.billing Information​

No.Field NameData TypeRequiredDescription
1firstnameString(255)❌Payer first name
2lastnameString(255)❌Payer last name
3addressString(500)❌Payer address
4cityString(50)❌City (Example: HANOI)
5stateString(255)❌State/Province
6countryString(2)❌Country ISO2 (Example: VN)
7emailString(255)❌Payer email
8phoneString(10)❌Phone number
9postal_codeString(6)❌Postal code

Example Request​

{
"request_id": "MERCHANT050015588AXE014",
"request_time":" 2020-08-11 14:41:00 ",
"master_merchant_code":"MASTER_MERCHANT",
"sub_merchant_code":"SUB_MERCHANT",
"order_code":"VLAD_1753867524",
"authorize_type":1,
"authorize_amount":1000000,
"card": {
"card_data": "yeAhZHfP6cWkLCL28svcXv2F9ntN3I1xBFGJG17JfxERkg8913ZxV",
"card_token": null
},
"extend": {
"billing": {
"firstname": "A",
"lastname": "NGUYEN VAN",
"address": "313 Truong Chinh, Dong Da",
"city": "HANOI",
"state": NULL,
"country": "VN",
"email": "[email protected]",
"phone": "0394899999",
"postal_code": "10000"
}
},
"description": "description GD authorize"
}

Response​

Main Parameters Table​

No.Field NameData TypeRequiredDescription
1codeNumber(3)✅Baokim error code
2messageString(200)✅Baokim error message
3dataObject✅Data returned by Baokim

Data Information​

No.Field NameData TypeRequiredDescription
1order_codeString✅Baokim order code
2auth_codeString(50)✅Authorization code from bank
3authorize_statusNumber✅Authorization status: 0 = Pending, 1 = Authorized, 2 = Fail
4statusNumber✅Overall transaction status
5authorize_amountNumber✅Authorization amount this time
6total_amountNumber✅Total authorized amount
7bk_tokenString(50)✅Card token

Example Response​

{
"code": 0,
"message": "Success",
"data": {
"order_code": "VLAD_1753867524",
"auth_code": "AUTH456789",
"authorize_status": 1,
"status": 1,
"authorize_amount": 100000,
"total_amount": 10100000,
"bk_token": "BC151dsTTmdrSpRapya3rKYJmtu2Ue6e"
}
}

Error Code Table

Error CodeDescription
100Success
11Failed
101Baokim system error
104OAuth authentication error
105Signature authentication error
422Validation error: RequestId invalid
422Validation error: RequestTime invalid
422Validation error: PartnerCode invalid
422Card_data invalid
422Amount invalid
301Order not found by order_code
302Card issue (does not exist, expired)
303Card declined
304Insufficient card balance
305User cancelled transaction
306Incorrect OTP
308Transaction has not completed Authentication
309Transaction has not completed Authorization
310Transaction already reversed — cannot capture
311Transaction already captured — cannot reverse
313Bank-side processing error