# `Stripe.Params.Checkout.SessionCreateParams.PaymentIntentData`
[🔗](https://github.com/jeffhuen/tiger_stripe/blob/main/lib/stripe/params/checkout/session_create_params.ex#L796)

Nested parameters.

# `t`

```elixir
@type t() :: %Stripe.Params.Checkout.SessionCreateParams.PaymentIntentData{
  application_fee_amount: integer() | nil,
  capture_method: String.t() | nil,
  description: String.t() | nil,
  metadata: %{required(String.t()) =&gt; String.t()} | nil,
  on_behalf_of: String.t() | nil,
  receipt_email: String.t() | nil,
  setup_future_usage: String.t() | nil,
  shipping:
    Stripe.Params.Checkout.SessionCreateParams.PaymentIntentData.Shipping.t()
    | nil,
  statement_descriptor: String.t() | nil,
  statement_descriptor_suffix: String.t() | nil,
  transfer_data:
    Stripe.Params.Checkout.SessionCreateParams.PaymentIntentData.TransferData.t()
    | nil,
  transfer_group: String.t() | nil
}
```

* `application_fee_amount` - The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total amount captured. For more information, see the PaymentIntents [use case for connected accounts](https://docs.stripe.com/payments/connected-accounts).
* `capture_method` - Controls when the funds will be captured from the customer's account. Possible values: `automatic`, `automatic_async`, `manual`.
* `description` - An arbitrary string attached to the object. Often useful for displaying to users. Max length: 1000.
* `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`.
* `on_behalf_of` - The Stripe account ID for which these funds are intended. For details,
see the PaymentIntents [use case for connected
accounts](https://docs.stripe.com/docs/payments/connected-accounts).
* `receipt_email` - Email address that the receipt for the resulting payment will be sent to. If `receipt_email` is specified for a payment in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails).
* `setup_future_usage` - Indicates that you intend to [make future payments](https://docs.stripe.com/payments/payment-intents#future-usage) with the payment
method collected by this Checkout Session.

When setting this to `on_session`, Checkout will show a notice to the
customer that their payment details will be saved.

When setting this to `off_session`, Checkout will show a notice to the
customer that their payment details will be saved and used for future
payments.

If a Customer has been provided or Checkout creates a new Customer,
Checkout will attach the payment method to the Customer.

If Checkout does not create a Customer, the payment method is not attached
to a Customer. To reuse the payment method, you can retrieve it from the
Checkout Session's PaymentIntent.

When processing card payments, Checkout also uses `setup_future_usage`
to dynamically optimize your payment flow and comply with regional
legislation and network rules, such as SCA. Possible values: `off_session`, `on_session`.
* `shipping` - Shipping information for this payment.
* `statement_descriptor` - Text that appears on the customer's statement as the statement descriptor for a non-card charge. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors).

Setting this value for a card charge returns an error. For card charges, set the [statement_descriptor_suffix](https://docs.stripe.com/get-started/account/statement-descriptors#dynamic) instead. Max length: 22.
* `statement_descriptor_suffix` - Provides information about a card charge. Concatenated to the account's [statement descriptor prefix](https://docs.stripe.com/get-started/account/statement-descriptors#static) to form the complete statement descriptor that appears on the customer's statement. Max length: 22.
* `transfer_data` - The parameters used to automatically create a Transfer when the payment succeeds.
For more information, see the PaymentIntents [use case for connected accounts](https://docs.stripe.com/payments/connected-accounts).
* `transfer_group` - A string that identifies the resulting payment as part of a group. See the PaymentIntents [use case for connected accounts](https://docs.stripe.com/connect/separate-charges-and-transfers) for details.

---

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