--- title: "Partially refund a balance" url: "https://docs.adyen.com/point-of-sale/classic-library-deprecation/classic-library-integrations/com-extension-for-windows-integration/key-steps-com-extension/cancel-or-refund-a-transaction-com-extension/partially-refund-a-balance-com" source_url: "https://docs.adyen.com/point-of-sale/classic-library-deprecation/classic-library-integrations/com-extension-for-windows-integration/key-steps-com-extension/cancel-or-refund-a-transaction-com-extension/partially-refund-a-balance-com.md" canonical: "https://docs.adyen.com/point-of-sale/classic-library-deprecation/classic-library-integrations/com-extension-for-windows-integration/key-steps-com-extension/cancel-or-refund-a-transaction-com-extension/partially-refund-a-balance-com" last_modified: "2026-05-24T12:54:31+02:00" language: "en" --- # Partially refund a balance [View source](/point-of-sale/classic-library-deprecation/classic-library-integrations/com-extension-for-windows-integration/key-steps-com-extension/cancel-or-refund-a-transaction-com-extension/partially-refund-a-balance-com.md) ## POS Object | Name | Description | | ----- | ------------------------------------------------------ | | `POS` | POS object representing the cash register application. | You can partially refund a tender where the PSP reference has been generated, and where it is unknown. You will need to implement both types of partial refund. ## Where the PSP reference is known: ### Method | Name | Description | | -------------------- | ------------------------------------------------------------------------ | | `RefundPspReference` | Call used to initiate a partial refund where the PSP reference is known. | ### Request | Name | Description | | -------------------------- | ------------------------------------------------------------------- | | `RefundTransactionRequest` | Sent with the partial refund call where the PSP reference is known. | ### RefundPspReference Parameters | Name | Type | Required | Description | | ---------------------------- | ------ | ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `merchantAccount` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The merchant account that is canceling the transaction and refunding the money (if applicable). | | `PSPReference` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | PSP reference of the current transaction. | | `originalPspReference` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | PSP reference of the original transaction. | | `modificationAmountValue` | Amount | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | A container for the amount that needs to be refunded. | | `modificationAmountCurrency` | Long | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The three-character [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217). The `currency` must match the currency used in the original payment request.  | | `value` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The `value` must be less than or equal to the authorized amount. | ## Where the PSP reference is not known: ### Method | Name | Description | | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `RefundTenderReference` | Call used to initiate a partial refund where the PSP reference is unknown.This can happen when the original Sale transaction was performed offline, in which case there will be no PSPReference, since this is generated only in an online situation. | ### Request | Name | Description | | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | | `RefundTransactionRequest` | Sent with the partial refund call where the PSP reference is unknown. Use the tender reference instead of the PSP reference. | ### RefundTenderReference Parameters | Name | Type | Required | Description | | ---------------------------- | ------ | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `merchantAccount` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The merchant account that is canceling the transaction and refunding the money (if applicable). | | `uniqueTerminalId` | Long | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Unique terminal ID to reference the PED that is processing the request. | | `tenderReference` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Reference for the transaction, used as the PSP reference is not available. | | `reference` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Reference for the merchant, used in reporting. | | `modificationAmountValue` | Amount | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | A container for the amount that needs to be refunded. | | `modificationAmountCurrency` | Long | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The three-character [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217). The `currency` must match the currency used in the original payment request. | ### Callback | Name | Description | | ---------- | ------------------------------------------------------------------------------ | | `RefundCB` | Refund Callback returns the result of a partial refund, as well as any errors. | The response contains a `pspResultObj`. This object contains a getResponse method which should return a result of "**refund-received**". The response also includes the following parameters: | Name | Type | Description | | -------------- | ------ | ----------------------------------------------------------------------------------------------- | | `pedResult` | int | Result denoting whether an error occurred on the PED. A value of 0 means no error occurred. | | `pspResult` | int | Result denoting whether an error occurred on the PSP. A value of 0 means no error occurred. | | `libResult` | int | Result denoting whether an error occurred in the Library. A value of 0 means no error occurred. | | `errorMessage` | String | Reference for the transaction, used as the PSP reference is not available. |