Skip to main content

Query VCN

Process

Merchant calls this API to query a VCN in case the VCN creation request times out or the VCN creation webhook is not received.

API Information

URL: /b2b-iccp-service/api/ext/iccp/vcn-inquery

Method: POST

Request

Main Parameters Table

No.Field NameData TypeRequiredDescription
1request_idStringUnique ID for each Request from MERCHANT to Baokim.
2request_timeStringRequest sent time. Format: YYYY-MM-DD H:i:s
3master_merchant_codeStringUnique identifier for MASTER MERCHANT
4sub_merchant_codeStringUnique identifier for SUB MERCHANT
5reference_idStringReference code for the VCN creation request

Request Example

{
"request_id": "MERCHANT050015588AXE014",
"request_time": "2025-08-11 14:41:00",
"master_merchant_code": "MASTERMERCHANTCODE",
"sub_merchant_code": "SUBMERCHANTCODE",
"reference_id": "RF_123456789abcxyz"
}

Response

Main Parameters Table

No.Field NameData TypeRequiredDescription
1codeNumberBaokim error code
2messageStringBaokim error code message
3dataObjectData returned by Baokim

data Information

No.Field NameData TypeRequiredDescription
1master_merchant_codeStringUnique identifier for MASTER MERCHANT
2sub_merchant_codeStringUnique identifier for SUB MERCHANT
3reference_idStringReference code for the VCN creation request
4statusNumberVCN creation status
1. Initiated
2. Processing
3. Success
4. Failed
5card_dataObjectCard data
6created_atDateTimeTime the request was received
7updated_atDateTimeTime the request was updated

data.card_data Information

No.Field NameData TypeRequiredDescription
1vcn_idNumberVCN ID
2card_info_encryptStringEncrypted VCN card data
3card_statusNumberVCN card status
4control_typeNumber1: accountControl
2: inControlRules
5account_controlObjectRequired if control_type = 1
6in_control_rulesObjectRequired if control_type = 2

Object after decrypting data.card_data.card_info_encrypt Information

No.Field NameData TypeRequiredDescription
1card_numberStringVCN card number
2cvcStringCard CVC number
3expiryString(7)Card expiry date
4card_holderStringCardholder name

data.card_data.account_control Information

No.Field NameData TypeRequiredDescription
1aliasStringUnique memorable code for the Control
2card_limitObjectGeneral limit settings for the card - throughout the card's lifetime
3monthly_limitObjectMonthly limit settings for the card
4daily_limitObjectDaily limit settings for the card
5weekly_limitObjectWeekly limit settings for the card
6quarterly_limitObjectQuarterly limit settings for the card
7yearly_limitObjectYearly limit settings for the card
8geographiesObjectCard usage settings by geographic region
9merchant_category_codesObjectCard usage settings by MCC
10start_dateStringCard usage period - Start
11end_dateStringCard usage period - End

account_control.card_limit Information

No.Field NameData TypeRequiredDescription
1card_amountNumberTransaction value
2available_balanceNumberAvailable balance
readOnly -> Pass a value if available; MasterCard only uses it to collect information (if any), not to validate information
3authorisation_countNumberNumber of transactions

account_control.monthly_limit Information

No.Field NameData TypeRequiredDescription
1card_amountNumberTransaction value
2available_balanceNumberAvailable balance
readOnly -> Pass a value if available; MasterCard only uses it to collect information (if any), not to validate information
3authorisation_countNumberNumber of transactions

account_control.daily_limit Information

No.Field NameData TypeRequiredDescription
1card_amountNumberTransaction value
2available_balanceNumberAvailable balance
readOnly -> Pass a value if available; MasterCard only uses it to collect information (if any), not to validate information
3authorisation_countNumberNumber of transactions

account_control.weekly_limit Information

No.Field NameData TypeRequiredDescription
1card_amountNumberTransaction value
2available_balanceNumberAvailable balance
readOnly -> Pass a value if available; MasterCard only uses it to collect information (if any), not to validate information
3authorisation_countNumberNumber of transactions

account_control.quarterly_limit Information

No.Field NameData TypeRequiredDescription
1card_amountNumberTransaction value
2available_balanceNumberAvailable balance
readOnly -> Pass a value if available; MasterCard only uses it to collect information (if any), not to validate information
3authorisation_countNumberNumber of transactions

account_control.yearly_limit Information

No.Field NameData TypeRequiredDescription
1card_amountNumberTransaction value
2available_balanceNumberAvailable balance
readOnly -> Pass a value if available; MasterCard only uses it to collect information (if any), not to validate information
3authorisation_countNumberNumber of transactions

account_control.geographies Information

No.Field NameData TypeRequiredDescription
1country_codesArrayList of country codes - 3-character format
2negateNumberDetermines whether the rule is applied in reverse?
1. true
0. false => Default

account_control.merchant_category_codes Information

No.Field NameData TypeRequiredDescription
1mccsArrayList of MCCs
2negateNumberDetermines whether the rule is applied in reverse?
1. true
0. false => Default

data.card_data.in_control_rules Information

No.Field NameData TypeRequiredDescription
1aliasStringUnique memorable code for the Control
2transaction_limitsObjectAmount limit settings per card transaction
3geographiesObjectCard usage settings by geographic region
4velocitiesObjectSettings for limiting the frequency and/or total transaction amount of the card within a given period
5validity_periodsObjectControls the validity period of the control
6amount_rangesObjectControls the transaction value within a min-max range
7acceptor_idsObjectSettings that control which Merchants/Acquirers the card is allowed to transact with
8ageing_velocitiesObjectSettings and controls for the available credit limit on the card
9curfewsObjectSettings that control card transactions by time window on specific days, and can define the applicable time zone
10time_of_daysObjectSettings that control card transactions within specific time windows of each day
11merchant_category_codesObjectSettings that control card transactions by the merchant's MCC
12merchant_namesObjectSettings that control card transactions by Merchant name (card acceptance unit)
13merchant_amountsObjectSettings that control card transactions by the amount per transaction in a specific currency
14transaction_environmentsObjectSettings that control card transactions by transaction method
15approve_controlObjectSettings that control card transactions - All configured rules will be used to approve/decline the transaction
16entry_modesObjectSettings that control transactions by card entry mode

in_control_rules.transaction_limits Information

No.Field NameData TypeRequiredDescription
1amountFloatMaximum transaction value per transaction
This value is set up according to the billing currency of the RCN registered with BPC
min: 0
max: 99999999999999
2negateNumberDetermines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.geographies Information

No.Field NameData TypeRequiredDescription
1country_codesArrayList of country codes - 3-character format
2negateNumberDetermines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.velocities Information

No.Field NameData TypeRequiredDescription
1max_transNumberMaximum number of transactions allowed within a given period
- min: 1
- max: 99999999
2cumulative_limitNumberMaximum cumulative transaction amount allowed within a given period
If passed as 0, it means
- unlimited (this limit setting is ignored)
- min: 0
- max: 99999999999999
3periodStringApplicable period
- DAILY -> Daily
- WEEKLY -> Weekly
- QUARTERLY -> Quarterly
- CONTINUOUS -> From the time of setup, with no reset date for counting/accumulating (a notification is triggered whenever the threshold is reached)
- MONTHLY -> Monthly
- YEARLY -> Yearly
4negateNumberDetermines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.validity_periods Information

No.Field NameData TypeRequiredDescription
1fromStringStart time of the control's validity
2toStringEnd time of the control's validity
3negateNumberDetermines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.amount_ranges Information

No.Field NameData TypeRequiredDescription
1min_amountFloatMinimum transaction amount
- min: 0
- max: 99999999999999
- min_amount < max_amount
2max_amountFloatMaximum transaction amount
- min: 0
- max: 99999999999999
- min_amount < max_amount
3negateNumberDetermines whether the rule is applied in reverse?
- 1. true
- 0. false => Default

in_control_rules.acceptor_ids Information

No.Field NameData TypeRequiredDescription
1acceptorsObjectCan set merchant or acquirer
2negateNumberDetermines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.acceptor_ids.acceptors Information

No.Field NameData TypeRequiredDescription
1acceptor_idStringMerchant ID – identifier of the card acceptance unit (merchant) where the transaction takes place.
2acquirer_idStringAcquirer ID – identifier of the bank/payment unit (acquirer) that processes the transaction for the merchant.

in_control_rules.ageing_velocities Information

No.Field NameData TypeRequiredDescription
1authorization_hold_daysNumberNumber of days to hold transactions on the virtual card to calculate when to reset the configured credit limit
min: 0
max: 9999
2cumulative_limitNumberTotal limit
If passed as 0 - it means unlimited (this limit setting is ignored)
min: 0
max: 99999999999999
3time_zoneStringTime zone applied for calculating the date and time to unhold the transaction in order to remove it from the available credit calculation
4negateNumberDetermines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.curfews Information

No.Field NameData TypeRequiredDescription
1from_timeStringStart time transactions are allowed.
2to_timeStringEnd time transactions are allowed
(after this time, the transaction is declined)
3time_zoneString(3)Time zone applied to the above time window
Example: UTC
4daysArrayList of days of the week the limit applies to: SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY. Can be passed as multiple values, separated by commas
5negateNumberDetermines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.time_of_days Information

No.Field NameData TypeRequiredDescription
1timesArrayList of objects configuring the time allowed for transactions
(after this time, the transaction is
declined)
An array of configs can be passed
2time_zoneStringTime zone applied to the above time window (fromTime-toTime)
Note: the default applied is GMT (not the timezone registered for the RCN)
Be sure to pass this value in
Example: UTC
3negateNumberDetermines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.time_of_days.times Information

No.Field NameData TypeRequiredDescription
1from_timeStringStart time transactions are allowed.
2to_timeStringEnd time transactions are allowed
(after this time, the transaction is declined)
3daysArrayDays of the week the limit applies to: SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY. Can be passed as multiple values, separated by commas

in_control_rules.merchant_category_codes Information

No.Field NameData TypeRequiredDescription
1mccsArrayList of MCCs
2negateNumberDetermines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.merchant_names Information

No.Field NameData TypeRequiredDescription
1merchant_namesArrayList of merchant names (sent in the DE43 field of the authorization message)
This name must match the name in the bank's payment data (DE43 field)
2negateNumberDetermines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.merchant_amounts Information

No.Field NameData TypeRequiredDescription
1valueFloatMaximum amount per transaction according to the currency_code set below
min: 0
max: 99999999999999
2currency_codeStringCurrency code applied according to ISO 4217 standard
3negateNumberDetermines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.transaction_environments Information

No.Field NameData TypeRequiredDescription
1environment_codesArrayList of transaction methods
- ATM – Transaction at an automated
teller machine.
- ECOM – E-commerce
transaction (online).
- MOTO – Mail Order/Telephone Order (card and cardholder not present).
- PAYPASS – Contactless payment.
- POS – In-store transaction (swiped on a POS terminal).
- PWCB – Purchase with Cash
Back.
2negateNumberDetermines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.approve_control Information

No.Field NameData TypeRequiredDescription
1negateNumberDetermines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.entry_modes Information

No.Field NameData TypeRequiredDescription
1modeStringPass the card entry mode accepted for payment
Default: EMV
2negateNumberDetermines whether the rule is applied in reverse?
1. true
0. false => Default

Response Example

{
"code": 100,
"message": "Success",
"data": {
"master_merchant_code": "MASTERMERCHANTCODE",
"sub_merchant_code": "SUBMERCHANTCODE",
"reference_id": "RF_123456789abcxyz",
"status": 3,
"card_data": {
"vcn_id": 423677,
"card_info_encrypt": "eyJpdiI6InpRUktuZFZleHZCbUhNcXA0aUdyMEE9PSIsInZhbHVlIjoibTlTdllGK0l1elQ1REh4d0FiSFJZcEhxKzBIUmdmOTZWcDdCRzVuNnpIRTBRMm9BS0VVN3cyN1BzMUM3Q1dBOVlEbUt4UzByTjQwazgramtpOWMxV2F6cWNRMlBGMXFmYXN2UHZKMnNaUkkvc1gyTVBiYnI4bUEyVFJMMU5uYmQwQWd5cGZGWXl2RDdVNHhKZVY4dWtSWENYblBRQWtWMWpldWYveGdPU2JIc2pZNkNBSjZqR1NJODE5ZHFFd2ZLTE95OHFHQzViNG8xWXhvOHd4dkQzY2JoakVMUDZQaTZOSnl4aWV0dkJtL2t3M1kybFhubXhYQ3JZd2hJYmxrSjBpc1ora0YrYm5tcUhVdnUvMTlaK1Rpc280RFJHWHduM1B3UzNYR21mUkhYK1VObU1Xd21wQnQrVG9YVUxMUkV3ckticTArcUc1R3hYK0NIT1cxd0hlbzJhT0xYU1BuNVFUVkc2STcvTFEwPSIsIm1hYyI6ImJhZjQxYmM5ZWJiZTFjODEzYWI3NzMxYTg2ZTgwYWMwN2QxNWJlYWFkNzdlZGI3NzE5MjlkMjdlY2IyNDkyZGIifQ==",
"card_status": 1,
"control_type": 2,
"account_control": null,
"in_control_rules": {
"alias": "Virtual Card Complex Rules",
"transaction_limits": {
"amount": 10000000000,
"negate": 0
},
"geographies": {
"country_codes": [
"704",
"840"
],
"negate": 0
},
"velocities": {
"max_trans": 9999999,
"cumulative_limit": 1500,
"period": "CONTINUOUS",
"negate": 0
},
"validity_periods": {
"from": "2025-12-01 00:00:00",
"to": "2035-12-01 00:00:00",
"negate": 0
},
"amount_ranges": {
"min_amount": 100000,
"max_amount": 100000000,
"negate": 0
},
"acceptor_ids": {
"acceptors": {
"acceptor_id": "12315341236547",
"acquirer_id": "1232135435"
},
"negate": 0
},
"ageing_velocities": {
"authorization_hold_days": 30,
"cumulative_limit": 0,
"time_zone": "UTC",
"negate": 0
},
"curfews": {
"from_time": "00:00",
"to_time": "23:59",
"time_zone": "UTC",
"days": [
"MONDAY",
"TUESDAY",
"WEDNESDAY"
],
"negate": 0
},
"time_of_days": {
"times": [
{
"from_time": "00:00",
"to_time": "23:59",
"days": [
"MONDAY",
"TUESDAY",
"WEDNESDAY"
]
}
],
"time_zone": "UTC",
"negate": 0
},
"merchant_category_codes": {
"mccs": [
"3001",
"3005"
],
"negate": 0
},
"merchant_names": {
"merchant_names": [
"Amazon"
],
"negate": 0
},
"merchant_amounts": {
"value": 10000000,
"currency_code": "704",
"negate": 0
},
"transaction_environments": {
"environment_codes": [
"ECOM",
"POS"
],
"negate": 0
},
"approve_control": {
"negate": 0
},
"entry_modes": {
"mode": "EMV",
"negate": 0
}
}
},
"created_at": "2026-05-01 10:51:30",
"updated_at": "2026-05-01 10:51:30"
}
}

Error Codes

Error CodeDescription
100Success
11Failed
401Merchant verify failed
422Validation error
1201vcn_id does not exist