Payments, fees, and refunds
The exact 4.9% + 30¢ fee formula with worked examples, full and partial refunds, how fees are treated on refunds, and the dispute lifecycle.
Payments, fees, and refunds
The fee formula
Every successful card payment is charged 4.9% + 30¢:
fee = round_half_up(amount × 4.9%) + 30¢
you receive = amount − feeMinimum charge is $1.00. If the fee would consume the whole amount, the charge is rejected. All amounts are integer cents — no floating-point rounding surprises.
Worked examples
| Sale | Fee calculation | Fee | You receive |
|---|---|---|---|
| $1.00 | $1.00 × 4.9% = $0.49 → $0.49+0.30 | $0.79 | $0.21 |
| $25.00 | $25.00 × 4.9% = $1.225 → $1.23+0.30 | $1.53 | $23.47 |
| $50.00 | $50.00 × 4.9% = $2.45 → $2.45+0.30 | $2.75 | $47.25 |
| $100.00 | $100.00 × 4.9% = $4.90 → $4.90+0.30 | $5.20 | $94.80 |
The 4.9¢ estimate for Stripe's processing cost (2.9% + 30¢) is shown on each payment as an estimate unless the real balance-transaction data is available. Every payment record shows the Biz Invoice Pay fee and your net separately — nothing is hidden inside a lump sum.
Fees may change; we'll tell you before they do. The numbers above read from the shared fee function, so the docs, the pricing calculator, and your dashboard always agree.
Refunds
Open a payment and click Refund. You can refund the full amount or a partial amount (for example $20 back on a $100 payment). Partial refunds can be issued more than once until the payment is fully refunded.
- Full refund: the payment status becomes
refunded. - Partial refund: the status becomes
partially_refunded, andrefunded_centstracks the running total. - Refunds go back to the customer's original card; allow up to 10 business days for their bank to post it.
Fee-on-refund policy
The current platform policy is refund proportionally:
- A full refund returns the full Biz Invoice Pay fee (on a $50 payment, you get the $2.75 back).
- A partial refund returns a proportional share of the fee, rounded half-up: refunding $20 of a $100 payment returns round($5.20 × 20/100) = $1.04.
If the policy is ever set to keep_fee by the platform, refunds return no fee. The policy in effect at the time of each refund is recorded on the refund itself.
Who can refund
Owners can refund any amount. Managers are capped by a configurable per-refund limit (set in Settings → Team). Staff cannot refund.
Disputes (chargebacks)
When a customer disputes a charge with their bank, the payment is flagged and the disputed amount may be debited from your pending balance while Stripe investigates.
| Status | Meaning |
|---|---|
needs_response | Stripe is waiting for your evidence. Act now. |
under_review | You submitted evidence; Stripe/bank is deciding. |
won | You won — the funds are returned to you. |
lost | The customer won — the debit is final. |
How to respond
- Open Disputes in the dashboard and read the reason (e.g. "product not received", "fraudulent").
- Attach evidence: the invoice and its pay link, signed receipts or contracts, delivery/shipping proof, and any messages with the customer. More specifics beat more pages.
- Submit before the deadline shown — missed deadlines are lost automatically.
Disputes are rare for in-person businesses, but a clear invoice description and a written receipt (even a one-line service agreement) are the two things that win them.
Simulating disputes in dev
Use test card 4000 0000 0000 0259 — the payment succeeds, then a dispute is created after a short delay so you can walk the whole lifecycle. See Testing.
Last updated: October 14, 2026
Was this page helpful?