# BillingRunExclusionDto

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

Output DTO for a merchant excluded from a billing run at the pre-selection stage, with the
machine-readable reason it was skipped.

## Fields
- `merchantId` (string(uuid)): (nullable)
- `merchantName` (string): (nullable)
- `reason` ([BillingRunPreSelectionReason](https://devportal.demo.winkpg.io/docs/api/models/BillingRunPreSelectionReason.md)): (nullable)
  Values:
  - `Inactive`: The merchant is deactivated, so a billing run must not bill it. These merchants are filtered out by the billing-assignment lookup's active-state query filter; the run records them here purely so the operator can see why the count is lower. (Soft-deleted merchants remain hidden and are not surfaced as exclusions.)
  - `NoPricePlanAssigned`: The merchant's billing assignment has no price plan (PricePlanId is null/empty), so there is nothing to rate against.
  - `EffectiveWindowOutsidePeriod`: The billing assignment's effective window (EffectiveFrom/EffectiveTo) does not overlap the billed period: e.g. a plan whose effective date is after the billed month. This is the exact confusion behind the effective-date billing investigation: a merchant is assigned to a plan but skipped because the assignment is not effective for the period.
- `effectiveFrom` (string(date-time)): (nullable)
- `effectiveTo` (string(date-time)): (nullable)

## See also

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