# refund

From **Stripe API**.

`Refund` objects allow you to refund a charge that has previously been created
but not yet refunded. Funds will be refunded to the credit or debit card that
was originally charged.

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

- Type: `object`

## Properties

### `amount`

- Required: true
- Type: `integer`

Amount, in %s.

### `balance_transaction`

- Required: false
- Nullable: true

Balance transaction that describes the impact on your account balance.

### `charge`

- Required: false
- Nullable: true

ID of the charge that was refunded.

### `created`

- Required: true
- Type: `integer`
- Format: `unix-time`

Time at which the object was created. Measured in seconds since the Unix epoch.

### `currency`

- Required: true
- Type: `string`

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`

- Required: false
- Type: `string`
- maxLength: `5000`

An arbitrary string attached to the object. Often useful for displaying to users. (Available on non-card refunds only)

### `failure_balance_transaction`

- Required: false
If the refund failed, this balance transaction describes the adjustment made on your account balance that reverses the initial balance transaction.

### `failure_reason`

- Required: false
- Type: `string`
- maxLength: `5000`

If the refund failed, the reason for refund failure if known. Possible values are `lost_or_stolen_card`, `expired_or_canceled_card`, or `unknown`.

### `id`

- Required: true
- Type: `string`
- maxLength: `5000`

Unique identifier for the object.

### `metadata`

- Required: false
- Type: `object`
- Nullable: true

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

### `object`

- Required: true
- Type: `string`
- Allowed values: `"refund"`

String representing the object's type. Objects of the same type share the same value.

### `payment_intent`

- Required: false
- Nullable: true

ID of the PaymentIntent that was refunded.

### `reason`

- Required: false
- Type: `string`
- Nullable: true
- maxLength: `5000`

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

### `receipt_number`

- Required: false
- Type: `string`
- Nullable: true
- maxLength: `5000`

This is the transaction number that appears on email receipts sent for this refund.

### `source_transfer_reversal`

- Required: false
- Nullable: true

The transfer reversal that is associated with the refund. Only present if the charge came from another Stripe account. See the Connect documentation for details.

### `status`

- Required: false
- Type: `string`
- Nullable: true
- maxLength: `5000`

Status of the refund. For credit card refunds, this can be `pending`, `succeeded`, or `failed`. For other types of refunds, it can be `pending`, `succeeded`, `failed`, or `canceled`. Refer to our [refunds](https://stripe.com/docs/refunds#failed-refunds) documentation for more details.

### `transfer_reversal`

- Required: false
- Nullable: true

If the accompanying transfer was reversed, the transfer reversal object. Only applicable if the charge was created using the destination parameter.

## JSON Schema

```json
{"description":"`Refund` objects allow you to refund a charge that has previously been created\nbut not yet refunded. Funds will be refunded to the credit or debit card that\nwas originally charged.\n\nRelated guide: [Refunds](https://stripe.com/docs/refunds).","properties":{"amount":{"description":"Amount, in %s.","type":"integer"},"balance_transaction":{"anyOf":[{"maxLength":5000,"type":"string"},{"$ref":"#/components/schemas/balance_transaction"}],"description":"Balance transaction that describes the impact on your account balance.","nullable":true,"x-expansionResources":{"oneOf":[{"$ref":"#/components/schemas/balance_transaction"}]}},"charge":{"anyOf":[{"maxLength":5000,"type":"string"},{"$ref":"#/components/schemas/charge"}],"description":"ID of the charge that was refunded.","nullable":true,"x-expansionResources":{"oneOf":[{"$ref":"#/components/schemas/charge"}]}},"created":{"description":"Time at which the object was created. Measured in seconds since the Unix epoch.","format":"unix-time","type":"integer"},"currency":{"description":"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).","type":"string"},"description":{"description":"An arbitrary string attached to the object. Often useful for displaying to users. (Available on non-card refunds only)","maxLength":5000,"type":"string"},"failure_balance_transaction":{"anyOf":[{"maxLength":5000,"type":"string"},{"$ref":"#/components/schemas/balance_transaction"}],"description":"If the refund failed, this balance transaction describes the adjustment made on your account balance that reverses the initial balance transaction.","x-expansionResources":{"oneOf":[{"$ref":"#/components/schemas/balance_transaction"}]}},"failure_reason":{"description":"If the refund failed, the reason for refund failure if known. Possible values are `lost_or_stolen_card`, `expired_or_canceled_card`, or `unknown`.","maxLength":5000,"type":"string"},"id":{"description":"Unique identifier for the object.","maxLength":5000,"type":"string"},"metadata":{"additionalProperties":{"maxLength":500,"type":"string"},"description":"Set of [key-value pairs](https://stripe.com/docs/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":true,"type":"object"},"object":{"description":"String representing the object's type. Objects of the same type share the same value.","enum":["refund"],"type":"string"},"payment_intent":{"anyOf":[{"maxLength":5000,"type":"string"},{"$ref":"#/components/schemas/payment_intent"}],"description":"ID of the PaymentIntent that was refunded.","nullable":true,"x-expansionResources":{"oneOf":[{"$ref":"#/components/schemas/payment_intent"}]}},"reason":{"description":"Reason for the refund, either user-provided (`duplicate`, `fraudulent`, or `requested_by_customer`) or generated by Stripe internally (`expired_uncaptured_charge`).","maxLength":5000,"nullable":true,"type":"string"},"receipt_number":{"description":"This is the transaction number that appears on email receipts sent for this refund.","maxLength":5000,"nullable":true,"type":"string"},"source_transfer_reversal":{"anyOf":[{"maxLength":5000,"type":"string"},{"$ref":"#/components/schemas/transfer_reversal"}],"description":"The transfer reversal that is associated with the refund. Only present if the charge came from another Stripe account. See the Connect documentation for details.","nullable":true,"x-expansionResources":{"oneOf":[{"$ref":"#/components/schemas/transfer_reversal"}]}},"status":{"description":"Status of the refund. For credit card refunds, this can be `pending`, `succeeded`, or `failed`. For other types of refunds, it can be `pending`, `succeeded`, `failed`, or `canceled`. Refer to our [refunds](https://stripe.com/docs/refunds#failed-refunds) documentation for more details.","maxLength":5000,"nullable":true,"type":"string"},"transfer_reversal":{"anyOf":[{"maxLength":5000,"type":"string"},{"$ref":"#/components/schemas/transfer_reversal"}],"description":"If the accompanying transfer was reversed, the transfer reversal object. Only applicable if the charge was created using the destination parameter.","nullable":true,"x-expansionResources":{"oneOf":[{"$ref":"#/components/schemas/transfer_reversal"}]}}},"required":["amount","created","currency","id","object"],"title":"Refund","type":"object","x-expandableFields":["balance_transaction","charge","failure_balance_transaction","payment_intent","source_transfer_reversal","transfer_reversal"],"x-resourceId":"refund"}
```
