# `Stripe.Params.Checkout.SessionUpdateParams`
[🔗](https://github.com/jeffhuen/tiger_stripe/blob/main/lib/stripe/params/checkout/session_update_params.ex#L2)

Parameters for session update.

# `t`

```elixir
@type t() :: %Stripe.Params.Checkout.SessionUpdateParams{
  collected_information:
    Stripe.Params.Checkout.SessionUpdateParams.CollectedInformation.t() | nil,
  expand: [String.t()] | nil,
  line_items: [Stripe.Params.Checkout.SessionUpdateParams.LineItems.t()] | nil,
  metadata: map() | nil,
  shipping_options: map() | nil
}
```

* `collected_information` - Information about the customer collected within the Checkout Session. Can only be set when updating `embedded` or `custom` sessions.
* `expand` - Specifies which fields in the response should be expanded.
* `line_items` - A list of items the customer is purchasing.

When updating line items, you must retransmit the entire array of line items.

To retain an existing line item, specify its `id`.

To update an existing line item, specify its `id` along with the new values of the fields to update.

To add a new line item, specify one of `price` or `price_data` and `quantity`.

To remove an existing line item, omit the line item's ID from the retransmitted array.

To reorder a line item, specify it at the desired position in the retransmitted array.
* `metadata` - Set of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
* `shipping_options` - The shipping rate options to apply to this Session. Up to a maximum of 5.

---

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