Bill page
Every order in Active Reach — whether placed at a POS terminal, through your storefront, via WhatsApp chat, or redeemed for loyalty rewards — produces a bill at {brand}.actii.me/b/{code}. The bill is the entry point that hyperlinks customers to feedback, rewards, members, and reviews.
The {code} is non-sequential and resolves to the issuing outlet on its own, so the URL has no outlet segment in the path — short enough to QR onto a thermal receipt.
Always-on
Active Bill is the seventh Active product, and the only one that’s permanently on. You won’t find it in the Connected Products activation grid — it bypasses the per-tenant activation gate entirely. The first POS sale, the first storefront order, the first Chat checkout — each emits a bill, and the bill page renders. “Activating Bill” would be noise.
The configuration surface lives at /dashboard/[workspaceSlug]/connected-products/active-bill. The chip-strip there picks the tier: chip = “All outlets” edits the brand-tier template; chip = a specific outlet edits an outlet-tier override. Both flows live on the same page — there is no separate /dashboard/defaults route.
What’s on the bill
A standard bill renders, top to bottom:
- Outlet header — name, address, phone, GSTIN (from workspace settings)
- Order summary — items, quantities, taxes, total
- Payment details — method, transaction ID, paid amount
- Affordances — the inline chips that link out to other customer pages (see Hybrid inline-vs-navigate)
- Footer — social URLs, terms link, refund policy
Items 1, 3, and 5 come from configuration. Items 2 and 4 are computed per-order.
Where each field comes from
| Field | Tier | Configured at |
|---|---|---|
| Brand name + logo | Brand | /dashboard/[ws]/connected-products/active-bill (chip = “All outlets”) |
| Footer text + social URLs | Brand | /dashboard/[ws]/connected-products/active-bill (chip = “All outlets”) |
| Refund policy text | Brand | /dashboard/[ws]/connected-products/active-bill (chip = “All outlets”) |
| Outlet name + address + phone | Outlet | /dashboard/[ws]/connected-products/active-bill (chip = specific outlet) |
| GSTIN + tax registration | Outlet | /dashboard/[ws]/settings/general |
| Affordance toggles (review prompt, rewards chip, etc.) | Outlet | /dashboard/[ws]/connected-products/active-bill (chip = specific outlet) |
| Order line items | Computed | (from the order itself) |
Bills are cross-product
The same receipt model serves six Active products via the unified bill_receipts table. This means:
| Active product | When it generates a bill |
|---|---|
| Active POS | Every transaction at the terminal |
| Active Commerce | Every online order |
| Active Chat | Every WhatsApp / SMS / in-app checkout |
| Active Loyalty | Every points redemption |
| Active Rewards | Every reward fulfilment |
| Active Feedback | Every survey response with an attached transaction |
You won’t see a separate “POS bill” vs “Commerce bill” surface — they all use the same template, rendered by cashier-portal at /b/{code}.
QR / link distribution
Each bill has a short URL: {brand}.actii.me/b/{code}. The {code} is non-sequential and not guessable. You can:
- Print the URL or its QR on physical receipts (cashier-portal handles this)
- Send the URL via WhatsApp on order confirmation
- Email it on order completion
The customer can return to the same URL forever — bills don’t expire. Reprints work without re-issuing.
Where to configure the look
Brand-tier template
Go to /dashboard/[workspaceSlug]/connected-products/active-bill with the chip-strip set to All outlets. Set:
- Receipt footer text
- Instagram / Facebook / YouTube / X URLs
- Payment-details block layout
- Logo + brand-name styling
These fields apply to every outlet under the brand. The Brand Bill Defaults card on this page is the authoring surface.
Per-outlet overrides
On the same /dashboard/[workspaceSlug]/connected-products/active-bill page, flip the chip-strip to a specific outlet. Override:
- Outlet-specific contact info
- Toggle which affordance chips show (review prompt, rewards earned, membership upsell)
Outlet overrides win over the brand template for the same field. Switching outlets on the chip-strip swaps the editor in place — no separate route.
Test render
Use the Preview button next to any draft. A sample order is generated and you see the rendered bill exactly as the customer would.
What’s next
- Customer pages overview — how all five pages link
- Loyalty rewards — what happens when a customer taps the rewards chip
- Feedback flows — what happens when a customer taps the review prompt