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

# Loyalty points and warranty

> Reward people who check your codes and register warranties from the same genuine scan, then pay points out from a CSV.

Reward the mechanics, retailers and buyers who check your codes, and register warranties from
the same scan. Both are off until an admin turns them on in **Scans → Loyalty and warranty →
Settings**.

## What consumers see

After a **Genuine** verdict, the scan page shows one button: **Earn 10 points**, **Register
warranty**, or **Earn 10 points and register warranty**. It opens a short form in the
consumer's language: name, mobile number, a UPI ID for payouts (optional), and for the
warranty the date of purchase, where it was bought and an email (both optional).

* **Each code is claimed once.** The first person to claim a code's points gets them; the same
  goes for its warranty. After that the button no longer appears for that code.
* **Only genuine scans.** The button appears only after a genuine verdict, and its link works for
  7 days. Suspicious and counterfeit codes earn nothing.
* **Members are known by mobile number.** Claims from the same number add up in one balance.
  Indian numbers can be typed without +91.
* A product with its own **warranty link** (Products → Edit) keeps sending people there; only
  points are offered on Satyakod for it.

The form tells consumers that you keep their details to pay points and honour the warranty.
Treat them as personal data: only admins, brand protection and billing can see the Loyalty page.

![Loyalty and warranty: totals and members](https://docs.satyakod.com/images/screenshot-placeholder.svg)

Loyalty and warranty: totals and members

## Settings

| Setting | Meaning |
| - | - |
| Points per genuine code | Earned on each code's first claim |
| Value of one point | What a point pays, in INR or USD (₹1 by default) |
| Payout minimum | Members reach this balance before a payout includes them |
| Warranty length | Months from the date of purchase |

Changes apply to claims from then on; points already earned keep their number.

## Paying out

**Payouts → Create payout** (admins and billing) takes every member at or above the payout
minimum, moves their whole balance out of their account and lists them in a CSV:

```
payout,member_id,name,phone,upi_id,points,amount,currency
PO-1002,mem_…,Ramesh Yadav,+919823011452,ramesh.yadav@okicici,620,620.00,INR
```

Pay them from the CSV by UPI or your usual channel. The CSV can be downloaded again from the
payout's row. Every point earned and paid is in the **Ledger**; a member's balance is the sum
of their entries.

## Warranty lookups

**Warranty** lists registrations, newest first. Search by the code on the product (exact),
the customer's name or mobile number to check a claim: it shows the product, batch, purchase
date, where it was bought and when the warranty ends.

## Trade programme

Mechanics, retailers and distributors use **trade mode** in the Satyakod app: they sign in with
their mobile number (a code by WhatsApp or SMS), say who they are (name, shop or garage, city,
trade) and join the programmes of the brands they work with. One trade account works across every
brand; each brand sees only its own members. Sign-in codes and invitations go by WhatsApp, with
SMS as a fallback, once those are set up for your workspace: see
[Notifications](https://docs.satyakod.com/concepts/notifications.md).

* **Open it**: Loyalty → Settings → **Trade programme**. Your programme is then listed in the app,
  where people ask to join, with a note.
* **Trade tab**: everyone who asked to join, your members and the numbers you invited.
  **Approve** or **Decline** a request (admins get an email and an in-app notice for each one);
  **Remove** a member or an invitation.
* **Invite** a mobile number: they get a text with the link to the app; signing in shows your
  invitation to accept. Inviting someone who already asked approves them.

An approved member is also a loyalty member of yours under the same number, so the points they
earn appear under Members and in the Ledger and leave in your payouts like everyone else's.

### Points and payouts for trade members

In trade mode every genuine code a member scans earns your points at once (the first claim on each
code, as for anyone). The app shows their balance with each brand they belong to. Members add
where to be paid in the app: a UPI ID, or a bank account (number, IFSC and the name on it). The
payout CSV includes them, with a PAN where they gave one; bank numbers and PANs are stored
encrypted and appear only in the payout files of brands the person is a member of.

**Ask for a PAN above** (Loyalty → Settings) sets an identity check: a member whose payouts this
financial year (April to March), with the next one, would pass the amount needs a PAN in the app
first. Until then their points wait and **Payouts** says how many are waiting. 0 asks no one.


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