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

# List transactions

> View wallet transaction history — top-ups and usage.

Returns a paginated list of wallet transactions, ordered by most recent first.

<Note>
  Transaction amounts in this response are in **naira** (NGN), not kobo. Divide a kobo amount by 100 to get naira.
</Note>

## Query parameters

<ParamField query="page" type="string" default="1">
  Page number.
</ParamField>

<ParamField query="limit" type="string" default="10">
  Results per page. Maximum 100.
</ParamField>

<ParamField query="type" type="string">
  Filter by category. One of `top_ups` or `usage`.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.vouchmark.com/v1/wallet/transactions?type=top_ups&limit=10" \
    -H "Authorization: Bearer $TOKEN"
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
    "success": true,
    "transactions": [
      {
        "id": "...",
        "referenceNumber": "...",
        "amount": 50000,
        "vat": 3750,
        "totalAmount": 53750,
        "status": "successful",
        "type": "top_up",
        "paymentMethod": "Paystack",
        "createdAt": "2026-05-18T10:00:00Z"
      }
    ],
    "counts": {
      "totalTopUps": 12,
      "totalUsage": 40
    },
    "pagination": {
      "page": 1,
      "limit": 10,
      "total": 52,
      "totalPages": 6,
      "hasNextPage": true,
      "hasPrevPage": false
    }
  }
  ```
</ResponseExample>

## Response fields

<ResponseField name="success" type="boolean" />

<ResponseField name="transactions" type="object[]">
  <Expandable title="transaction">
    <ResponseField name="id" type="string" />

    <ResponseField name="referenceNumber" type="string" />

    <ResponseField name="amount" type="number">
      Base amount in naira.
    </ResponseField>

    <ResponseField name="vat" type="number">
      VAT in naira.
    </ResponseField>

    <ResponseField name="totalAmount" type="number">
      Amount plus VAT in naira.
    </ResponseField>

    <ResponseField name="status" type="string">
      One of `successful`, `pending`, `failed`.
    </ResponseField>

    <ResponseField name="type" type="string">
      One of `top_up`, `usage`, `refund`, `adjustment`.
    </ResponseField>

    <ResponseField name="paymentMethod" type="string" />

    <ResponseField name="createdAt" type="string" />
  </Expandable>
</ResponseField>

<ResponseField name="counts" type="object">
  <Expandable title="counts">
    <ResponseField name="totalTopUps" type="number" />

    <ResponseField name="totalUsage" type="number" />
  </Expandable>
</ResponseField>

<ResponseField name="pagination" type="object">
  <Expandable title="pagination">
    <ResponseField name="page" type="number" />

    <ResponseField name="limit" type="number" />

    <ResponseField name="total" type="number" />

    <ResponseField name="totalPages" type="number" />

    <ResponseField name="hasNextPage" type="boolean" />

    <ResponseField name="hasPrevPage" type="boolean" />
  </Expandable>
</ResponseField>
