Processing fees
When a restaurant pays an invoice online, the card processor takes a fee. By default the restaurant pays the card fee on top of the invoice; the supplier can choose to absorb it. The invoice balance is never affected: the fee is collected on top and recorded separately.
Who uses it
- Restaurants see the fee at checkout.
- Supplier staff see the fee they bear as an expense in Bookkeeping.
How it works
| Method | Who pays the fee | Fee | Shows as paid |
|---|---|---|---|
| Card | The restaurant, unless the supplier absorbs it | 2.9% of the amount owed + $0.30, rounded to the cent | Within moments |
| PayPal | Not offered when paying a current invoice (verify) | — | — |
| Bank (ACH) | Always the supplier | Whatever the processor charges | Processing for a few business days (verify timing), then Paid |
| Cash, check, other | No fee | — | When recorded |
- Absorbing the card fee has no setting in the app. Clipp switches it on for a supplier. Then the restaurant pays only the balance, and the card fee warning isn't shown at checkout (PFP-005).
- The checkout shows the fee as its own Card processing fee line under Invoice balance.
- The PDF doesn't list the fee the restaurant paid; the restaurant's copy used to show it as Transaction Fee.
- The recorded payment is the invoice amount only. The fee never counts toward what's paid or owed.
Calculations
Invoice owes $100.00, paid by card, supplier not absorbing:
| Amount | |
|---|---|
| Card fee: 100.00 × 2.9% + 0.30 | $3.20 |
| Restaurant is charged | $103.20 |
| Payment recorded on the invoice | $100.00 |
| Balance due after | $0.00 |
| Checkout lines | Invoice balance $100.00 + Card processing fee $3.20 |
The supplier's books, for the same payment:
| Case | Bookkeeping |
|---|---|
| Restaurant paid the fee, processor charged $3.20 | Order Payment Received · Income · Online Payment · +$100.00. No fee expense (fully covered). |
| Supplier absorbs, processor charged $3.20 | Order Payment Received · Income · Online Payment · +$100.00, and Order Transaction Processing Fees · Expense · Other Expense – Transaction Processing Fees · $3.20 |
| Bank payment of $100.00 | Order Payment Received · Income · ACH Payment · +$100.00. Once it clears, the processor's whole fee as an Order Transaction Processing Fees expense, dated the day it cleared. No fee expense while it's clearing. |
The supplier's books show the total expense (processor fee + Clipp platform fee combined). The individual line breakdown (Payment provider fee and Base platform fee) appears in the detailed bookkeeping rows but not in the summary (PFP-011).
Where it shows up
The pay page and card checkout, and Bookkeeping. Setting up online payments is on Payments & refunds.
Permissions
Absorbing the card fee is set by Clipp. Suppliers see the expense rows if they have accounting access.
Decisions
- The card fee is passed to the customer by default; a supplier can absorb it. (processing-fee-passthrough spec)
- The fee the supplier bears is an expense in its own category, separate from payment income. (#2071, PFP-006)
Specs
# prefix: PFP
Feature: Payment Processing Fee Passthrough
Suppliers normally pass the card (Stripe) processing fee on to the customer at
checkout. A supplier may instead choose to absorb the card fee — the customer is
charged only the balance owed, and the supplier receives less. Absorbing the fee
is configurable for card payments only; other methods are unaffected. PayPal
always charges its convenience fee to the customer and is not configurable.
Whatever part of the processor's fee the customer does not cover is the supplier's
expense and is recorded in their accounting. Bank (ACH) payments never carry a
customer fee, so the supplier bears the whole amount — recorded once the payment
settles, since that is when the processor's charge becomes known.
QA setup note:
The absorb setting has no supplier-facing UI. Toggle it via the
`upsertSupplierSettings` mutation with `skipSurchargeCollection: { card: <bool> }`:
- `card: false` (the default, and the behavior when the setting is absent) →
the customer pays the card fee.
- `card: true` → the supplier absorbs the card fee.
Background:
Given a restaurant owes a balance on an order
Rule: The card processing fee is added to the customer's payment by default
Scenario: PFP-001 customer pays the card processing fee when the supplier has not opted to absorb it
Given the supplier has not chosen to absorb the card processing fee
When the restaurant pays the balance by card
Then the processing fee is added to the amount the restaurant pays
And the invoice shows the processing fee as a separate charge
Rule: A supplier can absorb the card processing fee instead of charging the customer
Scenario: PFP-002 customer is not charged the card processing fee when the supplier absorbs it
Given the supplier has chosen to absorb the card processing fee
When the restaurant pays the balance by card
Then no processing fee is added to the amount the restaurant pays
And the recorded payment equals the balance owed
And the invoice does not show any processing fee
Rule: The processor's fee borne by the supplier is recorded as an expense
Scenario: PFP-006 the supplier-borne card processing fee is recorded as an Other Expense, including when absorbed
Given the restaurant pays a card balance
When the payment is recorded
Then the part of the processor's fee not covered by the customer's fee payment is recorded in the supplier's accounting
And it is recorded as an expense in the dedicated "Other Expense – Transaction Processing Fees" category, separate from the payment income
And it is recorded even when the supplier has chosen to absorb the card fee (the full fee is then the supplier's expense)
And no expense is recorded when the customer's fee payment fully covers the processor's fee
Rule: The processor's fee on a bank payment is recorded once the payment settles
Scenario: PFP-008 the bank payment processing fee is recorded as an expense at settlement
Given the restaurant pays a balance by ACH
And the customer was never charged a processing fee for it
When the bank payment settles
Then the whole processor's fee is recorded in the supplier's accounting as an expense
And it is recorded in the same "Other Expense – Transaction Processing Fees" category used for card
And it is dated the day the payment settled, not the day it was submitted
Scenario: PFP-009 no expense is recorded while a bank payment is still in flight
Given the restaurant has paid a balance by ACH
When the bank payment has not settled yet
Then no processing fee expense is recorded for it
Scenario: PFP-010 a settled bank payment records its fee only once
Given a settled ACH payment whose processing fee has been recorded
When the settlement is processed again
Then the processing fee expense is not recorded a second time
Rule: The supplier sees one fee amount; its parts stay internal
Scenario: PFP-011 the recorded fee is the total the supplier was charged
Given a supplier on a contract with a platform fee
When a payment's processing fee is recorded
Then the expense is the total charged, covering both the processor's fee and Clipp's platform fee
And the supplier is never shown how that total splits between the two
Scenario: PFP-012 the split is kept for Clipp's own reporting
When a payment's processing fee is recorded
Then the processor's charge and Clipp's platform fee are stored separately against the payment
And they are not published on the API the supplier reads
Rule: Payment methods that never carry a card processing fee are unaffected
Scenario Outline: PFP-004 the absorb setting has no effect on fee-free payment methods
Given the restaurant pays the balance by <method>
When the payment is completed
Then no processing fee is added to the amount the restaurant pays, regardless of the supplier's absorb setting
Examples:
| method |
| ACH |
| cash |
| check |
Rule: PayPal always charges its convenience fee to the customer
Scenario: PFP-007 the PayPal convenience fee is always added and is not configurable
Given the restaurant pays the balance by PayPal
When the restaurant pays the balance
Then the convenience fee is added to the amount the restaurant pays
And the absorb setting has no effect on the PayPal convenience fee
Rule: Customers are only warned about a fee they will actually be charged
Scenario Outline: PFP-005 the card fee disclaimer matches whether the customer will be charged
Given the supplier has <absorb setting> for the card processing fee
When the restaurant reviews payment options for card
Then the processing fee disclaimer is <visibility>
Examples:
| absorb setting | visibility |
| chosen to absorb | hidden |
| not chosen to absorb | shown |
Known limitations
- There's no supplier-facing switch for absorbing the card fee.
- The exact bank-payment clearing time comes from the processor; Clipp shows Processing until it's told.
- The restaurant's copy of the invoice PDF no longer shows the card fee as Transaction Fee.
FAQ
Why did the customer pay $103.20 on a $100 invoice? The card fee of $3.20 (2.9% + $0.30) is added at checkout. The invoice records $100.00.
Why is the payment still Processing? It's a bank (ACH) payment. It takes a few business days to clear.