# SurchargeEffectiveStatePoliciesDto

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

The effective state-policy view for one merchant: every state that either layer says something
about, each carrying the platform rule, the merchant override, and the merged outcome. Read-only.

## Fields
- `platformRulesEnforced` (boolean): Whether the platform-seeded ruleset is currently enforced underneath merchant policies. When  `false`, every row's merged outcome comes from the merchant layer alone and the platform  columns are informational.
- `resolvedAtUtc` (string(date-time)): The instant the platform rules were resolved against, so a row's effective-dated rule is  reproducible. UTC, as everything the API returns is.
- `configurationExists` (boolean): Whether the merchant has a persisted surcharge configuration. When `false` there is nothing  for a state policy to attach to, so the write path would fail; the view still resolves and shows  the platform layer.
- `policies` (array<[SurchargeEffectiveStatePolicyDto](https://devportal.demo.winkpg.io/docs/api/models/SurchargeEffectiveStatePolicyDto.md)>): One row per constrained state, ordered by state code. States neither layer restricts are omitted. (nullable)
  Fields of each item:
  - `stateCode` (string): Two-letter US state or territory code, uppercase. (nullable)
  - `hasMerchantOverride` (boolean): Whether the merchant has an entry of their own for this state. Reported separately from  `merchantRestrictionType` because a null restriction cannot distinguish "no  entry" from "an entry that never recorded one".
  - `merchantRestrictionType` ([SurchargeStateRestrictionType](https://devportal.demo.winkpg.io/docs/api/models/SurchargeStateRestrictionType.md)): The merchant's configured restriction for this state, or `null` when the merchant has no  entry for it (in which case the platform layer alone governs). Check  `hasMerchantOverride` to tell that apart from an entry with no restriction recorded. (nullable)
    Values:
    - `Prohibited`: Surcharging is prohibited outright in the state.
    - `Restricted`: Surcharging is allowed but constrained (e.g. a state cap or disclosure rules).
    - `Permissive`: Surcharging is permitted with no state-specific restriction beyond network rules.
  - `merchantCapRate` (number(double)): The merchant's configured cap for this state (decimal fraction), if any. (nullable)
  - `platformRestrictionType` ([SurchargeStateRestrictionType](https://devportal.demo.winkpg.io/docs/api/models/SurchargeStateRestrictionType.md)): The platform-seeded restriction governing this state on the evaluation date, or `null` when  the platform seeds no rule for it. (nullable)
    Values:
    - `Prohibited`: Surcharging is prohibited outright in the state.
    - `Restricted`: Surcharging is allowed but constrained (e.g. a state cap or disclosure rules).
    - `Permissive`: Surcharging is permitted with no state-specific restriction beyond network rules.
  - `platformCapRate` (number(double)): The platform-seeded cap for this state (decimal fraction), if any. (nullable)
  - `platformCitation` (string): The statute the platform rule cites, for display beside the row. Rationale text only; nothing  branches on it. (nullable)
  - `effectiveIsProhibited` (boolean): Whether surcharging is prohibited in this state by the merged outcome. Reflects the enforcement  gate: with platform rules unenforced, only the merchant layer can produce a prohibition.
  - `prohibitionSource` ([SurchargeStateRuleSource](https://devportal.demo.winkpg.io/docs/api/models/SurchargeStateRuleSource.md)): Which layer produced `effectiveIsProhibited`.
    Values:
    - `None`: Neither layer produced an outcome (no rule for the state).
    - `MerchantConfiguration`: The merchant's own SurchargeStatePolicy entry produced the outcome. Merchant policy can only tighten a platform rule, never relax one.
    - `PlatformPolicy`: The platform's seeded reference data (SurchargePlatformStatePolicyLookup) produced the outcome.
  - `effectiveCapRate` (number(double)): The merged cap (decimal fraction), or `null` when neither layer imposes one. (nullable)
  - `capSource` ([SurchargeStateRuleSource](https://devportal.demo.winkpg.io/docs/api/models/SurchargeStateRuleSource.md)): Which layer produced `effectiveCapRate`.
    Values:
    - `None`: Neither layer produced an outcome (no rule for the state).
    - `MerchantConfiguration`: The merchant's own SurchargeStatePolicy entry produced the outcome. Merchant policy can only tighten a platform rule, never relax one.
    - `PlatformPolicy`: The platform's seeded reference data (SurchargePlatformStatePolicyLookup) produced the outcome.
  - `merchantEntryIsIneffective` (boolean): Whether the merchant's entry for this state is inert: it exists, but the merged outcome is  identical to what the platform layer produces alone, so removing it would change nothing. The  usual cause is an entry trying to relax a platform prohibition, which the merge ignores by  design. Computed server-side so the UI does not have to re-derive the merge to detect it.

## See also

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