# UpdateSurchargeConfigurationDto

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

Input for updating a merchant's existing surcharge configuration (rate, channels, network
policies). Carries the `concurrencyStamp` read from the current configuration for
optimistic concurrency.

## Fields
- `defaultRate` (number(double)): Default surcharge rate (decimal fraction, 0.03 = 3%) when no network override applies. Conditional: When DefaultRate is not null. Range: 0 to 0.03. Conditional: When DefaultRate is not null and AttestedCostOfAcceptanceRate is not null. Must be <= . (nullable)
- `attestedCostOfAcceptanceRate` (number(double)): The merchant's attested effective cost of acceptance (decimal fraction, 0.024 = 2.4%), sourced  from their statement analysis. A surcharge may never exceed this, so a configured rate above it  (or above the 3% network cap) is rejected at save. Supplying a value records the attestation with  the acting user and a timestamp; null leaves it unattested and withdraws any prior attestation. Conditional: When AttestedCostOfAcceptanceRate is not null. Range: 0 to 1. (nullable)
- `channelRestrictions` ([SurchargeChannelFlags](https://devportal.demo.winkpg.io/docs/api/models/SurchargeChannelFlags.md)): A combination of channel flags. Send member names separated by a comma and a space (for example  "Api, HostedPaymentPage") or the integer sum (VirtualTerminal = 1, Api = 2, HostedPaymentPage = 4,  RecurringBilling = 8). None (0) turns surcharging off on every channel. Replaced on update; null  or omitted stores no channels. Conditional: When ChannelRestrictions is not null. Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names. (nullable)
  Values:
  - `None`: No channels enabled.
  - `VirtualTerminal`: Merchant-operated virtual terminal.
  - `Api`: Direct API integrations.
  - `HostedPaymentPage`: Hosted payment pages.
  - `RecurringBilling`: Recurring / scheduled billing.
- `networkPolicies` (array<[SurchargeNetworkPolicyDto](https://devportal.demo.winkpg.io/docs/api/models/SurchargeNetworkPolicyDto.md)>): Per-network surcharge policies. Replaces the stored set in full on update. Conditional: When NetworkPolicies is not null. (nullable)
  Fields of each item:
  - `network` (string) required: The card network this policy applies to. Required, and it must be one of these spellings: Visa;  Mastercard, Master Card or MC; Discover; Amex or American Express; JCB; Diners, Diners Club or  Diners Club International; UnionPay, Union Pay, China Union Pay, China UnionPay or CUP; Interac.  Case and surrounding spaces are ignored, and the name is stored and returned as sent. A  configuration names each network once: two spellings of one network (Mastercard and MC) are the  same network. (nullable, max length 64)
  - `isAllowed` (boolean) required: Whether surcharging is allowed on this network. (nullable)
  - `customRate` (number(double)): Optional network-specific rate override (decimal fraction); null uses the default rate. Conditional: When CustomRate is not null. Range: 0 to 0.03. (nullable)
- `differentialNetworkRatesAttested` (boolean): Attests that differing surcharge rates across the allowed card networks carry documented legal  signoff. Must be true whenever `networkPolicies` resolves to more than one distinct  rate across the allowed networks; ignored otherwise. Card-brand non-discrimination and parity  provisions are what make the signoff necessary. (nullable)
- `disclosureCopyTemplate` (string): The merchant's own surcharge disclosure copy, written in the token grammar defined by  `SurchargeDisclosureCopy`: it must carry `{rate}` and `{costOfAcceptance}`,  may carry `{amount}`, and may carry no other brace-delimited placeholder. Null or blank  leaves every surface on its platform default copy. Conditional: When IsConfigured(DisclosureCopyTemplate) is true. (nullable, max length 1000)
- `merchantId` (string(uuid)) required: The merchant whose configuration is being updated.
- `concurrencyStamp` (string) required: Optimistic-concurrency token read from the configuration being updated. (nullable)

## See also

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