# VelocityContributorConfig

A model the API reference uses in a request or a response. The operation pages link every field typed as this model here.

Velocity Handler configuration: how many transactions, and how much value, this merchant may
run inside each window.

## Fields
- `enabled` (boolean): Whether this rule runs. False, the default, means the rule is skipped and never flags a  transaction. A rule that is enabled but has no usable settings also screens nothing.
- `actionWhenTriggered` ([ActionWhenTriggeredType](https://devportal.demo.winkpg.io/docs/api/models/ActionWhenTriggeredType.md)): What happens when this rule flags a transaction. `AuditOnly`, the default, records the  detection and lets the transaction continue. `Stop` halts the transaction before  authorization, and the caller receives HTTP 403 with the error code  `SCREENING_STOPPED`. `HoldForReview` parks the transaction on the fraud review  queue until a reviewer approves or declines it, or the merchant's hold deadline passes.  Whatever the action, the verdict is recorded on the transaction.
  Values:
  - `AuditOnly`
  - `Stop`
  - `HoldForReview`
- `settings` ([VelocitySettings](https://devportal.demo.winkpg.io/docs/api/models/VelocitySettings.md)): The velocity limits. Null leaves the rule unconfigured, which screens nothing.
  Fields:
  - `maxTxPerMinute` (integer(int32)): Maximum transactions allowed in a window of about a minute. Null or 0 leaves the per-minute  limit off. Minimum 0. (nullable, min 0)
  - `maxTxPerHour` (integer(int32)): Maximum transactions allowed in a window of about an hour. Null or 0 leaves the per-hour  limit off. Minimum 0. (nullable, min 0)
  - `maxTxPerDay` (integer(int32)): Maximum transactions allowed in a window of about a day. Null or 0 leaves the per-day  limit off. Minimum 0. (nullable, min 0)
  - `maxAmountPerDay` (number(double)): Maximum total transaction amount, in the transaction currency, allowed in a window of about  a day. Only the base amount counts. Null or 0 leaves the daily amount limit off. Minimum 0. (nullable, min 0)
  - `maxDeclinesPerHour` (integer(int32)): Maximum processor declines this merchant may receive in a window of about an hour before  the next screened transaction is flagged. Only a decline returned by the processor counts,  and it is counted when the authorization completes, so the transaction that reaches the  limit is not itself flagged. Null or 0 leaves the hourly decline limit off. Minimum 0. (nullable, min 0)
  - `maxDeclinesPerDay` (integer(int32)): Maximum processor declines this merchant may receive in a window of about a day before the  next screened transaction is flagged. Counted the same way as  `maxDeclinesPerHour`. Null or 0 leaves the daily decline limit off. Minimum 0. (nullable, min 0)
  - `perCard` ([VelocityCardLimits](https://devportal.demo.winkpg.io/docs/api/models/VelocityCardLimits.md)): Limits counted separately for each card. A card is recognized by a keyed fingerprint of its  number, or of its token or check number when no card number is present; the number itself  is never stored. Null leaves every per-card limit off.
  - `perIpAddress` ([VelocityDimensionLimits](https://devportal.demo.winkpg.io/docs/api/models/VelocityDimensionLimits.md)): Limits counted separately for each cardholder IP address. A transaction with no cardholder  IP address is not counted against these limits. Null leaves every per-IP limit off.
  - `perEmail` ([VelocityDimensionLimits](https://devportal.demo.winkpg.io/docs/api/models/VelocityDimensionLimits.md)): Limits counted separately for each cardholder email address, compared without regard to  case or surrounding spaces. A transaction with no cardholder email is not counted against  these limits. Null leaves every per-email limit off.
  - `perDevice` ([VelocityDimensionLimits](https://devportal.demo.winkpg.io/docs/api/models/VelocityDimensionLimits.md)): Limits counted separately for each cardholder device, recognized by the platform device  fingerprint stamped on the transaction when it is created. The fingerprint is coarse: it is  derived from the browser's user agent and language and the network the request came from,  so devices on one network running the same browser build share a count, and a device whose  network changes starts a new one. A transaction with no device fingerprint, such as one  created server to server with no browser involved, is not counted against these limits.  Null leaves every per-device limit off.

## See also

- [All documentation](https://devportal.demo.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
