# `ExGram.Model.TransactionPartnerUser`
[🔗](https://github.com/rockneurotiko/ex_gram/blob/0.64.0/lib/ex_gram.ex#L7077)

Describes a transaction with a user.

Check the [documentation of this model on Telegram Bot API](https://core.telegram.org/bots/api#transactionpartneruser)

- `type`: Type of the transaction partner, always "user”
- `transaction_type`: Type of the transaction, currently one of "invoice_payment” for payments via invoices, "paid_media_payment” for payments for paid media, "gift_purchase” for gifts sent by the bot, "premium_purchase” for Telegram Premium subscriptions gifted by the bot, "business_account_transfer” for direct transfers from managed business accounts
- `user`: Information about the user
- `affiliate (optional)`: Optional. Information about the affiliate that received a commission via this transaction. Can be available only for "invoice_payment” and "paid_media_payment” transactions.
- `invoice_payload (optional)`: Optional. Bot-specified invoice payload. Can be available only for "invoice_payment” transactions.
- `subscription_period (optional)`: Optional. The duration of the paid subscription. Can be available only for "invoice_payment” transactions.
- `paid_media (optional)`: Optional. Information about the paid media bought by the user; for "paid_media_payment” transactions only
- `paid_media_payload (optional)`: Optional. Bot-specified paid media payload. Can be available only for "paid_media_payment” transactions.
- `gift (optional)`: Optional. The gift sent to the user by the bot; for "gift_purchase” transactions only
- `premium_subscription_duration (optional)`: Optional. Number of months the gifted Telegram Premium subscription will be active for; for "premium_purchase” transactions only

# `t`

```elixir
@type t() :: %ExGram.Model.TransactionPartnerUser{
  affiliate: ExGram.Model.AffiliateInfo.t() | nil,
  gift: ExGram.Model.Gift.t() | nil,
  invoice_payload: String.t() | nil,
  paid_media: [ExGram.Model.PaidMedia.t()] | nil,
  paid_media_payload: String.t() | nil,
  premium_subscription_duration: integer() | nil,
  subscription_period: integer() | nil,
  transaction_type: String.t(),
  type: String.t(),
  user: ExGram.Model.User.t()
}
```

# `decode_as`

---

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