# SuggestPromotionCodesInput

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

What the caller has filled in so far, from which promotion codes are suggested.

## Fields
- `merchantId` (string(uuid)): The merchant the promotion will belong to. When given, codes the merchant already uses  are left out of the suggestions. The caller must be authorized over the merchant. Conditional: When MerchantId is not null. (nullable)
- `excludePromotionId` (string(uuid)): The promotion being edited, so its own current code is not treated as taken. (nullable)
- `style` ([PromotionCodeSuggestionStyle](https://devportal.demo.winkpg.io/docs/api/models/PromotionCodeSuggestionStyle.md)): Memorable marketing codes, or private single-use ones.
  Values:
  - `Memorable`: A marketing code a customer can read off a flyer and type at checkout, built from the promotion's own value, name, start date and scope, for example WELCOME10. Guessable by design.
  - `Private`: A code for a single customer or a goodwill discount: a word, a hyphen and four characters drawn from a cryptographic random source, for example THANKS-K7Q2. Nothing in it comes from the promotion's own details, so it cannot be inferred from a flyer or a name. It is still a short bearer value: give the promotion a redemption limit rather than relying on the suffix to keep it private.
- `count` (integer(int32)): How many suggestions to return, between 1 and `MaxCount`. (min 1, max 10)
- `discountType` ([PromotionDiscountType](https://devportal.demo.winkpg.io/docs/api/models/PromotionDiscountType.md)): Whether the value is a percentage or a flat amount. (nullable)
  Values:
  - `Percent`: A percentage of the amount, for example 10 meaning 10%.
  - `Flat`: A flat amount in the promotion's currency, for example 5 meaning 5.00.
- `value` (number(double)): The percentage, or the flat amount. (nullable)
- `currency` (string): The ISO 4217 currency, when the promotion has one. (nullable)
- `name` (string): The operator-facing promotion name. Its first word may appear in a suggestion. (nullable, max length 128)
- `startsAtUtc` (string(date-time)): When the promotion starts. The season and month in a suggestion are read from it. (nullable)
- `appliesToScope` ([PromotionAppliesToScope](https://devportal.demo.winkpg.io/docs/api/models/PromotionAppliesToScope.md)): What the promotion applies to. (nullable)
  Values:
  - `Any`: Anything the merchant charges for. No target list is consulted.
  - `HostedPages`: Only the named hosted payment pages.
  - `Products`: Only the named products.
  - `Plans`: Only the named contract plans.
- `durationMode` ([PromotionDurationMode](https://devportal.demo.winkpg.io/docs/api/models/PromotionDurationMode.md)): How long the discount runs on a recurring charge. (nullable)
  Values:
  - `FirstBillOnly`: Discount only the first bill.
  - `Cycles`: Discount a fixed number of billing cycles.
  - `UntilRemoved`: Discount every bill until someone takes the promotion off the subscription.
- `durationCycles` (integer(int32)): How many billing cycles the discount runs for. (nullable)

## See also

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