Understand fees, taxes, discounts, and tips
Customer App can display a Bill or cart summary containing subtotal, discounts, offers, taxes, fees, delivery, tip, wallet payment events, loyalty estimates, and total. These rows are a presentation of returned and locally derived cart data. They are not a locked server-authoritative financial receipt.
Every monetary row requires the same current cart, account, project, business, currency, precision, pricing, offer, tax, fee, tip, wallet, payment, and version before it can be treated as consistent. A visible total or refreshed row does not prove that those inputs settled together.
Displayed Bill versus financial authority
| Displayed layer | Safe interpretation | What it does not prove |
|---|---|---|
| Subtotal | A formatted cart subtotal, sometimes combined with included taxes | Canonical taxable base, current products, or server lock |
| Discount or offer | Returned discount/offer presentation and locally selected detail | Eligibility, reservation, final consumption, or correct later tax/fee base |
| Taxes and fees | Rows derived from returned tax/fee records and summary/fallback fields | Legal correctness, jurisdiction, recipient, authoritative basis, or final amount |
| Delivery or extra values | Returned delivery/metafield/discount presentation | Serviceability, sponsorship, collection, or final charge |
| Tip | Returned cart tip/rate and local selection presentation | Payout recipient, transfer, collection, or settlement |
| Wallet payment event | Provisional wallet/payment-event row subtracted in the summary | Current wallet balance, reservation, debit, refund, or available funds |
| Loyalty estimate | Locally formatted estimate from returned rate and cart base | Points award, redemption, final rate, or accounting result |
| Total | Formatted cart total from the current view | Locked amount, currency/version authority, payment capture, or placed order |
When Bill rows disagree, preserve the disagreement. Do not calculate replacement values or use another displayed row as the authority.
Calculation bases can change
Products, quantities, options, offers, discounts, delivery, address, order type, schedule, fees, taxes, tips, wallets, payment events, and business rules can change different calculation bases. A change can invalidate multiple rows even if only one row refreshes.
Offer replacement, usage, removal, or a negative-total correction can also change tax, fee, tip, delivery, and wallet bases. The current source does not establish one atomic version that covers every displayed component.
Tip selection and persistence
Customer App can conditionally present configured tip options and a custom tip input. A tip can be fixed or percentage-based. Multi-business Checkout can split a fixed selection across carts and apply a rounding correction to one member.
| Tip state | Safe interpretation |
|---|---|
| Tip option visible | A configured option is presented; no financial change occurred |
| Option selected | Local UI requested one tip change for a cart or group |
| Custom input visible | Local entry is enabled; no amount has been accepted |
| Apply selected | Persistence/recalculation can be in flight; input validity is only a client precondition |
| Tip row refreshed | A returned cart row changed; payout, recipient, other carts, and final total remain separate |
| Multi-cart split | Several cart updates can be issued and settle independently |
| Error or lost response | Tip persistence and all affected totals remain unknown; do not repeat automatically |
Tip selection can update cart state, payment-event/summary calculations, sockets, plugins, and later Place inputs. It is not a local-only preference.
Recipient claim is blocked
The current UI contains language claiming that tips go directly to a driver. The pinned evidence does not establish the payout recipient, allocation, transfer timing, deductions, refunds, cancellation behavior, or accounting settlement. Do not repeat that claim in customer guidance.
Until finance/legal/product owners provide an authoritative recipient and payout contract, describe the row only as a displayed tip associated with the cart.
Currency, minor units, and precision
Financial authority must use locked minor units, one currency, explicit rounding rules, and one version for every input and recipient. The UI currently formats, truncates, rounds, parses, adds, subtracts, and divides values in several ways. Percentage and fixed tips, included taxes, delivery taxes, wallet rows, loyalty rates, and multi-cart splits can therefore disagree at precision boundaries.
Formatted symbols and decimal length are presentation configuration, not proof of the server currency or calculation rule. Never infer or reconstruct a real amount from a screenshot or formatted row.
Wallet refresh and downstream effects
Wallet controls can create or remove cart associations and provisional payment events, refresh cart totals, and emit socket updates. Wallet discovery itself can also be effectful. A Bill refresh is not a read-only snapshot.
Place can later create wallet debits, payment/provider events, orders, refunds or compensation, jobs, plugins, messages, sockets, notifications, and reporting. A selected tip, wallet row, total, Place navigation, or order screen does not prove that every downstream effect used the same amount/version or settled exactly once.
Unknown and partial outcomes
| Situation | Safe interpretation |
|---|---|
| One row changes and total does not | Recalculation or revision propagation is partial/stale |
| Total changes but tax/fee detail does not | Display layers can have different bases or versions |
| Tip option appears selected but Bill is unchanged | Local selection and persistence/recalculation disagree |
| Multi-cart tips differ after one selection | Preserve per-cart results; do not infer group completion |
| Wallet row appears or disappears | Cart association/payment event changed; balance and debit remain separate |
| Tip or wallet request errors | Cart/financial state is unknown; do not repeat or switch inputs as a test |
| Place response is lost | Amount, payment, wallet, order, job, and provider outcomes remain unknown |
| Account/project/session/cart changes | Reject old calculations and callbacks; do not carry amounts or selections forward |
Troubleshoot safely
- Treat every amount as a displayed cart state, not a final receipt.
- Do not recalculate totals, taxes, fees, discounts, tips, or wallet effects in documentation or support notes.
- Do not select another tip, offer, wallet, method, or cart change to diagnose a stale summary.
- Do not repeat tip, wallet, Place, payment, refund, or provider work after an unknown response.
- Do not claim a tip recipient or payout from the visible label.
- Keep amounts, currency, recipient, cart/order/account references, payment/ wallet/provider data, and screenshots out of diagnostics.
Use only value-free descriptions such as “tip persistence unresolved” or “financial rows use different revisions.”
Accessibility and privacy
Subtotal, discount, offer, tax, fee, delivery, tip, wallet, loyalty, total, included/excluded, expanded detail, selected, loading, error, stale, partial, unknown, and recipient-unverified states need explicit semantic text. Expand/ collapse, remove offer, tip options, custom input, Apply, wallet, and Place controls need names, roles, values, disabled/busy state, consequences, focus order, and announcements.
Large text, keyboard, screen reader, reduced motion, safe area, and Back behavior must preserve row scope without exposing private values or causing duplicate financial actions. These are verification requirements, not current financial, legal, privacy, provider, or accessibility certification.
Recertification triggers
Revalidate after changes to Bill rows or fallback calculations; offer/coupon eligibility, replacement, consumption, or analytics; tax/fee/delivery bases; tip options, custom input, fixed/percentage/multi-cart persistence; recipient or payout policy; currency/minor units/precision/rounding; wallet/payment-event refresh; Place/payment/refund/order/job/socket/plugin/provider settlement; account/project/session cleanup; privacy; or accessibility.
Related guides: Review coupons · Understand wallet and loyalty states · Understand cash and free checkout · Understand payment-method availability · Understand checkout recovery states · Review your cart before checkout