Public reference

Managers

Every endpoint in this group. Open one for its parameters and a worked example.

32 Endpoints

View as Markdown

Managers

32
POST /api/v1/admin/managers/bulk-group Assign groups prm_groups_assign
Authentication
Staff token or session
Requires permission
prm_groups_assign Assign groups
Rate limit
t_mutate

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

POST /api/v1/admin/managers/{id}/group Assign groups prm_groups_assign
Authentication
Staff token or session
Requires permission
prm_groups_assign Assign groups
Rate limit
t_mutate

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

GET /api/v1/managers List managers prm_managers_index

One page of managers. A caller without tenant-wide visibility sees their own descendants only — never their parent, never a sibling branch.

Authentication
Staff token or session
Requires permission
prm_managers_index View managers

debt, parent_username, users_count and the other joined fields are computed by the list projection only. Fetching one manager by id returns the same record without them, so a client that reads users_count off a detail response will always see zero.

Parameters

Parameter Description
filter[parent_id] query · integer Direct children of one manager. Also accepted as a bare parent_id query parameter. Narrows within the caller's subtree, never past it.
q query · string Searches name, username and email.
Response 200 OK
{
  "data": [
    {
      "id": 57,
      "tenant_id": 12,
      "email": "giza@acme.example",
      "username": "giza-reseller",
      "firstname": "Mona",
      "status": "active",
      "parent_manager_id": 41,
      "parent_username": "cairo-reseller",
      "balance": 1840.00,
      "debt_limit": 5000.00,
      "debt": 0.00,
      "discount_rate": 10.00,
      "points_balance": 240,
      "users_count": 312,
      "created_at": "2026-05-02 09:00:00"
    }
  ],
  "meta": { "page": 1, "page_size": 50, "total": 9, "has_next": false }
}
POST /api/v1/managers Create a manager prm_managers_create

Creates a staff or reseller account. A manager needs at least one login identity, so email or username must be present.

Authentication
Staff token or session
Requires permission
prm_managers_create Create managers
Rate limit
t_mutate

Parameters

Parameter Description
email body · string Login email. Unique within the tenant. Required unless username is given.
username body · string Login username. Required unless email is given.
passwordrequired body · string Hashed with Argon2id before storage, unlike a subscriber's.
parent_manager_id body · integer Defaults to the caller. Never null — a tenant keeps exactly one root manager, its owner. A named parent must be one the caller may act on.
GET /api/v1/managers/all List managers for a picker prm_managers_index

Id and name only, un-paginated, for populating a select control. Same subtree scope as the full list.

Authentication
Staff token or session
Requires permission
prm_managers_index View managers
POST /api/v1/managers/bulk-activate Edit managers prm_managers_update
Authentication
Staff token or session
Requires permission
prm_managers_update Edit managers
Rate limit
t_mutate

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

POST /api/v1/managers/bulk-delete Delete managers prm_managers_delete
Authentication
Staff token or session
Requires permission
prm_managers_delete Delete managers
Rate limit
t_mutate

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

POST /api/v1/managers/bulk-suspend Edit managers prm_managers_update
Authentication
Staff token or session
Requires permission
prm_managers_update Edit managers
Rate limit
t_mutate

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

DELETE /api/v1/managers/{id} Delete a manager prm_managers_delete

Hard-deletes the manager. Refused while they are still referenced by subscribers, card stock or ledger records — move those first.

Authentication
Staff token or session
Requires permission
prm_managers_delete Delete managers
Rate limit
t_mutate

Parameters

Parameter Description
idrequired path · integer Manager id.
GET /api/v1/managers/{id} Fetch one manager prm_managers_index

The manager record, including their custom form fields.

Authentication
Staff token or session
Requires permission
prm_managers_index View managers

Parameters

Parameter Description
idrequired path · integer Manager id.
PATCH /api/v1/managers/{id} Update a manager prm_managers_update

Partial update. An omitted field is left alone.

Authentication
Staff token or session
Requires permission
prm_managers_update Edit managers
Rate limit
t_mutate

Parameters

Parameter Description
idrequired path · integer Manager id.
POST /api/v1/managers/{id}/2fa/reset Edit managers prm_managers_update
Authentication
Staff token or session Staff session only — an API token cannot call this
Requires permission
prm_managers_update Edit managers
Rate limit
t_mutate

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

POST /api/v1/managers/{id}/activate Edit managers prm_managers_update
Authentication
Staff token or session
Requires permission
prm_managers_update Edit managers
Rate limit
t_mutate

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

GET /api/v1/managers/{id}/debt Read a manager's debt prm_managers_journal

Outstanding debt for this manager, read off the loan ledger.

Authentication
Staff token or session
Requires permission
prm_managers_journal View manager journal

Parameters

Parameter Description
idrequired path · integer Manager id.
GET /api/v1/managers/{id}/invoices View manager invoices prm_managers_invoices
Authentication
Staff token or session
Requires permission
prm_managers_invoices View manager invoices

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

GET /api/v1/managers/{id}/journal Read a manager's ledger prm_managers_journal

Every money movement on this manager's wallet, newest first, with a running balance. This is the authoritative record — the wallet balance is its consequence, not a parallel truth.

Authentication
Staff token or session
Requires permission
prm_managers_journal View manager journal

Parameters

Parameter Description
idrequired path · integer Manager id.
GET /api/v1/managers/{id}/loans View manager journal prm_managers_journal
Authentication
Staff token or session
Requires permission
prm_managers_journal View manager journal

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

POST /api/v1/managers/{id}/login-as Log in as manager prm_managers_login_as
Authentication
Staff token or session Staff session only — an API token cannot call this
Requires permission
prm_managers_login_as Log in as manager
Rate limit
t_mutate

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

GET /api/v1/managers/{id}/overview View managers prm_managers_index
Authentication
Staff token or session
Requires permission
prm_managers_index View managers

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

GET /api/v1/managers/{id}/payments View manager receipts prm_managers_receipts
Authentication
Staff token or session
Requires permission
prm_managers_receipts View manager receipts

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

POST /api/v1/managers/{id}/points/add Add / deduct manager reward points prm_managers_reward_points
Authentication
Staff token or session
Requires permission
prm_managers_reward_points Add / deduct manager reward points
Rate limit
t_mutate

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

POST /api/v1/managers/{id}/points/deduct Add / deduct manager reward points prm_managers_reward_points
Authentication
Staff token or session
Requires permission
prm_managers_reward_points Add / deduct manager reward points
Rate limit
t_mutate

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

GET /api/v1/managers/{id}/profile View managers prm_managers_index
Authentication
Staff token or session
Requires permission
prm_managers_index View managers

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

GET /api/v1/managers/{id}/receipts View manager receipts prm_managers_receipts
Authentication
Staff token or session
Requires permission
prm_managers_receipts View manager receipts

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

POST /api/v1/managers/{id}/reset-password Edit managers prm_managers_update
Authentication
Staff token or session
Requires permission
prm_managers_update Edit managers
Rate limit
t_mutate

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

GET /api/v1/managers/{id}/roles Read a manager's roles prm_managers_index

The roles assigned to this manager, which is what their permissions resolve from.

Authentication
Staff token or session
Requires permission
prm_managers_index View managers

Parameters

Parameter Description
idrequired path · integer Manager id.
PUT /api/v1/managers/{id}/roles Replace a manager's roles prm_roles_manage

Replaces the whole set. A caller may only grant roles whose permissions are a subset of their own, so this cannot be used to escalate.

Authentication
Staff token or session
Requires permission
prm_roles_manage Manage roles & permissions
Rate limit
t_mutate

This takes effect on every API token that manager holds, immediately and silently. A token's authority is its owner's live permissions intersected with its own scope, so removing a role here shrinks every integration running as that person with no notification and no change to the token record.

Parameters

Parameter Description
idrequired path · integer Manager id.
role_idsrequired body · array The complete new set of role ids.
POST /api/v1/managers/{id}/suspend Suspend a manager prm_managers_update

Sets the account to suspended. They can no longer sign in, and every API token they own stops authenticating with reason api_token_owner_inactive.

Authentication
Staff token or session
Requires permission
prm_managers_update Edit managers
Rate limit
t_mutate

Suspending a reseller does not touch the subscribers below them. Those keep connecting; only the person's own access ends.

Parameters

Parameter Description
idrequired path · integer Manager id.
POST /api/v1/managers/{id}/wallet/deposit Credit a manager wallet prm_managers_deposit

Moves money into a reseller's wallet and posts the matching ledger entry. Idempotent on request_id through the ledger's own unique constraint.

Authentication
Staff token or session
Requires permission
prm_managers_deposit Deposit to manager wallet
Rate limit
t_mutate
Idempotency key
request_id

issue_invoice defaults differently here than on the subscriber wallet. Omitting it on a manager deposit issues the document; omitting it on a subscriber deposit does not. Send it explicitly if you care either way.

Parameters

Parameter Description
idrequired path · integer Manager id. May not be the caller themselves.
amountrequired body · number Major units, a bare JSON number.
request_idrequired body · string Idempotency key.
reason body · string Free-text note recorded on the ledger row.
issue_invoice body · boolean Also record the human-facing accounting document. Defaults to TRUE when omitted on the manager side, unlike the subscriber side.
POST /api/v1/managers/{id}/wallet/pay-debt Settle a manager's debt prm_managers_pay_debt

Records a repayment against a creditor. The creditor defaults to the debtor's parent manager.

Authentication
Staff token or session
Requires permission
prm_managers_pay_debt Settle manager debt
Rate limit
t_mutate
Idempotency key
request_id

Parameters

Parameter Description
idrequired path · integer The debtor. May not be the caller themselves.
amountrequired body · number Major units.
creditor_manager_id body · integer Which creditor is being repaid. Absent means the debtor's parent.
request_idrequired body · string Idempotency key.
POST /api/v1/managers/{id}/wallet/topup Deposit to manager wallet prm_managers_deposit
Authentication
Staff token or session
Requires permission
prm_managers_deposit Deposit to manager wallet
Rate limit
t_mutate

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

POST /api/v1/managers/{id}/wallet/withdraw Debit a manager wallet prm_managers_withdrawal

The inverse of deposit, posting the matching ledger entry.

Authentication
Staff token or session
Requires permission
prm_managers_withdrawal Withdraw from manager wallet
Rate limit
t_mutate
Idempotency key
request_id

Parameters

Parameter Description
idrequired path · integer Manager id.
amountrequired body · number Major units.
request_idrequired body · string Idempotency key.
allow_negative body · boolean Permit the withdrawal to drive the balance below zero.

Written to be read by machines too

The reference is public and needs no account, so a tool that has never seen X-Radius can reach a correct first call on its own.

/llms.txt
An index of every page, with one-line summaries.
/llms-full.txt
The whole reference as one Markdown file, with no navigation to crawl.
/openapi.json
OpenAPI 3.1, generated from the router that serves this instance.
/skill.md
A ready-made skill file for an assistant: authentication, the response envelope and the error codes in one page.
<page-url>.md
Append .md to any reference URL for the same page as Markdown.
Accept: text/markdown
Send this header on the ordinary URL and the answer comes back as Markdown instead.
Hand this to your assistant
Read https://x-radius.com/llms.txt, then fetch the endpoint you need as Markdown by appending .md to its URL.

Try it on your own network.

50 subscribers for 7 days. You pay nothing.