📄 Guide
A velocity rule is a standalone, company-owned object assembled from five control groups:purchaseControl (purchases), cashAdvanceControl (cash withdrawals), currencyControl (currency list), mccControl (merchant-category list), and geographicControl (region list). A newly created rule is ACTIVE, yet constrains nothing until it is bound to a card or an employee — binding is covered in Binding and unbinding, and the overall model in Setting spend limits.
Create a rule
POST /open-api-corp/velocity/v1/create-rule
Request parameters: top level
ruleRef is an idempotency key: after a cardNetwork timeout, retry with the same ruleRef and DCS will not create a duplicate rule — it returns the result of the first creation unchanged.Request parameters: purchaseControl
OmitpurchaseControl to leave purchases unlimited.
Request parameters: cashAdvanceControl
OmitcashAdvanceControl to leave withdrawals unlimited. The one difference from the purchase group is the group-level switch allowed: whenever this group is configured, allowed is required, and false bans withdrawals outright.
Request parameters: the three list controls
All three lists share the same shape: atype (WHITELIST / BLACKLIST) plus a non-empty detail list.
Response data
The responsedata is the complete rule object: it echoes all five control groups (an unconfigured group comes back as null, and so does any unconfigured field within a group), plus the following platform-managed fields:
Request example
Response example
Error codes
The full code set is in the Error code dictionary.
Next steps
- Bind the rule to cards or employees so it takes effect: Binding and unbinding
- Query merged effective quotas, update or toggle rules: Quota query and adjustment

