Skip to main content

Update VCN

Process​

MERCHANT calls this API to update a VCN.

API Information​

URL: /b2b-iccp-service/api/ext/iccp/vcn-update/{vcnId}

Method: PUT

Request​

Main Parameters Table​

No.Field NameData TypeRequiredDescription
1request_idString(100)✅Unique ID for each Request from MERCHANT to Baokim.
2request_timeString(20)✅Request sent 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
5reference_idString(50)✅Reference code
6customer_nameString(255)✅Customer name
7expiryString(7)✅Expiry date on the VCN card, format MM/YYYY
expiry must be at least 1 month later than the current time and at most 24 months from the current time
8control_typeNumber✅1: accountControl
2: inControlRules
9account_controlObject❌Required if control_type = 1
10in_control_rulesObject❌Required if control_type = 2

account_control Information​

No.Field NameData TypeRequiredDescription
1aliasString✅Unique memorable code for the Control
2card_limitObject❌Sets the overall limit for the card - throughout the card's lifecycle
3monthly_limitObject❌Sets the card's monthly limit
4daily_limitObject❌Sets the card's daily limit
5weekly_limitObject❌Sets the card's weekly limit
6quarterly_limitObject❌Sets the card's quarterly limit
7yearly_limitObject❌Sets the card's yearly limit
8geographiesObject❌Sets card usage by geographic region
9merchant_category_codesObject❌Sets card usage by MCC
10start_dateString❌Card usage period - Start
11end_dateString❌Card usage period - End

account_control.card_limit Information​

No.Field NameData TypeRequiredDescription
1card_amountNumber✅Transaction value
2available_balanceNumber❌Available balance
readOnly -> Pass a value if available; MasterCard uses it only to collect information (if any), not to validate information
3authorisation_countNumber✅Number of transactions

account_control.monthly_limit Information​

No.Field NameData TypeRequiredDescription
1card_amountNumber✅Transaction value
2available_balanceNumber❌Available balance
readOnly -> Pass a value if available; MasterCard uses it only to collect information (if any), not to validate information
3authorisation_countNumber✅Number of transactions

account_control.daily_limit Information​

No.Field NameData TypeRequiredDescription
1card_amountNumber✅Transaction value
2available_balanceNumber❌Available balance
readOnly -> Pass a value if available; MasterCard uses it only to collect information (if any), not to validate information
3authorisation_countNumber✅Number of transactions

account_control.weekly_limit Information​

No.Field NameData TypeRequiredDescription
1card_amountNumber✅Transaction value
2available_balanceNumber❌Available balance
readOnly -> Pass a value if available; MasterCard uses it only to collect information (if any), not to validate information
3authorisation_countNumber✅Number of transactions

account_control.quarterly_limit Information​

No.Field NameData TypeRequiredDescription
1card_amountNumber✅Transaction value
2available_balanceNumber❌Available balance
readOnly -> Pass a value if available; MasterCard uses it only to collect information (if any), not to validate information
3authorisation_countNumber✅Number of transactions

account_control.yearly_limit Information​

No.Field NameData TypeRequiredDescription
1card_amountNumber✅Transaction value
2available_balanceNumber❌Available balance
readOnly -> Pass a value if available; MasterCard uses it only to collect information (if any), not to validate information
3authorisation_countNumber✅Number of transactions

account_control.geographies Information​

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

account_control.merchant_category_codes Information​

No.Field NameData TypeRequiredDescription
1mccsArray✅List of MCCs
2negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules Information​

No.Field NameData TypeRequiredDescription
1aliasString✅Unique memorable code for the Control
2transaction_limitsObject❌Sets the amount limit per card transaction
3geographiesObject❌Sets card usage by geographic region
4velocitiesObject❌Sets the frequency limit and/or the total card transaction amount within a given period
5validity_periodsObject❌Controls the effective period of the control
6amount_rangesObject❌Controls the transaction value within a min, max range
7acceptor_idsObject❌Sets control over which Merchants/Acquirers the card is allowed to transact with
8ageing_velocitiesObject❌Sets and controls the available credit limit on the card
9curfewsObject❌Sets control over card transactions by time window on specific days, and can specify the applicable time zone
10time_of_daysObject❌Sets control over card transactions within specific time windows of each day
11merchant_category_codesObject❌Sets control over card transactions by the merchant's MCC industry code
12merchant_namesObject❌Sets control over card transactions by Merchant name (card acceptor)
13merchant_amountsObject❌Sets control over card transactions by amount per transaction for a specific currency
14transaction_environmentsObject❌Sets control over card transactions by transaction method
15approve_controlObject❌Sets control over card transactions - all configured rules apply to approving/declining the transaction
16entry_modesObject❌Sets control over transactions by card entry type

in_control_rules.transaction_limits Information​

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

in_control_rules.geographies Information​

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

in_control_rules.velocities Information​

No.Field NameData TypeRequiredDescription
1max_transNumber✅Maximum number of transactions allowed within a given period
min: 1
max: 99999999
2cumulative_limitFloat❌Maximum cumulative transaction amount allowed within a given period
If passed as = 0 - equivalent to
unlimited (ignore this configured
limit)
min: 0
max: 99999999999999
3periodString✅Applicable period
- DAILY -> Daily
- WEEKLY -> Weekly
- QUARTERLY -> Quarterly
- CONTINUOUS -> From the time of setup, with no reset date for the count/cumulative total (reports whenever the threshold is reached)
- MONTHLY -> Monthly
- YEARLY -> Yearly
4negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.validity_periods Information​

No.Field NameData TypeRequiredDescription
1fromString✅Start time of the control's effective period
2toString✅End time of the control's effective period
3negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.amount_ranges Information​

No.Field NameData TypeRequiredDescription
1min_amountFloat✅Minimum transaction amount
- min: 0
- max: 99999999999999
- min_amount < max_amount
2max_amountFloat✅Maximum transaction amount
- min: 0
- max: 99999999999999
- min_amount < max_amount
3negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.acceptor_ids Information​

No.Field NameData TypeRequiredDescription
1acceptorsObject✅Can set merchant or acquirer
2negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.acceptor_ids.acceptors Information​

No.Field NameData TypeRequiredDescription
1acceptor_idString✅Merchant ID – identifier of the card acceptor (merchant) where the transaction takes place.
2acquirer_idString✅Acquirer ID – identifier of the bank/payment processor (acquirer) that processes the transaction for the merchant.

in_control_rules.ageing_velocities Information​

No.Field NameData TypeRequiredDescription
1authorization_hold_daysNumber✅Number of days a transaction is held on the virtual card, used to determine when the configured credit limit resets
min: 0
max: 9999
2cumulative_limitNumber✅Total limit
If passed as = 0 - equivalent to unlimited (ignore this configured limit)
min: 0
max: 99999999999999
3time_zoneString✅Time zone applied for calculating the date and time to unhold the transaction so it is removed from the available credit calculation
4negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.curfews Information​

No.Field NameData TypeRequiredDescription
1from_timeString✅Start time allowed for transactions.
2to_timeString✅End time allowed for transactions
(after this time, the transaction is declined)
3time_zoneString(3)❌Time zone applied to the above time window
Example: UTC
4daysArray✅List 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
5negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.time_of_days Information​

No.Field NameData TypeRequiredDescription
1timesArray✅List of objects configuring the time allowed for transactions
(after this time, the transaction is declined)
Can be passed as an array of configs
2time_zoneString✅Time zone applied to the above time window (fromTime-toTime)
Note that the default applied is GMT (not the timezone registered for the RCN)
Be sure to pass this in
Example: UTC
3negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

Description of the object inside in_control_rules.time_of_days.times(1)

No.Field NameData TypeRequiredDescription
1from_timeString✅Start time allowed for transactions.
2to_timeString✅End time allowed for transactions
(after this time, the transaction is declined)
3daysArray✅Days 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
1mccsArray✅List of MCCs
2negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.merchant_names Information​

No.Field NameData TypeRequiredDescription
1merchant_namesArray✅List 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)
2negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

Description of the data inside in_control_rules.merchant_amounts(13)

No.Field NameData TypeRequiredDescription
1valueFloat✅Maximum amount/transaction according to the currency_code set below
min: 0
max: 99999999999999
2currency_codeString✅Currency code according to the (ISO) 4217 standard
Default: 704
3negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.transaction_environments Information​

No.Field NameData TypeRequiredDescription
1environment_codesArray✅List of transaction methods
- ATM – Transaction at an automated
teller machine.
- ECOM – E-commerce
(online) transaction.
- MOTO – Mail Order/Telephone Order (order placed by mail/phone, without the card or cardholder present).
- PAYPASS – Contactless payment.
- POS – In-person transaction at a store (swiped on a POS machine).
- PWCB – Purchase with Cash
Back.
2negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.approve_control Information​

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

in_control_rules.entry_modes Information​

No.Field NameData TypeRequiredDescription
1modeString✅Card entry type accepted for payment
Default: EMV
2negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

Request Example - control_type = 1 (AccountControl)​

{
"request_id": "TT20260209163542",
"request_time": "2026-03-24 16:28:32",
"master_merchant_code": "MERCHANTCODE_MASTER",
"sub_merchant_code": "MERCHANTCODE_SUB",
"reference_id": "TT20260209163542",
"customer_name": "NGUYỄN VĂN A",
"expiry": "12/2026",
"control_type": 1,
"account_control": {
"alias": "TT20260209163542",
"card_limit": {
"card_amount": 10000000000,
"available_balance": 0,
"authorisation_count": 100
},
"daily_limit": {
"card_amount": 10000000000,
"available_balance": 10000000000,
"authorisation_count": 100
},
"weekly_limit": {
"card_amount": 10000000000,
"available_balance": 10000000000,
"authorisation_count": 100
},
"monthly_limit": {
"card_amount": 10000000000,
"available_balance": 10000000000,
"authorisation_count": 100
},
"quarterly_limit": {
"card_amount": 10000000000,
"available_balance": 10000000000,
"authorisation_count": 100
},
"yearly_limit": {
"card_amount": 10000000000,
"available_balance": 10000000000,
"authorisation_count": 100
},
"geographies": {
"country_codes": [
"704",
"840"
],
"negate": 0
},
"merchant_category_codes": {
"mccs": [
"3001",
"3005"
],
"negate": 0
},
"start_date": "2025-12-01",
"end_date": "2035-12-01"
}
}

Request Example - control_type = 2 (InControlRules)​

{
"request_id": "1774414149152",
"request_time": "2026-03-25 11:49:09",
"master_merchant_code": "MASTERMERCHANTCODE",
"sub_merchant_code": "SUBMERCHANTCODE",
"reference_id": "1774414086020",
"customer_name": "NGUYỄN VĂN C",
"expiry": "12/2026",
"control_type": 2,
"in_control_rules": {
"alias": "1774414086020",
"transaction_limits": {
"amount": 10000000000,
"negate": 0
},
"geographies": {
"country_codes": [
"704",
"840"
],
"negate": 0
},
"velocities": {
"max_trans": 9999999,
"cumulative_limit": 1500,
"period": "DAILY",
"negate": 0
},
"validity_periods": {
"from": "2026-07-25 11:51:09",
"to": "2035-12-01 00:00:00",
"negate": 0
},
"amount_ranges": {
"min_amount": 0,
"max_amount": 100000000,
"negate": 0
},
"acceptor_ids": {
"acceptors": {
"acceptor_id": "126548888899997",
"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
}
}
}

Response​

Main Parameters Table​

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

data Information​

No.Field NameData TypeRequiredDescription
1reference_idString✅Reference code for the VCN creation request
2vcn_idNumber✅VCN ID
3customer_nameString✅Customer name
4expiryString(7)✅Expiry date on the VCN card, format MM/YYYY
5control_typeNumber✅1: accountControl
2: inControlRules
6account_controlObject❌Required if control_type = 1
7in_control_rulesObject❌Required if control_type = 2

data.account_control Information​

No.Field NameData TypeRequiredDescription
1aliasString✅Unique memorable code for the Control
2card_limitObject❌Sets the overall limit for the card - throughout the card's lifecycle
3monthly_limitObject❌Sets the card's monthly limit
4daily_limitObject❌Sets the card's daily limit
5weekly_limitObject❌Sets the card's weekly limit
6quarterly_limitObject❌Sets the card's quarterly limit
7yearly_limitObject❌Sets the card's yearly limit
8geographiesObject❌Sets card usage by geographic region
9merchant_category_codesObject❌Sets card usage by MCC
10start_dateString❌Card usage period - Start
11end_dateString❌Card usage period - End

account_control.card_limit Information​

No.Field NameData TypeRequiredDescription
1card_amountNumber✅Transaction value
2available_balanceNumber❌Available balance
readOnly -> Pass a value if available; MasterCard uses it only to collect information (if any), not to validate information
3authorisation_countNumber✅Number of transactions

account_control.monthly_limit Information​

No.Field NameData TypeRequiredDescription
1card_amountNumber✅Transaction value
2available_balanceNumber❌Available balance
readOnly -> Pass a value if available; MasterCard uses it only to collect information (if any), not to validate information
3authorisation_countNumber✅Number of transactions

account_control.daily_limit Information​

No.Field NameData TypeRequiredDescription
1card_amountNumber✅Transaction value
2available_balanceNumber❌Available balance
readOnly -> Pass a value if available; MasterCard uses it only to collect information (if any), not to validate information
3authorisation_countNumber✅Number of transactions

account_control.weekly_limit Information​

No.Field NameData TypeRequiredDescription
1card_amountNumber✅Transaction value
2available_balanceNumber❌Available balance
readOnly -> Pass a value if available; MasterCard uses it only to collect information (if any), not to validate information
3authorisation_countNumber✅Number of transactions

account_control.quarterly_limit Information​

No.Field NameData TypeRequiredDescription
1card_amountNumber✅Transaction value
2available_balanceNumber❌Available balance
readOnly -> Pass a value if available; MasterCard uses it only to collect information (if any), not to validate information
3authorisation_countNumber✅Number of transactions

account_control.yearly_limit Information​

No.Field NameData TypeRequiredDescription
1card_amountNumber✅Transaction value
2available_balanceNumber❌Available balance
readOnly -> Pass a value if available; MasterCard uses it only to collect information (if any), not to validate information
3authorisation_countNumber✅Number of transactions

account_control.geographies Information​

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

account_control.merchant_category_codes Information​

No.Field NameData TypeRequiredDescription
1mccsArray✅List of MCCs
2negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

data.in_control_rules Information​

No.Field NameData TypeRequiredDescription
1aliasString✅Unique memorable code for the Control
2transaction_limitsObject❌Sets the amount limit per card transaction
3geographiesObject❌Sets card usage by geographic region
4velocitiesObject❌Sets the frequency limit and/or the total card transaction amount within a given period
5validity_periodsObject❌Controls the effective period of the control
6amount_rangesObject❌Controls the transaction value within a min, max range
7acceptor_idsObject❌Sets control over which Merchants/Acquirers the card is allowed to transact with
8ageing_velocitiesObject❌Sets and controls the available credit limit on the card
9curfewsObject❌Sets control over card transactions by time window on specific days, and can specify the applicable time zone
10time_of_daysObject❌Sets control over card transactions within specific time windows of each day
11merchant_category_codesObject❌Sets control over card transactions by the merchant's MCC industry code
12merchant_namesObject❌Sets control over card transactions by Merchant name (card acceptor)
13merchant_amountsObject❌Sets control over card transactions by amount per transaction for a specific currency
14transaction_environmentsObject❌Sets control over card transactions by transaction method
15approve_controlObject❌Sets control over card transactions - all configured rules apply to approving/declining the transaction
16entry_modesObject❌Sets control over transactions by card entry type

in_control_rules.transaction_limits Information​

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

in_control_rules.geographies Information​

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

in_control_rules.velocities Information​

No.Field NameData TypeRequiredDescription
1max_transNumber✅Maximum number of transactions allowed within a given period
min: 1
max: 99999999
2cumulative_limitNumber❌Maximum cumulative transaction amount allowed within a given period
If passed as = 0 - equivalent to
unlimited (ignore this configured
limit)
min: 0
max: 99999999999999
3periodString✅Applicable period
- DAILY -> Daily
- WEEKLY -> Weekly
- QUARTERLY -> Quarterly
- CONTINUOUS -> From the time of setup, with no reset date for the count/cumulative total (reports whenever the threshold is reached)
- MONTHLY -> Monthly
- YEARLY -> Yearly
4negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.validity_periods Information​

No.Field NameData TypeRequiredDescription
1fromString✅Start time of the control's effective period
2toString✅End time of the control's effective period
3negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.amount_ranges Information​

No.Field NameData TypeRequiredDescription
1min_amountFloat✅Minimum transaction amount
min: 0
max: 99999999999999
min_amount < max_amount
2max_amountFloat✅Maximum transaction amount
min: 0
max: 99999999999999
min_amount < max_amount
3negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.acceptor_ids Information​

No.Field NameData TypeRequiredDescription
1acceptorsObject✅Can set merchant or acquirer
2negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.acceptor_ids.acceptors Information​

No.Field NameData TypeRequiredDescription
1acceptor_idString✅Merchant ID – identifier of the card acceptor (merchant) where the transaction takes place.
2acquirer_idString✅Acquirer ID – identifier of the bank/payment processor (acquirer) that processes the transaction for the merchant.

in_control_rules.ageing_velocities Information​

No.Field NameData TypeRequiredDescription
1authorization_hold_daysNumber✅Number of days a transaction is held on the virtual card, used to determine when the configured credit limit resets
min: 0
max: 9999
2cumulative_limitNumber✅Total limit
If passed as = 0 - equivalent to unlimited (ignore this configured limit)
min: 0
max: 99999999999999
3time_zoneString✅Time zone applied for calculating the date and time to unhold the transaction so it is removed from the available credit calculation
4negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.curfews Information​

No.Field NameData TypeRequiredDescription
1from_timeString✅Start time allowed for transactions.
2to_timeString✅End time allowed for transactions
(after this time, the transaction is declined)
3time_zoneString(3)❌Time zone applied to the above time window
Example: UTC
4daysArray✅List 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
5negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.time_of_days Information​

No.Field NameData TypeRequiredDescription
1timesArray✅List of objects configuring the time allowed for transactions
(after this time, the transaction is
declined)
Can be passed as an array of configs
2time_zoneString✅Time zone applied to the above time window (fromTime-toTime)
Note that the default applied is GMT (not the timezone registered for the RCN)
Be sure to pass this in
Example: UTC
3negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

Description of the object inside in_control_rules.time_of_days.times(1)

No.Field NameData TypeRequiredDescription
1from_timeString✅Start time allowed for transactions.
2to_timeString✅End time allowed for transactions
(after this time, the transaction is declined)
3daysArray✅Days 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
1mccsArray✅List of MCCs
2negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.merchant_names Information​

No.Field NameData TypeRequiredDescription
1merchant_namesArray✅List 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)
2negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.merchant_amounts Information​

No.Field NameData TypeRequiredDescription
1valueFloat✅Maximum amount/transaction according to the currency_code set below
min: 0
max: 99999999999999
2currency_codeString✅Currency code according to the (ISO) 4217 standard
3negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.transaction_environments Information​

No.Field NameData TypeRequiredDescription
1environment_codesArray✅List of transaction methods
- ATM – Transaction at an automated
teller machine.
- ECOM – E-commerce
(online) transaction.
- MOTO – Mail Order/Telephone Order (order placed by mail/phone, without the card or cardholder present).
- PAYPASS – Contactless payment.
- POS – In-person transaction at a store (swiped on a POS machine).
- PWCB – Purchase with Cash
Back.
2negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

in_control_rules.approve_control Information​

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

in_control_rules.entry_modes Information​

No.Field NameData TypeRequiredDescription
1modeString✅Card entry type accepted for payment
Default: EMV
2negateNumber✅Determines whether the rule is applied in reverse?
1. true
0. false => Default

Response Example​

{
"code": 100,
"message": "Success",
"data": {
"reference_id": "1774513778373",
"vcn_id": 2355,
"customer_name": "NGUYỄN VĂN C",
"expiry": "12/2026",
"control_type": 2,
"account_control": null,
"in_control_rules": {
"alias": "1774513778373",
"transaction_limits": {
"amount": 20000000000,
"negate": 1
},
"geographies": {
"country_codes": [
"704",
"840"
],
"negate": 1
},
"velocities": {
"max_trans": 9999999,
"cumulative_limit": 1500,
"period": "DAILY",
"negate": 1
},
"validity_periods": {
"from": "2026-03-26 15:56:00",
"to": "2035-12-01 00:00:00",
"negate": 0
},
"amount_ranges": {
"min_amount": 0,
"max_amount": 100000000,
"negate": 0
},
"acceptor_ids": {
"acceptors": {
"acceptor_id": "126548888899997",
"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
}
}
}
}

Error Codes​

Error CodeDescription
100Success
11Failed
104Unauthorized
401Merchant verify failed
422Validation error
1201vcn_id does not exist
1203Failed to update the VCN card
1500Request {request_id} already exists