# Team Management

The **Team** page lets you invite additional administrators or viewers to your issuer panel and manage their access.

![team page](/files/7Gdmun9dAdFzzrGTX6Sc)

## Inviting a Team Member

To invite a new team member:

1. Click **Invite Member** on the Team page
2. Fill in the invite form:
   * **First Name** (optional)
   * **Last Name** (optional)
   * **Email Address** (required)
   * **Role** (required)
     * *Issuer Admin* — full access to offerings, investors, orders, settings, and team management; counts toward your plan’s seat limit
     * *Issuer Viewer* — read-only access to all sections; does **not** count toward your plan’s seat limit
3. Click **Send Invite**

After sending the invitation, the new member will appear in the team table with **Status = Pending** until they accept the invite and complete their sign-in. The invited person will receive an email with instructions and a link to the [Accept Invite](https://github.com/bitbond/offering-manager-docs/blob/main/admin/accept-invite/README.md) page. They can choose to sign in with email/password or Google SSO. Once they’ve accepted, their status changes to **Active** and they gain the access level associated with their role.

> In development mode, the invite response includes an `inviteUrl` field so you can copy the invitation link directly.

Only the account owner (or a super-admin) can invite team members. Seat limits apply only to **Issuer Admin** roles; you can invite unlimited **Issuer Viewers** on any plan.

## Viewing Team Members

The team table shows all current, invited, and former team members with the following information:

* **Member** — Name (or a placeholder “—” if no name provided) and email address
* **Role** — *Issuer Admin* or *Issuer Viewer*
* **Status** —
  * **Active** — has accepted the invite and can log in
  * **Pending** — invited but has not yet accepted (no password set)
  * **Deactivated** — access revoked after acceptance
* **Joined** — The date the member was added
* **Actions** —
  * 🔄 **Resend Invite** (for **Pending** invitations only)
  * 🗙 **Deactivate** (for **Active** members)
  * ✔️ **Reactivate** (for **Deactivated** members)
  * 🗑️ **Delete Permanently** (for **Pending** or **Deactivated** members with no order history)
  * 🔁 **Change Role** (for **Active** members only)
  * 👑 **Transfer Ownership** (for the current **Active** account owner only)

Invited members who have not yet accepted appear as **Pending**, with **Resend Invite** and **Delete Permanently** actions available. Your own account is marked with **You** in the Actions column and cannot be deactivated or deleted.

## Resending an Invitation

If a team member was invited but has not yet joined (inactive and no password set), you can resend their invitation:

1. Click the resend icon (🔄) next to the member’s name
2. A new email will be sent, invalidating any previous invite link

> In development mode, the API response includes the new `inviteUrl` for easy testing.

## Deactivating a Team Member

To revoke a team member’s access without deleting their data:

1. Click the deactivate icon (🗙) next to the member’s name
2. Confirm the action

Deactivated members can no longer log in, but their historical data (such as any actions they performed) is preserved for audit purposes.

Only the account owner (or a super-admin) can deactivate other members. You cannot deactivate yourself while you are the account owner — you must transfer ownership first.

## Reactivating a Team Member

If a previously deactivated member needs to regain access:

1. Click the reactivate icon (✔️) next to the member’s name

Their access is restored immediately and they can log in again.

## Permanently Deleting a Team Member

You can permanently remove a team member’s account only if they are **Pending** or **Deactivated** and have no order history. Permanent deletion frees the email address so it can be used to register with another organization.

1. Click the delete icon (🗑️) next to the member’s name
2. Confirm the permanent deletion

This action cannot be undone.

## Changing a Team Member’s Role

Account owners (and super-admins) can change the role of an **Active** team member at any time:

1. Click the change role icon (🔁) next to the member’s name
2. In the dialog, select **Issuer Admin** or **Issuer Viewer**
3. Confirm the change

> Promoting a user to **Issuer Admin** is subject to your plan’s seat limit. If you’ve reached the limit, you’ll see an error suggesting you invite as a Viewer or upgrade your plan.

## Transferring Account Ownership

To transfer account ownership to another **Active Issuer Admin**:

1. Click the transfer ownership icon (👑) next to the member you want to make the new owner
2. Confirm the transfer

After transfer, the selected member becomes the account owner and you lose owner privileges (you remain an **Issuer Admin**). You cannot transfer ownership to a **Pending** or **Deactivated** member.

## API Endpoints

All team management operations are exposed via the public API. You can explore and test these endpoints in the interactive OpenAPI reference: <https://om.bitbond.com/api/docs>

The main endpoints include:

* **List members** — GET `/api/issuer/team`
* **Invite member** — POST `/api/issuer/team/invite`
* **Resend invitation** — POST `/api/issuer/team/:id/resend-invite`
* **Deactivate member** — DELETE `/api/issuer/team/:id`
* **Reactivate member** — PATCH `/api/issuer/team/:id/reactivate`
* **Change member role** — PATCH `/api/issuer/team/:id/role`
* **Transfer ownership** — POST `/api/issuer/team/:id/transfer-ownership`
* **Permanently delete member** — DELETE `/api/issuer/team/:id/permanent`

> If you need to review an audit trail of team actions, see the [Audit Log](https://github.com/bitbond/offering-manager-docs/blob/main/admin/audit-trail/README.md) page for offering-scoped filtering and a complete history of administrative activity.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bitbond.com/asset-tokenization-suite/offering-manager/team-management.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
