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

# List Beneficiaries

> Retrieves a paginated list of saved beneficiaries for the business.

Retrieve a paginated list of saved beneficiaries for your business. Filter by currency or search by name and account number.

## Example Request

```bash theme={null}
curl -X GET "https://api.rolla.xyz/api/v1/external/beneficiaries?page=1&pageSize=20&currency=NGN" \
  -H "X-API-Key: your_api_key_here"
```

## Query Parameters

| Parameter  | Type    | Description                                 |
| ---------- | ------- | ------------------------------------------- |
| `page`     | integer | Page number (default: 1)                    |
| `pageSize` | integer | Results per page (default: 20, max: 100)    |
| `currency` | string  | Filter by currency code (e.g. `NGN`, `USD`) |
| `search`   | string  | Search by name or account number            |

## Example Response

```json theme={null}
{
  "status": 200,
  "success": true,
  "message": "Beneficiaries retrieved successfully",
  "data": {
    "beneficiaries": [
      {
        "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
        "currency": "NGN",
        "label": "Office rent",
        "account_name": "JOHN DOE",
        "account_number": "0123456789",
        "bank_name": "Access Bank",
        "bank_code": "000014",
        "withdrawal_method": null,
        "email": "john@example.com",
        "created_at": "2024-01-10T08:00:00.000Z",
        "updated_at": "2024-01-10T08:00:00.000Z"
      }
    ],
    "totalCount": 5,
    "page": 1,
    "pageSize": 20,
    "totalPages": 1
  }
}
```

<Tip>
  Use the `search` parameter to quickly find beneficiaries by name or account number without needing to paginate through all results.
</Tip>


## OpenAPI

````yaml GET /beneficiaries
openapi: 3.1.0
info:
  title: Rolla Developer API
  description: >-
    API for programmatic transaction management on the Rolla platform. Monetary
    `amount` fields use the smallest unit of the referenced currency unless an
    endpoint says otherwise (e.g. NGN = kobo, USD = cents, where **100 cents =
    USD 1.00**).
  version: 1.0.0
servers:
  - url: https://api.rolla.xyz/api/v1/external
    description: Production server
security:
  - apiKeyAuth: []
paths:
  /beneficiaries:
    get:
      summary: List Beneficiaries
      description: Retrieves a paginated list of saved beneficiaries for the business.
      operationId: listBeneficiaries
      parameters:
        - name: page
          in: query
          description: 'Page number (default: 1)'
          schema:
            type: integer
            default: 1
            minimum: 1
        - name: pageSize
          in: query
          description: 'Results per page (default: 20, max: 100)'
          schema:
            type: integer
            default: 20
            minimum: 1
            maximum: 100
        - name: currency
          in: query
          description: Filter by currency code
          schema:
            type: string
        - name: search
          in: query
          description: Search by name or account number
          schema:
            type: string
      responses:
        '200':
          description: Beneficiaries retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: Beneficiaries retrieved successfully
                  data:
                    type: object
                    properties:
                      beneficiaries:
                        type: array
                        items:
                          $ref: '#/components/schemas/SavedBeneficiary'
                      pagination:
                        $ref: '#/components/schemas/Pagination'
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    SavedBeneficiary:
      type: object
      properties:
        id:
          type: string
          format: uuid
        currency:
          type: string
          example: NGN
        label:
          type: string
          example: Office rent
        account_name:
          type: string
          example: JOHN DOE
        account_number:
          type: string
          example: '0123456789'
        bank_name:
          type: string
          example: Access Bank
        bank_code:
          type: string
          example: '000014'
        bank_address:
          type: string
        swift_code:
          type: string
        email:
          type: string
          format: email
        contact_person:
          type: string
        beneficiary_address:
          type: string
        withdrawal_method:
          type: string
          enum:
            - domestic_wire
            - international_wire
            - ach
            - crypto_usdt
            - crypto_usdc
            - rolla_transfer
        routing_number:
          type: string
        wallet_address:
          type: string
        wallet_chain:
          type: string
        intermediary_bank_name:
          type: string
        intermediary_bank_routing_number:
          type: string
        recipient_business_id:
          type: string
          format: uuid
          description: >-
            Required for rolla_transfer. The UUID of the destination Rolla
            business.
        account_owner_type:
          type: string
          enum:
            - individual
            - business
          description: >-
            Whether the account is held by an individual or a business. Present
            for bank-account beneficiaries; null on legacy records that predate
            this field.
          example: business
        account_category:
          type: string
          enum:
            - checking
            - savings
          description: >-
            Whether a USD account is checking or savings. Present for USD
            beneficiaries; null on legacy records that predate this field.
          example: checking
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    Pagination:
      type: object
      properties:
        page:
          type: integer
          description: Current page number
        pageSize:
          type: integer
          description: Results per page
        total:
          type: integer
          description: Total number of results
    Error:
      type: object
      properties:
        success:
          type: boolean
          example: false
        message:
          type: string
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: Your Rolla API key

````