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

# Merchant Portal Operations

> Account and team administration in the Waffo Merchant Portal: why menus differ between merchants, what each role can do, inviting and removing users, login security and two-step verification, interface language, and where to find your integration keys.

Account, team, and access administration in the Merchant Portal. See
[Merchant Portal](/docs/en/essentials/merchant-portal) for a module overview, and
[Portal Self-Service Security Configuration](/docs/en/support/portal-security-config-faq)
for public keys, notification URLs, and the IP allowlist.

## Why can't I see Settlements, Balance, or the Disputes tab?

Parts of the navigation are driven by **what you have contracted**, not by your
role — so a missing menu is not something your Admin can grant.

| Not contracted | Hidden from the Portal |
| - | - |
| Settlement | `Settlements` and all submenus, `Account → Balance`, `Account → Balance history`, and the settlement calendar on Home |
| Withdrawal | `Account → Withdrawal history` and `Settings → Bank accounts` |
| Card acquiring | The `Disputes` tab under `Transactions` |
| Multi-currency ordering | The order-currency filter on list and analytics pages |

## What can each role do?

Every user has exactly one role, and the Portal shows a role's scope while you
select it, so you can confirm before inviting someone.

| Permission | Admin | General | Read-only | Dispute Manager |
| - | - | - | - | - |
| View transactions | ✓ | ✓ | ✓ | ✓ |
| Modify transactions | ✓ | ✓ | | |
| View settlements | ✓ | ✓ | ✓ | |
| View financial information | ✓ | ✓ | ✓ | |
| Make withdrawals | ✓ | ✓ | | |
| View contract information | ✓ | ✓ | ✓ | |
| Manage disputes | ✓ | | | ✓ |
| User management | ✓ | | | |

A separate **Dev** role carries the *Integration info view* permission, so Dev
and Admin are the only roles that can open the Integration page. The member
list lives under `Settings → Team` (formerly *Members*); the invite button is
*Add user*.

## How do I add a teammate, and how long is the invitation valid?

A Super Admin or Admin adds a user with first name, last name, email, and role.
The account is pre-created as **Pending** and an activation email goes out; the
activation link is valid for **24 hours**, and Pending rows show a **Resend**
action. Resends share a short per-minute cap with the other account emails — if
one is refused, wait a minute and send once (see
[Portal Sign-in, Links & Account Status](/docs/en/support/portal-account-access-faq)).
The member sets their own
password from that link — unless the same email is already active under another
merchant, in which case activation only needs a confirmation. Members are
searchable by first name, last name, or email, with your own row pinned to the
top.

Three limits surprise people: you cannot edit or delete **yourself**; the
**Super Admin** account cannot be edited or deleted from the Portal by anyone;
and changing a member's role **signs that member out automatically** — so if a
colleague was unexpectedly logged out, check whether their role just changed.

## What are the password rules?

At least **8 non-blank characters** with at least one uppercase letter, one
lowercase letter and one digit — a symbol is allowed but not required — and not
identical to any of your last three passwords. Passwords must be
rotated every **90 days**: on the first login after that window the Portal hides
everything else and forces the password-update page, and you must sign in again
with the new password before you can use the Portal. The forgot-password reset
link is valid for **30 minutes**, and a successful reset sends a confirmation
email to the account address — your signal if you did not initiate it.

## My account is locked, and how do I see who signed in?

Repeated failed password attempts within a short window lock the account for
**one hour** and send an email notification. During the lock, signing in returns
*"Your account is temporarily locked. Please try again later."* instead of a
wrong-password error; the lock then clears on its own.

To audit access, open the user menu at the top right and choose **Login
History** — the last **90 days** of attempts for your account, with login email,
time, source IP, and success or failure.

## How do I turn on two-step verification?

Two-step verification is an **email OTP**, **off by default**. Turn it on at
`Settings → Preference`; enabling runs one OTP round to confirm the mailbox is
reachable, and turning it off requires re-entering your password. After that,
signing in shows an **OTP Verification** dialog. The code is 6 digits and valid
for **10 minutes**; any unexpired code works, so an earlier email is still
usable if a later one arrives first, and **Resend** stays greyed out until a
short cooldown ends. If codes never arrive at all, an Admin can switch two-step
verification off for you from the `2-Step Verification` column in the Team list
— a fallback for undeliverable email only.

That column is a **two-way switch**, which answers the other common question:
an Admin can also turn two-step verification **on** for a member who has not
enabled it themselves. It is done per user from that column, one row at a time;
there is no account-wide policy that forces it on for everyone, and no setting
that prevents a member turning it off again afterwards. Rows the Portal marks as
not modifiable — your own, and the super administrator's — have the switch
disabled.

The setting belongs to the **user**, not the merchant account: if your email is
registered under more than one merchant, an Admin at any of them toggling it
affects all of them, and you can override it yourself after signing in.

## I switched the Portal to Chinese, so why are my emails still in English?

The top-right language switcher controls the **interface only**, and it is stored
in your browser. (The switcher is itself released per account, so if you do not
have it, the Portal is showing you its default language rather than hiding a
setting your role should have.) The choice lives in that browser, so a different
browser, device, or a cleared cache starts from the default again.

Two things follow their **own** language setting rather than the switcher:
settlement report exports carry a **Report Language** selector (English, 中文,
にほんご) on the Customized Export form, and settlement report email subscriptions
carry an **Email Body Language** per subscription — see
[Settlement Reports Module](/docs/en/support/settlement-reports-export-faq) and
[Report Delivery & Email Subscription](/docs/en/support/report-delivery-and-subscription-faq).
Other system emails, API error messages and the transaction and refund list
exports are English regardless of the interface language.

## Where do I find my API key, and why are production keys masked?

`Settings → Integration` (Admin and Dev roles only) is split into sandbox and
production blocks. Every value has a copy action; what differs is what is shown
by default.

| Value | Sandbox | Production |
| - | - | - |
| Merchant name, Merchant ID | Shown | Shown |
| Waffo Public Key | Shown | Masked — click *show* |
| Merchant Public Key | Shown | Masked — click *show* |
| Merchant Private Key | Shown | Not listed |
| API Key | Shown | Masked — click *show* |

If **Merchant Public Key** reads `To be updated` for production, no production
public key has been registered yet — see
[Portal Self-Service Security Configuration](/docs/en/support/portal-security-config-faq)
for how to submit and rotate it.

## Why am I suddenly asked for a verification code I never turned on?

Because an Admin on your merchant account switched **2-Step Verification** on for
your operator account. There is nothing for you to set up: enabling it on
someone's behalf binds the **email** method straight away, against the login
email already on the account, so the next sign-in shows the *Verification*
dialog with a code already on its way to that mailbox.

| State when the Admin flipped the switch | What you get |
| - | - |
| Two-step verification was off | Now on, bound to your login email, active from the next sign-in |
| You had already turned it on yourself | Nothing changes — the switch is a no-op against a method you already confirmed |

You can switch it off again yourself once you are signed in. The switch sits in
the **top-right user menu**, next to your name and role, and turning it off asks
for your account password — worth agreeing with whoever turned it on, since it
removes the extra protection.

## Why is the 2-Step Verification switch greyed out for one of my operators?

The column is disabled on rows whose **role is not editable** — the same rows
whose *Edit* and *Remove* actions are greyed out, the owner-level role included.
Nothing about that person's two-step verification can be changed from the
operator list; they change it themselves from their own user menu.

## I changed my phone and can't receive the code. What now?

The Portal's code is delivered by **email**, to the login address on your
account. No phone number and no SMS are involved, so a new phone or a new number
changes nothing — work the mailbox instead:

1. Check the mailbox for the address shown in the *Verification* dialog, spam
   folder included. Codes last 10 minutes and any unexpired code works, so an
   earlier email is still usable.
2. Use **Resend** once the countdown ends.
3. If nothing arrives, do what the dialog says and *contact your Admin for
   help* — an Admin can switch two-step verification off for you from the
   `2-Step Verification` column in the operator list under `Settings`.

Switching it off yourself needs a signed-in session, so it is not a way out of a
mailbox you have lost access to; the Admin fallback is. If no Admin can be
reached, [contact support](mailto:support@waffo.com).

The sign-in mechanics behind these dialogs — the challenge response, the resend
token, and the endpoints each toggle calls — are in
[Portal Self-Service Security Configuration](/docs/en/support/portal-security-config-faq).


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