import type * as Square from "../../../../index"; /** * @example * { * idempotencyKey: "9b7f2dcf-49da-4411-b23e-a2d6af21333a", * amountMoney: { * amount: BigInt("1000"), * currency: "USD" * }, * appFeeMoney: { * amount: BigInt("10"), * currency: "USD" * }, * paymentId: "R2B3Z8WMVt3EAmzYWLZvz7Y69EbZY", * reason: "Example" * } */ export interface RefundPaymentRequest { /** * A unique string that identifies this `RefundPayment` request. The key can be any valid string * but must be unique for every `RefundPayment` request. * * Keys are limited to a max of 45 characters - however, the number of allowed characters might be * less than 45, if multi-byte characters are used. * * For more information, see [Idempotency](https://developer.squareup.com/docs/working-with-apis/idempotency). */ idempotencyKey: string; /** * The amount of money to refund. * * This amount cannot be more than the `total_money` value of the payment minus the total * amount of all previously completed refunds for this payment. * * This amount must be specified in the smallest denomination of the applicable currency * (for example, US dollar amounts are specified in cents). For more information, see * [Working with Monetary Amounts](https://developer.squareup.com/docs/build-basics/working-with-monetary-amounts). * * The currency code must match the currency associated with the business * that is charging the card. */ amountMoney: Square.Money; /** * The amount of money the developer contributes to help cover the refunded amount. * This amount is specified in the smallest denomination of the applicable currency (for example, * US dollar amounts are specified in cents). * * The value cannot be more than the `amount_money`. * * You can specify this parameter in a refund request only if the same parameter was also included * when taking the payment. This is part of the application fee scenario the API supports. For more * information, see [Take Payments and Collect Fees](https://developer.squareup.com/docs/payments-api/take-payments-and-collect-fees). * * To set this field, `PAYMENTS_WRITE_ADDITIONAL_RECIPIENTS` OAuth permission is required. * For more information, see [Permissions](https://developer.squareup.com/docs/payments-api/take-payments-and-collect-fees#permissions). */ appFeeMoney?: Square.Money; /** * Details pertaining to contributors to the refund of the application fee. * The sum of the amounts in the app_fee_allocations must equal the app_fee_money amount, if * present. If populated, an allocation must be present for every party that expects to contribute * a portion of the refunded application fee, including the application developer. */ appFeeAllocations?: unknown[] | null; /** * The unique ID of the payment being refunded. * Required when unlinked=false, otherwise must not be set. */ paymentId?: string | null; /** * The ID indicating where funds will be refunded to. Required for unlinked refunds. For more * information, see [Process an Unlinked Refund](https://developer.squareup.com/docs/refunds-api/unlinked-refunds). * * For refunds linked to Square payments, `destination_id` is usually omitted; in this case, funds * will be returned to the original payment source. The field may be specified in order to request * a cross-method refund to a gift card. For more information, * see [Cross-method refunds to gift cards](https://developer.squareup.com/docs/payments-api/refund-payments#cross-method-refunds-to-gift-cards). */ destinationId?: string | null; /** * Indicates that the refund is not linked to a Square payment. * If set to true, `destination_id` and `location_id` must be supplied while `payment_id` must not * be provided. */ unlinked?: boolean | null; /** * The location ID associated with the unlinked refund. * Required for requests specifying `unlinked=true`. * Otherwise, if included when `unlinked=false`, will throw an error. */ locationId?: string | null; /** * The [Customer](entity:Customer) ID of the customer associated with the refund. * This is required if the `destination_id` refers to a card on file created using the Cards * API. Only allowed when `unlinked=true`. */ customerId?: string | null; /** A description of the reason for the refund. */ reason?: string | null; /** * Used for optimistic concurrency. This opaque token identifies the current `Payment` * version that the caller expects. If the server has a different version of the Payment, * the update fails and a response with a VERSION_MISMATCH error is returned. * If the versions match, or the field is not provided, the refund proceeds as normal. */ paymentVersionToken?: string | null; /** An optional [TeamMember](entity:TeamMember) ID to associate with this refund. */ teamMemberId?: string | null; /** Additional details required when recording an unlinked cash refund (`destination_id` is CASH). */ cashDetails?: Square.DestinationDetailsCashRefundDetails; /** * Additional details required when recording an unlinked external refund * (`destination_id` is EXTERNAL). */ externalDetails?: Square.DestinationDetailsExternalRefundDetails; }