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

> ## Agent Instructions
> Taberna is a crypto payments API. Amounts are priced in fiat (USD or EUR) and paid in crypto.
> Fiat amounts are ALWAYS decimal strings ("9.99"), never numbers. Crypto amounts are integer strings in the asset's smallest unit.
> Authenticate merchant endpoints with `Authorization: Bearer tbrn_live_...`. Every key is bound to one store and carries an explicit scope set, so never pass a store id to a /v1 endpoint.
> A 401 means the credential is bad; a 403 means the key lacks a scope. Never retry or re-authenticate on a 403 — surface it as a configuration error.
> The /v1/checkouts endpoints are deliberately unauthenticated and run in the buyer's browser. Never send an API key to a browser.
> Verify webhook signatures over the RAW request body before parsing JSON, and treat delivery as at-least-once: handlers must be idempotent.
> Never grant value based on a browser redirect to successUrl. Fulfil on a signature-verified webhook, or on a server-side read of GET /v1/orders/{id} or GET /v1/invoices/{id}.
> There is no test mode: every payment method is a live chain moving real funds.
> A merchant can run an entire shop with no code: the dashboard creates products and invoices, and every store can host a storefront at {slug}.taberna.io with its own theme, sections, branding and optional custom domain. Never assume the reader has an API integration.
> Taberna issues no refunds and performs no KYC. A refund is something the merchant sends from their own payout wallet, off-platform.

# Team

> Invite people into your store, and choose what each of them can do.

You can share a store with other people. Everyone works in the same store and switches
to it from their own account.

Team management lives under **Settings → Team**. Only an owner can invite someone, change
a role, or remove anyone.

## The four roles

You pick a role when you invite someone, and you can change it later.

|                                                                                     | Owner | Admin  | Manager | Viewer |
| ----------------------------------------------------------------------------------- | ----- | ------ | ------- | ------ |
| See orders, invoices, analytics, products, storefront settings and payout addresses | Yes   | Yes    | Yes     | Yes    |
| Create and edit products, delivery and stock                                        | Yes   | Yes    | Yes     | **No** |
| Create, send and void invoices, and invoice templates                               | Yes   | Yes    | Yes     | **No** |
| Change how the storefront looks, and turn it on or off                              | Yes   | Yes    | Yes     | **No** |
| Manage API keys and webhooks, including replaying failed deliveries                 | Yes   | Yes    | Yes     | **No** |
| Change the store's name, image, web address or custom domain                        | Yes   | Yes    | **No**  | **No** |
| Choose which coins the store accepts                                                | Yes   | Yes    | **No**  | **No** |
| Change a payout address                                                             | Yes   | **No** | **No**  | **No** |
| Invite, remove, or change someone's role                                            | Yes   | **No** | **No**  | **No** |

The split is between **running** the shop and **setting it up**:

* A **manager** runs it day to day — products, stock, invoices, how the storefront looks,
  and the API keys and webhooks that connect the store to your own software.
* An **admin** does all of that *and* sets the store up: its name, its web address, and
  which coins it takes.
* A **viewer** sees everything the dashboard shows — orders, invoices, products,
  analytics, storefront settings and payout addresses — and changes none of it. They can
  read every product and every invoice; they just cannot write one.
* Only an **owner** can move where the money goes or change who is on the team.

## Why some things are admin-only

Two of these look like ordinary storefront settings, and are not.

**Your web address and your custom domain.** A manager can restyle the whole shop but
cannot rename it. Changing your address breaks every checkout link already out there — in
emails, in chats, in invoices your customers have not paid yet.

**Which coins you accept.** Every role can *see* your payout addresses, but only an owner
can set one. Switching on a coin whose network has no payout address is a mistake a
manager cannot fix, so it sits with an admin.

## Invite someone

Press **Invite Member**, enter their email address, and choose **Admin**, **Manager** or
**Viewer**. There is no owner option — see
[Handing a store over](#handing-a-store-over).

They need a Taberna account on that email address already. If they do not have one, ask
them to sign up first, then invite them.

<Frame caption="The team list, with one pending invitation.">
  <img src="https://mintcdn.com/taberna/CSV07Wzd5bzv2KKK/images/dashboard-team.png?fit=max&auto=format&n=CSV07Wzd5bzv2KKK&q=85&s=d4728204ad9a4a4ffb5805609dc3ee0f" alt="The Team Members card listing members with a role dropdown on each row, and a dashed row reading Pending invite" width="1200" height="675" data-path="images/dashboard-team.png" />
</Frame>

An invitation lasts **7 days**; send a new one if it lapses. A pending invitation shows as
a dashed row marked **Pending invite** — press the X beside it to cancel. Someone can only
have one pending invitation to a store at a time.

The role is fixed when you send the invitation — whoever accepts gets exactly what you
chose.

<Info>
  Someone who should not be in your dashboard at all — an outside contractor wiring up
  your software, say — does not need a seat on the team. Give them an API key limited
  to exactly what their code has to do, from **Developers → API Keys**. That is what
  API keys are for.
</Info>

## Change someone's role

Use the dropdown on their row. It takes effect immediately and **does not ask you to
confirm**, so aim carefully.

Two things you cannot do:

* **Change your own role.** Your row shows a plain label instead of a dropdown.
* **Demote the last owner.** Every store keeps at least one.

## Remove someone

Press the bin icon on their row. That is immediate and unconfirmed too, and the last
owner cannot be removed.

Removing someone does not undo their work. Their products, invoices and API keys belong to
the store and keep working — revoke the keys under **Developers** if you want them gone.

## Leave a store yourself

Press **Leave store** at the foot of **Settings → Team**. You can walk out at any time,
whatever your role — you do not need an owner to remove you. The one exception is a sole
owner: make someone else an owner first, then leave, because a store with nobody to pay
out or invite cannot be rescued from outside.

## Handing a store over

You cannot invite an owner, so it takes two steps: invite the person in any role, then
change their role to **Owner** once they have accepted. You are both owners then, and
either can remove the other.
