Control Card Spend
Define how, where, and how much a card can be used — with flexible limits at both program and card level.
Spend limits allow you to control how cards are used by defining restrictions on transaction amount, frequency, and usage channels. These controls help you minimize risk, enforce financial policies, and manage user-level spending behavior in real time.
How Spend Control Works
Spend limits follow an inheritance and override model, allowing you to enforce global controls while customizing limits for individual cards or users.
| Level | Scope | What It Controls |
|---|---|---|
| Card Program Limits | Global (Card Program) | Defines the maximum allowed spend for all cards under the program. |
| Card Limits | Individual | Defines custom spend limits for individual cards within program boundaries. |
Card Program limits act as upper caps (e.g., max $10,000/day). Card limits allow granular control within those caps
Types of Spend Limits
| Limit Type | What It Controls | Examples |
|---|---|---|
| Velocity Limits | Total spend over time | Daily, Monthly limits |
| Transaction Limits | Per transaction amount | Min / Max per purchase |
| Channel Limits | Spend by transaction type | ATM, POS, Online |
Scenarios
Spend limits are configured via API and enforced in real-time during transaction authorization. Card Program limits act as upper caps, while card-level limits provide granular control within those caps.
sequenceDiagram
participant App as Your Application
participant PCE as PCE
participant Network as Card Network
participant Merchant as Merchant
App->>PCE: POST /card/{id}/limit (set limits)
PCE->>PCE: Validate against Card Program caps
PCE-->>App: 200 — Limits configured
Note over Merchant,Network: Transaction attempt
Merchant->>Network: Authorization request
Network->>PCE: Check spend limits
PCE->>PCE: Validate amount, count, channel
alt Within limits
PCE-->>Network: APPROVED
else Exceeds limits
PCE-->>Network: DECLINED — limit exceeded
end
Network-->>Merchant: Authorization response
Before you begin (all scenarios)
- Card is issued and in
ACTIVEstatus. - Card Program allows card-level limit configuration.
- Requested limits are within Card Program maximum caps.
Scenario 1: Set Daily Spending Limit on a Card
Use this scenario to restrict how much a cardholder can spend per day. This is useful for employee expense cards, teen banking, or fraud prevention.
Business Context: A corporate finance team issues employee expense cards with a $750/day limit to prevent large unauthorized purchases.
You'll also need: Card Program supports card-level limits, requested amount is within program caps.
Request
POST /v1/customer/id/48201/issuance/card/id/55903/limit
{
"limit": {
"transactionType": "RETAIL",
"location": "DOMESTIC",
"amount": "750.00",
"frequency": "DAILY"
}
}All transactions are now checked against the $750/day limit. Daily limits reset at midnight in the cardholder's local timezone.
Scenario 2: Set Transaction Count Limit (ATM Withdrawals)
Use this scenario to restrict the number of ATM withdrawals per day to prevent card skimming attacks and control cash access.
Business Context: A neobank implements a 3 ATM withdrawal/day limit to reduce fraud exposure.
You'll also need: Card Program supports ATM transactions, card has ATM access enabled.
Request
POST /v1/customer/id/{customerId}/issuance/card/id/{cardId}/limit
{
"limit": {
"transactionType": "ATM",
"location": "DOMESTIC",
"count": 3,
"amount": "1000.00",
"frequency": "DAILY"
}
}The 4th ATM withdrawal attempt is automatically declined with "daily count exceeded".
Scenario 3: Set Online Purchase Limit
Use this scenario to control e-commerce spending separately from in-store purchases.
You'll also need: Card Program supports online (card-not-present) transactions.
Request
POST /v1/customer/id/{customerId}/issuance/card/id/{cardId}/limit
{
"limit": {
"transactionType": "ONLINE",
"location": "DOMESTIC",
"amount": "200.00",
"frequency": "DAILY"
}
}Online purchases are now capped at $200/day while in-store limits remain separate.
Scenario 4: Set Customer-Level Limits (Prepaid Cards)
Use this scenario to enforce budget limits across all prepaid cards under a customer.
Business Context: A company issues multiple prepaid cards to a department and wants to enforce a combined $5,000 daily budget across all cards.
You'll also need: Customer is BUSINESS type, Card Program is PREPAID type.
Request
POST /v1/customer/id/{customerId}/issuance/cardProgram/id/{cardProgramId}/limit
{
"limit": {
"transactionType": "RETAIL",
"location": "DOMESTIC",
"amount": "5000.00",
"frequency": "DAILY"
}
}The $5,000 daily limit is shared across all prepaid cards under this customer.
Scenario 5: Retrieve Current Card Limits
Use this scenario to check current spend limits and usage before making updates or investigating declined transactions.
Request
GET /v1/customer/id/{customerId}/issuance/card/id/{cardId}/limit
The response includes configured limits, used amounts, remaining amounts, and used counts.
Manage Card Spend Limits
Set or update limits at the individual card level for both Debit and Prepaid cards.
Retrieve Card Limits
Use the GET /v1/customer/id/{id}/issuance/card/id/{id}/limit to view current limits for a specific card.
Update Card Limits
Use the POST /v1/customer/id/{id}/issuance/card/id/{id}/limit to configure limits dynamically.
Configurable Parameters:
| Parameter | Required | Description |
|---|---|---|
limit.transactionType | ✓ | Transaction category (RETAIL, ATM, ONLINE) |
limit.location | ✓ | Geographical restriction (e.g., DOMESTIC) |
limit.count | Optional | Maximum number of transactions allowed per day |
limit.amount | Optional | Maximum total spend allowed per day |
limit.frequency | Optional | Time interval for the limit (currently supports DAILY) |
Manage Customer Spend Limits
Apply spend limits at the customer level for centralized control across cards.
Available only for Prepaid cards.
Retrieve Customer Limits
Use the GET /v1/customer/id/{id}/issuance/cardProgram/id/{id}/limit to view the customer’s allocated limits.
Update Customer Limits
Use the POST /v1/customer/id/{id}/issuance/cardProgram/id/{id}/limit to update limits for a specific card program.
Configurable Parameters:
| Parameter | Required | Description |
|---|---|---|
limit.transactionType | ✓ | Transaction category (RETAIL, ATM, ONLINE) |
limit.location | ✓ | Geographical restriction (e.g., DOMESTIC) |
limit.count | Optional | Maximum number of transactions allowed per day |
limit.amount | Optional | Maximum total spend allowed per day |
limit.frequency | Optional | Time interval for the limit (currently supports DAILY) |
How to Think About Spend Limits
- Card limits → control individual usage
- Customer limits (Prepaid) → enforce budget across multiple cards
All limits:
- Are validated against program constraints
- Can be updated dynamically via APIs
- Apply in real-time during transaction authorization
Updated 4 days ago