# ProcessingSettingsDto

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

Data transfer object containing all processing-related settings for a merchant,
including duplicate checks, card verification, level 2/3 data requirements, processor profiles,
auto-settlement configuration, and register assignments.

## Fields
- `duplicateCheck` ([DuplicateCheckSettings](https://devportal.demo.winkpg.io/docs/api/models/DuplicateCheckSettings.md)): Gets or sets the duplicate transaction detection settings.
  Fields:
  - `enable` (boolean): Retained for API compatibility and ignored by screening. Whether duplicate screening runs is  decided by the Duplicate Transaction Manager rule under Transaction Screening  (`Screening.Contributors.DuplicateTransaction.Enabled`), which is the configuration that  applies. This value round-trips through create, update and read unchanged, and nothing reads  it for a screening decision.
  - `includeInvoiceNumber` (boolean): Retained for API compatibility and ignored by screening. Whether the invoice number narrows  the duplicate window is decided by the Duplicate Transaction Manager rule under Transaction  Screening (`Screening.Contributors.DuplicateTransaction.IncludeInvoiceNumber`), which is  the configuration that applies. This value round-trips through create, update and read  unchanged, and nothing reads it for a screening decision.
  - `allowOverride` (boolean): Whether a single transaction request may waive the Duplicate Transaction Manager rule. Unlike  the two settings above this one is live: it is the only duplicate-check permission carried on  the merchant, and the screening rule honours it per request.
- `orderDataDefaults` ([OrderDataDefaultSettings](https://devportal.demo.winkpg.io/docs/api/models/OrderDataDefaultSettings.md)): Gets or sets the default order data values applied to transactions when not explicitly provided.
  Fields:
  - `enable` (boolean)
  - `applyLevel2DefaultsToApi` (boolean)
  - `applyLevel3DefaultsToApi` (boolean)
  - `applyLevel2DefaultsToVt` (boolean)
  - `applyLevel3DefaultsToVt` (boolean)
  - `applyLevel2DefaultsToHpp` (boolean): Whether Level 2 defaults apply to Hosted Payment Page transactions.  `null` means "follow `applyLevel2DefaultsToApi`", which is the behaviour every  merchant document written before this toggle existed already had: hosted page transactions were  bucketed under the API toggle. (nullable)
  - `applyLevel3DefaultsToHpp` (boolean): Whether Level 3 defaults apply to Hosted Payment Page transactions.  `null` means "follow `applyLevel3DefaultsToApi`". See  `applyLevel2DefaultsToHpp` for why. (nullable)
  - `defaultMerchantZip` (string): Default merchant zip code for L2 enhanced data. When set, takes priority over the merchant's contact address zip. (nullable, max length 10)
  - `defaultTaxRate` (number(double)): Default tax rate for L2/L3 enhanced data. Takes priority over the VT tax field's default rate.  Expressed as a percentage (e.g., 8.25 for 8.25%) or as a decimal (e.g., 0.0825). (nullable, min 0)
  - `defaultShipFromZip` (string): Default ship-from zip code for L3 enhanced data. When set, takes priority over the merchant's contact address zip. (nullable, max length 10)
  - `defaultDestinationCountryCode` (string): Default destination country code for L3 enhanced data (ISO 3166-1 alpha-3, e.g., "USA"). (nullable, max length 3)
  - `defaultDutyAmount` (number(double)): Default duty amount for L3 enhanced data. Set to 0.00 for domestic-only merchants. (nullable, min 0)
  - `defaultFreightAmount` (number(double)): Default freight/shipping amount for L3 enhanced data. (nullable, min 0)
  - `defaultDiscountAmount` (number(double)): Default header-level discount amount for L3 enhanced data. (nullable, min 0)
  - `defaultLineItemValues` ([LineItemDefaults](https://devportal.demo.winkpg.io/docs/api/models/LineItemDefaults.md)): Default field values applied to every new line item added in the Virtual Terminal. Conditional: When DefaultLineItemValues is not null.
  - `defaultLineItem` ([Level3LineItem](https://devportal.demo.winkpg.io/docs/api/models/Level3LineItem.md)): A template line item that auto-populates as the first line item on new transactions.  Useful for single-product merchants (parking, subscriptions, recurring services).  When null, no template line item is added.
- `cardVerification` ([CardVerificationSettings](https://devportal.demo.winkpg.io/docs/api/models/CardVerificationSettings.md)): Gets or sets the AVS and CVV card verification settings that control transaction approval behavior.
  Fields:
  - `avNoMatch` (boolean)
  - `avPartialMatch` (boolean)
  - `avPartialMatchIntl` (boolean)
  - `avNoMatchIntl` (boolean)
  - `avMatchIntl` (boolean)
  - `avError` (boolean)
  - `avMatchUK` (boolean)
  - `avNotSupportedIntl` (boolean)
  - `avIntlNoMatch` (boolean)
  - `avMatchIntlBoth` (boolean)
  - `avZipMatchIntl` (boolean)
  - `avRetry` (boolean)
  - `avNotSupported` (boolean)
  - `avUnavailable` (boolean)
  - `avZipPartialMatch9Digit` (boolean)
  - `avZipMatch9Digit` (boolean)
  - `avZipMatch5Digit` (boolean)
  - `avZipPartialMatch5Digit` (boolean)
  - `cvvMatch` (boolean)
  - `cvvNoMatch` (boolean)
  - `cvvNotProcessed` (boolean)
  - `cvvNotProvided` (boolean)
  - `cvvIssuerNotCertified` (boolean)
  - `cvvUnableToProcess` (boolean)
- `requireLevel2Data` (boolean): Gets or sets a value indicating whether card bins qualifying for level 2 processing are required  to supply level 2 data (manually or via order data defaults).
- `requireNameOnCard` (boolean): Gets or sets a value indicating whether the cardholder name must be provided  with the transaction regardless of entry mode.
- `requireZipCode` (boolean): Gets or sets a value indicating whether the billing zip code must be provided  with the transaction regardless of entry mode or AVS settings.
- `requireShipping` (boolean): Gets or sets a value indicating whether the shipping amount must be provided with the transaction.
- `enableForceCapture` (boolean): Gets or sets a value indicating whether force capture transactions are allowed for this merchant.
- `requestProcessorToken` (boolean): Merchant preference for requesting a processor-issued reusable token at authorization  time, referenced elsewhere as `Processing.RequestProcessorToken`. Tri-state:  `null` (the default) means "auto", resolved ON wherever the routed  processor advertises processor tokenization; `true` / `false`  force the preference on or off. Surfaced on the merchant Processing tab as a tri-state  selector (Auto / Always request / Never request); carried on the DTO so the value  round-trips through the merchant create/update flow. (nullable)
- `enableCreateIdempotency` (boolean): Opt-in for caller-facing create idempotency on the transaction-create surface, referenced  elsewhere as `Processing.EnableCreateIdempotency`. When `true`, a  caller-supplied `idempotencyKey` on a create is validated and claimed, so a retried  create returns the original transaction instead of charging again. `false`  means off. `null` means the merchant sets no value and inherits its reseller's  create-idempotency default; with no reseller default set, that resolves to off, as it always  has. (nullable)
- `enhancedDataEnforcement` ([EnhancedDataEnforcementMode](https://devportal.demo.winkpg.io/docs/api/models/EnhancedDataEnforcementMode.md)): How hard the platform pushes back on a commercial-card sale whose enhanced data is unlikely to  earn a Visa CEDP or Mastercard Data Rate interchange rate, referenced elsewhere as  `Processing.EnhancedDataEnforcement`. `Off` (the default) changes nothing.  `Warn` adds an `enhancedDataQualification` preview to the create response for a  commercial card and shows the same findings in the Virtual Terminal. `Strict` refuses a  commercial Visa or Mastercard sale that carries findings instead of capturing it.  `null` means the merchant has expressed no preference and behaves as  `Off`. Conditional: When EnhancedDataEnforcement is not null. (nullable)
  Values:
  - `Off`: Nothing is added to a capture surface or a create response. The default, and what an unconfigured merchant resolves to.
  - `Warn`: Findings are reported and the sale goes through: the create response carries a preview of the assessment, and the Virtual Terminal shows the warnings it already shows.
  - `Strict`: A commercial Visa or Mastercard sale carrying findings is refused rather than captured. The Virtual Terminal blocks the submit and the API answers a validation error. Findings from the junk-data heuristics (a description that is the merchant name, a generic word, a single character, a pipe character) are reported but never refuse: they are advisory under every mode.
- `cardAcceptancePolicy` ([CardAcceptancePolicyDto](https://devportal.demo.winkpg.io/docs/api/models/CardAcceptancePolicyDto.md)): The cards this merchant is willing to take, judged from the card's BIN by funding source  (credit, debit, prepaid), issued entity (consumer, commercial, GSA) and issuer country,  referenced elsewhere as `Processing.CardAcceptancePolicy`. `null` (the  default) accepts every card, which is what the platform did before this setting existed. Conditional: When CardAcceptancePolicy is not null.
  Fields:
  - `acceptCredit` (boolean): Whether credit cards are accepted. Omitted or null accepts them. (nullable)
  - `acceptDebit` (boolean): Whether debit cards are accepted. Omitted or null accepts them. (nullable)
  - `acceptPrepaid` (boolean): Whether prepaid cards are accepted. Omitted or null accepts them. Prepaid is an overlay on  the debit or credit rail, so a prepaid debit card is refused if either this or  `acceptDebit` is off. (nullable)
  - `acceptConsumer` (boolean): Whether consumer (personally issued) cards are accepted. Omitted or null accepts them. (nullable)
  - `acceptCommercial` (boolean): Whether commercial cards are accepted. Omitted or null accepts them. A GSA card is judged by  `acceptGsa` alone, so turning this off does not refuse government purchase cards. (nullable)
  - `acceptGsa` (boolean): Whether GSA (US government purchase) cards are accepted. Omitted or null accepts them. (nullable)
  - `issuerCountryMode` ([IssuerCountryMode](https://devportal.demo.winkpg.io/docs/api/models/IssuerCountryMode.md)): How the issuer country is judged. Omitted or null means  `Any`, which does not consider the issuer country at all. Conditional: When IssuerCountryMode is not null. (nullable)
    Values:
    - `Any`: Issuer country is not considered. The default.
    - `DomesticOnly`: Only cards issued in the merchant's own country are accepted.
    - `AllowList`: Only cards issued in one of the listed countries are accepted.
    - `DenyList`: Cards issued in one of the listed countries are refused; all others are accepted.
  - `issuerCountries` (array<string>): The ISO 3166-1 alpha-2 issuer country codes the mode operates on. Required and non-empty for  `AllowList` and  `DenyList`, and must be empty for  the other two modes. Conditional: When IssuerCountries is not null. Conditional: When IssuerCountries is not null and IssuerCountries.Count > 1. Conditional: When RequiresCountries(IssuerCountryMode) is true. Conditional: When RequiresCountries(IssuerCountryMode) is false. (nullable)
  - `unknownBinPosture` ([UnknownBinPosture](https://devportal.demo.winkpg.io/docs/api/models/UnknownBinPosture.md)): What happens when the card's BIN cannot be resolved. Omitted or null means  `Accept`, which is what the  platform has always done. Conditional: When UnknownBinPosture is not null. (nullable)
    Values:
    - `Accept`: Take the card anyway. The default, and what the platform did before this policy existed: a BIN miss is a gap in reference data, not a signal about the card.
    - `Decline`: Refuse the card. For a merchant whose restrictions matter more than the sale, so a card the platform cannot classify is not silently let through.
- `cashPolicy` ([CashPolicyDto](https://devportal.demo.winkpg.io/docs/api/models/CashPolicyDto.md)): The merchant's rules for cash sales and refunds, referenced elsewhere as  `Processing.CashPolicy`. `null` (the default) applies no cash rule, which  is what the platform did before this setting existed. Conditional: When CashPolicy is not null.
  Fields:
  - `maxTransactionAmount` (number(double)): The largest amount a single cash sale may be, in major units of the transaction currency  (500.00 means five hundred). Omitted or null sets no maximum. Zero or greater when set. Conditional: When MaxTransactionAmount is not null. Must be >= 0. (nullable)
  - `managerApprovalThreshold` (number(double)): The amount above which a cash sale needs a manager's approval, in major units of the  transaction currency. Omitted or null never requires approval. Zero or greater when set, and no greater than `maxTransactionAmount`  when both are set. Conditional: When ManagerApprovalThreshold is not null. Must be >= 0. Conditional: When ManagerApprovalThreshold is not null and MaxTransactionAmount is not null. (nullable)
  - `refundPolicy` ([CashRefundPolicy](https://devportal.demo.winkpg.io/docs/api/models/CashRefundPolicy.md)): How a sale paid in cash is refunded. Omitted or null means `ManagerDiscretion`, which  leaves the choice to the person taking the refund. Conditional: When RefundPolicy is not null. (nullable)
    Values:
    - `CashBack`: The refund is paid out in cash.
    - `StoreCredit`: The refund is issued as store credit rather than cash.
    - `OriginalTenderOnly`: The refund goes back only to the tender the sale was paid with, and no other refund method is offered.
    - `ManagerDiscretion`: A manager decides how each refund is paid.
  - `tillTrackingRequired` (boolean): Whether a cash transaction has to name the till (cash drawer) it was taken into. Omitted or  null does not require one. (nullable)
  - `allowNonTerminalSources` (boolean): Whether a cash transaction may be recorded from a source other than the Virtual Terminal,  such as the API, recurring billing, invoicing or an offline batch. Omitted, null and  `true` allow it; only `false` restricts cash to the Virtual Terminal. (nullable)
  - `cashBackRefundMaxAmount` (number(double)): The largest refund of a cash sale that may be paid back in cash, in major units of the  transaction currency. Omitted or null sets no cap.  Zero or greater when set, and no greater than `maxTransactionAmount` when both  are set. Conditional: When CashBackRefundMaxAmount is not null. Must be >= 0. Conditional: When CashBackRefundMaxAmount is not null and MaxTransactionAmount is not null. (nullable)
- `taxShippingAmount` (boolean): Whether the auto-calculated tax on the Virtual Terminal and the hosted payment page is computed  on the base amount plus the shipping amount. `null` (the default) and  `false` compute it on the base amount alone. (nullable)
- `surchargeIncludesShipping` (boolean): Whether the surcharge percentage applies to the base amount plus the shipping amount.  `null` (the default) and `false` apply it to the base amount  alone. (nullable)
- `convenienceFeeIncludesShipping` (boolean): Whether a percentage convenience fee, and the percentage caps that bound it, apply to the base  amount plus the shipping amount. `null` (the default) and `false`  apply them to the base amount alone. A flat convenience fee is unaffected. (nullable)
- `taxGatewayFees` (boolean): Whether the auto-calculated tax on the Virtual Terminal and the hosted payment page includes the  surcharge or convenience fee the page shows before the payment is submitted.  `null` (the default) and `false` compute the tax without either  fee. (nullable)
- `processorProfiles` (array<[ProcessorProfileDto](https://devportal.demo.winkpg.io/docs/api/models/ProcessorProfileDto.md)>): Gets or sets the collection of processor profiles configured for this merchant.  Each profile maps a payment processor and its supported payment types. (nullable)
  Fields of each item:
  - `processorProfileId` (string(uuid)): Gets or sets the unique identifier of this processor profile.
  - `merchantId` (string(uuid)): Corresponding merchant id
  - `paymentTypes` (array<[ProcessorProfilePaymentType](https://devportal.demo.winkpg.io/docs/api/models/ProcessorProfilePaymentType.md)>): Payment types turned on for this profile. (nullable)
  - `isActive` (boolean): Shows if the current profile is active or not.
  - `enabledTenders` ([TenderEnableFlags](https://devportal.demo.winkpg.io/docs/api/models/TenderEnableFlags.md)): Per-tender enable flags applied by the capability cascade at the  processor-account layer. `null` indicates "all disabled" for legacy  profiles that have never opted in to a non-credit tender.
  - `merchantProcessorConfiguration` ([MerchantProcessorConfigurationDto](https://devportal.demo.winkpg.io/docs/api/models/MerchantProcessorConfigurationDto.md)): Corresponding configuration holding the details of the processor.
  - `merchantConcurrencyStamp` (string): The merchant's concurrency stamp after the write that returned this profile, or  `null` on a read. (nullable)
  - `datawireRegistration` ([ProcessorProfileDatawireRegistrationDto](https://devportal.demo.winkpg.io/docs/api/models/ProcessorProfileDatawireRegistrationDto.md)): What automatic Datawire registration did during the write that returned this profile. Absent  when it did not run (any non-Fiserv profile, a Fiserv profile that already carries a Datawire  ID, and every read).
  - `webhookRegistrationToken` (string): The token in this profile's webhook registration URL, for a processor whose provider sends  webhooks to a URL registered per merchant. Absent for every other processor. (nullable)
- `screeningProviderProfiles` (array<[ScreeningProviderProfileDto](https://devportal.demo.winkpg.io/docs/api/models/ScreeningProviderProfileDto.md)>): Gets or sets the external screening providers configured for this merchant. Each profile points  at a registered screening provider and carries that provider's per-merchant field values. Conditional: When ScreeningProviderProfiles is not null. (nullable)
  Fields of each item:
  - `screeningProviderProfileId` (string(uuid)): Unique identifier of this screening provider profile. Server-assigned on add; any value supplied  on input to the sub-resource surface is ignored.
  - `merchantId` (string(uuid)): The owning merchant. Stamped by the server; a value supplied on input is overwritten.
  - `isActive` (boolean): Whether this profile is consulted. Only an active profile participates in the exclusivity rule  against the merchant's active processor profiles.
  - `configuration` ([MerchantScreeningProviderConfigurationDto](https://devportal.demo.winkpg.io/docs/api/models/MerchantScreeningProviderConfigurationDto.md)) required: The provider identity and its per-merchant field values.
  - `reviewAction` ([ScreeningReviewAction](https://devportal.demo.winkpg.io/docs/api/models/ScreeningReviewAction.md)): What the platform does when this provider asks for a human decision rather than answering  accept or decline. Omit (or send `null`) for the default,  `Audit`: record the verdict on the transaction and continue. (nullable)
    Values:
    - `Audit`: Record the review verdict on the transaction and continue to authorization. The default.
    - `Stop`: Treat the review verdict as a rejection: halt the flow before authorization, exactly as a provider decline does.
    - `HoldForReview`: Park the transaction before authorization and wait for a reviewer to dispose of it, rather than deciding the sale on the provider's behalf in either direction.
  - `onFailureBehavior` ([ScreeningFailureBehavior](https://devportal.demo.winkpg.io/docs/api/models/ScreeningFailureBehavior.md)): What the platform does when this provider cannot give a decision at all: a timeout, an error, an  Unavailable verdict, or a skipped call because the provider's circuit breaker is open. Omit (or  send `null`) for the default,  `ContinueWithAudit`: record the non-decision on the  transaction and continue to authorization. (nullable)
    Values:
    - `ContinueWithAudit`: Record the non-decision on the transaction and continue to authorization. The default.
    - `HardStop`: Halt the transaction before authorization, with a client-safe error saying screening was unavailable. Deliberately distinct from a provider decline: nothing has judged the transaction risky, the platform simply could not ask.
  - `timeoutMs` (integer(int32)): How long one call to this provider may take before it is abandoned and recorded as a timeout, in  milliseconds. Accepted range is `MinimumMs` to  `MaximumMs`; omit for the default,  `DefaultMs`. (nullable, min 250, max 30000)
  - `reviewHoldDeadlineMinutes` (integer(int32)): How long a transaction held for manual review may wait for a reviewer's disposition, in minutes.  Accepted range is `MinimumDeadlineMinutes` to  `MaximumDeadlineMinutes`; omit for the default,  `DefaultDeadlineMinutes`. Conditional: When ReviewAction != HoldForReview. (nullable, min 15, max 43200)
  - `reviewHoldExpiryAction` ([ReviewHoldExpiryAction](https://devportal.demo.winkpg.io/docs/api/models/ReviewHoldExpiryAction.md)): What happens to a held transaction whose deadline elapsed with no reviewer disposition. Omit (or  send `null`) for the default,  `Decline`: an  unanswered review is not an approval. Conditional: When ReviewAction != HoldForReview. (nullable)
    Values:
    - `Decline`: Decline the held transaction when the deadline passes, exactly as a reviewer rejection would. The default.
    - `ApproveAndContinue`: Release the held transaction to authorization when the deadline passes, recording that it was approved by expiry rather than by a reviewer.
- `processorRoutingRuleSet` ([ProcessorRoutingRuleSetDto](https://devportal.demo.winkpg.io/docs/api/models/ProcessorRoutingRuleSetDto.md)): Gets or sets this merchant's conditional processor routing rule set: an ordered, first-match  list of rules that send a transaction to one of the merchant's own processor accounts based on  deterministic attributes of that transaction.
  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.
  - `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)
- `autoSettlement` ([AutosettlementSettings](https://devportal.demo.winkpg.io/docs/api/models/AutosettlementSettings.md)): Gets or sets the auto-settlement configuration that controls automatic batch settlement behavior.
  Fields:
  - `enable` (boolean)
  - `settlementTime` (string(date-time)): The time of day (UTC) at which this merchant's batch is closed by auto settlement. (nullable)
  - `sendMerchantEmail` (boolean)
  - `userNotificationType` ([MerchantAutosettleEmailUserType](https://devportal.demo.winkpg.io/docs/api/models/MerchantAutosettleEmailUserType.md)): Defines the type of user associated with an autosettle email notification for a merchant.
    Values:
    - `Primary`
    - `All`
  - `additionalEmailNotifications` (array<[EmailAddress](https://devportal.demo.winkpg.io/docs/api/models/EmailAddress.md)>): (nullable)
  - `currentBatchIds` (object): Per-processor open batch IDs for this merchant, keyed by lower-cased processor key  (e.g. `"tsys"`, `"loopback"`). Transactions authorized for a given processor  while its batch is open are stamped with that processor's ID. When settlement starts,  only the rotating processor's entry is rotated to a new value: sibling processors'  boundaries are unaffected. Empty until the first settlement run or first transaction  that needs batch assignment.  Format: `{merchantId-short}:{date}:{sequence}`. (nullable)
  - `currentBatchId` (string): Deprecated single batch ID, kept for reading older settings only. When  `currentBatchIds` has no entry for a processor, the server treats this value as  that processor's open batch. The first successful batch rotation populates  `currentBatchIds` for that processor and clears this value. The server never  writes this field; use `currentBatchIds` instead. (nullable, deprecated)
- `registers` (array<[MerchantRegister](https://devportal.demo.winkpg.io/docs/api/models/MerchantRegister.md)>): Gets or sets the collection of registers (point-of-sale terminals) assigned to this merchant. (nullable)
  Fields of each item:
  - `id` (string(uuid))
  - `friendlyId` (string) required: A user-friendly identifier for this register. Required. (nullable, min length 3, max length 20)
  - `name` (string): A unique name for this register. Optional. (nullable)
  - `description` (string): A brief description of this register and/or its purpose. Optional. (nullable, max length 40)
  - `enabled` (boolean)
  - `terminal1` ([RegisterTerminal](https://devportal.demo.winkpg.io/docs/api/models/RegisterTerminal.md))
  - `terminal2` ([RegisterTerminal](https://devportal.demo.winkpg.io/docs/api/models/RegisterTerminal.md))
  - `terminal3` ([RegisterTerminal](https://devportal.demo.winkpg.io/docs/api/models/RegisterTerminal.md))
  - `terminal4` ([RegisterTerminal](https://devportal.demo.winkpg.io/docs/api/models/RegisterTerminal.md))
  - `terminal5` ([RegisterTerminal](https://devportal.demo.winkpg.io/docs/api/models/RegisterTerminal.md))
  - `legacyNumber` (integer(int64)): The integer key the v1 API addresses this register by (its `RegisterKey`). Server-owned:  allocated once, when the register is first saved, and never reassigned. (nullable)

## See also

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