type: object description: The details of the discount to create. required: - code - rule - regions properties: code: type: string description: A unique code that will be used to redeem the discount is_dynamic: type: boolean description: >- Whether the discount should have multiple instances of itself, each with a different code. This can be useful for automatically generated discount codes that all have to follow a common set of rules. default: false rule: description: The discount rule that defines how discounts are calculated type: object required: - type - value - allocation properties: description: type: string description: A short description of the discount type: type: string description: >- The type of the discount, can be `fixed` for discounts that reduce the price by a fixed amount, `percentage` for percentage reductions or `free_shipping` for shipping vouchers. enum: - fixed - percentage - free_shipping value: type: number description: >- The value that the discount represents. This will depend on the type of the discount. allocation: type: string description: >- The scope that the discount should apply to. `total` indicates that the discount should be applied on the cart total, and `item` indicates that the discount should be applied to each discountable item in the cart. enum: - total - item conditions: type: array description: >- A set of conditions that can be used to limit when the discount can be used. Only one of `products`, `product_types`, `product_collections`, `product_tags`, and `customer_groups` should be provided based on the discount condition's type. items: type: object required: - operator properties: operator: type: string description: >- Operator of the condition. `in` indicates that discountable resources are within the specified resources. `not_in` indicates that discountable resources are everything but the specified resources. enum: - in - not_in products: type: array description: list of product IDs if the condition's type is `products`. items: type: string product_types: type: array description: >- list of product type IDs if the condition's type is `product_types`. items: type: string product_collections: type: array description: >- list of product collection IDs if the condition's type is `product_collections`. items: type: string product_tags: type: array description: >- list of product tag IDs if the condition's type is `product_tags`. items: type: string customer_groups: type: array description: >- list of customer group IDs if the condition's type is `customer_groups`. items: type: string is_disabled: type: boolean description: >- Whether the discount code is disabled on creation. If set to `true`, it will not be available for customers. default: false starts_at: type: string format: date-time description: The date and time at which the discount should be available. ends_at: type: string format: date-time description: The date and time at which the discount should no longer be available. valid_duration: type: string description: The duration the discount runs between example: P3Y6M4DT12H30M5S regions: description: >- A list of region IDs representing the Regions in which the Discount can be used. type: array items: type: string usage_limit: type: number description: Maximum number of times the discount can be used metadata: description: An optional set of key-value pairs to hold additional information. type: object externalDocs: description: Learn about the metadata attribute, and how to delete and update it. url: >- https://docs.medusajs.com/development/entities/overview#metadata-attribute