Customer Referral Program
With the referral program, your customers invite friends to shop at your store. The friend and the inviter both earn a reward, but only after the friend's first order is actually paid and a waiting period has passed.
The referral program arrives in the round 16 release. Turning it on needs the Pro or Enterprise plan. Shops that do not turn it on behave exactly as before.
How it works
- Every customer has one stable code (6 characters) and a link
your-store/?ref=CODE. - A friend opens the link and registers, or enters the code before their first order. From then on they are recorded as a referral.
- First touch wins: a customer can be referred only once, ever. Referring yourself, or two people referring each other, is refused.
- The friend's first order that is Paid, worth at least your minimum and inside the time window, makes the referral qualify.
- The reward is paid after the hold period (0 to 60 days and, if you want, the order must be Delivered). Each side is rewarded at most once per referral.
- If that order is canceled or fully refunded before the reward is paid, the referral becomes VOIDED and nobody gets anything.
Guests without an account cannot be referred. Invite them to register at checkout.
Setting it up
Open Referral in the Dashboard (under Marketing), tab Settings.
| Setting | What it does |
|---|---|
| Enabled | The master switch. If the plan does not include it, an upgrade card shows |
| Inviter reward and friend reward | Each one: None, Points, or Coupon (see below). At least one side must reward something |
| Minimum order | Value of the first order (rupiah). 0 = any Paid order |
| Qualify window | How many days (1 to 365) after the friend is recorded their first order still counts. Default 30 |
| Hold period | 0 to 60 days after qualifying. Default 7 |
| Require Delivered | The reward is paid only after the order is received |
| Reward expiry | 1 to 730 days for points and coupons. Default 90 |
| Caps | Max rewards per inviter per month (in the shop time zone), max total rewards, and a budget (rupiah). Empty = no cap |
| Terms and conditions | Text up to 2000 characters that customers see |
Rewards
- Points: 1 point = Rp1, added to the customer's loyalty points balance.
- Coupon: pick one of your existing shop coupons (Coupons). A reward coupon is an ordinary coupon, so it never changes how an order total is calculated.
- A fixed credit = a fixed-amount coupon, or points.
- The budget counts the cost of rewards still standing: points 1:1, a fixed coupon at its amount, a percentage coupon at its maximum cap (or 0 when uncapped).
Defaults before you save anything: the program is off, both rewards = None, minimum order 0, hold 7 days, window 30 days, expiry 90 days, no caps. Choose at least one reward before turning it on (5,000 points for the inviter is a sensible start). The preview on the settings page reads like "Budi invites Sari: Budi gets 5,000 points, Sari gets the Welcome 10k coupon after a Rp50,000 order, paid 7 days after delivery".
A shop that turns this program on no longer pays rewards from the old referral challenge, so nobody is paid twice. Shops that do not turn it on are unchanged.
The hold period and paying rewards
The status of a referral:
| Status | Meaning |
|---|---|
| PENDING | Friend recorded, no qualifying order yet |
| QUALIFIED | The first order qualifies, in the hold period |
| IN_REVIEW | Flagged by fraud checks, waiting for your decision |
| REWARDED | Reward paid |
| REJECTED | You rejected it |
| VOIDED | The order was canceled or fully refunded before payout |
| REVERSED | The reward was taken back after payout |
| NOT_QUALIFIED | First order too small, outside the window, or not the first order |
Rewards are paid automatically, checked every 15 minutes, once the hold ends. When the monthly cap, total cap, or budget is reached, the referral stays QUALIFIED marked waiting on a cap and is paid automatically as soon as there is room (next month, or when you raise the cap).
A partial refund changes nothing. If you switch the program off or the plan is downgraded, new referrals and new qualification stop, but referrals already QUALIFIED are still paid.
If a reward was paid and you choose Reverse: points are deducted (never below 0, points the customer already spent are not clawed back), an unused coupon is canceled, a used coupon is kept.
Fraud checks and the review queue
Each referral gets a score from these signals. A score of 50 or more goes to the Review queue. One weak signal alone does not block; two together do.
| Signal | Weight | When |
|---|---|---|
| Same device | 70 | Inviter and friend were seen on the same device |
| Same phone | 60 | Last 9 digits match (0, 62, +62 treated alike) |
| Same email | 60 | Same after lower-casing and removing Gmail dots and +tags |
| Device cluster | 50 | 2 or more other accounts share the friend's device |
| Same address | 40 | Profile or delivery address equals the inviter's |
| Disposable phone | 40 | Too short or long, one repeated digit, or a run of digits |
| Velocity | 40 | The inviter got 5 or more referrals in 24 hours |
| IP cluster | 30 | 4 or more other referrals from the same IP network in 7 days |
In the Review tab each row shows the inviter, the friend, the order value, and the signals in plain words. Choose:
- Approve: the referral becomes QUALIFIED, skipping the fraud check, then the normal hold applies. Paid straight away if the hold already elapsed.
- Reject: the referral becomes REJECTED and is never paid. You can add a note of up to 255 characters.
Reverse is available on REWARDED referrals. Every action you take is recorded in the Activity Log.
How customers share
In the online store (profile tab) customers see their code and link, a Copy button, a Share on WhatsApp button with a ready message, stats (invited, joined, ordered, rewarded, points earned) and their invite list. Invited friends show only as Friend 1, Friend 2, and so on, with no name, number, or rejection reason. The statuses customers see: Joined, Ordered, Rewarded, Not eligible.
A visitor who opens a ?ref= link sees a banner "Budi invited you" with the reward. A logged-in customer without orders can tap Use code. A code that fails (wrong, program off) never blocks registration.
Customers also get in-app notifications when their friend orders, when a reward lands, and when a reward is taken back.
Reports
The Reports tab (Owner and Admin only), with a date range:
- Funnel: shared, visits, registered, ordered, rewarded, with conversion rates.
- Reward cost (standing, reversed, points issued) against revenue from referred customers (qualifying orders, net of refunds) and revenue per rupiah of reward.
- The review queue and the number waiting on a cap.
- Top referrers: invited, ordered, rewarded, revenue, reward cost.
Plans and roles
| Free | Growth | Pro | Enterprise | |
|---|---|---|---|---|
| Turn the program on | No | No | Yes | Yes |
| View settings and referrals | Yes | Yes | Yes | Yes |
Only turning on is gated by plan. Referrals that already qualified are still paid after a downgrade. Owner and Admin can do everything. A Cashier can only view settings and the referral list, with no actions and no reports. The Kitchen role has no access.
Privacy notes
- You see your own customers' names and phone numbers in the referral queue. This data is never sent to other customers.
- The code-check page shows only the inviter's first-name initial.
- Device IDs are stored only as a hash, and IPs only as a network prefix (/24). Customers never see fraud signals.
- Referral and reward history is kept because it backs point balances and coupons.
?ref=links are not indexed by search engines so they do not become duplicate pages.- MCP tools only read and manage the program from the owner's side. A customer's own code, invites, and claiming a code are customer-session features, not MCP tools.
FAQ
Does the reward arrive at once? No. After the friend's first order is Paid and the hold has passed (0 days means right away).
Can a friend who already shopped be invited? No. A code can only be used before the first counted order. Orders awaiting payment, expired, or canceled do not count.
Why is a referral stuck? Read its note: fraud review, hold period, waiting for Delivered, or a cap or budget reached.
Are there MCP tools? Yes, to read the report and queue and to approve or reject with confirmation. See Tool Surface.