> ## Documentation Index
> Fetch the complete documentation index at: https://docs.robase.dev/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> For chatbots and coding agents, start at /guides/ai-agents.
> Hosted MCP: POST https://api.robase.dev/mcp (Streamable HTTP). Auth: Authorization: Bearer robe_… or robe_agent_….
> Phase 1 tools: get_pricing, send_otp, verify_otp, get_otp, send_sms, get_sms. No payment or top-up tools.
> Call get_pricing; treat listed:true as marketed markets (NG, GH, KE, ZA, GB, BJ, CI, US). Do not invent countries or delivery percentages.
> Prefer OTP-shaped tests such as "Your Robase test OTP is 123456". Do not send Hello or Good morning as tests. Match errors on error.type.

# Team, roles, and invites

> Owner, admin, finance, member, and viewer, with the permissions from the team matrix. Invites last 7 days.

Team lives at [Settings, Team](https://robase.dev/app/settings/team). The old `/app/team` address redirects there.

There are five roles. A workspace has one owner. The owner moves only by an ownership transfer. You cannot invite someone as owner.

An invite email stays valid for **7 days** (`InvitationTTL`). After that the row is expired. You can resend it, which issues a new link, or revoke it. Revoked wins over accepted: a revoked invite is not usable.

Invite statuses: pending, accepted, expired, revoked.

## Permissions

This matrix is the source of truth. Roles do not inherit. A blank cell is denied.

| Permission | Owner | Admin | Finance | Member | Viewer |
| - | - | - | - | - | - |
| `logs.read` | yes | yes | yes | yes | yes |
| `apikeys.read` | yes | yes | yes | yes | yes |
| `apikeys.write` | yes | yes | yes | yes | |
| `webhooks.write` | yes | yes | | yes | |
| `settings.write` | yes | yes | | | |
| `billing.read` | yes | yes | yes | yes | yes |
| `billing.write` | yes | | yes | | |
| `members.read` | yes | yes | yes | yes | yes |
| `members.write` | yes | yes | | | |
| `workspace.transfer` | yes | | | | |
| `audit.read` | yes | yes | | | |
| `kyc.read` | yes | yes | | | |
| `support.read` | yes | yes | yes | yes | yes |
| `support.write` | yes | yes | yes | yes | yes |

What those tokens allow:

| Permission | Allows |
| - | - |
| `logs.read` | SMS logs and OTP logs |
| `apikeys.read` | See API keys |
| `apikeys.write` | Create and revoke API keys. The overview test send also needs this. |
| `webhooks.write` | Change webhook URL, events, and the signing secret |
| `settings.write` | Change workspace settings, including language and the country list |
| `billing.read` | See balance, purchases, and auto top-up |
| `billing.write` | Buy credits and save auto top-up |
| `members.read` | See the team list |
| `members.write` | Invite, change roles, remove members, resend or revoke invites |
| `workspace.transfer` | Hand ownership to another member. You become admin. |
| `audit.read` | The audit feed on the team page |
| `kyc.read` | KYC documents and owner details |
| `support.read` | See tickets |
| `support.write` | Open a ticket and reply |

Support is on every role, including viewer. A ticket does not grant any other permission.

## Who can invite whom

Inviting and role changes need `members.write`, so only the owner and an admin see the invite form.

You can grant a role only when every permission of that role is a permission you already have. You cannot grant owner.

* **Owner** can invite admin, finance, member, and viewer.
* **Admin** can invite member and viewer. Admin cannot invite finance, because finance can change billing and admin cannot. Admin cannot remove another admin. Only the owner can remove an admin.
* Finance, member, and viewer can see the team and cannot invite.

The owner can transfer ownership to another member. That needs `workspace.transfer`. The target becomes owner and the previous owner becomes admin, in one step.

## What a customer can do in each role

**Owner.** Full access, including billing changes and transferring ownership. Two-factor authentication is required, with 14 days to set it up. See [Settings](https://docs.robase.dev/dashboard/settings.md).

**Admin.** Everything except billing changes and ownership transfer. Can invite members and viewers, read KYC, and read the audit feed.

**Finance.** Balance, purchases, payment methods, and auto top-up (`billing.read` and `billing.write`), plus logs and support. Cannot manage API keys, webhooks, or settings. Two-factor authentication is required, with the same 14 days.

**Member.** API keys, webhooks, and logs. Can read billing and cannot change it. Cannot change settings or invite people.

**Viewer.** Read logs, API keys, billing, and the team. Can open and reply to support tickets. Cannot create keys, change webhooks, buy credits, or invite.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.