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 (for example, bakeries), countries, merchant IDs, or card presence, and to set spending limits per authorization or per month. You can apply them to both Cards and Cardholders either by setting their spending_controls parameters when you create them or by updating them later.
Private preview
Merchant ID spending controls is in private preview. You must be an Issuing user to participate. To learn more or request access, contact Stripe.
You can set the following spending_controls parameters:
| Parameter | Type | Description |
|---|---|---|
allowed_categories | array | List of categories of authorizations to allow. All other categories will be blocked. |
blocked_categories | array | List of categories of authorizations to decline. All other categories will be allowed. |
spending_limits | array | List of objects that specify amount-based rules. |
allowed_merchant_countries | array | List of merchant countries to allow authorizations from. Authorizations from all other countries are blocked. |
blocked_merchant_countries | array | List of merchant countries to block authorizations from. Authorizations from all other countries are allowed. |
allowed_card_presences | array | List of card presences that are allowed. Authorizations with other card presence statuses are blocked. |
blocked_card_presences | array | List of card presences that are blocked. Authorizations with other card presence statuses are allowed. |
Spending controls run before real-time authorizations 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. |
interval | enum | Time interval that the amount applies to. See the Card spending_controls for the possible values. All date-based intervals start at midnight UTC. |
categories | array (optional) | List of categories 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 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 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, causing a spending limit to be exceeded.
Examples
The following examples demonstrate different uses of spending controls for cards and cardholders.
Limit a cardholder’s monthly spend across all of their cards
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
Limit the spend and allowed categories for a single card
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
Limit a card’s weekly spend for specific categories
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
Limit a card’s presence
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
