Visa B2B Payment Controls Rule Codes

This table shows rule codes for Visa B2B Payment Controls.  These can be configured within the Controls Management Service.

Sr. No. Rule Code Rule Description Overridable Override Limit Rule Request Fields and Details Notes
1 ADT This rule blocks all transactions at adult-themed merchants. No N/A "rule":{ Code*:
 
     "code": "ADT"   pattern: '^[a-zA-Z0-9]{3,10}$'
}   type: string
    description: Specifies the VPC rule code
2 AIR This rule blocks all transactions at airline merchants. No N/A "rule":{ Code*:
 
     "code": "AIR"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code
3 ALC This rule blocks all transactions at alcohol merchants. No N/A "rule":{ Code*  
     "code": "ALC"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code
4 AUTO This rule blocks all transactions at auto rental merchants. No N/A "rule":{ Code*:
 
     "code": "AUTO"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code
5 CLOTH This rule blocks all transactions at general retail merchants. No N/A "rule":{ Code*  
     "code": "CLOTH"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code
6 ELEC This rule blocks all transactions at electronics merchants. No N/A "rule":{ Code*:
 
     "code": "ELEC"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code
7 ENT This rule blocks all entertainment-related merchants. No N/A "rule":{ Code*:
 
     "code": "ENT"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code
8 FUEL This rule blocks all transactions at fuel merchants. No N/A "rule":{ Code*:
 
     "code": "FUEL"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code
9 GROC This rule blocks all trasactions at grocery merchants. No N/A "rule":{ Code*:
 
     "code": "GROC"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code
10 GTM This rule blocks all transactions at ground transportation merchants. No N/A "rule":{ Code*:
 
     "code": "GTM"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code
11 HOT This rule blocks all transactions at hotel-related merchants. No N/A "rule":{ Code*:  
     "code": "HOT"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code
12 JEWL This rule blocks all transactions at jewelry merchants. No N/A "rule":{ Code*:
 
     "code": "JEWL"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code
13 MED This rule blocks transactions at general retail merchants. No N/A "rule":{ Code*:
 
     "code": "MED"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code.
14 NOTFUEL This rule blocks transactions at all merchants EXCEPT fuel merchants.  No N/A "rule":{ Code*:
 
     "code": "NOTFUEL"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code.
15 OSS This rule blocks all transactions at office supply merchants. No N/A "rule":{ Code*:
 
     "code": "OSS"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code.
16 QSR This rule blocks all transactions at fast food merchants. No N/A "rule":{ Code*:
 
     "code": "QSR"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code.
17 REST This rule blocks all transactions at restaurant merchants. No N/A "rule":{ Code*:
 
     "code": "REST"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code.
18 UTIL This rule blocks all transactions at utilities merchants. No N/A "rule":{ Code*:
 
     "code": "UTIL"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code.
19 DOM

This rule blocks all transactions outside of the selected state (USA only).  

Yes 10 "rule":{ stateCodes*:
 
    "code": "DOM", type: string

The specified state codes must be valid.

Note: The rule supports allowing purchases within a single state for an account.

    "stateCodes": "04" Description: Only applicable for United States of America. For 50 states in USA, the 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.
}
20 XBR This rule blocks all cross-border transactions. No N/A "rule":{ Code*: XBR and XBRA should not be used at the same time due to conflicting rule nature.
     "code": "XBR"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: If this rule code is passed, cross-border payments will not be allowed.
21 XBRA Cross-border transaction restrictions with amount limits Yes 1 "rule":{ amountValue* - Specifies the amount value limit for each cross-border transaction.

 

Decimals are allowed.
 
XBRA and XBR should not be used at the same time due to conflicting rule nature.

 

Note: Any amounts greater than or equal to the amount specified will be declined.

    "code": "XBRA", Note:  The request level currency will apply to this amount value.
    "amountValue": "1000"  
}  
22 XBRB This rule blocks all transactions in the selected countries. Yes 10 "rule":{ countries

 

The country codes must be valid.

 XBRB and XBRX cannot be used together. Only one should be specified due to conflicting rule nature.

    "code": "XBRB",    type: array
    "countries": ["04", "08", "12", "16"]   description: Specifies the code(s) for the list of countries to be blocked for transactions.
}  
23 XBRX This rule blocks transactions in all EXCEPT the selected countries. Yes 10 "rule":{

   type: array

Countries - Specifies the code(s) for the list of countries to allow transactions.

 

The country codes must be valid.

XBRX and XBRB cannot be used together. Only one should be specified due to conflicting rule nature.

    "code": "XBRX",
    "countries": ["04", "08", "12", "16"]
}
24 EAM This rule blocks all e-commerce transactions above a specific amount.  Yes 1 "rule":{
  1. amountValue - Specifies the amount value limit for each e-commerce transaction.

Decimals are allowed..

You cannot use EAM and ECOM at the same time due to conflicting rule nature.

Note: Any amounts greater than or equal to the amount specified will be declined.

     "code": "EAM", Note:  The request level currency will apply to this amount value.
    "amountValue": "1000"
}  
25 ECOM This rule blocks all e-commerce transactions.  No N/A "rule":{ Code*:
You cannot use ECOM and EAM at the same time due to conflicting rule nature.
     "code": "ECOM"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code.
26 CNP This rule blocks all card-not-present transactions. No N/A "rule":{ Code*:
 
     "code": "CNP"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code.
27 ATM This rule blocks all ATM cash disbursement transactions.  No N/A "rule":{ Code*: ATM and ATML rule should not be used together due to conflicting rule nature.
     "code": "ATM"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code.
28 ATML This rule prevents ATM cash disbursment transactions above a specific amount. Yes 1 "rule":{ amountValue - Specifies the amount value limit for each cash disbursement from ATM.
 

Decimals are allowed.

ATML and ATM rule should not be used together due to conflicting rule nature.

Note: Any amounts greater than or equal to the amount specified will be declined.

    "code": "ATML", Note: The request level currency will apply to this amount value.
    "amountValue": "1000"  
}  
29 SPV

This is the Spend Velocity Rule.  Use this rule to set the maximum spending amount and number of authorizations for a date range or recurring payment. 

 

Yes 1 "rule":{
  1. spendLimitAmount - Specifies the amount limit to be set on the card. 
  2. maxAuth - Specifies the number of authorizations that can be performed. 
  3. startDate - In case of DATERANGE, the start date must be provided in MM/DD/YYYY format. 
    Note: This rule will be set in near-real time. Also, startDate does not support future payments.
  4. endDate - In case of DATERANGE, the end date must be provided in MM/DD/YYYY format. 
  5. recurringDay - In case of RECURRING, the recurring day must be provided to refresh the rule on that day of the month.
  6. thresholdAmount- In case of notifyOption once or every time, the amount threshold must be provided. 
  7. notifyOption - Specifies if the notification must be sent when the set amount threshold is met (once or every time). 
  8. rangeType - Specifies the rule refresh criteria. There are 3 options: 
    • range type 1: Recurring day (ongoing - funds are set on x day of the month)
    • range type 2: Monthly (ongoing - funds are set the 1st day of the month)
    • range type 3: Date Range (spend only accessible during defined date range in GMT)
      Note:  Post expiration, the account will be open if no other rules are app
  9. updateFlag - Specifies if the rule update must update the accrual data or keep it.
    • 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. 
  10. consumedAmount - Specifies the consumed transaction amount (read-only field). 
  11. consumedAuthCount - Specifies the consumed transaction count (read-only field).
 
  • spendLimitAmount cannot be blank. Decimals are allowed.
  • startDate and endDate must be in the GMT timezone and MM/DD/YYYY format (For February - date can only be given up to 28). These fields must be present when the range type selected is DATERANGE.
    The startDate can accept past or current date only; however the rule will be effective immediately

If the startDate is not past or the current date per GMT, the request will receive an error depending on timezone differences.

To avoid issues, send the start and end dates in GMT, not in the local timezone.

Rule will terminate based on the endDate in GMT.

  • The recurring day must be a day in a month. Allowed value 1-28. This field must be present when the range type selected is RECURRING. 
  • amountThreshold is the percentage value of the amount. Should be between 1 - 100. This field must be present when the notifyOption field's value is either ONCE or EVERYTIME. 
  • notifyOption must be from one of these values:
    • NONE 
    • ONCE
    • EVERYTIME 

The notify option field allows you to specify if a notification should be sent when the threshold amount is met.
The threshold is a percentage of spend amount.

  • Range types must be from one of these values:
    • DATERANGE 
    • RECURRING
    • MONTHLY 
  • updateFlag must be from one of these values: 
    • UPDATE
    • REPLACE
        "code": "SPV",
        "velocityDetails": {
          "spendLimitAmount": "5000",
          "maxAuth": "10",
          "rangeType": "DATERANGE",
          "startDate": "08/12/2020",
          "endDate":"07/13/2021",
          "updateFlag": "REPLACE",
          "notifyOption": "ONCE",
          "thresholdAmount": "60"
        }
      }
The above is the common SPV rule used to specify the date range and threshold notification for authorization.
 
 
 
 
30 NOC This rule blocks all other cash access transactions. No N/A "rule":{ Code*  
     "code": "NOC"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code.
31 PUR This rule places a purchase amount limit on the card.  Yes 1 "rule":{ amountValue - Specifies the amount value limit for each purchase.
 

Decimals are allowed.

    "code": "PUR", Note:  The request level currency will apply to this amount value.
    "amountValue": "1000"
}  
32 BUS

This rule 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 "rule":{

timezone - Specifies the timezone for the time provided in the request.

weekDayEffective - Specifies the day of the week where card usage is allowed.

timeEffectiveStart - Specifies the start time in the day when card usage is allowed.

timeEffectiveEnd - Specifies the end time in the day when payments no longer will be allowed.

Note:  Define allowed business hours for payment based on time zone.

 
  • Timezone must be one of the allowed timezones. 
  • Day must be within the below values:
    • MON
    • TUE
    • WED
    • THU
    • FRI
    • SAT
    • SUN
  • 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.
    "code": "BUS",
    "timeZone": "Alaskan Standard Time",
    "effectiveTimePeriods":[
        {
         "effectiveDay": "MON",
        "startTime": "08:00",
        "endTime": "17:00"
       },
       {
         "effectiveDay": "TUE",
        "startTime": "08:00",
        "endTime": "17:00"
       }
    ]
}
33 BUSS This rule blocks transactions to merchant category codes (MCCs) with business services. No N/A "rule":{ Code*:
 
     "code": "BUSS"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code.
34 CAID This rule restricts transactions to only merchants with a specified card acceptor ID (CAID).  Yes 15 "rule":{ cardAcceptorCodes: Specifies the allowed card acceptor Id through which the transaction will be processed. 

The code must be within 1-15 digits.

    "code": "CAID", Note:  only 1 CAID value can be defined.
    "cardAcceptorCodes": ["1589451"]  
}  
35 CNTR This rule blocks transactions to MCCs with General Contractor Services. No N/A "rule":{ Code*:
 
     "code": "CNTR"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code.
36 GOV This rule blocks transactions to MCCs with Government Services. No N/A "rule":{ Code*:

 

     "code": "GOV"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code.
37 RETL This rule blocks transactions to MCCs with Retail Outlet Services. No N/A "rule":{ Code*:

 

     "code": "RETL"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code.
38 TOLRNC This rule establishes a tolerance range for transactions. Transactions with an amount outside the tolerance range will be blocked.  Yes 1 "rule":{ minValue - Specifies the start amount of the range for payment amount.

 

  • The specified amount limit must be within the configured amount. 
  • Decimals are allowed.
  • The minAmount must be less than or equal to maxAmount.
    "code": "TOLRNC", maxValue - Specifies the end amount of the range for payment amount.
    "minAmount": "200", Note:  The request level currency will apply to this amount value.
    "maxAmount": "500"
}  
39 VPAS This is the Exact Match rule.  Yes 200 "rule":{ amountValue - Specifies the exact amount value of the transaction to be allowed.

The specified amount limit must be within the configured amount range. 

Decimals are allowed.

Note:  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.

    "code": "VPAS", Note:  The request-level currency will apply to this amount value. You can apply more than one VPAS amount.
    "amountValues": ["1000", "2000"]
}  
40 PROF This rule blocks transactions to MCCs with Professional Services and Membership Organizations. No N/A "rule":{ Code*:

 

     "code": "PROF"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: string
    description: Specifies the VPC rule code.
41 MISC This rule blocks transactions to MCCs with Miscellaneous Retailers. No N/A "rule":{ Code*:

 

     "code": "MISC"   pattern: '^[a-zA-Z0-9]{1,10}$'
}   type: array
    description: Specifies the VPC rule code.
42 MCCB This rule blocks all transactions within a specified range of MCCs.  Yes 15 "rule":{ minMCC - Provides the start MCC value of the range.
  • Maximum 15 ranges.
  • Each MCC value must be between 0 to 9999.
  • minMCC must be less than or equal to maxMCC.
     "code": "MCCB", maxMCC - Provides the end MCC value of the range.
    "mccRanges":[ Note:  To specify single MCC, provide minMCC and maxMCC as same value.
        {
            "minMCC": "1300",  
           "maxMCC": "2000"  
       },
        {
            "minMCC": "2100",
           "maxMCC": "2500"
       }
    ]
}