Spend control lets you declare velocity caps on each card without tracking the cardholder’s accrued spend yourself. You set the caps; the issuer enforces them at authorization time. Each card has two transaction-type buckets:Documentation Index
Fetch the complete documentation index at: https://partner-docs.contro.dev/llms.txt
Use this file to discover all available pages before exploring further.
sales— purchase (point-of-sale) transactionscash— cash withdrawal (ATM) transactions
| Cap key | Meaning |
|---|---|
perTransaction | Maximum amount per single transaction |
daily | Maximum total amount per calendar day |
monthly | Maximum total amount per calendar month |
allTime | Maximum total amount over the card’s lifetime |
Set spend control
$200 per transaction, $1,000 per day, and $50,000 over the card’s lifetime — and disables cash withdrawals entirely by setting an allTime cap of 0.
Read spend control
GET /partner/cards/{id} returns the active caps under spendControl. Where the card program supports it, accrued spend is reported under spendControl.spent:
Common patterns
Cash-disabled card. Setcash.allTime: 0 to block ATM withdrawals while leaving purchases uncapped.
Card program capabilities
Not every card program supports every cap horizon. Caps a program cannot enforce are rejected at request time with a400 and the message Card program "<name>" does not support <capKey> spend-control cap. Ask your Contro admin which caps the programs assigned to your account support.
Migrating from { limit }
The legacy body { "limit": 5000 } is still accepted on PATCH /partner/cards/{id}/limits and is mapped to:
null to clear the cap. The legacy limit field will be removed in a future release — switch to spendControl to take advantage of per-transaction-type caps and finer-grained horizons.