> ## 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.

# API conventions

> Apply consistent rules for identifiers, pagination, dates, money, and response compatibility.

## Base request

All routes are relative to `https://pamm-api.example.com` and require the CRM bearer credential. JSON requests use UTF-8.

## Identifiers are not interchangeable

* Use internal `master.id` with `GET` and `PATCH /api/v1/master/{master_id}`.
* Use `mt5_login` with funding, assignment, relationship, balance, and sensitive information routes.
* Keep `payment_account_login` separate from the Master's trading login.
* Persist `subscription.id` for relationship reconciliation even when later queries use account logins.

## Money and rates

* Treat amounts as decimal values and avoid binary floating point in accounting code.
* Deposits and withdrawals require a positive amount of at least `0.01`.
* The default operational currency is `USD`.
* Performance fee rates range from `0` to `1`; `0.30` represents 30%.

## Dates and time

Exchange timestamps in ISO 8601 and interpret operational schedules in UTC. The automatic weekly performance fee run begins Saturday at 00:00 UTC; MT5 settlement may finish later.

## Cursor pagination

Directory endpoints return an opaque `next_cursor`. Reuse it exactly while `has_more` is true; never construct it manually.

```json theme={null}
{
  "items": [],
  "next_cursor": null,
  "has_more": false
}
```

Performance fee endpoints use numeric cursors with different directions:

| Endpoint                                            | Cursor behavior                                       |
| --------------------------------------------------- | ----------------------------------------------------- |
| `/perf-fee/transactions`                            | Returns records with an `id` greater than the cursor. |
| `/perf-fee/master/{master_login}/investor-payments` | Returns records with an `id` lower than the cursor.   |

Always use the returned `next_cursor` rather than inferring direction in application code.

## Forward compatibility

Examples show only the fields that belong to this external integration contract. The service can return additional properties. Ignore unknown response fields and depend only on documented properties.

<CardGroup cols={2}>
  <Card title="Previous: Errors" icon="arrow-left" href="/reliability/errors">
    Return to safe failure handling.
  </Card>

  <Card title="Next: Endpoint index" icon="arrow-right" href="/reference/endpoint-index">
    Browse the complete CRM-facing route catalog.
  </Card>
</CardGroup>
