# `PolarExpress.Schemas.Subscription`
[🔗](https://github.com/jeffhuen/polar_express/blob/main/lib/polar_express/schemas/subscription.ex#L2)

Subscription

# `t`

```elixir
@type t() :: %PolarExpress.Schemas.Subscription{
  amount: integer() | nil,
  cancel_at_period_end: boolean() | nil,
  canceled_at: DateTime.t() | nil,
  checkout_id: String.t() | nil,
  created_at: DateTime.t() | nil,
  currency: String.t() | nil,
  current_period_end: DateTime.t() | nil,
  current_period_start: DateTime.t() | nil,
  custom_field_data:
    %{
      required(String.t()) =&gt;
        String.t() | integer() | boolean() | DateTime.t() | nil
    }
    | nil,
  customer: PolarExpress.Schemas.SubscriptionCustomer.t() | nil,
  customer_cancellation_comment: String.t() | nil,
  customer_cancellation_reason:
    PolarExpress.Schemas.CustomerCancellationReason.t() | nil,
  customer_id: String.t() | nil,
  discount:
    PolarExpress.Schemas.DiscountFixedOnceForeverDurationBase.t()
    | PolarExpress.Schemas.DiscountFixedRepeatDurationBase.t()
    | PolarExpress.Schemas.DiscountPercentageOnceForeverDurationBase.t()
    | PolarExpress.Schemas.DiscountPercentageRepeatDurationBase.t()
    | nil,
  discount_id: String.t() | nil,
  ended_at: DateTime.t() | nil,
  ends_at: DateTime.t() | nil,
  id: String.t() | nil,
  metadata: PolarExpress.Schemas.MetadataOutputType.t() | nil,
  meters: [PolarExpress.Schemas.SubscriptionMeter.t()] | nil,
  modified_at: DateTime.t() | nil,
  prices:
    [
      PolarExpress.Schemas.LegacyRecurringProductPrice.t()
      | PolarExpress.Schemas.ProductPrice.t()
    ]
    | nil,
  product: PolarExpress.Schemas.Product.t() | nil,
  product_id: String.t() | nil,
  recurring_interval:
    PolarExpress.Schemas.SubscriptionRecurringInterval.t() | nil,
  recurring_interval_count: integer() | nil,
  seats: integer() | nil,
  started_at: DateTime.t() | nil,
  status: PolarExpress.Schemas.SubscriptionStatus.t() | nil,
  trial_end: DateTime.t() | nil,
  trial_start: DateTime.t() | nil
}
```

* `amount` - The amount of the subscription.
* `cancel_at_period_end` - Whether the subscription will be canceled at the end of the current period.
* `canceled_at` - The timestamp when the subscription was canceled. The subscription might still be active if `cancel_at_period_end` is `true`. Nullable.
* `checkout_id` - Nullable.
* `created_at` - Creation timestamp of the object. Format: date-time.
* `currency` - The currency of the subscription.
* `current_period_end` - The end timestamp of the current billing period. Nullable.
* `current_period_start` - The start timestamp of the current billing period. Format: date-time.
* `custom_field_data` - Key-value object storing custom field values.
* `customer`
* `customer_cancellation_comment` - Nullable.
* `customer_cancellation_reason` - Nullable.
* `customer_id` - The ID of the subscribed customer. Format: uuid4.
* `discount` - Nullable.
* `discount_id` - The ID of the applied discount, if any. Nullable.
* `ended_at` - The timestamp when the subscription ended. Nullable.
* `ends_at` - The timestamp when the subscription will end. Nullable.
* `id` - The ID of the object. Format: uuid4.
* `metadata`
* `meters` - List of meters associated with the subscription.
* `modified_at` - Last modification timestamp of the object. Nullable.
* `prices` - List of enabled prices for the subscription.
* `product`
* `product_id` - The ID of the subscribed product. Format: uuid4.
* `recurring_interval` - The interval at which the subscription recurs.
* `recurring_interval_count` - Number of interval units of the subscription. If this is set to 1 the charge will happen every interval (e.g. every month), if set to 2 it will be every other month, and so on.
* `seats` - The number of seats for seat-based subscriptions. None for non-seat subscriptions. Nullable.
* `started_at` - The timestamp when the subscription started. Nullable.
* `status` - The status of the subscription.
* `trial_end` - The end timestamp of the trial period, if any. Nullable.
* `trial_start` - The start timestamp of the trial period, if any. Nullable.

# `schema_name`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
