> ## 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.
> Navigation menu management is documented in themes/navigation-menus. These unversioned admin endpoints (/api/menus and nested menu_items) are verified against the implementation but are not yet in the synced OpenAPI specs. Use that reference for menu payloads and its flat page/per_page pagination; missing spec coverage does not make these endpoints unavailable.
> 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.

# Rewards Points

> Turn reward points on or off, choose how much of an order they can pay for, rename them, and set how many points equal each currency.

Use the Rewards Points screen to manage your company's points rewards system, including how many points equal one unit of each of your currencies.

## Where to find it

In the admin, click the **Settings** gear in the top bar. In the Settings sidebar, under **Commerce**, select **Points**.

To open the screen, your role needs at least **View only** for **Points**, in the **People** card on the role's **Permissions** tab. To change settings on the screen, your role also needs the **Edit point balances and history** permission for **Points**, which **Full access** includes. Turning **Reward Points** on or off, changing **Points apply to** and renaming points also need **Full access** for **Company Settings**, in the **Settings** card.

## What's on the screen

<Note>
  This page uses the default names, **Point** and **Points**. If you've renamed points, the screen shows your names in its rates and messages, on the **Calculate all Points** button and in the **Point Value** column header.
</Note>

The page header reads **Rewards Points**. If your role can change points settings, the header has a **Calculate all Points** button. Once you change a value in the **Primary market** card or the table, **Revert changes** and **Save** appear next to it.

Below the header, the **Points Value Settings** banner explains that the screen sets how many points equal one unit of each currency.

### Reward Points

The **Reward Points** toggle turns the points rewards system on or off for your customers. It's off until you turn it on. Each change saves as soon as you click the toggle.

While **Reward Points** is off, the settings below it are greyed out and can't be changed.

### Points apply to

**Points apply to** sets how much of an order customers can pay for with points:

* **Subtotal only**: points can pay for the subtotal after discounts, before shipping and tax. This is the default.
* **Order total**: points can pay for the full total, including shipping and tax.

Your choice saves as soon as you select it.

### Brand your point currency

This card lets you call points something else that fits your business, such as credits.

* **Singular ‘point’ label**: the name for one point. The default is **Point**.
* **Plural ‘point’ label**: the name for more than one point. The default is **Points**.

Both labels are required and can be up to 30 characters. If a label is empty or too long, **Label cannot be empty** or **Must be 30 characters or fewer** appears under it. As you type, the **Preview** shows both labels in sample sentences.

**Save** becomes available once you change a label. When you save, spaces at the start or end are removed, and the capitalization you typed is kept. **Reset to defaults** appears when the fields hold anything other than **Point** and **Points**. It puts the defaults back and saves them right away.

Your labels also replace **Point** and **Points** on other admin pages, such as a customer's page and an order's details.

### Primary market

The **Primary market** card shows your default country's currency:

* **Currency**: the currency's symbol, code and name.
* **Conversion rate**: how many points equal one unit of the currency, for example **100 Points = \$1**.
* **Points per \$1**: the field where you set that rate. It shows your currency's symbol. Enter a whole number of 1 or more.

If you leave the field empty or enter less than 1, you see **Points amount must be at least 1**, and the field goes back to its last valid value. A change here is saved when you click **Save** in the page header.

### Currency table

Below the cards, a table lists each currency used by the countries on your **Countries** screen, 25 to a page:

* **Currency**: the currency's symbol, code and name.
* **Point Value**: how many points equal one unit of the currency. A currency shows 1 until you set a value.

To change a value, type a whole number of 1 or more in the currency's row. The row shows **(edited)** until you click **Save** in the page header. An empty value or a value under 1 shows the same **Points amount must be at least 1** message.

## Set point values

<Steps>
  <Step title="Turn on Reward Points">
    If **Reward Points** is off, turn it on. The other settings stay greyed out until you do.
  </Step>

  <Step title="Enter the values">
    In the **Primary market** card, enter how many points equal one unit of your primary currency. In the table, change the **Point Value** of any other currency.
  </Step>

  <Step title="Save">
    Click **Save** in the page header. You see **Changes saved successfully**.
  </Step>
</Steps>

To drop your unsaved changes instead, click **Revert changes**.

## Calculate all currencies at once

**Calculate all Points** sets a value for every currency at once. It starts from your primary market's saved rate and converts it with each currency's exchange rate, rounding up to whole points. The primary market keeps its rate. The button works only while **Reward Points** is on.

<Warning>
  Calculating replaces the values of all your other currencies, including values you entered by hand.
</Warning>

<Steps>
  <Step title="Save your changes first">
    If you've changed any values, click **Save** in the page header. The calculation starts from the saved primary market rate.
  </Step>

  <Step title="Start the calculation">
    Click **Calculate all Points** in the page header.
  </Step>

  <Step title="Confirm">
    The **Populate All Currencies?** dialog asks you to confirm. Click **Populate All**. You see **All countries populated with the same ratio**.
  </Step>
</Steps>

## Rename points

**Reward Points** must be on to change the labels.

<Steps>
  <Step title="Enter your labels">
    In the **Brand your point currency** card, enter the **Singular ‘point’ label** and the **Plural ‘point’ label**, for example `Credit` and `Credits`. Check the **Preview**.
  </Step>

  <Step title="Save">
    Click **Save** in the card.
  </Step>
</Steps>

To go back to **Point** and **Points**, click **Reset to defaults**.

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Why is most of the screen greyed out?" id="screen-greyed-out">
    **Reward Points** is off. Turn it on to change the other settings. If you can't click the toggle either, your role doesn't have permission to change points settings.
  </Accordion>

  <Accordion title="Why can't I change the settings?" id="points-settings-read-only">
    Changing settings on this screen needs the **Edit point balances and history** permission for **Points**. Without it, the controls in the cards are turned off, and **Calculate all Points**, **Revert changes** and **Save** don't appear. Turning **Reward Points** on or off, changing **Points apply to** and renaming points also need **Full access** for **Company Settings**, in the **Settings** card.

    Ask an admin who manages roles to edit your role's permissions: open the **People** card, then set **Points** to **Full access**. To grant only this action, they can click **Points** and turn on **Edit point balances and history**. See [Roles](/help/admin/settings/roles).
  </Accordion>

  <Accordion title="Why can't I see Points in the Settings sidebar?" id="points-missing-from-settings">
    The **Points** item appears only if your role can view points. Ask an admin who manages roles to edit your role's permissions: open the **People** card, then set **Points** to **View only** or **Full access**. See [Roles](/help/admin/settings/roles).
  </Accordion>

  <Accordion title="Why is a currency missing from the table?" id="currency-missing">
    The table lists only the currencies used by the countries on your **Countries** screen. A currency appears here once a country that uses it is on that screen, and it shows 1 until you set a value. See [Countries](/help/admin/settings/countries).
  </Accordion>
</AccordionGroup>

## Related pages

* [Settings](/help/admin/settings)
* [Countries](/help/admin/settings/countries)
* [Roles](/help/admin/settings/roles)


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