VPC Rule Codes
Visa Commercial Payment Controls (VPC) Rule Codes
Rule codes for Visa Commercial Payment Controls. These can be configured within the Controls Management Service.
- For amount fields, a maximum of 12 digits allowed. This maximum value includes any decimal places and excludes the decimal separator, ".".
- For currency with a minor unit of 0, 12 digits are allowed. A currency with a minor unit of 2 is allowed 10 digits and 2 decimals. A currency with a minor unit of 3 is allowed 9 digits and 3 decimals.
- For a currency with a minor unit of 3, only 0 is expected in the third decimal position as per VisaNet processing.
- The time zone specified in request level is applicable for all the rules.
- User can set the future rules by providing a future start date.
RULE NAME: Block Adult Theme Merchants
| RULE CODE | RULE DESCRIPTION | OVERRIDABLE | OVERRIDE LIMIT | NOTES |
|---|---|---|---|---|
| ADT | Blocks all transactions at adult-themed merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
{
"code": "ADT"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{3,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block airline merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| AIR | Blocks all transactions at airline merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "AIR"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block alcohol merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| ALC | Blocks all transactions at alcohol merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "ALC"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block auto rental merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| AUTO | Blocks all transactions at auto rental merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "AUTO"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block business services merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| BUSS | Blocks transactions to merchant category codes (MCCs) with business services. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "BUSS"
}
Fields and Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block cloth merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| CLOTH | Blocks all transactions at general retail merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "CLOTH"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block electronics merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| ELEC | Blocks all transactions at electronics merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "ELEC"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block entertainment merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| ENT | Blocks all transactions at entertainment-related merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "ENT"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block fuel merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| ENT | Blocks all transactions at entertainment-related merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "FUEL"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block grocery states and pharmacies merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| GORC | Blocks all transactions at grocery merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "GORC"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block ground transportation merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| GTM | Blocks all transactions at ground transportation merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "GTM"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block hotel merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| HOT | Blocks all transactions at hotel-related merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "HOT"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block jewelry merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| JEWL | Blocks all transactions at jewelry merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "JEWL"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block general retail merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| MED | Blocks transactions at general retail merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "MED"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block fast food merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| MISC | Blocks all transactions at fast food merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "MISC"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block office supply merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| OSS | Blocks all transactions at office supply merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "OSS"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block fast food merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| QSR | Blocks all transactions at fast food merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "QSR"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block restaurant merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| REST | Blocks all transactions at restaurant merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "REST"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block utility merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| UTIL | Blocks all transactions at utilities merchants. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "UTIL"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Allow states (applicable for United States of America)
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| DOM | Blocks all transactions outside of the selected state (USA only). | Yes | 1 | The specified state codes must be valid. DOM and DOMB cannot be used together. Only one should be specified due to conflicting rule nature. The rule supports allowing purchases within a single state for an account. |
Rule Request:
{
"code": "DOM",
"stateCodes": [
"15"
]
}
Field Details:
- stateCodes*
- Type: string
- Description: Only applicable for United States of America. For 50 states in the USA, the Federal Information Processing Standards (FIPS) numeric codes are used. For outlying areas of United States, freely associated states, and individual minor outlying island territories, refer to the rule description document under States Codes.
RULE NAME: Block cross border transactions
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| XBR | Blocks all cross-border transactions. | No | N/A | XBR and XBRA should not be used at the same time due to conflicting rule nature. |
Rule Request:
{
"code": "XBR"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Cross border transactions with amount limit
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| XBRA | Cross-border transaction restrictions with amount limits. | Yes | 1 | Decimals are allowed. XBRA and XBR should not be used at the same time due to conflicting rule nature. Any amounts greater than or equal to the amount specified will be declined. |
Rule Request:
{
"code": "XBRA",
"amountValue": "2000"
}
Field Details:
- amountValue*
- Description: Specifies the amount value limit for each cross-border transaction. The request level currency will apply to this amount value.
RULE NAME: Block countries
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| XBRB | Blocks all transactions in the selected countries. | Yes | 10 | The country codes must be valid. XBRB and XBRX cannot be used together. Only one should be specified due to conflicting rule nature. |
Rule Request:
{
"code": "XBRB",
"countries": [
"04"
"08"
"12"
"16"
]
}
Field Details:
- countries
- Type: array
- Description: Specifies the code(s) for the list of countries to be blocked for transactions.
RULE NAME: Allow countries
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| XBRX | Blocks transactions in all EXCEPT the selected countries. | Yes | 10 | The country codes must be valid. XBRX and XBRB cannot be used together. Only one should be specified due to conflicting rule nature. |
Rule Request:
{
"code": "XBRX",
"countries": [
"04"
"08"
"12"
"16"
]
}
Field Details:
- countries
- Type: array
- Description: Specifies the code(s) for the list of countries to be blocked for transactions.
RULE NAME: Block ecommerce transaction over the amount limit
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| EAM | Blocks all e-commerce transactions above a specific amount. | Yes | N/A | Decimals are allowed. EAM and ECOM cannot be used at the same time due to conflicting rule nature. Any amounts greater than or equal to the amount specified will be declined. |
Rule Request:
{
"code": "EAM",
"amountValue": "200"
}
Field Details:
- amountValue
- Description: Specifies the amount value limit for each e-commerce transaction. The request level currency will apply to this amount value.
RULE NAME: Block ecommerce transaction
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| ECOM | Blocks all e-commerce transactions. | No | 1 | ECOM and EAM cannot be used at the same time due to conflicting rule nature. |
Rule Request:
{
"code": "ECOM"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block card-not-present transactions
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| CNP | Blocks all card-not-present transactions. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "CNP"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block ATM cash disbursement
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| ATM | Blocks all ATM cash disbursement transactions. | No | N/A | ATM and ATML should not be used at the same time due to conflicting rule nature. |
Rule Request:
{
"code": "ATM"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: ATM cash disbursement amount limit
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| ATML | Prevents ATM cash disbursement transactions above a specific amount. | Yes | 1 | Decimals are allowed. ATML and ATM should not be used at the same time due to conflicting rule nature. Any amounts greater than or equal to the amount specified will be declined. |
Rule Request:
{
"code": "ATML",
"amountValue": "200"
}
Field Details:
- amountValue*
- Description: Specifies the amount value limit for each cash disbursement from ATM.
RULE NAME: Spend velocity type restriction
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| SPV | This is the Spend Velocity Rule used to set the maximum spending amount and number of authorizations for a date range or recurring payment. | Yes | 1 | The SPV Rule will be renewed (or terminated in the case of DATERANGE) after the end date. This is based on the timeZone and respective range type. The request level timeZone is applicable for all rules including SPV. timeZone is an optional field. The default value for timeZone is GMT. The Spend Velocity balance is updated when authorization reversal transactions are received by VisaNet for a previously-approved authorization transaction.
|
Rule Requests:
{
"code": "SPV",
"velocityDetails": {
"spendLimitAmount": "100",
"maxAuth": "10",
"rangeType": "RECURRING",
"recurringDay": "08",
"updateFlag": "Update",
"notifyOption": "Once",
"thresholdAmount": "10"
}
}
{
"code": "SPV",
"velocityDetails": {
"spendLimitAmount": "100",
"maxAuth": "10",
"rangeType": "MONTHLY",
"updateFlag": "Update",
"notifyOption": "Once",
"thresholdAmount": "10"
}
}
{
"code": "SPV",
"velocityDetails": {
"spendLimitAmount": "100",
"maxAuth": "10",
"rangeType": "DATERANGE",
"updateFlag": "Replace",
"notifyOption": "Everytime",
"thresholdAmount": "10"
}
}
{
"code": "SPV",
"velocityDetails": {
"spendLimitAmount": "100",
"maxAuth": "10",
"rangeType": "WEEKLY",
"dayOfTheWeek": "FRI",
"updateFlag": "Replace",
"notifyOption": "Everytime",
"thresholdAmount": "10"
}
}
{
"code": "SPV",
"velocityDetails": {
"spendLimitAmount": "100",
"maxAuth": "10",
"rangeType": "DAILY",
"updateFlag": "Replace",
"notifyOption": "Everytime",
"thresholdAmount": "10"
}
}
Field Details:
- spendLimitAmount
- Cannot be blank.
- Decimals are allowed.
- Description: Specifies the amount limit to be set on the card.
- maxAuth
- If value is zero, there is no limit.
- Description: Specifies the number of authorizations that can be performed.
- startDate
- If rangeType=DATERANGE, startDate is mandatory and must be in MM/DD/YYYY format. For February, day fields can only be 1-28.
- startDate can accept the current and future date only. However, if the start date is today's date, then the rule will be effective immediately.
- This rule will be set in near-real time.
- Field must be present at the request level and applicable for all rules including SPV.
- endDate
- If rangeType=DATERANGE, endDate is mandatory and must be in MM/DD/YYYY format. For February, day fields can only be 1-28.
- Field must be present at the request level and applicable for all rules including SPV.
- If endDate is not specified the rule will be refresh indefinitely as per the rangeType.
- recurringDay
- Must be a day in a month.
- Allowed value: 1-28.
- If rangeType = RECURRING, the recurringDay must be provided to refresh the rule on that day of the month.
- dayOfTheWeek
If rangeType = WEEKLY, the dayOfTheWeek must be provided to refresh the rule on that day of the week.
Valid values:
- MON
- TUE
- WED
- THU
- FRI
- SAT
- SUN
- thresholdAmount
- If notifyOption= ONCE or EVERYTIME, thresholdAmount is mandatory.
- thresholdAmount is the percentage value of the amount. Value should be between 1 and 100.
- notifyOption
Description: Specifies if the notification must be sent when the set threshold amount is met (once or every time). The threshold is a percentage of spend amount.
Valid values:
- NONE
- ONCE
- EVERYTIME
- rangeType
Description: Specifies the rule refresh criteria.
Valid values:
- DATERANGE - spend only accessible during defined date range. Post-expiration, the account will be open if no other rules are applied.
- RECURRING - funds are set on x day of the month.
- MONTHLY - funds are set the 1st day of the month.
- WEEKLY - funds are set on x day of the week.
- DAILY - funds are set at the beginning of each day.
- updateFlag
Description: Specifies if the rule update must update the accrual data or keep it.
Valid values:
- UPDATE - updates the rule data keeping the accrual data as is.
- REPLACE - update the rule data and the accrual data and start the accruals fresh.
- consumedAmount
Description: Specifies the consumed transaction amount (read-only field).
- consumedAuthCount
Description: Specifies the consumed transaction count (read-only field).
- spendLimitAmountTolerance
- Description: Allows users to specify a Spend Limit Amount Tolerance percentage of their total Spend Limit Amount so that additional spending beyond the preset limit is allowed. .
- The spendLimitAmountTolerance override code, if provided, should either be an integer or a string convertible to an integer. The value must fall within the 0-100 range and default to zero if not specified.
RULE NAME: Block all other cash access
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| NOC | Blocks all other cash access transactions. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "NOC"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Purchase amount limit
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| PUR | Places a purchase amount limit on the card. | Yes | 1 | Decimals are allowed. |
Rule Request:
{
"code": "PUR"
"amountValue": "200"
}
Field Details:
- amountValue
- Description: Specifies the amount value limit for each purchase.
- The request level currency will apply to this amount value.
RULE NAME: Allow transaction in business hours
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| BUS | Places restrictions on the time of day / day of the week that transactions can be authorized. For example, you can restrict card usage to only your business hours and days. | Yes | 7 | Day must be within the below values:
Start and end times must be in military format. Minutes are not accepted, only hours. For example: 01:00, 05:00, 10:00, 13:00, 17:00, 23:00. |
Rule Request:
{
"code": "BUS",
"effectiveTimePeriods": [
{
"effectiveDay": "MON",
"startTime": "08:00",
"endTime": "18:00"
},
{
"effectiveDay": "TUE",
"startTime": "08:00",
"endTime": "18:00"
},
{
"effectiveDay": "WED",
"startTime": "08:00",
"endTime": "18:00"
},
{
"effectiveDay": "THU",
"startTime": "08:00",
"endTime": "18:00"
},
{
"effectiveDay": "FRI",
"startTime": "08:00",
"endTime": "18:00"
},
{
"effectiveDay": "SAT",
"startTime": "08:00",
"endTime": "18:00"
},
{
"effectiveDay": "SUN",
"startTime": "08:00",
"endTime": "18:00"
}
]
}
Field Details:
- weekDayEffective
Description: Specifies the day of the week where card usage is allowed.
- timeEffectiveStart
Description: Specifies the start time in the day when card usage is allowed.
- timeEffectiveEnd
Description: Specifies the end time in the day when payments no longer will be allowed. Define allowed business hours for payment based on time zone. The request level time zone will apply to BUS rule.
RULE NAME: Block business services merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| BUSS | Blocks transactions to merchant category codes (MCCs) with business services. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "BUSS"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Allow merchants by Card Acceptor Code
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| CAID | Restricts transactions to only merchants with a specified card acceptor ID (CAID). | Yes | 15 | Multiple groups of the Acquiring Institution ID and corresponding Card Acceptor ID values are allowed. Duplicate CAID values within the same Acquiring ID are not allowed. Duplicate CAID values across different Acquiring IDs are allowed. Special characters are not allowed. CAID and CAIDB cannot be used together due to conflicting rule nature. |
Rule Request: This request is for CAID with acquiring Ids. User can specify only one or multiple card acceptor codes without acquiring Ids.
{
"code": "CAID",
"cardAcceptorDetails": [
{
"acquiringInstitutionId": "465025",
"cardAcceptorCodes": [
"985468212",
"459846525",
"96XD24522"
]
},
{
"acquiringInstitutionId": "7650256",
"cardAcceptorCodes": [
"185468212",
"359846525",
"P6XD24522",
"674468212",
"3598PWD25",
"Z7B224522"
]
},
{
"acquiringInstitutionId": "6650256",
"cardAcceptorCodes": [
"385468212",
"L59846525"
]
},
{
"cardAcceptorCodes": [
"54DEFG54SDF",
"T87651SDSDF6876",
"5WEA6S4A6S8D4",
"WER86465S46",
"WE651WE6SA",
"SDF68764ASEA",
"AS4S65468664",
"64654AWEA65"
]
}
]
}
Field Details:
- acquiringInstitutionId
- Optional
- 11 numeric characters
- Cannot be left blank
- Cannot be duplicated
- Description: Numeric value used to identify the acquiring institution.
- cardAcceptorCodes
- 15 alphanumeric characters
- Cannot be left blank. At least one CAID value is required.
- Maximum of 200 values, including Acquiring IDs, are allowed.
- Description: Acquirer-assigned code that identifies the card acceptor for the transaction. It can represent a merchant, a merchant location, or a merchant location terminal.
RULE NAME: Block general contractor service merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| CNTR | Blocks transactions to MCCs with General Contractor Services. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "CNTR"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block government service merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| GOV | Blocks transactions to MCCs with Government Services. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "GOV"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block retail merchants
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| RETL | Blocks transactions to MCCs with Retail Outlet Services. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "RETL"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Allow transaction amount value range
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| TOLRNC | Establishes a tolerance range for transactions. Transactions with an amount outside the tolerance range will be blocked. | Yes | 1 | The specified amount limit must be within the configured amount. Decimals are allowed. The minAmount must be less than or equal to maxAmount. |
Rule Request:
{
"code": "TOLRNC"
"minAmount": "600",
"maxAmount": "800"
}
Field Details:
- minAmount
Description: Start amount of the range for payment amount.
- maxAmount
Description: End amount of the range for payment amount. The request level currency will apply to this amount level.
RULE NAME: Allow exact purchase amounts
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| VPAS | Exact match rule. | Yes | 200 | The specified amount limit must be within the configured amount range. Decimals are allowed. If using exact match rule (VPAS) and it has been consumed; account is set to blocked status so no new amount can be authorized. The card will still be active but no transactions will be authorized. Exact match controls are updated when authorization reversal transactions are received by VisaNet for a previously approved authorization transaction. When the entire amount of the authorization transaction is reversed, the exact match control is reactivated. When a partial amount of the authorization transaction is reversed, the exact match control is not reactivated. Exact match controls will not be updated if the authorization transaction being reversed occurred prior to a rule refresh or reset by the client or the system for recurring controls." |
Rule Request:
{
"code": "VPAS",
"amountValue": [
"700",
"800",
"900"
]
}
Field Details:
amountValue
Description: Specifies the exact amount value of the transaction to be allowed. The request-level currency will apply to this amount value. You can apply more than one VPAS amount.
RULE NAME: Block professional services and member organizations
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| PROF | Blocks transactions to MCCs with Professional Services and Membership Organizations. | No | N/A | MCG rules can either allow or block all transactions within the MCG(s). You must specify Allow or Block as a value in the mcgRuleAction field. If no value is specified, Block will be assumed. |
Rule Request:
{
"code": "PROF"
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Block merchants by their category code
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| MCCB | Blocks all transactions within a specified range of MCCs. | Yes | 15 |
|
Rule Request:
{
"code": "MCCB",
"mccRanges": [
{
"minMCC": "1300",
"maxMCC": "2000"
},
{
"minMCC": "2100",
"maxMCC": "2500"
}
]
}
Field Details:
- minMCC
- minMCC must be less than or equal to maxMCC.
- Each MCC value must be between 0 and 9999.
- Description: Provides the start MCC value of the range.
- maxMCC
- Each MCC value must be between 0 and 9999.
- Description: Provides the end MCC value of the range.
RULE NAME: Block states (applicable for United States of America)
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| DOMB | Blocks card-present transactions at the state level. | Yes | 1 | The specified state codes must be valid. DOMB and DOM cannot be used together due to conflicting rule nature. The rule supports blocking purchases within a single state for an account. |
Rule Request:
{
"code": "DOMB",
"stateCodes": [
"15"
]
}
Field Details:
- stateCodes*
- Type: string
- Description: Only applicable for United States of America. For 50 states in the USA, the Federal Information Processing Standards (FIPS) numeric codes are used. For outlying areas of United States, freely associated states, and individual minor outlying island territories, refer to the rule description document under States Codes.
RULE NAME: Block merchants by Card Acceptor Code
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| CAIDB | Blocks Card Acceptor Codes. | Yes | 1 | Multiple groups of the Acquiring Institution ID and corresponding Card Acceptor ID values are allowed. Duplicate CAID values within the same Acquiring ID are not allowed. Duplicate CAID values across different Acquiring IDs are allowed. Special characters are not allowed. CAID and CAIDB cannot be used together due to conflicting rule nature. |
Rule Request: This request is for CAID with acquiring Ids. User can specify only one or multiple card acceptor codes without acquiring Ids.
{
"code": "CAIDB",
"cardAcceptorDetails": [
{
"acquiringInstitutionId": "465025",
"cardAcceptorCodes": [
"985468212",
"459846525",
"96XD24522"
]
},
{
"acquiringInstitutionId": "7650256",
"cardAcceptorCodes": [
"185468212",
"359846525",
"P6XD24522",
"674468212",
"3598PWD25",
"Z7B224522"
]
},
{
"acquiringInstitutionId": "6650256",
"cardAcceptorCodes": [
"385468212",
"L59846525"
]
},
{
"cardAcceptorCodes": [
"54DEFG54SDF",
"T87651SDSDF6876",
"5WEA6S4A6S8D4",
"WER86465S46",
"WE651WE6SA",
"SDF68764ASEA",
"AS4S65468664",
"64654AWEA65"
]
}
]
}
Field Details:
- acquiringInstitutionId
- Optional
- 11 numeric characters
- Cannot be left blank
- Cannot be duplicated
- Description: Numeric value used to identify the acquiring institution.
- cardAcceptorCodes
- 15 alphanumeric characters
- Cannot be left blank. At least one CAID value is required.
- Maximum of 200 values, including Acquiring IDs, are allowed.
- Description: Acquirer-assigned code that identifies the card acceptor for the transaction. It can represent a merchant, a merchant location, or a merchant location terminal.
RULE NAME: Allow merchants by their category code
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| MCCX | Allows all transactions within a specified range of MCCs. | Yes | 15 |
|
Rule Request:
{
"code": "MCCX",
"mccRanges": [
{
"minMCC": "1300",
"maxMCC": "2000"
},
{
"minMCC": "2100",
"maxMCC": "2500"
}
]
}
Field Details:
- minMCC
- Each MCC value must be between 0 and 9999.
- minMCC must be less than or equal to maxMCC.
-
Description: Start MCC value of the range.
- maxMCC
- Each MCC value must be between 0 and 9999.
- Description: End MCC value of the range.
RULE NAME: Allow currencies
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| TCUX | Allows a specified currency. | Yes | 10 | None. |
Rule Request:
{
"code": "TCUX",
"currencyCodes": [
"840",
"036"
]
}
Field Details:
- currencyCodes*
- Type: 3-digit number
- Maximum of 10 currencies.
- Description: ISO currency codes.
RULE NAME:
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| ACCB | Allow clients to block all authorization transactions on an account. | No | N/a | None. |
Rule Request:
{
"code": "ACCB",
}
Field Details:
- code*
- Pattern: '^[a-zA-Z0-9]{1,10}$'
- Type: string
- Description: Specifies the VPC rule code
RULE NAME: Spend policy type restriction
| Rule Code | Rule Description | Overridable | Override Limit | Notes |
|---|---|---|---|---|
| SPP | This is the Spend Policy Rule used to set the maximum spending amount and number of authorizations for a date range or recurring payment for merchant category groups (MCGs) or merchant category code (MCC) ranges. | Yes | 10 | The Spend Policy (for each policy) balance is updated when authorization reversal transactions are received by VisaNet for a previously approved authorization transaction.
The Spend Policy balance is not updated if the authorization transaction being reversed occurred before a rule refresh or reset by the client or system for recurring controls. The SPP rule supports maximum of 10 different spend policies. |
Rule Requests:
{
"code": "SPP",
"policyDetails": [
{
"spendLimitAmount": "1000",
"maxAuth": "10",
"rangeType": "DAILY",
"accumulatedSpendResetIndicator": "YES",
"merchantCategoryGroups": [
"AIR",
"HOT"
],
"merchantCategoryRanges": [
]
}
]
}
{
"code": "SPP",
"policyDetails": [
{
"spendLimitAmount": "1000",
"maxAuth": "10",
"rangeType": "MONTHLY",
"accumulatedSpendResetIndicator": "YES",
"merchantCategoryGroups": [
"AIR",
"HOT"
],
"merchantCategoryRanges": [
]
}
]
}
{
"code": "SPP",
"policyDetails": [
{
"spendLimitAmount": "1000",
"maxAuth": "10",
"rangeType": "WEEKLY",
"dayOfTheWeek": "MON",
"accumulatedSpendResetIndicator": "YES",
"merchantCategoryGroups": [
"AIR",
"HOT"
],
"merchantCategoryRanges": [
]
}
]
}
{
"code": "SPP",
"policyDetails": [
{
"spendLimitAmount": "1000",
"maxAuth": "10",
"rangeType": "RECURRING",
"recurringDay": "5",
"accumulatedSpendResetIndicator": "YES",
"merchantCategoryGroups": [
"AIR",
"HOT"
],
"merchantCategoryRanges": [
]
}
]
}
{
"code": "SPP",
"policyDetails": [
{
"spendLimitAmount": "1000",
"maxAuth": "10",
"rangeType": "QUARTERLY",
"dayOfTheQuarter": "88",
"accumulatedSpendResetIndicator": "YES",
"merchantCategoryGroups": [
],
"merchantCategoryRanges": [
{
"minMCC": "1000",
"maxMCC": "2000"
}
]
}
]
}
{
"code": "SPP",
"policyDetails": [
{
"spendLimitAmount": "1000",
"maxAuth": "10",
"rangeType": "YEARLY",
"dayOfTheYear": "300",
"accumulatedSpendResetIndicator": "YES",
"merchantCategoryGroups": [
],
"merchantCategoryRanges": [
{
"minMCC": "1000",
"maxMCC": "2000"
}
]
}
]
}
Field Details:
- spendLimitAmount
- Cannot be blank.
- Decimals are allowed.
- Description: Specifies the amount limit to be set (per policy group).
- maxAuth
- If value is zero, there is no limit.
- Description: Specifies the number of authorizations that can be performed (per policy group).
- dayOfTheWeek
If rangeType equals WEEKLY, the dayOfTheWeek must be provided to refresh the rule on that day of the week.
Valid values:
- MON
- TUE
- WED
- THU
- FRI
- SAT
- SUN
- recurringDay
- Must be a day in a month.
- Allowed value: 1-28.
- If rangeType equals RECURRING, the recurringDay must be provided to refresh the rule on that day of the week.
- dayOfTheQuarter
- Must be a day in a quarter.
- Allowed value: 1-88.
- Description: If rangeType equals QUARTERLY, the dayOfTheQuarter must be provided to refresh the rule on that day of the week.
- dayOfTheYear
- Must be a day in a year.
- Allowed value: 1-365.
- Description: If rangeType equals YEARLY, the dayOfTheYear must be provided to refresh the rule on that day of the week.
- rangeType
Description: Specifies the rule refresh criteria. Must be one of these values:
- DAILY - recurring - funds are set on daily basis.
- WEEKLY - recurring - funds are set on x day of the week.
- MONTHLY - recurring - funds are set the 1st day of the month.
- RECURRING - recurring - funds are set the x day of the month.
- QUARTERLY - recurring - funds are set the x day of the quarter.
- YEARLY - recurring - funds are set the x day of the year.
- accumulatedSpendResetIndicator
Description: Specifies if the rule updates the accrual data or keeps it.
- NO - updates the rule data keeping the accrual data as is.
- YES - updates the rule data and the accrual data and starts the accruals fresh.
- merchantCategoryGroups
- Merchant Category Groups must be valid as per merchant groups. user can specify max 10 groups in every spend policy group.
- Description: Array of merchant category groups.
- merchantCategoryRanges
- Merchant Category ranges must be valid as per 4 digit ranges and should not overlap between any f the policies. User can specify max 10 ranges in every spend policy group.
- Description: Array of merchant category ranges.
- minMCC
Description: Specifies start MCC range.
- maxMCC
Description: Specifies end MCC range.
- consumedAmount
Description: Specifies the consumed transaction amount (read-only field).
- consumedAuthCount
Description: Specifies the consumed transaction count (read-only field).
- The request level timeZone is applicable for all rules including SPP. timeZone is an optional field and the default value for timeZone is GMT.
- The request level startDate and endDate is applicable for all rules including SPP. startDate and endDate both are optional fields and must be in the MM/DD/YYYY format.
- The default value for startDate is current GMT date time. endDate must be greater than startDate if specified.
- If endDate is not specified the rule will be refresh indefinitely as per the rangeType.