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

# Performance fee endpoints

> Contracts for fee configuration, payment-account credits, and Investor-level reconciliation.

## Read Investor configuration

`GET /api/v1/investor/{investor_login}/performance-fee`

| Path parameter   | Type   | Required | Description         |
| ---------------- | ------ | -------- | ------------------- |
| `investor_login` | string | Yes      | Investor MT5 login. |

```json theme={null}
{
  "investor_id": 410,
  "investor_login": "146600",
  "rate": "0.300000",
  "enabled": true,
  "effective_since": "2026-07-21T13:20:00",
  "created_at": "2026-07-21T13:20:00",
  "updated_at": "2026-07-21T13:20:00"
}
```

The route returns `404` when the Investor does not exist or has no fee configuration.

## Update Investor configuration

`POST /api/v1/investor/perf-fee/update`

| Body field        | Type     | Required | Description                                                                         |
| ----------------- | -------- | -------- | ----------------------------------------------------------------------------------- |
| `investor_login`  | string   | Yes      | Investor MT5 login.                                                                 |
| `rate`            | decimal  | No       | New rate from `0` to `1`.                                                           |
| `enabled`         | boolean  | No       | Enables or disables collection.                                                     |
| `effective_since` | datetime | No       | ISO 8601 start of validity. Current time is used when a new configuration omits it. |
| `upsert`          | boolean  | No       | Defaults to `true`.                                                                 |

```json theme={null}
{
  "investor_login": "146600",
  "rate": 0.30,
  "enabled": true
}
```

```json theme={null}
{
  "investor_id": 410,
  "investor_login": "146600",
  "rate": "0.300000",
  "enabled": true,
  "effective_since": "2026-07-21T13:20:00",
  "created_at": "2026-07-21T13:20:00",
  "updated_at": "2026-07-29T18:00:00"
}
```

Changing this configuration does not reset the HWM or modify already executed fees.

## List payment-account credits

`GET /api/v1/perf-fee/transactions`

| Query parameter | Type    | Required | Description                                                           |
| --------------- | ------- | -------- | --------------------------------------------------------------------- |
| `master_login`  | string  | Yes      | Master trading login; the API resolves its payment account.           |
| `limit`         | integer | No       | From 1 to 100; defaults to 5.                                         |
| `cursor`        | integer | No       | Returns records with `id` greater than this value. Use `next_cursor`. |

```json theme={null}
{
  "payment_account_login": "146513",
  "items": [
    {
      "id": 2203,
      "master_payment_login": "146513",
      "investor_mt5_login": "146600",
      "kind": "PF",
      "amount": 18.72,
      "currency": "USD",
      "mt5_op_id": 991100,
      "mt5_ts": "2026-07-26T00:00:10",
      "created_at": "2026-07-26T00:00:11"
    }
  ],
  "next_cursor": null,
  "has_more": false
}
```

`investor_mt5_login` can be `null` for aggregate credits whose unique key does not identify one Investor.

## List Investor-level payments

`GET /api/v1/perf-fee/master/{master_login}/investor-payments`

| Parameter      | Type    | Required | Description                                           |
| -------------- | ------- | -------- | ----------------------------------------------------- |
| `master_login` | string  | Yes      | Master trading MT5 login in the path.                 |
| `limit`        | integer | No       | From 1 to 500; defaults to 100.                       |
| `cursor`       | integer | No       | Returns IDs lower than the cursor. Use `next_cursor`. |

```json theme={null}
{
  "master_login": "146512",
  "payment_account_login": "146513",
  "items": [
    {
      "id": 901,
      "run_id": 44,
      "run_status": "EXECUTED",
      "run_period_start": "2026-07-26T00:00:00",
      "run_period_end": "2026-07-26T00:00:00",
      "investor_id": 410,
      "investor_mt5_login": "146600",
      "amount": 18.72,
      "currency": "USD",
      "status": "EXECUTED",
      "mt5_transfer_id": 7412,
      "mt5_op_id": 991100,
      "executed_at": "2026-07-26T00:00:10",
      "cashflow_id": 2203,
      "cashflow_unique_key": "PF:146600:146512:44:MAS",
      "created_at": "2026-07-26T00:00:01"
    }
  ],
  "next_cursor": null,
  "has_more": false
}
```

Only executed items with a fee greater than zero are returned. Deduplicate by `id` and use the Investor-level detail when distributing fees across a sponsor or IB network.

<CardGroup cols={1}>
  <Card title="Previous: Financial operations" icon="arrow-left" href="/reference/operations">
    Return to deposit, withdrawal, and balance contracts.
  </Card>
</CardGroup>
