Mandatory Fees
Mandatory fees let you collect required charges — a resort fee, a non-refundable cleaning surcharge, a pet deposit, an amenity fee — during a guest’s pre-check-in flow, before they can finish checking in. Unlike optional upsells, guests cannot skip a mandatory fee.
How it works
Section titled “How it works”Mandatory fees are built from two pieces:
- A reusable fee product — defined once at the organization level with a name, description, and pricing rules (flat, per-night, or per-guest with optional caps).
- A “Mandatory Fee” pre-check-in step — picks which products apply, the payment account they charge through, and an optional intro message shown above the fee list to the guest.
A single pre-check-in step can bundle multiple products (for example, a resort fee + a cleaning fee). The guest pays them together as a single charge that blocks check-in until paid.
When the guest pays, SuiteOp records one reservation charge per fee product so each line is auditable, refundable, and visible in the timeline.
Step 1 — Create a fee product
Section titled “Step 1 — Create a fee product”The fee product catalog lives at Portals → Settings → Fee Products.
-
Open the catalog and click New Fee Product
Each product is reusable across as many pre-check-in steps and portals as you need.
-
Give it an internal nickname
Only your team sees this — use it to disambiguate similar products (for example, Resort Fee — Beach Properties vs. Resort Fee — Downtown).
-
Add a guest-facing title and description
Both fields are multi-language and shown to the guest exactly as written. Keep titles short (“Resort Fee”, “Cleaning Surcharge”) and use the description to explain what the fee covers.
-
Pick a pricing model
- Fixed price — one flat amount regardless of stay length or party size.
- Per night — multiplied by the number of nights. Optionally cap the number of priced nights (for example, “max 7 nights even on a 14-night stay”) or set a maximum total.
- Per guest — multiplied by the number of guests on the reservation. Same optional caps apply.
Enter prices in dollars (the system handles cents internally).
-
Pick the currency
Leave blank to inherit from the payment account at charge time, or set explicitly when the product is locale-specific.
-
Save
The product appears in the catalog and is immediately available to pre-check-in steps.
Step 2 — Add a Mandatory Fee step to your pre-check-in flow
Section titled “Step 2 — Add a Mandatory Fee step to your pre-check-in flow”-
Open the portal you want to attach the fees to
Navigate to Portals → Settings → Pre-Check-in, open the portal template you want to edit, and click Add Step.
-
Pick Mandatory Fee from the step picker
SuiteOp inserts a new step into the flow. You can reorder it with the other steps later.
-
Select the fee products to bundle
Choose one or more products from your catalog. The guest will see them as a single list with a combined total.
-
Pick a payment account
The dropdown lists every active payment account across your configured providers (Stripe, JusPay, GuestyPay). The selected account processes the guest’s payment.
-
(Optional) Add a guest-facing subtitle
A short intro that appears above the fee list — useful for explaining the cluster of charges or linking to your terms. Multi-language.
-
Save the step
Assign the portal template to the properties you want covered, and you’re done. The next pre-check-in submission on a covered reservation will include the mandatory fee.
What the guest sees
Section titled “What the guest sees”When the guest reaches the Mandatory Fee step in their pre-check-in flow:
- The optional subtitle appears at the top
- Each fee product is listed with its title, description, and resolved price (with the math behind per-night / per-guest pricing shown when relevant)
- A combined total is shown at the bottom
- A Pay button launches the embedded Stripe Elements checkout
The guest cannot finish pre-check-in — and therefore cannot view their access instructions — until the payment succeeds. After payment, the step is marked complete and the rest of the flow unlocks.
Refunds and charge timeline
Section titled “Refunds and charge timeline”Each fee product paid creates its own row in the reservation’s Charges & Payments section, labelled with Origin: Mandatory Fee. From there you can:
- Refund any single line (full or partial) using the Charge Detail Sheet — refunds do not re-block check-in
- See who paid, when, and which payment account processed it in the timeline
- Filter the reservation’s folio by origin to isolate mandatory fees from other charges
If you delete a fee product from the catalog after charges have been recorded, the historical charges keep working — the product link nulls out but the description, amount, and refund affordances stay intact.
Workflow automations
Section titled “Workflow automations”Mandatory-fee payments fire dedicated triggers so you can build automations distinct from regular payment events:
mandatory_fee_payment_submitted_by_guest— fires the moment the guest paysmandatory_fee_refunded— fires when you issue a refund
Use these in Workflows to send confirmation emails, notify your team in Slack, or kick off a downstream task.
Mandatory fees vs. other ways to collect
Section titled “Mandatory fees vs. other ways to collect”| Method | When to use |
|---|---|
| Mandatory fee (this article) | Charges every guest must pay, no opt-out — resort fees, mandatory cleaning, pet deposits |
| Required upsell + workflow (Automating Fee Collection) | Charge only when a verification answer triggers it (e.g. pet fee only when guest answered “yes, pet”) |
| Optional upsell (Creating Upsells) | Add-ons the guest can choose to buy — early check-in, mid-stay clean, postcards |
| One-off service fee (Managing Guest Fees) | Per-reservation charges added manually after the fact |
Related
Section titled “Related”- Managing Charges & Payments — refund and reconcile mandatory fee charges
- Automating Fee Collection — conditional fees driven by verification answers
- Workflow Automations — react to mandatory-fee triggers