# ProcessorRoutingRuleSetDto

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

A merchant's conditional processor routing configuration: an ordered, first-match list of rules
that send a transaction to one of the merchant's own processor profiles.

## Fields
- `enabled` (boolean): Whether this merchant's rule set is active. Defaults to `false`.
- `attestation` ([ProcessorRoutingAttestationDto](https://devportal.demo.winkpg.io/docs/api/models/ProcessorRoutingAttestationDto.md)): The confirmation that every processor profile these rules target belongs to the same legal  entity as the merchant. Required: When Enabled is true. Conditional: When Attestation is not null.
  Fields:
  - `attestedBy` (string(uuid)): The id of the user who attested. Server-populated; any value supplied on input is ignored. (nullable)
  - `attestedAtUtc` (string(date-time)): When the attestation was recorded, in UTC. Server-populated; any value supplied on input is  ignored. (nullable)
  - `note` (string): Optional free-text note, for example the entity or ownership evidence the attesting user  relied on. (nullable, max length 1024)
- `rules` (array<[ProcessorRoutingRuleDto](https://devportal.demo.winkpg.io/docs/api/models/ProcessorRoutingRuleDto.md)>): The rules, in evaluation order. The first active rule whose conditions all match wins. Conditional: When Rules is not null. (nullable)
  Fields of each item:
  - `name` (string): Operator-facing label for this rule. Carries no matching semantics. (nullable, max length 128)
  - `isActive` (boolean): Whether this rule participates in evaluation. An inactive rule is skipped entirely.
  - `cardBrands` (array<string>): Card brands this rule matches, as canonical lowercase tokens ("visa", "mastercard", "amex",  "discover", "jcb", "diners", "unionpay", "interac"). Omit or send an empty list to match every  brand. Recognized spellings are normalized on save, so "Visa" is stored as "visa"; an  unrecognized brand is rejected. Conditional: When CardBrands is not null. (nullable)
  - `tenderTypes` (array<[CardTenderType](https://devportal.demo.winkpg.io/docs/api/models/CardTenderType.md)>): Card-rail tenders this rule matches. Omit or send an empty list to match every tender. Conditional: When TenderTypes is not null. (nullable)
    Values:
    - `CreditDebit`: Standard credit/debit card. The current card-rail behaviour. isDebitRouting modulates whether the request prefers debit-network routing within this rail.
    - `EbtSnap`: EBT SNAP (food benefits). Routes through the EBT SNAP processor lane and requires PIN + card-present per program rules.
    - `EbtCash`: EBT Cash (cash benefits). Distinct rail from SNAP; supports cashback where SNAP does not. PIN + card-present required.
    - `Ewic`: eWIC (Women, Infants, and Children). Distinct rail from EBT, with item-level eligibility / voucher-select flow handled in the eWIC follow-up epic.
  - `amountMin` (number(double)): Inclusive lower bound on the transaction amount. Omit for no lower bound. Conditional: When AmountMin is not null and AmountMax is not null. (nullable, min 0)
  - `amountMax` (number(double)): Inclusive upper bound on the transaction amount. Omit for no upper bound. (nullable, min 0)
  - `channels` (array<[TransactionSource](https://devportal.demo.winkpg.io/docs/api/models/TransactionSource.md)>): Origination channels this rule matches. Accepts only VirtualTerminal, HostedPaymentPage, Api,  and RecurringBilling. Omit or send an empty list to match every channel. Conditional: When Channels is not null. (nullable)
    Values:
    - `Unknown`: The source of the transaction is unknown or not specified.
    - `VirtualTerminal`: The transaction originated from a virtual terminal interface.
    - `Api`: The transaction was initiated through an API call.
    - `HostedPaymentPage`: The transaction was processed via a hosted payment page.
    - `RecurringBilling`: The transaction is part of a recurring billing cycle.
    - `OfflineBatch`: The transaction was processed as part of an offline batch.
    - `Invoicing`: The transaction is an automatic charge against an invoice (e.g. a recurring-invoice auto-charge or a smart-retry attempt) submitted by the Invoicing module.
  - `targetProcessorProfileId` (string(uuid)) required: The processor profile a matching transaction is routed to. Must be one of the merchant's own  profiles, and that profile must be active.
  - `fallthroughOnUnavailable` (boolean): What happens when this rule matches but its target profile cannot be used. The default,  `false`, is strict: decline rather than route somewhere the operator did not  choose. `true` falls through to the merchant's ordinary processor selection.

## See also

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