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

> ## Agent Instructions
> For new direct REST integrations, use the v2026-04 surfaces. The @fluid-app FairShare SDK continues to use its own published public-v2025-06 contract.
> Authenticate with the header Authorization: Bearer <token>; public storefront read endpoints require no auth.
> To sign a new merchant up for Fluid programmatically, call POST https://api.fluid.app/api/company with no credentials, as described in /api/agent-signup. Do not automate the signup form or book a demo. The merchant must open the emailed sign-in link and create an API token before authenticated calls are possible.
> After signup, to launch a merchant's store (back-office sync, payments onboarding, store setup, a theme copied from their current site, and a preview link before billing), follow /api/agent-launch.
> Lists use cursor pagination via the page[cursor] and page[limit] query params; follow meta.pagination.next_cursor until it is null.
> When the same operation exists on more than one surface, use the newest: dated API versions are newer than unversioned ones, and later dates win (v2026-04 > v2025-06 > unversioned v0/v1.1). Fall back to a legacy or unversioned operation only when no newer versioned equivalent exists — the company-v0 notes below list the known superseded operations. The same applies to /api/company/v1 and /api/v1/... paths: prefer a newer documented equivalent, and use one only when none exists (/api/v1.1/... is distinct and documented in company-v0). Use page/per_page offset pagination only where a spec documents it — in practice the unversioned company-v0 admin surface; every versioned surface uses cursor pagination.
> Fluid has three navigation APIs; don't mix them up. Storefront website menus (navigation bars, footers) are /api/menus and nested menu_items, in api-reference/content-v0.yaml (API Reference: Website > Navigation menus), with a how-to in themes/navigation-menus; their list uses flat page/per_page pagination. The Fluid mobile app's navigation is /api/v2/mobile_navigations, in api-reference/mobile-v2.yaml (API Reference: Mobile app > Navigation); its list also uses page/per_page. Portal navigations belong to a portal definition (Fluid OS), in api-reference/fluid-os-v0.yaml (API Reference: Portal > Portal navigation), and each has a platform of web or mobile.
> The OpenAPI specs under api-reference/ are the authoritative contracts; prefer them over prose when in doubt. api-reference/storefront-v2026-04.yaml covers the v2026-04 storefront surface (/api/v202604/... paths); api-reference/checkout-v2026-04.yaml covers the v2026-04 checkout surface (/api/checkout/v2026-04/... paths — carts, cart auth, discounts, items, subscriptions, orders, enrollments, and store config); api-reference/public-v2025-06.yaml covers the Public SDK surface used by the @fluid-app FairShare SDK, including its parallel cart lifecycle, browser integrations, versioned payment callbacks, unversioned public utilities, and the cart price-override operation; api-reference/payment-v2026-04.yaml covers the v2026-04 payment gateway admin surface (/api/payment/v2026-04/... paths, bearer-authenticated — gateway CRUD, gateway purchase/authorize/$0-verify, transaction list/show and capture/void/credit, and merchant payment configuration); api-reference/payments-v2026-04.yaml covers the v2026-04 cart payment surface (/api/payments/v2026-04/carts/{cart_token}/... paths, authenticated by the cart token in the path with no bearer — payment-method selection, VGS card tokenization, 3D Secure verification, and PayPal/Braintree/Klarna/Apple Pay flows); api-reference/commerce-v2026-04.yaml covers the v2026-04 commerce order-editing surface (/api/v202604/orders/{order_id}/edits paths, bearer-authenticated — post-checkout order edits that atomically insert items and add adjustments/discounts, with an optional dry-run preview); api-reference/webhooks-v0.yaml covers the unversioned webhooks surface (/api/... paths — webhook registration, delivery payloads, callback registrations, company events, and webhook/callback schemas); api-reference/company-v0.yaml covers the legacy unversioned company admin surface (/api/... paths, bearer-authenticated — company settings and management, customers, users, roles, subscription plans, subscription bundles, subscriptions, media, pages, catch-ups, inventory levels, domains, agreements, and admin order actions). company-v0 caveats: it is the legacy v0 admin contract and its lists use flat page/per_page offset pagination, which is expected there despite the general cursor-pagination rule; where an operation exists in both company-v0 and a versioned spec, prefer the versioned spec — the subscriptions lifecycle (list/create/show/update, cancel, pause, reactivate, resume, retry, skip, failed-cycle-waiver, discounts) and subscription bundles are superseded by checkout-v2026-04, and company pages/media CRUD plus the public pages, categories, products, and media list endpoints are superseded by storefront-v2026-04. Subscription plan management (/api/subscription_plans, resource-wrapped {"subscription_plan": {...}} bodies) exists only in company-v0. api-reference/members-v2025-06.yaml covers the v2025-06 unified Member identity surface (/api/v2025-06/members/... paths, bearer-authenticated — member list/create/show/update, lookup by email/username/external_id/legacy_customer_id, member-type assignment, and the sponsor genealogy read). Prefer it over the customers and reps surfaces when the member type matters: /customers does not serialize member_type. api-reference/analytics-v2026-04.yaml covers the v2026-04 Home dashboard analytics surface (/api/v202604/analytics/dashboard/... paths, bearer-authenticated — read-only endpoints for the Home > Overview, Home > Live, and Home > Field tabs, each accepting an optional country ISO alpha-2 query param that scopes aggregations to a single country).
> api-reference/analytics-v0.yaml covers the unversioned analytics surface that backs the fluid-admin Traffic tab (/api/analytics/... and /api/analytics/traffic/... paths, bearer-authenticated — the legacy shares/views/visitors summary plus traffic overview, ranked campaigns, sources, geographies, flows, and per-rep breakdown, all sharing one reporting-period contract).
> Successful responses wrap the resource payload alongside a top-level integer status and a meta object.
> Portal Definition authoring edits and synchronizes the portal JSON resource graph. Widget Package authoring builds either a company-owned or Droplet-owned Remote DOM package. These are separate contracts; do not imply that one defines the other.
> For Widget Package worker code, use only @fluid-app/portal-sdk/widgets/worker. Use only the Portal Definition and Widget Package workflows and public entry points documented here; do not infer support for undocumented surfaces.
> Every portal function and declarative capability used by a widget must appear in that widget's uses array. Use the same typed function value in uses; do not invent capability-name strings.
> Widget styling must use the portal's semantic theme variables for colors, typography, spacing, radii, borders, focus, and charts whenever a token represents the visual decision. Do not create a separate light or dark palette or duplicate theme controls as widget properties.
> Prefer worker-safe Fluid UI components exported by @fluid-app/portal-sdk/widgets/worker when they fit the interaction. When no exported component fits, use semantic HTML, accessible behavior, and the portal theme variables.
> A Portal Definition push updates the remote working definition. A portal version is an immutable snapshot, and activation is a separate live release operation.
> The Help Center (/help/...) is for merchants, admins and reps using Fluid. Its admin pages mirror the admin's routes: the screen at admin.fluid.app/settings/taxes is documented at /help/admin/settings/taxes. Use the Help Center for how-to questions about the admin, and the Developer Platform and API Reference for building integrations.
> Help Center pages describe what a company admin sees. A reader's role can hide screens and actions; admins manage roles on Settings > Roles (/help/admin/settings/roles). If someone can't find a screen or button, their role's permissions are the first thing to check.
> Send people who need Fluid support to /help/getting-help. Don't invent support email addresses, phone numbers or response times.

# Customers

> Find and export members, add customers and reps, and manage each member's card, including status, profile, sponsor, login email and notes.

Use the **Customers** screen to find, add and manage your company's members. Customers and reps share one list, and each member opens on a member card with their orders, subscriptions and profile.

## Where to find it

In the admin sidebar, under **People**, select **Customers**.

<Note>
  To open this screen, your role needs at least **View only** for **Users (Customers & Admins)**. To do more, turn on more of that area's actions:

  * **Create new rep or admin accounts**, to show **New Customer** and open the new-member form.
  * **Edit user profiles, status, and details**, to edit members, invite them, change their status or sponsor, and save a new rep.
  * **Change a user's email address (admin recovery only)**, to change a member's login email.

  To save a new customer, your role also needs **Create, update, and delete members in the unified customers section** for **Customers**. Posting a comment needs that action and **Edit user profiles, status, and details**. On the [Roles](/help/admin/settings/roles) screen, **Users (Customers & Admins)** is in the **People** card and **Customers** is in the **Other** card. Open the card and set access from the area's own menu, not the card's. Click an area to list its other actions.
</Note>

## What's on the screen

**New Customer** and **Export** are at the top of the page. **Try it**, above the list, switches to a new table with **Rank** and **External ID** columns and its own filters; **Switch back** returns to the table this page describes.

* The **All**, **Active** and **Inactive** tabs filter the list by status.
* The search box starts searching once you type at least three characters.
* The filter button opens **Filters**: **Type**, **Country**, **Rank** and **External ID**; **Total spent** and **Orders**, each with **Min** and **Max**; and **Created**, with **After** and **Before**. Click **Apply Filters**, or **Reset All** to clear them.
* **Columns**, at the bottom of **Filters**, sets which columns show. Your choice applies right away, and this browser remembers it.

The list has these columns: **Username**, **Name**, **Email**, **Status**, **Type**, **Country**, **Orders**, **Total spent** and **Created**. You can sort by **Name** or **Created**.

Click a member to open their member card. Each row's actions menu has **Edit**, which also opens the card, **Send Invite**, and **Make Inactive** or **Make Active**. To send invites or change status for several members, select their rows and use the table header's menu, labeled with the count, such as **Make 3 Customers Inactive**. The status actions change only the selected members who have the other status. Only active members with an email address can be invited.

### Export the list

<Steps>
  <Step title="Open the export">
    Click **Export**. The **Export Customers** dialog opens with the list's current tab and filters filled in. Your search isn't included.
  </Step>

  <Step title="Narrow the export">
    Set **Countries**, **Type**, **Status**, **Rank**, **External ID**, **Total spent**, **Orders** and **Created** (**Start Date** and **End Date**) as needed.
  </Step>

  <Step title="Choose columns">
    Under **Columns**, all 13 columns are selected, including **Points** and **Phone**, which no list shows, and **Rank** and **External ID**, which only the **Try it** table shows. Clear the ones you don't need.
  </Step>

  <Step title="Export">
    Click **Export**. Your browser downloads `exported_customers_data.csv`.
  </Step>
</Steps>

## Add a customer or rep

<Steps>
  <Step title="Start a new member">
    Click **New Customer**.
  </Step>

  <Step title="Choose the member type">
    In **Member Type**, choose **Customer** (the default) or **Rep**. The form changes to match. You can give the member one of your company's other [member types](/help/admin/settings/member-types) later, from their member card.
  </Step>

  <Step title="Enter the email">
    Enter the **Email Address**, which is required. If an existing customer or admin account uses the same email, the new member is linked to it.
  </Step>

  <Step title="Add contact details">
    In **Contact**, enter **First Name**, **Last Name** and **Phone Number**. A rep also has **External ID** and **Username**, both optional. A username needs at least two characters, using lowercase letters, numbers, hyphens and underscores, with no leading, trailing or repeated hyphens.
  </Step>

  <Step title="Add a customer's address and sponsor">
    The **Address** card is optional, and it's saved only when you enter a **Street address**. If you do, **City**, **State / Province**, **Postal code** and **Country** are required. A customer's country is saved only with this address. Choose a **Language** in **Profile**. In **Sponsor**, search for a rep by name or email and select them.
  </Step>

  <Step title="Set a rep's status and profile">
    In **Status**, keep **Active** or choose **Inactive**. An inactive member can't log in. In **Profile**, choose the **Country**, **Language** and **Rank**.
  </Step>

  <Step title="Create the member">
    Click **Create**. A confirmation message appears and you return to the list.
  </Step>
</Steps>

If the sponsor can't be assigned, the customer is still created and a message tells you so. Assign the sponsor from their member card. To invite a new member, use **Send Invite** in the list, or **Actions** › **Resend Invite** on their member card.

## The member card

The member card is titled **Customer Details**. Its header shows the member's name, status, member type and country. **Actions** and **Save** are at the top of the page. **Actions** has **Resend Invite**, which emails the member a new invitation link, **Change Email**, and **Make Inactive** or **Make Active**.

The card has three tabs: **Order History**, which opens first, **Member Profile** and **Team Graph**. On the first two, the right column holds these cards:

* **Status**: **Active** or **Inactive**.
* **Member**: name, member type, tax status, external ID, username, rank, language, email and phone. Click the external ID, username, email or phone to copy it. **Edit** opens the member's details.
* **Profile**: **Country**, **Language** and **Rank**.
* **Sponsor**: the member's sponsor.
* **Addresses**, **Payment Methods**, **Marketing** (email and SMS subscriptions), **Notes** and **Agreements**, for members with a customer record.
* **Points**, or your company's name for [points](/help/admin/settings/rewards-points), for members with a customer record, when rewards points are turned on and your role has access to **Points**.

For members with a customer record, the **Order History** tab shows **Total Amount Spent**, **Active Subscriptions** and **Total Orders**, then the **Orders** card with the 10 most recent orders and the **Subscriptions** card. Each card has **View all**, and **Create Order** or **Create Subscription** starts one for this member.

Every member's **Order History** tab, with or without a customer record, also has **Metafields**, **Form Submissions** (click a submission to see its answers) and **Activity**, the member's timeline.

For an active member, the **Member Profile** tab previews their site. Switch between **Home Page** and **MySite**, copy the address, or show a QR code. **Quick Links** copies either address. MySite is available to a member only if the MySite tool is included in their mobile app or portal build.

The **Team Graph** tab shows the member's sponsor tree as a **Graph** or a **List**. Click someone in it to see their details and open their page.

## Edit a member

### Edit details

<Steps>
  <Step title="Open the details">
    On the **Member** card, click **Edit**. The **Customer Details** panel opens.
  </Step>

  <Step title="Make your changes">
    Change **First name** and **Last name** (both required), **Member Type**, **Phone number**, **Username**, **External ID** or **Language**. Members with a customer record also have **Rank**. To make the member tax exempt, turn off **Collect tax**, and optionally enter their **Exemption certificate / sales-tax permit number**.
  </Step>

  <Step title="Save">
    Click **Save**. It's available once you've changed something.
  </Step>
</Steps>

The panel shows **Email** but can't change it. See [Change a login email](#change-a-login-email).

### Change status, country, language or rank

Set **Status** or the **Profile** fields in the right column, then click **Save** at the top of the page. That **Save** stores only these two cards. To switch a member's status straight away, choose **Actions** › **Make Inactive** or **Make Active**.

### Change a login email

<Steps>
  <Step title="Start the change">
    Choose **Actions** › **Change Email**. Confirm you're speaking with the account holder and that they asked for the change. The new email becomes their login email in every We-Commerce company they belong to. Click **Start verification**.
  </Step>

  <Step title="Verify the member's identity">
    Ask each question shown, such as the shipping address, phone number or sponsor on the account, and mark whether each answer matches. Click **Continue** when all of them match.
  </Step>

  <Step title="Enter the new email">
    Enter the **New email address**, choose a **Verification method** (**Phone on file**, **Recent order**, **Photo ID** or **Other**) and describe the **Reason**. Click **Change email**.
  </Step>

  <Step title="Finish">
    The change takes effect immediately. Click **Done**.
  </Step>
</Steps>

### Add a note

<Steps>
  <Step title="Open the note">
    On the **Notes** card, click **Edit**. The **Add a note** panel opens with the member's current note.
  </Step>

  <Step title="Save the note">
    Edit the **Note** and click **Save**. What you save replaces the note on the card.
  </Step>
</Steps>

To leave a comment instead, type it in **Activity** and click **Post**. Only your admin team sees comments. You can comment only on members with a customer record.

### Change the sponsor

On the **Sponsor** card, search for a rep by name or email and select them. If the member already has a sponsor, click **Edit** first. The change saves right away. For a customer, **Clear** removes the sponsor.

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Why can't I send an invitation from the list?" id="cannot-send-invite">
    You can invite only active members who have an email address. When you invite several members at once, the others are skipped. To invite an inactive member, make them active first.
  </Accordion>

  <Accordion title="Why don't I see New Customer, Actions or Save?" id="missing-buttons">
    Your role is missing actions for **Users (Customers & Admins)**. **New Customer** needs the create action. **Save**, **Resend Invite** and **Make Inactive** need the edit action, and **Change Email** needs **Change a user's email address (admin recovery only)**. Ask an admin who manages roles to update your role. See [Roles](/help/admin/settings/roles).
  </Accordion>

  <Accordion title="Why can't I edit a member's addresses or notes?" id="cannot-edit-commerce-cards">
    These cards appear only for members with a customer record, and their **Edit** buttons show only for roles with customer-editing access.
  </Accordion>
</AccordionGroup>

## Related pages

* [People](/help/admin/people)
* [Admins](/help/admin/admins)
* [Contacts](/help/admin/contacts)
* [Roles](/help/admin/settings/roles)
* [Member Types](/help/admin/settings/member-types)
* [Orders](/help/admin/orders)
* [Subscriptions](/help/admin/subscriptions)
* [Forms](/help/admin/forms)
* [What is We-Commerce?](/concepts/we-commerce)


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