An invoice never shows "paid"
Paid is derived exclusively from Stripe payment rows. In a bank-transfer space no such rows exist.
What you see
Your members transferred the money long ago, but no invoice in the archive carries a paid marker. A button to mark them as paid by hand is nowhere to be found either.
Why
selfdesk derives an invoice's payment state exclusively from its Stripe payment rows: succeeded means paid, running means in progress, failed means open item. An invoice without a payment row gets no state. In a space that bills by bank transfer such rows never exist, so every invoice stays without a marker.
Marking as paid by hand is deliberately not built. The incoming payment sits on your bank account, not in selfdesk. A field somebody has to maintain would claim the software knows something it does not.
What you can do
- Reconcile the incoming payments on your bank account. The invoice number is on the document.
- Use the monthly export for your accountant. Its CSV carries one row per document; the payment-state column stays empty for bank transfer, because a claim there would be wrong.
- If you want automatic collection, connect Stripe. Payment rows then exist, and with them the markers. See Connect Stripe.
- If you want to stay with bank transfer, the state is correct as it is. See Switch to bank transfer.
Do not confuse this with the unread marker. That one exists for all members and only says an invoice has arrived. See Invoice signals.
If that is not enough
If the app does something wrong: report a problem.