# `Stripe.Resources.BillingPortal.Session.Flow`
[🔗](https://github.com/jeffhuen/tiger_stripe/blob/main/lib/stripe/resources/billing_portal/session.ex#L71)

Nested struct within the parent resource.

# `t`

```elixir
@type t() :: %Stripe.Resources.BillingPortal.Session.Flow{
  after_completion:
    Stripe.Resources.BillingPortal.Session.Flow.AfterCompletion.t() | nil,
  subscription_cancel:
    Stripe.Resources.BillingPortal.Session.Flow.SubscriptionCancel.t() | nil,
  subscription_update:
    Stripe.Resources.BillingPortal.Session.Flow.SubscriptionUpdate.t() | nil,
  subscription_update_confirm:
    Stripe.Resources.BillingPortal.Session.Flow.SubscriptionUpdateConfirm.t()
    | nil,
  type: String.t() | nil
}
```

* `after_completion`
* `subscription_cancel` - Configuration when `flow.type=subscription_cancel`. Nullable.
* `subscription_update` - Configuration when `flow.type=subscription_update`. Nullable.
* `subscription_update_confirm` - Configuration when `flow.type=subscription_update_confirm`. Nullable.
* `type` - Type of flow that the customer will go through. Possible values: `payment_method_update`, `subscription_cancel`, `subscription_update`, `subscription_update_confirm`.

---

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