Welcome to our new developer portal! Use the "Ask" button to chat with our AI Agent.
For the complete documentation index, see llms.txt. This page is also available as Markdown.

Implement spending limits controls

Configure and manage card spending limits using the D1 API or D1 SDK.

Overview

Transaction Control provides APIs in the D1 API and D1 SDK to:

  • Enforce spending limits during authorization

  • Update spending limits on a card

  • Retrieve spending limit counters (current amount)

During authorization, Transaction Control compares the transaction amount to the cumulative counter for each configured limit.

If a transaction exceeds a configured card limit, D1 declines the authorization with status declined and reason VELOCITY_CHECK_FAIL:

Supported limit categories and periods

Spending limits are defined by the Issuer when onboarding a card product in D1.

For a given card product, you can define independent limits for each payment category:

  • Purchases

  • Withdrawals

For each category, you can define one or more limits for these periods:

  • Daily

  • Weekly

  • Monthly

  • Yearly

Weekly, monthly, and yearly periods can be fixed or rolling, depending on your configuration.

Limit types

D1 supports nested limit types. They define who can change what.

Nested limit types: card limits, max limits, and security limits.
  • card limits

    • Apply to the card at authorization time.

    • Can be updated by the End user (via D1 SDK).

    • Can be updated by the Issuer (via D1 API) from the Issuer backend.

  • max limits

    • Cap the card limits.

    • Can be updated only by the Issuer (via D1 API) from the Issuer backend.

    • A card limit cannot exceed its corresponding max limit.

  • security limits

    • Provide an additional ceiling for risk control.

    • Apply across all payment categories for a given period.

    • Are not exposed in the D1 API or D1 SDK.

    • Cannot be updated.

Counters (current amount)

D1 maintains a cumulative current amount counter for each configured category and period. It updates the counter at authorization time and checks it against card limits.

Counters tracked per category and period.
  • The Issuer can retrieve the current amount from the Issuer backend using the D1 API.

  • The End user can retrieve the current amount from the Issuer application using the D1 SDK.

User experience

Spending limits are inherited from the card product at card creation or registration time. You can then retrieve and update card limits using the D1 API or D1 SDK.

High-level flow to retrieve and update spending limits.

Flow

Manage controls with the D1 Backend API

Get and display current limits

Retrieve current limits using Get Card Settings.

Call Get Card Settings to retrieve the current spending limit configuration for a card.

Update spending limits

Update card limits using Update Card Limits.

Call Update Card Limits to update card limits (within the configured max limits).

Manage controls with the D1 SDK API

Get and display current limits

Retrieve current limits in the Issuer application using the D1 SDK.

Use the D1 SDK to display current card limits to the End user.

Update spending limits

Update spending limits in the Issuer application using the D1 SDK.

Use the D1 SDK to let the End user update card limits within the configured max limits.

Setup

Spending limits are defined at the card product level. The Issuer selects which spending limits to enable and sets default values. Default values use the card product currency.

Available spending limits:

Purchase
Withdrawal

Daily purchase

Daily withdrawal

Weekly purchase

Weekly withdrawal

Monthly purchase

Monthly withdrawal

Yearly purchase

Yearly withdrawal

Spending limits are inherited from the card product at card creation or registration time.

As explained above, the End user (via D1 SDK) and the Issuer (via D1 API) can update card limits.

Last updated

Was this helpful?