# accountControl Spend Controls
source: https://developer.mastercard.com/business-payment-controls/documentation/use-cases/spend-controls/accountcontrol-spend-controls/index.md

## Account spend control {#account-spend-control}

An accountControl spend control rule can have each of the following elements:

|                                                                                                Control                                                                                                 |                 Description                  |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------|
| [authorisationCount](https://developer.mastercard.com/business-payment-controls/documentation/use-cases/spend-controls/accountcontrol-spend-controls/index.md#account-spend-control)                   | Number of transactions (overall and by time) |
| [cardAmount](https://developer.mastercard.com/business-payment-controls/documentation/use-cases/spend-controls/accountcontrol-spend-controls/index.md#amount-control)                                  | Amount (overall and by time)                 |
| [countryCodes](https://developer.mastercard.com/business-payment-controls/documentation/use-cases/spend-controls/accountcontrol-spend-controls/index.md#countrycodes-elements)                         | Country where the transaction takes place    |
| [startdate/enddate](https://developer.mastercard.com/business-payment-controls/documentation/use-cases/spend-controls/accountcontrol-spend-controls/index.md#validity-period-control)                  | Validity period                              |
| [merchantCategories](https://developer.mastercard.com/business-payment-controls/documentation/use-cases/spend-controls/accountcontrol-spend-controls/index.md#card-acceptor-business-code-mcc-control) | Card Acceptor Business Codes                 |

Note: At least one [cardAmount](https://developer.mastercard.com/business-payment-controls/documentation/use-cases/spend-controls/accountcontrol-spend-controls/index.md#amount-control) element must be set for an authorization control.

## Number of transactions control {#number-of-transactions-control}

### cardLimits.authorisationCount elements {#cardlimitsauthorisationcount-elements}

| **Attribute** | **Required** |                                                                                **Type**                                                                                 |          **Values**           |                                                                                                **Comment**                                                                                                 |
|---------------|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `maxTrans`    | Y            | Numeric                                                                                                                                                                 | minimum: 1 maximum: 999999999 | Maximum number of transactions in the period. Setting this value to 0 allows an unlimited number of transactions. If set to 1, generates single-use VCNs when submitting or updating requests.             |
| `period`      | Y            | See [period values](https://developer.mastercard.com/business-payment-controls/documentation/codes-and-formats/index.md#spend-control-period-values) for control limits | C                             | Each `period` value is unique in a purchase request, with one control for each period, to a maximum of 6. If `maxTrans` is set to 0 when submitting or updating requests, `period` defaults to continuous. |
| `negate`      | Y            | boolean                                                                                                                                                                 | * `true` * `false` (default)  | When set to `true`, the logic of the control is reversed.                                                                                                                                                  |

### dailyLimit.authorisationCount elements {#dailylimitauthorisationcount-elements}

| **Attribute** | **Required** |                                                                                **Type**                                                                                 |          **Values**           |                                                                                                **Comment**                                                                                                 |
|---------------|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `maxTrans`    | Y            | Numeric                                                                                                                                                                 | minimum: 1 maximum: 999999999 | Maximum number of transactions in the period. Setting this value to 0 allows an unlimited number of transactions. If set to 1, generates single use VCNs when submitting or updating requests.             |
| `period`      | Y            | See [period values](https://developer.mastercard.com/business-payment-controls/documentation/codes-and-formats/index.md#spend-control-period-values) for control limits | D                             | Each `period` value is unique in a purchase request, with one control for each period, to a maximum of 6. If `maxTrans` is set to 0 when submitting or updating requests, `period` defaults to continuous. |
| `negate`      | Y            | boolean                                                                                                                                                                 | * `true` * `false` (default)  | When set to `true`, the logic of the control is reversed.                                                                                                                                                  |

### weeklyLimit.authorisationCount elements {#weeklylimitauthorisationcount-elements}

| **Attribute** | **Required** |                                                                                **Type**                                                                                 |          **Values**           |                                                                                                **Comment**                                                                                                 |
|---------------|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `maxTrans`    | Y            | Numeric                                                                                                                                                                 | minimum: 1 maximum: 999999999 | Maximum number of transactions in the period. Setting this value to 0 allows an unlimited number of transactions. If set to 1, generates single use VCNs when submitting or updating requests.             |
| `period`      | Y            | See [period values](https://developer.mastercard.com/business-payment-controls/documentation/codes-and-formats/index.md#spend-control-period-values) for control limits | W                             | Each `period` value is unique in a purchase request, with one control for each period, to a maximum of 6. If `maxTrans` is set to 0 when submitting or updating requests, `period` defaults to continuous. |
| `negate`      | Y            | boolean                                                                                                                                                                 | * `true` * `false` (default)  | When set to `true`, the logic of the control is reversed.                                                                                                                                                  |

### monthlyLimit.authorisationCount elements {#monthlylimitauthorisationcount-elements}

| **Attribute** | **Required** |                                                                                **Type**                                                                                 |           **Values**           |                                                                                                **Comment**                                                                                                 |
|---------------|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `maxTrans`    | Y            | Numeric                                                                                                                                                                 | minimum: 1, maximum: 999999999 | Maximum number of transactions in the period. Setting this value to 0 allows an unlimited number of transactions. If set to 1, generates single use VCNs when submitting or updating requests.             |
| `period`      | Y            | See [period values](https://developer.mastercard.com/business-payment-controls/documentation/codes-and-formats/index.md#spend-control-period-values) for control limits | M                              | Each `period` value is unique in a purchase request, with one control for each period, to a maximum of 6. If `maxTrans` is set to 0 when submitting or updating requests, `period` defaults to continuous. |
| `negate`      | Y            | boolean                                                                                                                                                                 | * `true` * `false` (default)   | When set to `true` the logic of the control is reversed.                                                                                                                                                   |

### quarterlyLimit.authorisationCount elements {#quarterlylimitauthorisationcount-elements}

| **Attribute** | **Required** |                                                                                **Type**                                                                                 |          **Values**           |                                                                                                **Comment**                                                                                                 |
|---------------|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `maxTrans`    | Y            | Numeric                                                                                                                                                                 | minimum: 1 maximum: 999999999 | Maximum number of transactions in the period. Setting this value to 0 allows an unlimited number of transactions. If set to 1, generates single use VCNs when submitting or updating requests.             |
| `period`      | Y            | See [period values](https://developer.mastercard.com/business-payment-controls/documentation/codes-and-formats/index.md#spend-control-period-values) for control limits | Q                             | Each `period` value is unique in a purchase request, with one control for each period, to a maximum of 6. If `maxTrans` is set to 0 when submitting or updating requests, `period` defaults to continuous. |
| `negate`      | Y            | boolean                                                                                                                                                                 | * `true` * `false` (default)  | When set to `true` the logic of the control is reversed.                                                                                                                                                   |

### yearlyLimit.authorisationCount elements {#yearlylimitauthorisationcount-elements}

| **Attribute** | **Required** |                                                                                **Type**                                                                                 |          **Values**           |                                                                                                **Comment**                                                                                                 |
|---------------|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `maxTrans`    | Y            | Numeric                                                                                                                                                                 | minimum: 1 maximum: 999999999 | Maximum number of transactions in the period. Setting this value to 0 allows an unlimited number of transactions. If set to 1, generates single use VCNs when submitting or updating requests.             |
| `period`      | Y            | See [period values](https://developer.mastercard.com/business-payment-controls/documentation/codes-and-formats/index.md#spend-control-period-values) for control limits | Y                             | Each `period` value is unique in a purchase request, with one control for each period, to a maximum of 6. If `maxTrans` is set to 0 when submitting or updating requests, `period` defaults to continuous. |
| `negate`      | Y            | boolean                                                                                                                                                                 | * `true` * `false` (default)  | When set to `true`, the logic of the control is reversed.                                                                                                                                                  |

## Amount control {#amount-control}

### cardLimits.cardAmount elements {#cardlimitscardamount-elements}

|   **Attribute**   | **Required** |                                                                                **Type**                                                                                 |          **Values**           |                                                                                                **Comment**                                                                                                 |
|-------------------|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `cumulativeLimit` | Y            | Numeric                                                                                                                                                                 | minimum: 1 maximum: 999999999 | Cumulative amount limit on transactions within the period. Setting this value to 0 allows unlimited transaction amounts. An available balance is not calculated in this case.                              |
| `period`          | Y            | See [period values](https://developer.mastercard.com/business-payment-controls/documentation/codes-and-formats/index.md#spend-control-period-values) for control limits | C                             | Each `period` value is unique in a purchase request, with one control for each period, to a maximum of 6. If `maxTrans` is set to 0 when submitting or updating requests, `period` defaults to continuous. |
| `negate`          | Y            | boolean                                                                                                                                                                 | * `true` * `false` (default)  | When set to `true`, the logic of the control is reversed.                                                                                                                                                  |

### dailyLimit.cardAmount elements {#dailylimitcardamount-elements}

|   **Attribute**   | **Required** |                                                                                **Type**                                                                                 |          **Values**           |                                                                                                **Comment**                                                                                                 |
|-------------------|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `cumulativeLimit` | Y            | Numeric                                                                                                                                                                 | minimum: 1 maximum: 999999999 | Cumulative amount limit on transactions within the period. Setting this value to 0 allows unlimited transaction amounts. An available balance is not calculated in this case.                              |
| `period`          | Y            | See [period values](https://developer.mastercard.com/business-payment-controls/documentation/codes-and-formats/index.md#spend-control-period-values) for control limits | D                             | Each `period` value is unique in a purchase request, with one control for each period, to a maximum of 6. If `maxTrans` is set to 0 when submitting or updating requests, `period` defaults to continuous. |
| `negate`          | Y            | boolean                                                                                                                                                                 | * `true` * `false` (default)  | When set to `true` the logic of the control is reversed.                                                                                                                                                   |

### weeklyLimit.cardAmount elements {#weeklylimitcardamount-elements}

|   **Attribute**   | **Required** |                                                                                **Type**                                                                                 |          **Values**           |                                                                                               **Comment**                                                                                                |
|-------------------|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `cumulativeLimit` | Y            | Numeric                                                                                                                                                                 | minimum: 1 maximum: 999999999 | Cumulative amount limit on transactions within the period. Setting this value to 0 allows unlimited transaction amounts. An available balance is not calculated in this case.                            |
| `period`          | Y            | See [period values](https://developer.mastercard.com/business-payment-controls/documentation/codes-and-formats/index.md#spend-control-period-values) for control limits | W                             | Each Period value is unique in a purchase request, with one control for each period, to a maximum of 6. If `maxTrans` is set to 0 when submitting or updating requests, `period` defaults to continuous. |
| `negate`          | Y            | boolean                                                                                                                                                                 | * `true` * `false` (default)  | When set to `true`, the logic of the control is reversed.                                                                                                                                                |

### monthlyLimit.cardAmount {#monthlylimitcardamount}

|   **Attribute**   | **Required** |                                                                                **Type**                                                                                 |          **Values**           |                                                                                                **Comment**                                                                                                 |
|-------------------|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `cumulativeLimit` | Y            | Numeric                                                                                                                                                                 | minimum: 1 maximum: 999999999 | Cumulative amount limit on transactions within the period. Setting this value to 0 allows unlimited transaction amounts. An available balance is not calculated in this case.                              |
| `period`          | Y            | See [period values](https://developer.mastercard.com/business-payment-controls/documentation/codes-and-formats/index.md#spend-control-period-values) for control limits | M                             | Each `period` value is unique in a purchase request, with one control for each period, to a maximum of 6. If `maxTrans` is set to 0 when submitting or updating requests, `period` defaults to continuous. |
| `negate`          | Y            | boolean                                                                                                                                                                 | * `true` * `false` (default)  | When set to `true`, the logic of the control is reversed.                                                                                                                                                  |

### quarterlyLimit.cardAmount {#quarterlylimitcardamount}

|   **Attribute**   | **Required** |                                                                                **Type**                                                                                 |          **Values**           |                                                                                                **Comment**                                                                                                 |
|-------------------|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `cumulativeLimit` | Y            | Numeric                                                                                                                                                                 | minimum: 1 maximum: 999999999 | Cumulative amount limit on transactions within the period. Setting this value to 0 allows unlimited transaction amounts. An available balance is not calculated in this case.                              |
| `period`          | Y            | See [period values](https://developer.mastercard.com/business-payment-controls/documentation/codes-and-formats/index.md#spend-control-period-values) for control limits | Q                             | Each `period` value is unique in a purchase request, with one control for each period, to a maximum of 6. If `maxTrans` is set to 0 when submitting or updating requests, `period` defaults to continuous. |
| `negate`          | Y            | boolean                                                                                                                                                                 | * `true` * `false` (default)  | When set to `true`, the logic of the control is reversed.                                                                                                                                                  |

### yearlyLimit.cardAmount {#yearlylimitcardamount}

|   **Attribute**   | **Required** |                                                                                **Type**                                                                                 |          **Values**           |                                                                                                **Comment**                                                                                                 |
|-------------------|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `cumulativeLimit` | Y            | Numeric                                                                                                                                                                 | minimum: 1 maximum: 999999999 | Cumulative amount limit on transactions within the period. Setting this value to 0 allows unlimited transaction amounts. An available balance is not calculated in this case.                              |
| `period`          | Y            | See [period values](https://developer.mastercard.com/business-payment-controls/documentation/codes-and-formats/index.md#spend-control-period-values) for control limits | Y                             | Each `period` value is unique in a purchase request, with one control for each period, to a maximum of 6. If `maxTrans` is set to 0 when submitting or updating requests, `period` defaults to continuous. |
| `negate`          | Y            | boolean                                                                                                                                                                 | * `true` * `false` (default)  | When set to `true`, the logic of the control is reversed.                                                                                                                                                  |

## Country control {#country-control}

### countryCodes elements {#countrycodes-elements}

| **Attribute**  | **Required** |                 **Type**                 |          **Values**          |                                                                                                                                                      **Comment**                                                                                                                                                      |
|----------------|--------------|------------------------------------------|------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `countryCodes` | 1            | Three-character alphabetic country codes |                              | 246 country codes are available, separated using the pipe character.                                                                                                                                                                                                                                                  |
| `negate`       | Y            | boolean                                  | * `true` * `false` (default) | When set to `true` the logic of the control is reversed. For example, if setting `countryCode` to Ireland and `negate` is `false`, only transactions made in Ireland will be approved. If `negate` is `true`, all transactions from Ireland will be declined, and transactions made outside Ireland will be approved. |

## Validity period control {#validity-period-control}

### startDate elements {#startdate-elements}

| **Attribute** | **Required** | **Type** | **Values** |                                         **Comment**                                          |
|---------------|--------------|----------|------------|----------------------------------------------------------------------------------------------|
| `to`          | Y            |          | YYYY-MM-DD | End date of virtual account validity. Validity period ends on this date at time 23:59:59.999 |

### endDate elements {#enddate-elements}

| **Attribute** | **Required** | **Type** | **Values** |                                          **Comment**                                           |
|---------------|--------------|----------|------------|------------------------------------------------------------------------------------------------|
| `from`        | Y            |          | YYYY-MM-DD | Start date of virtual account validity. Validity period ends on this date at time 23:59:59.999 |

## Card Acceptor Business Code (MCC) control {#card-acceptor-business-code-mcc-control}

### merchantCategories {#merchantcategories}

| **Attribute** | **Required** |   **Type**   |          **Values**          |                                                                                                                        **Comment**                                                                                                                         |
|---------------|--------------|--------------|------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `MerchantID`  | Y            | Alphanumeric |                              | 1-15 characters.                                                                                                                                                                                                                                           |
| `negate`      | Y            | boolean      | * `true` * `false` (default) | When set to `true` the logic of the control is reversed. For example, if setting Merchant ID control and `negate` is `false`, only listed Merchant IDs will be approved. If `negate` is set to `true`, only Merchant IDs not on the list will be approved. |

