Skip to main content

Authentication

Process​

Description:

  • Merchant sends card information (encrypted with AES-256-CBC) to Baokim for 3DS authentication.
  • Baokim returns a 3DS authentication link for Merchant to redirect the user to enter OTP.
  • The amount at this step is not deducted after successful authentication.

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
4amountNumber✅Order amount (this amount will not be deducted after authentication)
5cardObject✅Card information for authentication
6url_successString(255)✅URL Baokim redirects to on successful authentication
7url_failString(255)✅URL Baokim redirects to on failed authentication
8save_tokenNumber❌Should the card token be saved? 0: No (default), 1: Yes
9extendObject❌Extended data

Card Information​

(Choose 1 of 2)

No.Field NameData TypeRequiredDescription
1card_dataString❌Card information encrypted with AES-256-CBC. Required if card_token is null
2card_tokenString(255)❌Token representing the card. 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)✅Security code (CVV)

Extend Information​

No.Field NameData TypeRequiredDescription
1billingObject❌Card information

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 code. Example: VN
7emailString(255)❌Payer email
8phoneString(10)❌Phone number
9postal_codeString(6)❌Postal code. Example: 100000

Example Request​

{
"request_id": "MERCHANT050015588AXE00",
"request_time": "2020-08-11 14:41:00",
"merchant_code": "MERCHANT",
"amount": 20000,
"card": {
"card_data": "yeAhZHfP6cWkLCL28svcXv2F9ntN3I1xBFGJG17JfxERkg8913ZxV",
"card_token": null
},
"url_success": "https://example.com/success",
"url_fail": "https://example.com/fail",
"save_token": 0,
"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"
}
}
}

Response​

(Parameters returned by Baokim)

Main Parameters Table​

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

Data Information​

No.Field NameData TypeRequiredDescription
1order_idNumber✅Baokim order ID
2order_codeString(50)✅Authentication transaction code returned by Baokim
3authen_statusNumber✅Authentication status: 0: Pending / 1: Authenticated / 2: Failed / 3: Bypass (3DS off) / 4: Pending
43ds_urlString(255)✅3DS authentication link — redirect user here

Example Response​

{
"code": 0,
"message": "Success",
"data": {
"order_id": 1870436,
"order_code": "VLAD_1753867524",
"authen_status": 0,
"3ds_url": "https://payment-page.baokim.vn/payment/?oid=38260&checksum=d863a2d66f76e3fc7bcfe302bfc19ff3e5253f5c"
}
}

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