# `Stripe.Params.InvoiceCreatePreviewParams.ScheduleDetails`
[🔗](https://github.com/jeffhuen/tiger_stripe/blob/main/lib/stripe/params/invoice_create_preview_params.ex#L239)

Nested parameters.

# `t`

```elixir
@type t() :: %Stripe.Params.InvoiceCreatePreviewParams.ScheduleDetails{
  billing_mode:
    Stripe.Params.InvoiceCreatePreviewParams.ScheduleDetails.BillingMode.t()
    | nil,
  end_behavior: String.t() | nil,
  phases:
    [Stripe.Params.InvoiceCreatePreviewParams.ScheduleDetails.Phases.t()] | nil,
  proration_behavior: String.t() | nil
}
```

* `billing_mode` - Controls how prorations and invoices for subscriptions are calculated and orchestrated.
* `end_behavior` - Behavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` or `cancel` with the default being `release`. `release` will end the subscription schedule and keep the underlying subscription running. `cancel` will end the subscription schedule and cancel the underlying subscription. Possible values: `cancel`, `release`.
* `phases` - List representing phases of the subscription schedule. Each phase can be customized to have different durations, plans, and coupons. If there are multiple phases, the `end_date` of one phase will always equal the `start_date` of the next phase.
* `proration_behavior` - In cases where the `schedule_details` params update the currently active phase, specifies if and how to prorate at the time of the request. Possible values: `always_invoice`, `create_prorations`, `none`.

---

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