Coupon codes with real guardrails — redeemable at the register and at self-order

Percent-off or dollar-off codes with min spend, usage caps, an end date, and per-channel control — redeemed at POS, kiosk, online, and QR, on an append-only ledger. Included on every plan.

Opero's coupon and discount-code software runs percent-off or dollar-off promos with min-spend, usage-cap, end-date, and per-channel guardrails — redeemable at the POS, kiosk, online, and QR self-order, on an append-only redemption ledger. Included from the $99 Starter tier.

Most coupon tools are either a blunt "take 10% off this ticket" button with no rules, or a separate marketing product bolted onto the side of the register. Opero puts real discount codes on the same order spine as your POS, kiosk, and QR ordering. You build a code once — percent-off or dollar-off — wrap it in guardrails that actually hold, and hand it out. Guests redeem it at the register or on the self-order screen, and every redemption is written to an append-only ledger you can trust. It's included on every plan, starting with Starter.

The wedge

Coupons and discount codes are part of the platform, not a paid add-on. Percent-off or dollar-off, guardrailed, redeemable at the POS and on self-order — on the tablets you already own, at one per-location price. Included from the $99 Starter tier up.

Percent-off or dollar-off, with guardrails that hold

A code is a discount plus the rules that keep it from being abused. In Opero you pick percent-off (1–100%) or a fixed dollar amount off, and then set the guardrails that matter for how you actually want the promo to behave. A percent-off can carry a maximum-discount cap so "20% off" never runs away on a large party, and no discount can ever exceed what the guest is spending — the math is clamped to the subtotal so a code can't drive a check negative.

  • Minimum spend — the code only unlocks once the subtotal clears the floor you set
  • Total-use cap — a global ceiling on how many times the promo can be redeemed, or leave it unlimited
  • End date — the code stops working automatically after the expiry you set
  • Max-discount cap on percent-off promos — so a big ticket can't blow the budget
  • Per-channel control — pick exactly which surfaces the code works on: POS, kiosk, online, QR, or any mix

Every one of these is enforced server-side at redemption, and it fails closed: if a code is inactive, past its end date, under the min spend, over a cap, or not allowed on the channel the guest is on, it simply doesn't apply — there's no path to slip a discount past the rules from a client. Validation runs against the authoritative server-computed subtotal, never a number the device sends up, so a percent-off is always taken on the same total it was checked against.

Redeem at the register — and now on kiosk and QR self-order

At the POS, a server applies a code when settling a dine-in check. The discount is allocated across the check's orders proportionally and each order's tax and total are recomputed, so reports that sum orders stay honest and the check still balances to the penny. On the self-order kiosk and QR flows, the guest types a code on the review screen and taps Apply — Opero re-prices the cart from the database and previews the exact discount before they commit, then claims it for real when the order is placed.

  • Per-channel control — allow a code on any mix of POS, kiosk, online, and QR; leave it open to all, or lock it to one surface
  • Kiosk and QR guests preview the discount on the review screen before paying — no surprise at checkout
  • The self-order path validates the code against the same server-priced subtotal the order will charge, so preview and final price agree
  • One promo per check at the register today — a check already carrying a discount won't stack a second one
  • If the last redemption slot races out between preview and payment, the order still stands at full price and the guest is told, rather than charging a discount with no ledger row behind it

One shared code, or a unique code per guest

A promo can be one shared code that everyone types — SAVE20 on a flyer or a table tent — or a set of unique one-time codes minted per guest. Unique codes are generated from an unambiguous alphabet (no look-alike characters) and default to a single redemption each, so you get exact per-guest tracking with no code-sharing. Which mode you want depends on the campaign, and you choose it when you build the promo.

On Growth and up, a promo attaches to a campaign so the code carries campaign attribution: a shared code is stamped to the campaign that sent it, and unique mode mints a distinct one-time code per recipient. Redemptions then roll up into a campaign ROI view — how many redeemed and how much discount was given, attributed back to the send — so you can see what an offer actually returned instead of guessing. (Unique per-guest codes are minted through this campaign send, so they come with the Growth campaign integration.)

An append-only redemption ledger

Every applied discount writes one row to an append-only redemption ledger — one row per applied discount, and no row is ever deleted. A redemption moves from applied, to settled when the sale is finalized (the point a one-time code is actually consumed, so an abandoned cart never burns it), to reversed on a void or refund. The claim that inserts the row and enforces the caps happens in a single atomic transaction, so two guests can't both grab the last slot on a capped code, and a committed claim always has its money applied. When a discounted check is voided or refunded, Opero restores each order's original tax and total from an exact snapshot taken at apply time — no lossy rounding — and frees the code back up.

Honest scope

Opero coupons are percent-off and dollar-off discount codes with the guardrails above, redeemable at POS, kiosk, online, and QR, on a redemption ledger with campaign ROI. They are not gift cards, and they don't redeem loyalty points — those are separate systems. Reporting is the redemption ledger plus campaign attribution, not a broader analytics suite. We'd rather be straight about the edges than oversell them.

Included on every plan, per location

Coupons and discount codes are included from the $99 per-location Starter tier — the same tier that runs your POS, ordering, KDS, and reservations — with unlimited devices and no per-device fees. There's no promotions module to upgrade into: building a code, setting its guardrails, and redeeming it at the register or on self-order is part of the base platform. Growth ($249) adds the campaign integration — attaching promos to sends, unique per-recipient codes, and campaign ROI — on top. All plans are per location, month-to-month, with no long-term contract.

See coupons and discount codes inside the full Restaurant OS — guardrails, self-order redemption, and a clean ledger, included on every plan.

View pricing

Frequently asked questions

What kinds of coupons can I create?
Percent-off (1–100%) or a fixed dollar amount off. A percent-off can carry a maximum-discount cap so it doesn't run away on a large ticket, and no discount can ever exceed the subtotal — the amount is clamped so a code can't push a check negative. You wrap either type in guardrails: a minimum spend, a total-use cap (or leave it unlimited), an end date, and which channels it's allowed on.
Where can guests redeem a code?
At the POS, a server applies it when settling a dine-in check. On the self-order kiosk and QR flows, the guest types the code on the review screen and sees the exact discount previewed before paying. You control which channels each code works on — any mix of POS, kiosk, online, and QR — so an online-only or kiosk-only offer stays on its intended surface. Redemption is enforced server-side and fails closed if any rule isn't met.
Can I limit how many times a code is used?
Yes. A total-use cap sets a global ceiling on redemptions across the whole promo, or you can leave it unlimited — it's enforced atomically at redemption, so concurrent guests can't both slip past the last slot. And if you mint unique one-time codes per guest, each one defaults to a single redemption, so a unique code can't be reused.
What's the difference between a shared code and unique per-guest codes?
A shared code is one string everyone types — good for a flyer or a table tent. Unique mode mints a distinct one-time code per guest, generated from an unambiguous alphabet and defaulting to a single redemption each, so you get exact per-guest tracking and no code-sharing. Unique per-guest codes are minted when you attach the promo to a campaign, so they come with the Growth campaign integration, and either mode carries attribution into the campaign ROI view.
What happens to a discount if I void or refund the check?
It reverses exactly. Every applied discount lives on an append-only ledger, and when a discounted check is voided or refunded Opero restores each order's original tax and total from a snapshot taken at apply time — no lossy rounding — and frees the code back up for reuse. No row is ever deleted; the ledger keeps the full applied-to-settled-to-reversed history.
Do coupons include gift cards or loyalty-point redemption?
No. Opero coupons are percent-off and dollar-off discount codes with the guardrails and channel controls described here, redeemed on an append-only ledger with campaign ROI reporting. Gift cards and redeeming loyalty points are separate concerns and aren't part of the coupons feature today — if your plan depends on those specifically, confirm availability before you switch.
Which plan includes coupons?
Coupons and discount codes are included from the $99 per-location Starter tier, alongside POS, ordering, KDS, and reservations, with unlimited devices. The campaign integration — attaching a promo to a send, unique per-recipient codes, and campaign ROI — is on Growth ($249) and up. All plans are per location, month-to-month.

Run your whole restaurant on one platform

POS, kiosk, QR ordering, kitchen display, inventory, and payments on one spine — one per-location price, unlimited devices, no leased terminals.

More features

Opero™ is a product of TackOn LLC. · The Restaurant Operating System