# The Refund object

## Attributes

- `id` (string)
  Unique identifier for the object.

- `object` (string)
  String representing the object’s type. Objects of the same type share the same value.

- `amount` (integer)
  Amount, in the smallest currency unit.

- `balance_transaction` (string, nullable, expandable (can be expanded into an object with the `expand` request parameter))
  Balance transaction that describes the impact on your account balance.

- `charge` (string, nullable, expandable (can be expanded into an object with the `expand` request parameter))
  ID of the charge that’s refunded.

- `created` (timestamp)
  Time at which the object was created. Measured in seconds since the Unix epoch.

- `currency` (enum)
  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).

- `description` (string, nullable)
  An arbitrary string attached to the object. You can use this for displaying to users (available on non-card refunds only).

- `destination_details` (object, nullable)
  Transaction-specific details for the refund.

  - `destination_details.affirm` (object, nullable)
    If this is a `affirm` refund, this hash contains the transaction specific details of the `affirm` refund method.

  - `destination_details.afterpay_clearpay` (object, nullable)
    If this is a `afterpay_clearpay` refund, this hash contains the transaction specific details of the `afterpay_clearpay` refund method.

  - `destination_details.alipay` (object, nullable)
    If this is a `alipay` refund, this hash contains the transaction specific details of the `alipay` refund method.

  - `destination_details.alma` (object, nullable)
    If this is a `alma` refund, this hash contains the transaction specific details of the `alma` refund method.

  - `destination_details.amazon_pay` (object, nullable)
    If this is a `amazon_pay` refund, this hash contains the transaction specific details of the `amazon_pay` refund method.

  - `destination_details.au_bank_transfer` (object, nullable)
    If this is a `au_bank_transfer` refund, this hash contains the transaction specific details of the `au_bank_transfer` refund method.

  - `destination_details.blik` (object, nullable)
    If this is a `blik` refund, this hash contains the transaction specific details of the `blik` refund method.

    - `destination_details.blik.network_decline_code` (string, nullable)
      For refunds declined by the network, a decline code provided by the network which indicates the reason the refund failed.

    - `destination_details.blik.reference` (string, nullable)
      The reference assigned to the refund.

    - `destination_details.blik.reference_status` (string, nullable)
      Status of the reference on the refund. This can be `pending`, `available` or `unavailable`.

  - `destination_details.br_bank_transfer` (object, nullable)
    If this is a `br_bank_transfer` refund, this hash contains the transaction specific details of the `br_bank_transfer` refund method.

    - `destination_details.br_bank_transfer.reference` (string, nullable)
      The reference assigned to the refund.

    - `destination_details.br_bank_transfer.reference_status` (string, nullable)
      Status of the reference on the refund. This can be `pending`, `available` or `unavailable`.

  - `destination_details.card` (object, nullable)
    If this is a `card` refund, this hash contains the transaction specific details of the `card` refund method.

    - `destination_details.card.reference` (string, nullable)
      Value of the reference number assigned to the refund.

    - `destination_details.card.reference_status` (string, nullable)
      Status of the reference number on the refund. This can be `pending`, `available` or `unavailable`.

    - `destination_details.card.reference_type` (string, nullable)
      Type of the reference number assigned to the refund.

    - `destination_details.card.type` (enum)
      The type of refund. This can be `refund`, `reversal`, or `pending`.
Possible enum values:
      - `pending`
        The refund is still processing and its type is not confirmed yet.

      - `refund`
        The refund will show as a credit entry on the bank statement.

      - `reversal`
        The refund goes through as a reversal. The original charge will drop off the bank statement altogether.

  - `destination_details.cashapp` (object, nullable)
    If this is a `cashapp` refund, this hash contains the transaction specific details of the `cashapp` refund method.

  - `destination_details.crypto` (object, nullable)
    If this is a `crypto` refund, this hash contains the transaction specific details of the `crypto` refund method.

    - `destination_details.crypto.reference` (string, nullable)
      The transaction hash of the refund.

  - `destination_details.customer_cash_balance` (object, nullable)
    If this is a `customer_cash_balance` refund, this hash contains the transaction specific details of the `customer_cash_balance` refund method.

  - `destination_details.eps` (object, nullable)
    If this is a `eps` refund, this hash contains the transaction specific details of the `eps` refund method.

  - `destination_details.eu_bank_transfer` (object, nullable)
    If this is a `eu_bank_transfer` refund, this hash contains the transaction specific details of the `eu_bank_transfer` refund method.

    - `destination_details.eu_bank_transfer.reference` (string, nullable)
      The reference assigned to the refund.

    - `destination_details.eu_bank_transfer.reference_status` (string, nullable)
      Status of the reference on the refund. This can be `pending`, `available` or `unavailable`.

  - `destination_details.gb_bank_transfer` (object, nullable)
    If this is a `gb_bank_transfer` refund, this hash contains the transaction specific details of the `gb_bank_transfer` refund method.

    - `destination_details.gb_bank_transfer.reference` (string, nullable)
      The reference assigned to the refund.

    - `destination_details.gb_bank_transfer.reference_status` (string, nullable)
      Status of the reference on the refund. This can be `pending`, `available` or `unavailable`.

  - `destination_details.giropay` (object, nullable)
    If this is a `giropay` refund, this hash contains the transaction specific details of the `giropay` refund method.

  - `destination_details.grabpay` (object, nullable)
    If this is a `grabpay` refund, this hash contains the transaction specific details of the `grabpay` refund method.

  - `destination_details.jp_bank_transfer` (object, nullable)
    If this is a `jp_bank_transfer` refund, this hash contains the transaction specific details of the `jp_bank_transfer` refund method.

    - `destination_details.jp_bank_transfer.reference` (string, nullable)
      The reference assigned to the refund.

    - `destination_details.jp_bank_transfer.reference_status` (string, nullable)
      Status of the reference on the refund. This can be `pending`, `available` or `unavailable`.

  - `destination_details.klarna` (object, nullable)
    If this is a `klarna` refund, this hash contains the transaction specific details of the `klarna` refund method.

  - `destination_details.mb_way` (object, nullable)
    If this is a `mb_way` refund, this hash contains the transaction specific details of the `mb_way` refund method.

    - `destination_details.mb_way.reference` (string, nullable)
      The reference assigned to the refund.

    - `destination_details.mb_way.reference_status` (string, nullable)
      Status of the reference on the refund. This can be `pending`, `available` or `unavailable`.

  - `destination_details.multibanco` (object, nullable)
    If this is a `multibanco` refund, this hash contains the transaction specific details of the `multibanco` refund method.

    - `destination_details.multibanco.reference` (string, nullable)
      The reference assigned to the refund.

    - `destination_details.multibanco.reference_status` (string, nullable)
      Status of the reference on the refund. This can be `pending`, `available` or `unavailable`.

  - `destination_details.mx_bank_transfer` (object, nullable)
    If this is a `mx_bank_transfer` refund, this hash contains the transaction specific details of the `mx_bank_transfer` refund method.

    - `destination_details.mx_bank_transfer.reference` (string, nullable)
      The reference assigned to the refund.

    - `destination_details.mx_bank_transfer.reference_status` (string, nullable)
      Status of the reference on the refund. This can be `pending`, `available` or `unavailable`.

  - `destination_details.nz_bank_transfer` (object, nullable)
    If this is a `nz_bank_transfer` refund, this hash contains the transaction specific details of the `nz_bank_transfer` refund method.

  - `destination_details.p24` (object, nullable)
    If this is a `p24` refund, this hash contains the transaction specific details of the `p24` refund method.

    - `destination_details.p24.reference` (string, nullable)
      The reference assigned to the refund.

    - `destination_details.p24.reference_status` (string, nullable)
      Status of the reference on the refund. This can be `pending`, `available` or `unavailable`.

  - `destination_details.paynow` (object, nullable)
    If this is a `paynow` refund, this hash contains the transaction specific details of the `paynow` refund method.

  - `destination_details.paypal` (object, nullable)
    If this is a `paypal` refund, this hash contains the transaction specific details of the `paypal` refund method.

    - `destination_details.paypal.network_decline_code` (string, nullable)
      For refunds declined by the network, a decline code provided by the network which indicates the reason the refund failed.

  - `destination_details.pix` (object, nullable)
    If this is a `pix` refund, this hash contains the transaction specific details of the `pix` refund method.

  - `destination_details.revolut` (object, nullable)
    If this is a `revolut` refund, this hash contains the transaction specific details of the `revolut` refund method.

  - `destination_details.sofort` (object, nullable)
    If this is a `sofort` refund, this hash contains the transaction specific details of the `sofort` refund method.

  - `destination_details.swish` (object, nullable)
    If this is a `swish` refund, this hash contains the transaction specific details of the `swish` refund method.

    - `destination_details.swish.network_decline_code` (string, nullable)
      For refunds declined by the network, a decline code provided by the network which indicates the reason the refund failed.

    - `destination_details.swish.reference` (string, nullable)
      The reference assigned to the refund.

    - `destination_details.swish.reference_status` (string, nullable)
      Status of the reference on the refund. This can be `pending`, `available` or `unavailable`.

  - `destination_details.th_bank_transfer` (object, nullable)
    If this is a `th_bank_transfer` refund, this hash contains the transaction specific details of the `th_bank_transfer` refund method.

    - `destination_details.th_bank_transfer.reference` (string, nullable)
      The reference assigned to the refund.

    - `destination_details.th_bank_transfer.reference_status` (string, nullable)
      Status of the reference on the refund. This can be `pending`, `available` or `unavailable`.

  - `destination_details.twint` (object, nullable)
    If this is a `twint` refund, this hash contains the transaction specific details of the `twint` refund method.

  - `destination_details.type` (string)
    The type of transaction-specific details of the payment method used in the refund (e.g., `card`). An additional hash is included on `destination_details` with a name matching this value. It contains information specific to the refund transaction.

  - `destination_details.us_bank_transfer` (object, nullable)
    If this is a `us_bank_transfer` refund, this hash contains the transaction specific details of the `us_bank_transfer` refund method.

    - `destination_details.us_bank_transfer.reference` (string, nullable)
      The reference assigned to the refund.

    - `destination_details.us_bank_transfer.reference_status` (string, nullable)
      Status of the reference on the refund. This can be `pending`, `available` or `unavailable`.

  - `destination_details.wechat_pay` (object, nullable)
    If this is a `wechat_pay` refund, this hash contains the transaction specific details of the `wechat_pay` refund method.

  - `destination_details.zip` (object, nullable)
    If this is a `zip` refund, this hash contains the transaction specific details of the `zip` refund method.

- `failure_balance_transaction` (string, nullable, expandable (can be expanded into an object with the `expand` request parameter))
  After the refund fails, this balance transaction describes the adjustment made on your account balance that reverses the initial balance transaction.

- `failure_reason` (string, nullable)
  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`.

- `instructions_email` (string, nullable)
  For payment methods without native refund support (for example, Konbini, PromptPay), provide an email address for the customer to receive refund instructions.

- `metadata` (object, nullable)
  Set of [key-value pairs](https://docs.stripe.com/docs/api/metadata.md) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

- `next_action` (object, nullable)
  If the refund has a status of `requires_action`, this property describes what the refund needs to continue processing.

  - `next_action.display_details` (object, nullable)
    Contains the refund details.

    - `next_action.display_details.email_sent` (object)
      Contains information about the email sent to the customer.

      - `next_action.display_details.email_sent.email_sent_at` (timestamp)
        The timestamp when the email was sent.

      - `next_action.display_details.email_sent.email_sent_to` (string)
        The recipient’s email address.

    - `next_action.display_details.expires_at` (timestamp)
      The expiry timestamp.

  - `next_action.type` (string)
    Type of the next action to perform.

- `payment_intent` (string, nullable, expandable (can be expanded into an object with the `expand` request parameter))
  ID of the PaymentIntent that’s refunded.

- `pending_reason` (enum, nullable)
  Provides the reason for why the refund is pending. Possible values are: `processing`, `insufficient_funds`, or `charge_pending`.

- `reason` (enum, nullable)
  Reason for the refund, which is either user-provided (`duplicate`, `fraudulent`, or `requested_by_customer`) or generated by Stripe internally (`expired_uncaptured_charge`).

- `receipt_number` (string, nullable)
  This is the transaction number that appears on email receipts sent for this refund.

- `source_transfer_reversal` (string, nullable, expandable (can be expanded into an object with the `expand` request parameter))
  The transfer reversal that’s associated with the refund. Only present if the charge came from another Stripe account.

- `status` (string, nullable)
  Status of the refund. This can be `pending`, `requires_action`, `succeeded`, `failed`, or `canceled`. Learn more about [failed refunds](https://docs.stripe.com/docs/refunds.md#failed-refunds).

- `transfer_reversal` (string, nullable, expandable (can be expanded into an object with the `expand` request parameter))
  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.

### The Refund object

```json
{
  "id": "re_1Nispe2eZvKYlo2Cd31jOCgZ",
  "object": "refund",
  "amount": 1000,
  "balance_transaction": "txn_1Nispe2eZvKYlo2CYezqFhEx",
  "charge": "ch_1NirD82eZvKYlo2CIvbtLWuY",
  "created": 1692942318,
  "currency": "usd",
  "destination_details": {
    "card": {
      "reference": "123456789012",
      "reference_status": "available",
      "reference_type": "acquirer_reference_number",
      "type": "refund"
    },
    "type": "card"
  },
  "metadata": {},
  "payment_intent": "pi_1GszsK2eZvKYlo2CfhZyoZLp",
  "reason": null,
  "receipt_number": null,
  "source_transfer_reversal": null,
  "status": "succeeded",
  "transfer_reversal": null
}
```
