> ## Documentation Index
> Fetch the complete documentation index at: https://docs.x402r.org/llms.txt
> Use this file to discover all available pages before exploring further.

# ReceiverRefundCollector

> Pulls funds from receiver for refunds

## Overview

* **Type:** Singleton (one per network)
* **Purpose:** Collect tokens from the receiver to refund the payer after capture
* **Address:** `0x88C9826dFA17Ad9d3a726015C667dD995394D341` (all chains)

## Features

* **Refunds (after capture)** - Pulls funds from the receiver's wallet after the escrow has already released them
* **Receiver approval required** - The receiver must approve the collector contract or supply a signature
* **Operator integration** - `operator.refund()` invokes the collector through the token collector interface

## How it works

Once the escrow has released funds to the receiver (state: `Captured`), refunding the payer requires pulling tokens back out of the receiver's wallet. The `ReceiverRefundCollector` handles that flow:

1. Operator calls `refund(paymentInfo, amount, receiverRefundCollector, collectorData)`
2. The collector transfers tokens from the receiver to the escrow contract
3. The escrow contract returns tokens to the payer

<Note>
  The receiver must pre-approve the `ReceiverRefundCollector` for token transfers, or `collectorData` must carry a valid receiver signature authorizing the refund.
</Note>
