How Stripe and TillPayments Surcharges Work on Invoices
Source: invoice.rb:793-889
- Stripe fee: a percentage-based fee is calculated and added to the invoice total (with Swedish rounding if applicable)
- The Stripe fee is split into subtotal and tax components for correct accounting treatment
- Stripe adjustment is skipped if the invoice is already closed
- TillPayments surcharge is similarly added onto the total and the customer is debited for the surcharge amount
- TillPayments surcharge is split into subtotal/tax and also skipped if the invoice is closed
- When a TillPayments reversal credit is created, it forces cash_or_account to "C", copies surcharge amounts, and auto-generates a note
- Reserved stock quantities are recalculated when the invoice type changes (e.g., from invoice to credit), affecting qty_reserved for every product on the invoice
Support scenarios
- "Why does my invoice total include a Stripe fee?" -> online payment via Stripe adds a percentage surcharge to the invoice total
- "There's a surcharge on the invoice I didn't add" -> TillPayments automatically adds a surcharge for EFTPOS transactions
- "The surcharge didn't apply" -> the invoice was already closed; surcharges cannot be added to closed invoices
- "Reserved stock changed when I changed the invoice type" -> changing type triggers a full recalculation of qty_reserved for all products on the invoice