Endpoints
All endpoints require the bearer API key used by the rest of the MAM integration.
Agreement creation
POST /api/v1/mam/cascade-fee-agreements
201 with the agreement:
Agreement requirements
One downstream master can have only one agreement. To assign a different parent, deactivate the current agreement and then activate the new one.
List and retrieve agreements
GET /api/v1/mam/cascade-fee-agreements accepts:
The response contains
items, next_cursor, and has_more, ordered from newest ID to oldest.
Use GET /api/v1/mam/cascade-fee-agreements/{downstream_master_login} to retrieve the active or inactive agreement record for one downstream master.
Update and deactivate
PATCH /api/v1/mam/cascade-fee-agreements/{downstream_master_login} accepts only:
DELETE /api/v1/mam/cascade-fee-agreements/{downstream_master_login} changes the agreement to INACTIVE and sets effective_to. It is safe to repeat for an inactive agreement.
List charges
GET /api/v1/mam/cascade-fees/charges accepts:
The response is ordered from newest ID to oldest and contains
items, next_cursor, and has_more.
Source types
Charge statuses
PENDING, CLAIMED, and DEBITED are actionable states. They also prevent deletion of either related MAM account until the obligation reaches a terminal state.
Charge response
UseGET /api/v1/mam/cascade-fees/charges/{charge_id} for a single item. A charge snapshots the agreement and performance-fee credit that produced it:
gross_pf_amount is the performance fee credited to the downstream master. fee_amount is that amount multiplied by the snapshotted fee_rate, rounded to two decimals.
Operational summary
GET /api/v1/mam/cascade-fees/summary accepts upstream_master_login, downstream_master_login, currency, from_at, and to_at.
The agent claim and acknowledgement routes are internal settlement interfaces and are not part of the customer integration. Cascade-fee events are also not sent to the public MAM webhook.

