Skip to Content

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:

  1. Outlet header — name, address, phone, GSTIN (from workspace settings)
  2. Order summary — items, quantities, taxes, total
  3. Payment details — method, transaction ID, paid amount
  4. Affordances — the inline chips that link out to other customer pages (see Hybrid inline-vs-navigate)
  5. 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

FieldTierConfigured at
Brand name + logoBrand/dashboard/[ws]/connected-products/active-bill (chip = “All outlets”)
Footer text + social URLsBrand/dashboard/[ws]/connected-products/active-bill (chip = “All outlets”)
Refund policy textBrand/dashboard/[ws]/connected-products/active-bill (chip = “All outlets”)
Outlet name + address + phoneOutlet/dashboard/[ws]/connected-products/active-bill (chip = specific outlet)
GSTIN + tax registrationOutlet/dashboard/[ws]/settings/general
Affordance toggles (review prompt, rewards chip, etc.)Outlet/dashboard/[ws]/connected-products/active-bill (chip = specific outlet)
Order line itemsComputed(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 productWhen it generates a bill
Active POSEvery transaction at the terminal
Active CommerceEvery online order
Active ChatEvery WhatsApp / SMS / in-app checkout
Active LoyaltyEvery points redemption
Active RewardsEvery reward fulfilment
Active FeedbackEvery 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}.

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