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

# Retrieve refunds collection

> This endpoint allows you to retrieve a list of refunds with filtering and pagination options.

Retrieves a paginated list of refunds. You can filter the results using various query parameters.

## Query Parameters

<ParamField query="id" type="string" optional>
  Filter by refund ID
</ParamField>

<ParamField query="fromDate" type="string" optional>
  Filter refunds created after this date (ISO 8601 format, e.g., `2023-01-01T00:00:00.000Z`)
</ParamField>

<ParamField query="toDate" type="string" optional>
  Filter refunds created before this date (ISO 8601 format, e.g., `2023-01-01T12:00:00.000Z`)
</ParamField>

<ParamField query="status" type="string" optional>
  Filter by refund status. Possible values: `created`, `pending`, `pending_manual`, `successful`, `failed`
</ParamField>

<ParamField query="reference" type="string" optional>
  Filter by transfer reference (original transfer reference)
</ParamField>

<ParamField query="page" type="number" optional default="1">
  Page number for pagination
</ParamField>

<ParamField query="perPage" type="number" optional default="100">
  Number of results per page (max 100)
</ParamField>

## Response

<ResponseField name="data" type="array">
  Array of refund objects

  <Expandable title="Refund Object">
    <ResponseField name="id" type="number">
      The unique refund ID
    </ResponseField>

    <ResponseField name="status" type="string">
      The current status of the refund
    </ResponseField>

    <ResponseField name="transactionId" type="string">
      The original transfer ID that is being refunded
    </ResponseField>

    <ResponseField name="amount" type="number">
      The refund amount
    </ResponseField>

    <ResponseField name="currency" type="string">
      The currency of the refund
    </ResponseField>

    <ResponseField name="reason" type="string">
      The reason for the refund
    </ResponseField>

    <ResponseField name="paymentMethod" type="string">
      The payment method used for the refund
    </ResponseField>

    <ResponseField name="fallbackAllowed" type="boolean">
      Whether fallback methods are allowed
    </ResponseField>

    <ResponseField name="fallbackUsed" type="boolean">
      Whether a fallback method was used
    </ResponseField>

    <ResponseField name="metadata" type="object">
      Additional metadata associated with the refund
    </ResponseField>

    <ResponseField name="zendeskTicketId" type="string">
      The Zendesk ticket ID associated with the refund
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      The date and time when the refund was created
    </ResponseField>

    <ResponseField name="updatedAt" type="string">
      The date and time when the refund was last updated
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="pagination" type="object">
  Pagination information

  <Expandable title="Pagination Object">
    <ResponseField name="page" type="number">
      Current page number
    </ResponseField>

    <ResponseField name="perPage" type="number">
      Number of results per page
    </ResponseField>

    <ResponseField name="total" type="number">
      Total number of refunds
    </ResponseField>

    <ResponseField name="totalPages" type="number">
      Total number of pages
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash Example Request theme={null}
  curl --location --request GET 'https://api.hub2.io/refunds?fromDate=2023-01-01T00:00:00.000&toDate=2023-01-01T12:00:00.000&page=1&perPage=100' \
  --header 'ApiKey: [REDACTED]' \
  --header 'MerchantId: [REDACTED]' \
  --header 'Environment: sandbox' \
  --header 'Content-Type: application/json'
  ```

  ```typescript Typescript theme={null}
  import fetch from 'node-fetch';

  async function getRefunds() {
      const response = await fetch('https://api.hub2.io/refunds?fromDate=2023-01-01T00:00:00.000&toDate=2023-01-01T12:00:00.000&page=1&perPage=100', {
          method: 'GET',
          headers: {
              'ApiKey': '[REDACTED]',
              'MerchantId': '[REDACTED]',
              'Environment': 'sandbox',
              'Content-Type': 'application/json'
          }
      });

      if (response.ok) {
          const refunds = await response.json();
          console.log(refunds);
      } else {
          console.log(`HTTP Status: ${response.status}`);
      }
  }

  getRefunds();
  ```

  ```python Python theme={null}
  import requests

  headers = {
      'ApiKey': '[REDACTED]',
      'MerchantId': '[REDACTED]',
      'Environment': 'sandbox',
      'Content-Type': 'application/json',
  }

  response = requests.get(
      'https://api.hub2.io/refunds?fromDate=2023-01-01T00:00:00.000&toDate=2023-01-01T12:00:00.000&page=1&perPage=100',
      headers=headers
  )

  if response.status_code == 200:
      print(response.json())
  else:
      print(f'HTTP Status: {response.status_code}')
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "data": [
      {
        "id": 123,
        "status": "successful",
        "transactionId": "tr_000000000000000000011",
        "amount": 2000,
        "currency": "XOF",
        "reason": "Customer requested refund",
        "paymentMethod": "mobile_money",
        "fallbackAllowed": true,
        "fallbackUsed": false,
        "metadata": {},
        "zendeskTicketId": "zd_123456",
        "createdAt": "2023-01-01T12:00:00.000Z",
        "updatedAt": "2023-01-01T12:30:00.000Z"
      },
      {
        "id": 124,
        "status": "pending",
        "transactionId": "tr_000000000000000000012",
        "amount": 1500,
        "currency": "XOF",
        "reason": "Merchant initiated refund",
        "paymentMethod": "mobile_money",
        "fallbackAllowed": true,
        "fallbackUsed": false,
        "metadata": {},
        "zendeskTicketId": "zd_789012",
        "createdAt": "2023-01-01T11:30:00.000Z",
        "updatedAt": "2023-01-01T11:30:00.000Z"
      }
    ],
    "pagination": {
      "page": 1,
      "perPage": 100,
      "total": 2,
      "totalPages": 1
    }
  }
  ```
</ResponseExample>
