# Issuing spending controls Learn how to use Issuing to set rules on cards and cardholders to control spending. You can use spending controls to block [merchant categories](https://docs.stripe.com/issuing/categories.md) (for example, bakeries), [countries](https://docs.stripe.com/api/issuing/authorizations/object.md#issuing_authorization_object-merchant_data-country), or [merchant IDs](https://docs.stripe.com/api/issuing/authorizations/object.md#issuing_authorization_object-merchant_data-network_id), and to set spending limits per authorization or per month. You can apply them to both [Cards](https://docs.stripe.com/api/issuing/cards/object.md#issuing_card_object-spending_controls) and [Cardholders](https://docs.stripe.com/api/issuing/cardholders/object.md#issuing_cardholder_object-spending_controls) either by setting their `spending_controls` parameters when you create them or by updating them later. > Merchant ID spending controls is in private preview. You must be an Issuing user to participate. To learn more or request access, [contact Stripe](https://stripe.com/contact). You can set the following `spending_controls` parameters: | Parameter | Type | Description | | ---------------------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `allowed_categories` | array | List of [categories](https://docs.stripe.com/issuing/categories.md) of authorizations to allow. All other categories will be blocked. | | `blocked_categories` | array | List of [categories](https://docs.stripe.com/issuing/categories.md) of authorizations to decline. All other categories will be allowed. | | `spending_limits` | array | List of [objects](https://docs.stripe.com/issuing/controls/spending-controls.md#spending-limits) that specify amount-based rules. | | `allowed_merchant_countries` | array | List of merchant [countries](https://docs.stripe.com/api/issuing/authorizations/object.md#issuing_authorization_object-merchant_data-country) to allow authorizations from. Authorizations from all other countries are blocked. | | `blocked_merchant_countries` | array | List of merchant [countries](https://docs.stripe.com/api/issuing/authorizations/object.md#issuing_authorization_object-merchant_data-country) to block authorizations from. Authorizations from all other countries are allowed. | Spending controls run before [real-time authorizations](https://docs.stripe.com/issuing/controls/real-time-authorizations.md) and can decline a purchase before the `issuing_authorization.request` is sent, resulting in a declined `issuing_authorization.created` event. ## Spending limits Spending limit rules limit the total amount of spending for categories over intervals of time. The `spending_limits` parameter of `spending_controls` is a set of specifications with the following structure: | Property | Type | Description | | ------------ | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `amount` | integer | Maximum spend, in the currency of the card. Amounts in other currencies are converted to the card’s currency when evaluating this control. This amount is in the card’s currency and in the [smallest currency unit](https://docs.stripe.com/currencies.md#zero-decimal). | | `interval` | enum | Time interval that the amount applies to. See the [Card spending_controls](https://docs.stripe.com/api/issuing/cards/object.md#issuing_card_object-spending_controls-spending_limits-interval) for the possible values. All date-based intervals start at midnight UTC. | | `categories` | array (optional) | List of [categories](https://docs.stripe.com/issuing/categories.md) this limit applies to. Omitting this field will apply the limit to all categories. | Stripe automatically applies the following limits, which you can [contact support](https://support.stripe.com/contact/login) to disable: - If you don’t set `spending_limits`, a default spending limit of 500 USD per day applies to the newly created card. - In addition to the card spending limits you configure, an unconfigurable default spending limit of 10000 USD also applies to each authorization. Spending aggregation is done on a best-effort basis. You might notice a delay of up to 30 seconds between spend occurrence and spend aggregation. A card’s spending limits apply across any cards it replaces (that is, its [replacement_for](https://docs.stripe.com/api/issuing/cards/object.md#issuing_card_object-replacement_for) card and *that* card’s `replacement_for` card, and so on). A cardholder’s spending limits apply across all of their cards. Each spending limit only applies to its own categories. Spending limits alone don’t block categories and should be used with either `allowed_categories` or `blocked_categories` to restrict spending to specific business types. If a cardholder has overlapping spending limits (for example, 100 USD per authorization and 50 USD per authorization for their card), the most restrictive spending control applies. Additional tips and fees can be [posted at a later time](https://docs.stripe.com/issuing/purchases/transactions.md?issuing-capture-type=over_capture), causing a spending limit to be exceeded. ## Examples The following examples demonstrate different uses of spending controls for cards and cardholders. #### API ### Limit a cardholder’s monthly spend across all of their cards ```curl curl https://api.stripe.com/v1/issuing/cardholders/{{ISSUINGCARDHOLDER_ID}} \ -u "<>:" \ -d "spending_controls[spending_limits][0][amount]"=300000 \ -d "spending_controls[spending_limits][0][interval]"=monthly ``` ### Limit the spend and allowed categories for a single card ```curl curl https://api.stripe.com/v1/issuing/cards/{{ISSUINGCARD_ID}} \ -u "<>:" \ -d "spending_controls[allowed_categories][0]"=car_rental_agencies \ -d "spending_controls[spending_limits][0][amount]"=8000 \ -d "spending_controls[spending_limits][0][interval]"=per_authorization ``` ### Limit a cardholder’s weekly spend for specific categories ```curl curl https://api.stripe.com/v1/issuing/cards/{{ISSUINGCARD_ID}} \ -u "<>:" \ -d "spending_controls[spending_limits][0][amount]"=4000 \ -d "spending_controls[spending_limits][0][interval]"=weekly \ -d "spending_controls[spending_limits][0][categories][0]"=fast_food_restaurants ``` #### Dashboard You can access spending controls in the [Dashboard](https://dashboard.stripe.com/test/issuing/overview) and set them either for a cardholder, applying the controls across all associated cards, or for a specific card. 1. In the [Dashboard](https://dashboard.stripe.com/test/issuing/overview), go to a card or cardholder’s details page to view the spend controls. ![Dashboard spending controls](https://b.stripecdn.com/docs-statics-srv/assets/dashboard-spending-controls-1-usd.b4f0c5c774809a080a0f7f01e4554400.png) Cardholder spending controls. Limit a cardholder to 1000 USD per month. 1. To edit spend controls, click **Edit** to open the spend controls modal, then make your changes. ![Dashboard spending controls edit modal](https://b.stripecdn.com/docs-statics-srv/assets/spending-controls-modal.3a8707fe54a24b1fb28fc83a05a9a69e.png) 1. After you’ve made your changes, click **Save changes**.