# Refund

Object · GraphQL API

A refund of a charge on a payment method, representing an attempt to send money from a previous transaction back to the customer.

## Fields

- `id` (`ID!`) — non-null: Unique identifier.
- `legacyId` (`ID!`) — non-null: Legacy unique identifier.
- `createdAt` (`Timestamp`): Date and time when the refund was created.
- `amount` (`MonetaryAmount`): The amount that will be refunded, which can be less than or equal to the original charge amount.
- `orderId` (`String`): The order ID for this refund. For PayPal transactions, the PayPal Invoice ID.
- `status` (`PaymentStatus`): The current status of this refund.
- `processorResponse` (`TransactionAuthorizationProcessorResponse`) — deprecated since 2025-10-30: Fields describing the payment processor response.
- `processorAuthorizationResponse` (`TransactionAuthorizationProcessorResponse`): Fields describing the payment authorization processor response.
- `statusHistory` (`[PaymentStatusEvent!]`): The records of all statuses this refund has passed through, with additional information on why each status occurred. Returned in reverse chronological order, with the most recent event first in the list.
- `details` (`RefundPaymentMethodDetails`): Payment method specific details about the refund.
- `merchantAccountId` (`ID`): The ID of the merchant account that processed this refund.
- `source` (`PaymentSource`): How the refund was created.
- `refundedTransaction` (`Transaction`): The original transaction that this refunds. If this is not present, then this refund represents a refund of a transaction that does not belong to this Braintree gateway account.
- `paymentMethodSnapshot` (`PaymentMethodSnapshot`): Snapshot of payment method details that will receive the refund, typically based on the original transaction. This will always be present. Equivalent to `refundedTransaction.paymentMethodSnapshot`.
- `paymentMethod` (`PaymentMethod`): The multi-use payment method that will receive the refund. Only present if a multi-use payment method was used to create the original transaction and it has not been since deleted. The details of this PaymentMethod may have changed since the transaction was created; details used for the transaction can be found in the `paymentMethodSnapshot` field. Equivalent to `refundedTransaction.paymentMethod` (if present).
- `customer` (`Customer`): The customer that the vaulted payment method (if it exists) belongs to. Equivalent to `refundedTransaction.customer` (if present).
- `surchargeAmount` (`String`): The portion of the total refund amount attributable to the surcharge. This amount is already included in the total refund amount and must not be added separately. Value must be non-negative. Applicable to e-commerce credit card transactions only. [US region].
- `lineItems` (`[TransactionLineItem!]`): Line items for this refund.
- `customFields` (`[CustomField!]`): Collection of custom field/value pairs passed when creating the refund. Custom fields are [defined in the Control Panel](https://articles.braintreepayments.com/control-panel/custom-fields#store-and-pass-back-fields). For all refunds except "detached refunds", these will always be null.
- `descriptor` (`TransactionDescriptor`): Fields used to define what will appear on a customer's statement (for instance, credit card or bank statement) for this refund. This will always match the descriptor from the refunded transaction (if present).
- `disbursementDetails` (`DisbursementDetails`): The disbursement details associated with this refund. This field is only available after the refund is SETTLED and if you have an eligible merchant account.
- `paymentInitiatedAt` (`Timestamp`): The refund date and time as reported by the in-store payment terminal.
- `merchantId` (`String`): The ID of the merchant that processed this refund.

## Used by

- [InStoreContext](/braintree/graphql/reference/types/in-store-context) — Object; refund
- [Node](/braintree/graphql/reference/types/node) — Interface; Possible type
- [Payment](/braintree/graphql/reference/types/payment) — Interface; Possible type
- [RefundConnectionEdge](/braintree/graphql/reference/types/refund-connection-edge) — Object; node
- [RefundCreditCardPayload](/braintree/graphql/reference/types/refund-credit-card-payload) — Object; refund
- [RefundTransactionPayload](/braintree/graphql/reference/types/refund-transaction-payload) — Object; refund
- [RefundUsBankAccountPayload](/braintree/graphql/reference/types/refund-us-bank-account-payload) — Object; refund
- [RequestRefundInStoreContext](/braintree/graphql/reference/types/request-refund-in-store-context) — Object; refund
- [Transaction](/braintree/graphql/reference/types/transaction) — Object; refunds
- [TransactionReversal](/braintree/graphql/reference/types/transaction-reversal) — Union; Union member

## GraphQL definition

```graphql
type Refund implements Node & Payment {
  id: ID!
  legacyId: ID!
  createdAt: Timestamp
  amount: MonetaryAmount
  orderId: String
  status: PaymentStatus
  processorResponse: TransactionAuthorizationProcessorResponse @deprecated(reason: "Use relevant events in `statusHistory` or `processorAuthorizationResponse` instead.")
  processorAuthorizationResponse: TransactionAuthorizationProcessorResponse
  statusHistory: [PaymentStatusEvent!]
  details: RefundPaymentMethodDetails
  merchantAccountId: ID
  source: PaymentSource
  refundedTransaction: Transaction
  paymentMethodSnapshot: PaymentMethodSnapshot
  paymentMethod: PaymentMethod
  customer: Customer
  surchargeAmount: String
  lineItems: [TransactionLineItem!]
  customFields: [CustomField!]
  descriptor: TransactionDescriptor
  disbursementDetails: DisbursementDetails
  paymentInitiatedAt: Timestamp
  merchantId: String
}
```

---

[View the complete GraphQL schema on GitHub](https://raw.githubusercontent.com/braintree/graphql-api/refs/heads/master/schema.graphql)