# ContractBillingSkip

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

The most recent billing run that found this contract due and did not charge it, and why. Set by
the billing engine only, and cleared by the next run that reaches the processor or is covered by
a proration credit.

## Fields
- `skippedAt` (string(date-time)): When the run decided not to charge the contract, in UTC.
- `scheduledRunTime` (string(date-time)): The scheduled charge the run did not make, in UTC.
- `category` ([RecurringBillingSkipCategory](https://devportal.demo.winkpg.io/docs/api/models/RecurringBillingSkipCategory.md)): Why the run did not charge the contract.
  Values:
  - `AlreadyBilled`: The contract already has a successful charge for this scheduled run. Harmless: nothing is owed, and nothing needs attention.
  - `MerchantIneligible`: The merchant that owns the contract is missing, deleted, or inactive.
  - `InvalidContract`: The contract's own per-bill amount is zero or less, so there is nothing to charge.
  - `PlanUnresolved`: The contract subscribes to a plan whose price could not be read, so the amount is unknown.
  - `MissingConsent`: The stored payment method has no active stored-credential consent that permits a recurring charge.
  - `ConsentLookupUnavailable`: The platform could not read the stored payment method's consent state. A platform fault rather than a configuration problem, recorded as a failed run item, and retried on the next run.
- `reason` (string): The billing engine's explanation of the skip, at most `MaxReasonLength`  characters. Never carries payment credential data. (nullable)

## See also

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