{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/stripe/main/json-schema/stripe-coupons-resource-coupon-list-schema.json",
  "title": "CouponsResourceCouponList",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/stripe-coupons-api-openapi.yml#/components/schemas/CouponsResourceCouponList",
  "type": "object",
  "required": [
    "data",
    "has_more",
    "object",
    "url"
  ],
  "properties": {
    "data": {
      "items": {
        "$ref": "#/$defs/coupon"
      },
      "type": "array"
    },
    "has_more": {
      "description": "True if this list has another page of items after this one that can be fetched.",
      "type": "boolean"
    },
    "object": {
      "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.",
      "enum": [
        "list"
      ],
      "type": "string"
    },
    "url": {
      "description": "The URL where this list can be accessed.",
      "maxLength": 5000,
      "pattern": "^/v1/coupons",
      "type": "string"
    }
  },
  "$defs": {
    "coupon": {
      "description": "A coupon contains information about a percent-off or amount-off discount you\nmight want to apply to a customer. Coupons may be applied to [subscriptions](https://stripe.com/docs/api#subscriptions), [invoices](https://stripe.com/docs/api#invoices),\n[checkout sessions](https://stripe.com/docs/api/checkout/sessions), [quotes](https://stripe.com/docs/api#quotes), and more. Coupons do not work with conventional one-off [charges](https://stripe.com/docs/api#create_charge) or [payment intents](https://stripe.com/docs/api/payment_intents).",
      "properties": {
        "amount_off": {
          "description": "Amount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer.",
          "type": [
            "integer",
            "null"
          ]
        },
        "applies_to": {
          "$ref": "#/$defs/coupon_applies_to"
        },
        "created": {
          "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
          "format": "unix-time",
          "type": "integer"
        },
        "currency": {
          "description": "If `amount_off` has been set, the three-letter [ISO code for the currency](https://stripe.com/docs/currencies) of the amount to take off.",
          "type": [
            "string",
            "null"
          ]
        },
        "currency_options": {
          "additionalProperties": {
            "$ref": "#/$defs/coupon_currency_option"
          },
          "description": "Coupons defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).",
          "type": "object"
        },
        "duration": {
          "description": "One of `forever`, `once`, and `repeating`. Describes how long a customer who applies this coupon will get the discount.",
          "enum": [
            "forever",
            "once",
            "repeating"
          ],
          "type": "string",
          "x-stripeBypassValidation": true
        },
        "duration_in_months": {
          "description": "If `duration` is `repeating`, the number of months the coupon applies. Null if coupon `duration` is `forever` or `once`.",
          "type": [
            "integer",
            "null"
          ]
        },
        "id": {
          "description": "Unique identifier for the object.",
          "maxLength": 5000,
          "type": "string"
        },
        "livemode": {
          "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
          "type": "boolean"
        },
        "max_redemptions": {
          "description": "Maximum number of times this coupon can be redeemed, in total, across all customers, before it is no longer valid.",
          "type": [
            "integer",
            "null"
          ]
        },
        "metadata": {
          "additionalProperties": {
            "maxLength": 500,
            "type": "string"
          },
          "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
          "type": [
            "object",
            "null"
          ]
        },
        "name": {
          "description": "Name of the coupon displayed to customers on for instance invoices or receipts.",
          "maxLength": 5000,
          "type": [
            "string",
            "null"
          ]
        },
        "object": {
          "description": "String representing the object's type. Objects of the same type share the same value.",
          "enum": [
            "coupon"
          ],
          "type": "string"
        },
        "percent_off": {
          "description": "Percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon. For example, a coupon with percent_off of 50 will make a $ (or local equivalent)100 invoice $ (or local equivalent)50 instead.",
          "type": [
            "number",
            "null"
          ]
        },
        "redeem_by": {
          "description": "Date after which the coupon can no longer be redeemed.",
          "format": "unix-time",
          "type": [
            "integer",
            "null"
          ]
        },
        "times_redeemed": {
          "description": "Number of times this coupon has been applied to a customer.",
          "type": "integer"
        },
        "valid": {
          "description": "Taking account of the above properties, whether this coupon can still be applied to a customer.",
          "type": "boolean"
        }
      },
      "required": [
        "created",
        "duration",
        "id",
        "livemode",
        "object",
        "times_redeemed",
        "valid"
      ],
      "title": "Coupon",
      "type": "object",
      "x-expandableFields": [
        "applies_to",
        "currency_options"
      ],
      "x-resourceId": "coupon"
    }
  }
}