# List fixed fees

Operation ID: `fixedFees`

Group: PSA › Fixed Fees

[Open in the interactive reference](https://docs.api.lensing.ai/lensing/v1/endpoints/fixedFees)

`GET /psa/fixed-fees`

Read-only: Reads and returns; changes nothing.

Lists fixed fees. Each fixed fee has both amount and currency, or neither. Both come from one money value.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Api-Version` | header | string · v1 | yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version `v1`. |

## Query surface

- `id` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `currency` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `frequency` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `startDate` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between
- `endDate` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between
- `psaProjectId` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between
- `lastModifiedDate` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between
- Orderable: id, frequency, currency, startDate, endDate, psaProjectId, lastModifiedDate
- Selectable: id, amount, currency, frequency, startDate, endDate, psaProjectId, salesOrderProductLineId, productId, productLineId, lastModifiedDate
- `page[size]` — Page size
- `page[cursor]` — Opaque continuation cursor

## Response

`200` Success

Under `data`, an array of fixedFeesRow:

| Field | Type | Required | Filter | Sort | Description |
| --- | --- | --- | --- | --- | --- |
| `id` | string | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | yes | The unique identifier for the fixed fee. Example: `"7c2e1b90-4a53-4f16-8de2-9b1035c7ef42"`. |
| `amount` | decimal \| null | no | no | no | The fixed fee amount, in the currency given by currency. Example: `"5000.00"`. |
| `currency` | string \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | yes | The currency of amount. Format ISO 4217, for example 'USD'. Example: `"USD"`. |
| `frequency` | string \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | yes | The billing frequency of the fixed fee. Possible values: 'Monthly', 'BiMonthly', 'Quarterly', 'SemiAnnually', 'Annually', 'Once'. Example: `"Monthly"`. |
| `startDate` | date \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`) | yes | The first day of the fixed fee's billing period, inclusive. Format YYYY-MM-DD. Example: `"2026-01-01"`. |
| `endDate` | date \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`) | yes | The last day of the fixed fee's billing period, inclusive. Format YYYY-MM-DD. Example: `"2026-12-01"`. |
| `psaProjectId` | number | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`) | yes | The id of the PSA project this fixed fee belongs to. It is a numeric key, not the UUID that GET psa/projects/:id takes. Example: `32341`. |
| `salesOrderProductLineId` | number \| null | no | no | no | The id of the sales order product line this fixed fee fulfills. It is a numeric key. There is no endpoint for it. Example: `8812`. |
| `productId` | number \| null | no | no | no | The id of the product this fixed fee is associated with. It is a numeric key, not the UUID that GET accounting/products/:id takes. Example: `1001`. |
| `productLineId` | number \| null | no | no | no | The id of the product line this fixed fee is associated with. It is a numeric key, not the UUID that GET accounting/product-lines/:id takes. Example: `201`. |
| `lastModifiedDate` | date-time \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`) | yes | The date and time the fixed fee record last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. Example: `"2026-08-14T11:20:31.004Z"`. |

```json
{
  "data": [
    {
      "id": "7c2e1b90-4a53-4f16-8de2-9b1035c7ef42",
      "amount": "5000.00",
      "currency": "USD",
      "frequency": "Monthly",
      "startDate": "2026-01-01",
      "endDate": "2026-12-01",
      "psaProjectId": 32341,
      "salesOrderProductLineId": 8812,
      "productId": 1001,
      "productLineId": 201,
      "lastModifiedDate": "2026-08-14T11:20:31.004Z"
    }
  ],
  "pagination": {
    "hasMore": true,
    "nextCursor": "<nextCursor>"
  }
}
```

## Statuses

- `400` — Invalid request or business failure
- `401` — The request carries no valid access token.
- `403` — Not authorized
- `404` — Not found
- `429` — Too many requests from this client address. The response has no body and no `Retry-After` header.
- `500` — Internal server error
