Skip to main content

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 layerSafe interpretationWhat it does not prove
SubtotalA formatted cart subtotal, sometimes combined with included taxesCanonical taxable base, current products, or server lock
Discount or offerReturned discount/offer presentation and locally selected detailEligibility, reservation, final consumption, or correct later tax/fee base
Taxes and feesRows derived from returned tax/fee records and summary/fallback fieldsLegal correctness, jurisdiction, recipient, authoritative basis, or final amount
Delivery or extra valuesReturned delivery/metafield/discount presentationServiceability, sponsorship, collection, or final charge
TipReturned cart tip/rate and local selection presentationPayout recipient, transfer, collection, or settlement
Wallet payment eventProvisional wallet/payment-event row subtracted in the summaryCurrent wallet balance, reservation, debit, refund, or available funds
Loyalty estimateLocally formatted estimate from returned rate and cart basePoints award, redemption, final rate, or accounting result
TotalFormatted cart total from the current viewLocked 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 stateSafe interpretation
Tip option visibleA configured option is presented; no financial change occurred
Option selectedLocal UI requested one tip change for a cart or group
Custom input visibleLocal entry is enabled; no amount has been accepted
Apply selectedPersistence/recalculation can be in flight; input validity is only a client precondition
Tip row refreshedA returned cart row changed; payout, recipient, other carts, and final total remain separate
Multi-cart splitSeveral cart updates can be issued and settle independently
Error or lost responseTip 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

SituationSafe interpretation
One row changes and total does notRecalculation or revision propagation is partial/stale
Total changes but tax/fee detail does notDisplay layers can have different bases or versions
Tip option appears selected but Bill is unchangedLocal selection and persistence/recalculation disagree
Multi-cart tips differ after one selectionPreserve per-cart results; do not infer group completion
Wallet row appears or disappearsCart association/payment event changed; balance and debit remain separate
Tip or wallet request errorsCart/financial state is unknown; do not repeat or switch inputs as a test
Place response is lostAmount, payment, wallet, order, job, and provider outcomes remain unknown
Account/project/session/cart changesReject 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