The Cash Discount Program shows one listed price on every quote and invoice and takes an exact discount off for customers who pay without a card.
One listed price. Every quote and invoice shows a single Total that includes card processing. That listed price is the most a customer ever pays, including on your online payment link.An exact discount for paying without a card. Customers who pay by cash, check, ACH, or any other method you add (Zelle, PayPal and so on) pay your real price: the familiar round numbers you set.The rate is locked to your real cost. The discount is exactly what a card payment costs you under the program: 2.9% on PortaPro flat-rate processing, Stripe's standard 2.9% + 30¢ otherwise. Nobody types the number in, so it can't drift.You net the same amount either way. The card payer's extra covers the processing fee to the cent; the cash payer's discount comes off a price that had it built in.Without the program, every card payment costs you a processing fee. With a hand-typed discount that doesn't match the fee, you either overcharge card payers or eat the gap on every card. Locking the rate to the real cost is what makes the program both honest and free to run.
Turn it on and pick a pricing model
Go to Settings → Finance → Cash Discount. The page asks one question: which describes your prices today? The discount comes off the listed price either way; the answer decides whether that listed price is raised first.
Raise my prices to cover card processing (recommended). Your prices are what you need to receive. New quotes and invoices are listed at the card-inclusive price, computed from your price and your locked rate: your price ÷ (1 − 2.9%) on flat-rate processing, or (your price + 30¢) ÷ (1 − 2.9%) on Stripe's standard rate. The cash discount is the exact dollar difference back to your price, never a percentage applied in reverse. You receive your price either way.My prices already include card processing. You priced with the card fee built in, so it comes back off for cash payers and listed prices stay as they are. Pick this only if it is literally true: if your prices don't already include the fee, this option gives every cash customer a discount out of your margin.Why not just discount a round 3%? A reverse percentage never mirrors a processing rate: a 3% raise followed by a 3% discount always lands short (1.03 × 0.97 = 0.9991), and a fixed per-transaction fee can't live in a percentage at all.
Worked example: a $400.71 invoice on flat-rate processing (2.9% under the program)
| |
|---|
| Listed price (what the invoice says) | $412.68 |
| Cash / check price | $400.71 |
| Customer saves by paying cash | $11.97 |
| Card fee if paid by card | $11.97 |
| You receive, either way | $400.71 |
The How It Works panel in settings shows the same example at your own rate.
The discount rate is locked
The Discount Rate row in settings is read-only. It shows what your connected Stripe account actually pays for a card payment:
| Your processing | Discount rate |
|---|
| PortaPro flat-rate processing (Growth plan) | 2.9%, nothing fixed |
| Stripe's standard rate passed through (below Growth) | 2.9% + 30¢ |
| Stripe's standard rate on an older connected account | 2.9% + 30¢ |
| No Stripe account connected yet | What connecting today would give you |
It updates on its own when your processing changes. Switch to flat-rate processing in Settings → Payments and every new document is priced at 2.9%.
Why 2.9% and not 2.25%? Flat-rate processing has two card rates. When you absorb the fee yourself (the program is off, or a customer is excluded from it), a card payment costs you 2.25%. When the program is on, your customer pays the card cost in the listed price, so the rate is 2.9%: still no 30¢ per payment, and still below Stripe's own 2.9% + 30¢. Either way you receive your price. Each invoice keeps the rate it was priced at. An invoice sent before you turned the program on is still charged 2.25% when it is paid by card, and one priced under the program stays 2.9% even if you turn the program off later. Bank transfers (ACH) stay free.
Is it legal?
Cash discounts are expressly permitted by the Cash Discount Act of 1981 (a Truth in Lending Act amendment) and protected by the Durbin Amendment, which bars card networks from interfering with them.They are legal in all 50 states and need no card-brand registration.The restricted practice is the opposite direction: posting a lower price and *adding a card fee at checkout*. That is banned in Connecticut, Massachusetts and Puerto Rico, capped by Visa at 3%, and never allowed on debit or prepaid cards. A cash discount avoids all of it because the listed price is the regular price.Locking the discount to your real processing cost means a card payer never pays more than the card costs you.The one obligation everywhere: disclose both prices before the sale. PortaPro prints your disclosure on every quote and invoice.This is orientation, not legal advice. Confirm specifics with your accountant or attorney.
The cash price is fixed on each document
The moment a quote or invoice is created, its cash price is stored on it, in both pricing models. That is the price every surface shows (PDF, email, portal, quote page, Collect Payment). Changing the settings later, or your processing rate changing, never moves a price you already sent.
An invoice created before you turned the program on has no stored cash price:
Raise my prices to cover card processing: no discount is offered. That invoice was never raised, so it is already at your real price, and Collect Payment pre-fills the full amount.My prices already include card processing: the discount applies at your locked rate.Taxes
Raise my prices to cover card processing: sales tax follows the price actually paid. Card payers pay tax on the listed price. A cash payer's discount is seller-funded and taken at the time of sale, so it reduces the taxable amount, like a store coupon. PortaPro works out each side's tax.My prices already include card processing: tax is charged on your listed price and the discount comes off afterwards. After tax / Before tax only chooses whether the rate is taken of the total or of the pre-tax amount; it does not change the tax charged.What customers see
Quotes, invoices, emails and the online quote page show one Total with a green panel beneath it: the cash price, the exact savings, your eligible methods by name, and your disclosure. If you discount cash, check and Zelle, the panel says "Cash / Check / Zelle price" and "You save $11.97 by paying cash, check, or Zelle."The online payment link charges the total shown for a card (and Apple Pay / Google Pay). When ACH / Bank Transfer is one of your methods, it also offers Bank account at the cash price, and the "pay all" page for a group of per-site invoices does the same. The customer picks one up front, so the price never changes mid-checkout. A bank payment takes a few business days to clear and costs you no processing fee.Recording a cash or check payment
Collect Payment applies the discount automatically when the payment settles the invoice at the cash price. It shows both prices for the method you picked ("Check price $150.00 · card price $153.45") and never changes an amount you typed.
A partial check is applied at face value and earns nothing yet. The invoice keeps showing both prices for what is left, and the check that completes the cash price earns the discount, so the rest can never be paid by card at the cash price.A check for exactly the listed (card) price asks what to do with the difference: Accept it as payment in full (no discount, no credit; preselected for customers without a rate card) or Give the discount and keep the difference as account credit (preselected for rate-card customers; it comes off their next invoice).1¢ to 99¢ over the cash price asks Call it even (preselected) or Keep $X as account credit. Calling it even records a slightly smaller discount: a $480.00 check on a $479.96 check price shows "Cash discount applied −$11.01" instead of −$11.05.$1.00 or more over the cash price becomes account credit automatically.Receipts show the applied discount and the method that earned it. If the payment is later reversed or refunded below the cash price, the discount comes off and the full listed price is owed again.
Which payment methods qualify
Cash, Check and ACH / Bank Transfer are checkboxes. With ACH ticked, bank payments you record yourself (a wire, a bill-pay transfer) earn the cash price, and the payment link offers Bank account at the cash price. With ACH unticked, every online payment is charged the listed total.Other ways you accept payment is a list you add to: Zelle, PayPal, Venmo, money order, anything that costs you nothing to accept. Each becomes its own choice in Collect Payment and is named in the customer message. Up to eight.Debit cards are not an option. PortaPro can't tell a debit card from a credit card at payment time, so a debit discount could only be advertised, never earned.Per-customer exemption: turn the program off on a customer's profile for negotiated-contract customers. Their documents keep your normal prices with no discount shown.The suggested disclosure sentence follows your method list until you edit it; Use suggested text brings it back.
Account credit and prepayments
A credit on a customer's account remembers how it was funded, and that decides the price it earns:
Credit from a check, cash or ACH payment earns the cash price, as if the customer had paid that invoice by check. A customer who prepays the season with one check is a cash payer for every invoice that check covers.Credit from a card payment pays the listed (card) price.Credit with no funding method (goodwill, a dispute settlement, an imported balance marked "Not sure") pays the listed price. PortaPro never guesses.| How the credit was created | Funding method |
|---|
| Overpayment on Collect Payment | The method recorded on that payment |
| Overpayment on a card charge or the payment link | Card |
| Issue Credit → Prepayment received | The How was it paid? answer (Check, Cash, ACH / bank transfer, Credit card, Other with a label such as Zelle) |
| Issue Credit → goodwill, dispute, other reasons | None (pays the listed price) |
| Customer import, negative opening balance | The row's prepaid_via column, else the Billing & Tax step's How were these prepayments made? answer |
An eligible credit earns the cash price when it covers the whole invoice at that price: the invoice closes at the cash price and the receipt names the method. A credit that covers only part of an invoice is applied at face value and earns nothing yet; the invoice keeps showing both prices for what is left ("Pay by card $150.00 / Pay by cash or check $146.55"). Each credit is judged on its own funding.
Reviewing "paid the card price" credits
Credits recorded before Collect Payment asked about card-price checks are listed under Review on Financials → Invoices ("N customers paid the card price by check or cash"). Settling one keeps the payment, removes the credit and takes the discount back off the invoice. It asks you to confirm (Yes, settle at the card price), and it refuses any credit a later sent invoice has already told the customer about.
An invoice with a discount applied while money is still owed
Before September 29, 2026 a partial check earned the discount on the whole invoice. Those invoices show "$X still due · $Y cash discount applied", and Billing Health lists them under Cash discount applied while money is still owed. If the customer will pay the rest by cash or check, nothing is needed; if they may pay by card, contact support.
Reports
Under Reports → Receivables & Payments:
Card Price Paid by Cash or Check lists every cash, check, bank or custom-method payment above the cash price and what happened to the extra: Kept as payment, Held as credit (on account) or Held as credit (used), with a Billing column of Rate card or One-time. A one-time customer holding credit has no next invoice to use it on.Cash Discount Program Summary shows by month what the card price added on card payments, what processing actually cost, the difference, and the discounts you gave.Settings → Finance → Billing Health also lists Card-price overpayment kept as credit that will not get used (a customer with no rate card, or credit unused for more than 60 days).
Rolling it out
Turn the program on and pick the pricing model in Settings → Finance → Cash Discount. If the Discount Rate shows 2.9% + 30¢, switching to flat-rate processing in Settings → Payments lowers your card cost and the discount together, to 2.9% with nothing fixed.Existing documents are untouched. Only newly created quotes and invoices carry dual pricing.Give customers a short heads-up: "prices now include card processing; pay by cash or check and it comes right back off."Keep the disclosure on. It is the legal backbone of the program.Related articles
Recording Payments & CreditsGet Paid Faster with Payment Links