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

# Customers and Balance

> Customer records, adding or deducting store balance, and running cashback on your shop.

A customer record is created the first time someone buys from your shop, keyed to their email address. It collects their orders, tickets, balance and the sessions they bought from, under [**Customers**](https://dash.sellauth.com/customers) in the dashboard.

## What a customer record holds

Order history, ticket history, current store balance and balance statement, linked Discord account where one exists, and the sessions behind their purchases, including IP address, country and user agent.

The session details are also where you block a buyer, with per-value buttons for IP address, country, user agent and ASN. See [Blacklist and Whitelist](/guides/blacklist-and-whitelist).

## Store balance

Balance is money a customer holds on your shop, in USD. They spend it at checkout through the [Customer Balance](/guides/payment-methods/customer-balance) payment method, which has to be enabled for balance to be spendable.

Balance arrives three ways: the customer tops up, you add it by hand, or they earn cashback.

### Adding or deducting balance

Use **Add Balance** on the customer record. A negative amount deducts instead.

The **Description** field is shown to the customer on their balance statement, so write something they will still understand months later. "Refund for order 1234" answers the question before it is asked, where an unexplained credit tends to produce a ticket.

Balances can go negative, which happens when you reverse cashback or an affiliate commission that has already been spent. The shortfall settles against the customer's next purchase.

## Cashback

Cashback returns a percentage of each order to the buyer as store balance. Configure it from the Customers page.

**Default cashback percentage** applies to every product. A product can override it, and setting a product's percentage to 0 disables cashback on that product.

**Earn Cashback on Balance Payments** decides whether orders paid with balance also earn cashback.

<Warning>
  Leaving **Earn Cashback on Balance Payments** on means balance earns balance. A customer spending cashback to earn more cashback compounds it into a standing discount larger than the rate you set.
</Warning>

Cashback needs the Customer Balance payment method enabled to be worth anything. Without it, customers accumulate a balance they cannot spend, and the dashboard warns you when that is the case.

Cashback awarded on an order can be reversed from the invoice page when you refund it. See [Refunds](/guides/refunds).

## Signing in

Customers reach their dashboard from the account link on your storefront. There is no registration step: the first sign-in creates the account.

* **Email code.** The default. A six digit code is emailed to the address they enter, and confirming it signs them in.
* **Password.** Optional. A customer can set one from their account menu and then skip the emailed code. Removing it takes the account back to email codes.
* **Two-factor authentication.** Optional, with an authenticator app. Once it is on, every sign-in method asks for the code, Discord included.
* **Discord.** A **Continue with Discord** button on the storefront login and on the checkout balance sign-in. Off by default: set up the [Discord integration](/guides/discord-roles), then tick **Allow customers to log in with Discord** under **Shop settings > Discord Integration**.

### How Discord matches an account

Discord sign-in only trusts a link the customer made themselves: a previous Discord sign-in, or **Connect Discord** in their account menu. When there is no such link, it falls back to the email address Discord has verified for that account, signing into the customer record with that email or creating one. A Discord account connected during checkout is a purchase record, not a login method, so it never signs anyone in on its own. Once a customer has connected Discord to their account, checkout accepts only that Discord account for their email, so role delivery always lands where they signed in.

A customer who bought with a different email than their Discord address lands in a fresh account. They can sign in with their purchase email instead and use **Connect Discord** there, which moves the Discord sign-in to that account.

**Disconnect Discord** in the account menu turns the sign-in method off again. The Discord identity stays on the customer record for you, but the stored authorization is dropped, so a product that joins buyers to a server needs them to connect Discord again at checkout.

You can do the same from your side: the customer's page in the dashboard shows whether Discord is a sign-in method for them and since when, with a **Revoke** action for cases like a lost Discord account.

## Requiring an account

Some products need to know who the buyer is on Discord in order to deliver. **Force Discord Login** on a product requires a Discord account before purchase, which also links the Discord identity to the customer record. That checkout link is what role delivery uses; it does not by itself let the buyer sign in with Discord.

## Next steps

<CardGroup cols={2}>
  <Card title="Customer Balance" icon="piggy-bank" href="/guides/payment-methods/customer-balance">
    Top up amounts, limits and which methods can fund them.
  </Card>

  <Card title="Managing invoices" icon="receipt" href="/guides/invoices">
    The order history behind each customer.
  </Card>
</CardGroup>


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