Skip to main content

Authorization

Process

Description:

  • Merchant calls this API to authorize the transaction that was authenticated in the Authentication step.
  • Customer's funds are held and frozen in their account (5–7 days).
  • API should only be called after completing the Authentication step.
  • If Capture is not called during the hold period, the funds will automatically reverse.
  • Incremental Authorization is used when increasing the hold amount of an already authorized transaction.

API Information

Method: POST

Request

(Parameters sent by merchant)

Main Parameters Table

No.Field NameData TypeRequiredDescription
1request_idString(100)Unique request ID from Merchant to Baokim
2request_timeString(20)Request send time. Format: YYYY-MM-DD H:i:s
3merchant_codeString(50)Unique merchant identifier
4order_codeString(50)Baokim order code returned from the Authentication step
5authorize_typeNumberAuthorization type: 1-Authorize / 2-Incremental Authorize
6authorize_amountNumberAuthorization amount. If authorize_type = 2, this is the amount to increase
7cardObjectCard information (card_data or card_token)
8extendObjectExtended data (billing)
9descriptionString(255)Authorization transaction description

Card Information

(Choose 1 of 2)

No.Field NameData TypeRequiredDescription
1card_dataString(255)Card encrypted with AES-256-CBC. Required if card_token is null
2card_tokenString(255)Card token. Required if card_data is 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
1billingObjectPayer information

Billing Information

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

Example Request

{
"request_id": "MERCHANT050015588AXE014",
"request_time": "2020-08-11 14:41:00",
"merchant_code": "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

(Parameters returned by Baokim)

Main Parameters Table

No.Field NameData TypeRequiredDescription
1codeNumber(3)Baokim error code
2messageString(200)Baokim error message
3dataObjectData returned

Data Information

No.Field NameData TypeRequiredDescription
1order_codeNumberBaokim order code
2auth_codeString(50)Authorization code returned by partner bank
3authorize_statusNumberStatus: 0-Pending / 1-Authorized / 2-Fail
4statusNumberOverall transaction status of Baokim
5authorize_amountNumberAuthorization amount
6total_amountNumberTotal authorized amount
7tokenString(500)Card token returned after customer completes 3DS authentication successfully if save_token = 1 in Authentication step

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,
"token": "BC151dsTTmdrSpRapya3rKYJmtu2Ue6e"
}
}

Error Code

Error CodeDescription
100Success
11Failed
101Baokim system error
104OAuth authentication error
105Signature authentication error
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
422Validation error: RequestId invalid
422Validation error: RequestTime invalid
422Validation error: PartnerCode invalid
422Card_data invalid
422Amount invalid