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
4amountNumberOrder amount (this amount will not be deducted after authentication)
5cardObjectCard information for authentication
6url_successString(255)URL Baokim redirects to on successful authentication
7url_failString(255)URL Baokim redirects to on failed authentication
8save_tokenNumberShould the card token be saved? 0: No (default), 1: Yes
9extendObjectExtended data

Card Information

(Choose 1 of 2)

No.Field NameData TypeRequiredDescription
1card_dataStringCard 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
1billingObjectCard 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
3dataObjectData returned by Baokim

Data Information

No.Field NameData TypeRequiredDescription
1order_idNumberBaokim order ID
2order_codeString(50)Authentication transaction code returned by Baokim
3authen_statusNumberAuthentication 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