# `Stripe.Resources.Refund`
[🔗](https://github.com/jeffhuen/tiger_stripe/blob/main/lib/stripe/resources/refund.ex#L2)

Refund

Refund objects allow you to refund a previously created charge that isn't
refunded yet. Funds are refunded to the credit or debit card that's
initially charged.

Related guide: [Refunds](https://docs.stripe.com/refunds)

# `t`

```elixir
@type t() :: %Stripe.Resources.Refund{
  amount: integer(),
  balance_transaction: String.t() | Stripe.Resources.BalanceTransaction.t(),
  charge: String.t() | Stripe.Resources.Charge.t(),
  created: integer(),
  currency: String.t(),
  description: String.t() | nil,
  destination_details: Stripe.Resources.Refund.DestinationDetails.t() | nil,
  failure_balance_transaction:
    String.t() | Stripe.Resources.BalanceTransaction.t() | nil,
  failure_reason: String.t() | nil,
  id: String.t(),
  instructions_email: String.t() | nil,
  metadata: %{required(String.t()) =&gt; String.t()},
  next_action: Stripe.Resources.Refund.NextAction.t() | nil,
  object: String.t(),
  payment_intent: String.t() | Stripe.Resources.PaymentIntent.t(),
  pending_reason: String.t() | nil,
  presentment_details: Stripe.Resources.Refund.PresentmentDetails.t() | nil,
  reason: String.t(),
  receipt_number: String.t(),
  source_transfer_reversal: String.t() | Stripe.Resources.TransferReversal.t(),
  status: String.t(),
  transfer_reversal: String.t() | Stripe.Resources.TransferReversal.t()
}
```

* `amount` - Amount, in cents (or local equivalent).
* `balance_transaction` - Balance transaction that describes the impact on your account balance. Nullable. Expandable.
* `charge` - ID of the charge that's refunded. Nullable. Expandable.
* `created` - Time at which the object was created. Measured in seconds since the Unix epoch. Format: Unix timestamp.
* `currency` - Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). Format: ISO 4217 currency code.
* `description` - An arbitrary string attached to the object. You can use this for displaying to users (available on non-card refunds only). Max length: 5000.
* `destination_details` - Expandable.
* `failure_balance_transaction` - After the refund fails, this balance transaction describes the adjustment made on your account balance that reverses the initial balance transaction. Expandable.
* `failure_reason` - Provides the reason for the refund failure. Possible values are: `lost_or_stolen_card`, `expired_or_canceled_card`, `charge_for_pending_refund_disputed`, `insufficient_funds`, `declined`, `merchant_request`, or `unknown`. Max length: 5000.
* `id` - Unique identifier for the object. Max length: 5000.
* `instructions_email` - For payment methods without native refund support (for example, Konbini, PromptPay), provide an email address for the customer to receive refund instructions. Max length: 5000.
* `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. Nullable.
* `next_action` - Expandable.
* `object` - String representing the object's type. Objects of the same type share the same value. Possible values: `refund`.
* `payment_intent` - ID of the PaymentIntent that's refunded. Nullable. Expandable.
* `pending_reason` - Provides the reason for why the refund is pending. Possible values are: `processing`, `insufficient_funds`, or `charge_pending`. Possible values: `charge_pending`, `insufficient_funds`, `processing`.
* `presentment_details` - Expandable.
* `reason` - Reason for the refund, which is either user-provided (`duplicate`, `fraudulent`, or `requested_by_customer`) or generated by Stripe internally (`expired_uncaptured_charge`). Possible values: `duplicate`, `expired_uncaptured_charge`, `fraudulent`, `requested_by_customer`. Nullable.
* `receipt_number` - This is the transaction number that appears on email receipts sent for this refund. Max length: 5000. Nullable.
* `source_transfer_reversal` - The transfer reversal that's associated with the refund. Only present if the charge came from another Stripe account. Nullable. Expandable.
* `status` - Status of the refund. This can be `pending`, `requires_action`, `succeeded`, `failed`, or `canceled`. Learn more about [failed refunds](https://docs.stripe.com/refunds#failed-refunds). Max length: 5000. Nullable.
* `transfer_reversal` - This refers to the transfer reversal object if the accompanying transfer reverses. This is only applicable if the charge was created using the destination parameter. Nullable. Expandable.

# `expandable_fields`

# `object_name`

---

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