개선(improvement) #1553
open[VCC update] Update VCC Merchant country restrictions and Limit the number of transactions
100%
Description
Request :
1/ Merchant country restrictions: Please add the following Geography items to the Purchase Template.
Submitpurchaserequest API Call시 updated Purchase Template을 사용하시고,
You can find the ISO code of the country where you want to pay in the geography control (3-digit number).
Note: Virtual cards issued with versions prior to the purchase template update will continue to apply only the control values at the time of issuance. In order for the changes to be applied, each virtual card must be updated separately.
2/ Limit the number of transactions: Please enter Validity in the Purchase Template and the Maximum number of transactions allowed to be approved as 2 .
Maximum number of transactions refers to the number of approvals allowed for the VCN-based incoming transactions.
Declined or refunded transactions do not count towards the count.
Note that you can't control the number of declines .

Files
Updated by Tom Dong 6 months ago
- File picture802-3.png picture802-3.png added
Updated by Tracy Tran 6 months ago
- Status changed from QA test to 피드백(Feedback)
QA could not check this case as we need support from hotel for real charging VCC and refund.
Updated by Tom Dong 5 months ago
- File picture066-2.png picture066-2.png added
Dear ziniy Kang,
Đây logs json lỗi khi tạo VCC, em hỏi bên mastercard có cần phải setup thêm ở phía ngân hàng không?
Nếu có, giống như hình bên dưới không có mục GeographyControl thì sau?
submitPurchaseRequest
{
"submitPurchaseRequest": {
"addenda": [
],
"addendaDataExpected": "Y",
"companyId": 591312,
"dataSourceId": 4272,
"description": "J25101310001H01",
"rcndata": {
"rcnAlias": "Credit-Citi",
"rcnId": 50362
},
"supplierDetails": {
"notifySupplier": true,
"supplierEmails": "sm.jang@ohmyhotel.com;nhung.th@ohmyhotel.com",
"supplierId": 550155
},
"templateDetails2": {
"fullTemplateRuleDetails": {
"ruleName": "Rule1",
"ruleType": "A",
"templateControl": [
{
"availableBalance": 0,
"cumulativeLimit": 73525.0,
"currencyCode": "410",
"currencyType": "M",
"endDate": "2025-12-20 14:00:00",
"maxTrans": 2,
"period": "C"
},
{
"from": "2025-12-14 00:00:00",
"negate": false,
"strictPreAuthCheck": false,
"timeZone": "Asia/Seoul",
"to": "2025-12-20 00:00:00"
},
{
"currencyCode": "410",
"currencyType": "M",
"maxAmount": 73525.0,
"minAmount": 73525.0,
"negate": false,
"strictPreAuthCheck": false
},
{
"countryCodes": {
"countryCode": [
"KOR"
]
},
"negate": false
}
]
},
"templateCustomField": {
"templateCustomField": [
{
"customFieldName": "Purchase Type",
"customFieldValue": "'BOOKING'"
},
{
"customFieldName": "Reservation No",
"customFieldValue": "J25101310001H01"
},
{
"customFieldName": "Reservation Status",
"customFieldValue": "Confirmed"
},
{
"customFieldName": "Check in date",
"customFieldValue": "2025-12-14"
},
{
"customFieldName": "Customer name",
"customFieldValue": "BOOKING TEST"
},
{
"customFieldName": "Num of Nights",
"customFieldValue": "1"
}
]
},
"templateId": 75190
},
"validFor": 12
}
}
response error
{
"addenda": [
],
"cardImage": null,
"errorMessage": [
{
"errorCause": null,
"errorCode": "VSPRICT",
"errorDescription": "An invalid control type exists in the request type:GE",
"errorDetails": null
}
],
"purchaseRequestId": 0,
"purchaseRequestTemplateDetails": null,
"requestStatus": null,
"supplierDetails": null,
"vcnInformation": null
}
Updated by ziniy Kang 5 months ago
- File picture984-1.png picture984-1.png added
- Assignee changed from ziniy Kang to Tom Dong

Updated by Tom Dong 5 months ago
- File picture108-1.png picture108-1.png added
Dear ziniy Kang,
Anh cần hỏi thêm: Ở trang Citibank mếu bật thêm GEO Control trên thì Template cũ trên PROD có chạy được hay không?
**Lưu ý: teamplate trên PROD không có GE Control
submitPurchaseRequest on PROD
{
"submitPurchaseRequest": {
"addenda": [
],
"addendaDataExpected": "Y",
"companyId": 591312,
"dataSourceId": 4272,
"description": "K25101611314H01",
"rcndata": {
"rcnAlias": "Credit-Citi",
"rcnId": 50362
},
"supplierDetails": {
"notifySupplier": true,
"supplierEmails": "sm.jang@ohmyhotel.com;nhung.th@ohmyhotel.com",
"supplierId": 388121
},
"templateDetails2": {
"fullTemplateRuleDetails": {
"ruleName": "Rule1",
"ruleType": "A",
"templateControl": [
{
"availableBalance": 0,
"cumulativeLimit": 47500.0,
"currencyCode": "410",
"currencyType": "M",
"endDate": "2025-11-29 14:00:00",
"maxTrans": 1,
"period": "C"
},
{
"from": "2025-11-23 00:00:00",
"negate": false,
"strictPreAuthCheck": false,
"timeZone": "Asia/Seoul",
"to": "2025-11-29 00:00:00"
},
{
"currencyCode": "410",
"currencyType": "M",
"maxAmount": 47500.0,
"minAmount": 47500.0,
"negate": false,
"strictPreAuthCheck": false
}
]
},
"templateCustomField": {
"templateCustomField": [
{
"customFieldName": "Purchase Type",
"customFieldValue": "'BOOKING'"
},
{
"customFieldName": "Reservation No",
"customFieldValue": "K25101611314H01"
},
{
"customFieldName": "Reservation Status",
"customFieldValue": "Confirmed"
},
{
"customFieldName": "Check in date",
"customFieldValue": "2025-11-23"
},
{
"customFieldName": "Customer name",
"customFieldValue": "juhee nam"
},
{
"customFieldName": "Num of Nights",
"customFieldValue": "1"
}
]
},
"templateId": 75190
},
"validFor": 12
}
}
Updated by ziniy Kang 4 months ago
- Status changed from 피드백(Feedback) to 진행(Doing)
- Priority changed from 높음(High) to 긴급(Emergency)
Updated by ziniy Kang 4 months ago
- Due date changed from 09/19/2025 to 09/22/2025
Updated by ziniy Kang 4 months ago
- Due date changed from 09/22/2025 to 11/03/2025
