> For the complete documentation index, see [llms.txt](https://developer.paddle.com/llms.txt).

# Discount reports

Generate detailed reports about discounts in your catalog, including their usage, status, and configuration.

---

[Discounts](https://developer.paddle.com/api-reference/discounts/overview.md) let you reduce the amount a customer has to pay for a transaction. Discounts are sometimes called coupons or promo codes.

## When to use

- **Audit your discount catalog**  
  Review active, archived, expired, and used discounts in one place.
- **Track promotion performance**  
  See redemption counts and how often each discount has been used.
- **Investigate specific discount activity**  
  Filter by status and type to surface discounts relevant to a campaign or accounting period.

## Report filters

When generating discount reports, you can filter by:

{% table %}

- Field
- Description

---

- **Updated date**
- The date a discount was last modified. Matches entities modified on or after the start date and before the end date.

---

- **Status**
- The current status of the discount.
  - Active: Discount is active and can be used.
  - Archived: Discount is archived, so can't be used.
  - Expired: Discount has expired. Automatically set by Paddle when the `expires_at` date elapses.
  - Used: Discount has reached the maximum amount of redemptions. Automatically set by Paddle when the `usage_limit` is reached.

---

- **Type**
- The kind of discount.
  - Flat: Discounts a transaction by a flat amount, for example `-$100` off the total.
  - Flat per seat: Discounts a transaction by a flat amount per unit, for example `-$100` each unit.
  - Percentage: Discounts a transaction by a percentage of the total, for example `10%`.

{% /table %}

## Report columns

Column headings on discount reports mirror fields in [the Paddle API](https://developer.paddle.com/api-reference/overview.md). Data is provided in the following columns:

```yaml
title: Products and prices report
type: object
properties:
  discount_id:
    type: string
    pattern: ^dsc_[a-z\d]{26}$
    description: Unique Paddle ID for this discount, prefixed with `dsc_`.
    title: Discount ID
    examples:
      - dsc_01gv5kpg05xp104ek2fmgjwttf
  status:
    type: string
    enum:
      - active
      - archived
    description: Whether this entity can be used in Paddle.
    x-enum-descriptions:
      active:
        description: Entity is active and can be used.
      archived:
        description: Entity is archived, so can't be used.
      expired:
        description: |-
          Discount has expired. Automatically set by Paddle when the `expires_at` date elapses.

          Expired discounts can't be redeemed against transactions or checkouts, but can be applied when updating subscriptions.
        readOnly: true
      used:
        description: |-
          Discount has reached the maximum amount of redemptions. Automatically set by Paddle when the `usage_limit` is reached.

          Used discounts can't be redeemed against transactions or checkouts, but can be applied when updating subscriptions.
        readOnly: true
  type:
    description: Type of discount.
    type: string
    enum:
      - flat
      - flat_per_seat
      - percentage
    x-enum-descriptions:
      flat:
        description: Discounts a transaction by a flat amount, e.g. -$100. Requires `currency_code`.
      flat_per_seat:
        description: Discounts a transaction by a flat amount per unit  Requires `currency_code`.
      percentage:
        description: Discounts a transaction by a percentage of the total, e.g. 10%. Maximum 100%.
  discount_amount:
    type: string
    description: Amount to discount by. For `percentage` discounts, must be an amount between `0.01` and `100`. For `flat` and `flat_per_seat` discounts, amount in the lowest denomination for a currency.
  discount_currency:
    type:
      - string
      - "null"
    enum:
      - USD
      - EUR
      - GBP
      - JPY
      - AUD
      - CAD
      - CHF
      - HKD
      - SGD
      - SEK
      - ARS
      - BRL
      - CLP
      - CNY
      - COP
      - CZK
      - DKK
      - HUF
      - ILS
      - INR
      - KRW
      - MXN
      - NOK
      - NZD
      - PEN
      - PLN
      - RUB
      - THB
      - TRY
      - TWD
      - UAH
      - VND
      - ZAR
    description: Supported three-letter ISO 4217 currency code. Required where discount type is `flat` or `flat_per_seat`.
    title: Currency code
    x-enum-descriptions:
      USD:
        description: United States Dollar
      EUR:
        description: Euro
      GBP:
        description: Pound Sterling
      JPY:
        description: Japanese Yen
      AUD:
        description: Australian Dollar
      CAD:
        description: Canadian Dollar
      CHF:
        description: Swiss Franc
      HKD:
        description: Hong Kong Dollar
      SGD:
        description: Singapore Dollar
      SEK:
        description: Swedish Krona
      ARS:
        description: Argentine Peso
      BRL:
        description: Brazilian Real
      CLP:
        description: Chilean Peso
      CNY:
        description: Chinese Yuan
      COP:
        description: Colombian Peso
      CZK:
        description: Czech Koruna
      DKK:
        description: Danish Krone
      HUF:
        description: Hungarian Forint
      ILS:
        description: Israeli Shekel
      INR:
        description: Indian Rupee
      KRW:
        description: South Korean Won
      MXN:
        description: Mexican Peso
      NOK:
        description: Norwegian Krone
      NZD:
        description: New Zealand Dollar
      PEN:
        description: Peruvian Sol
      PLN:
        description: Polish Zloty
      RUB:
        description: Russian Ruble
      THB:
        description: Thai Baht
      TRY:
        description: Turkish Lira
      TWD:
        description: New Taiwan Dollar
      UAH:
        description: Ukrainian Hryvnia
      VND:
        description: Vietnamese Dong
      ZAR:
        description: South African Rand
  recur:
    type: boolean
    description: Whether this discount applies for multiple billing periods.
    default: false
  maximum_recurring_intervals:
    type:
      - integer
      - "null"
    description: Amount of subscription billing periods that this discount recurs for. Requires `recur`. `null` if this discount recurs forever.
  usage_limit:
    type:
      - integer
      - "null"
    description: Maximum amount of times this discount can be used. This is an overall limit, rather than a per-customer limit. `null` if this discount can be used an unlimited amount of times.
  restrict_to:
    type:
      - string
    description: Product or price IDs that this discount is for. When including a product ID, all prices for that product can be discounted. `null` if this discount applies to all products and prices.
  expires_at:
    type:
      - string
      - "null"
    format: date-time
    description: RFC 3339 datetime string of when this discount expires. Discount can no longer be applied after this date has elapsed. `null` if this discount can be applied forever.
    title: Timestamp
    examples:
      - "2024-10-12T07:20:50.52Z"
  created_at:
    type: string
    format: date-time
    description: RFC 3339 datetime string of when this entity was created. Set automatically by Paddle.
    title: Created at
    examples:
      - "2024-10-12T07:20:50.52Z"
    readOnly: true
  updated_at:
    type: string
    format: date-time
    description: RFC 3339 datetime string of when this entity was updated. Set automatically by Paddle.
    title: Updated at
    examples:
      - "2024-10-13T07:20:50.52Z"
    readOnly: true
```