Payments

Card, pre-authorized debit and manual payment capture for MSPs and the clients they bill, reconciled against the invoice automatically.

The problem

You send the invoice, and then you wait. The cheque arrives and someone types it into two systems. A client pays a card over the phone and the invoice stays open for a week because nobody marked it. Somebody refunds $10 through the Stripe dashboard and the accounting package still shows the full amount outstanding. At month end you are reconciling a bank statement against a spreadsheet against an invoice list, and the three do not agree.

If you are an MSP, it is worse: you are collecting on behalf of clients who are separate businesses with separate books, and you need to see their receivables without your own disappearing from view.

What Solidlio does about it

Payments captures money three ways — Stripe card, Stripe bank debit (Canadian PAD, US ACH, SEPA), and manual entry for cheques, e-Transfers, EFT and wires — and reconciles all of them against the invoice through one calculation with one writer. An invoice’s paid total is derived from its payments and credit notes rather than incremented, so a refund issued in the Stripe dashboard and a cheque typed in by hand land in the same number. Settlement is driven by signed Stripe webhooks with layered replay protection, not by whatever the browser reports. MSPs see and act on the receivables of every client they service, while each client’s own books stay their own.


Capabilities

CapabilityWhat it does
Online invoice paymentClients pay one or more open invoices by card from the customer or organization portal, in the invoice’s currency.
Saved payment methodsStore cards against an organization, set a default, remove one; detach propagates to Stripe.
Manual payment recordingRecord cheque, e-Transfer, EFT, wire, cash or net-terms receipts with a reference, against the correct invoice.
Overpayment refusalA receipt larger than the outstanding balance is rejected with the exact balance quoted — never silently reduced.
RefundsFull refunds from the MSP payment screen; partial and repeat-partial refunds from the finance console and API, always capped at what remains.
Derived reconciliationPaid totals recompute from payments net of refunds plus applied credit notes; terminal invoice states are protected.
Recurring subscription billingCharge a tenant’s saved card or debit mandate off-session on a nightly run, with dunning and grace handling.
MSP store settlementCharge a store sale to the selling MSP’s connected Stripe account, keeping the platform fee, with the buyer’s dispute absorbed by that MSP’s reserve.
Chargeback reserveWithhold a risk-tiered percentage of MSP payouts, release it on maturity, and deduct disputes from it.
Multi-currency payoutConvert settled sales into the MSP’s region currency using a rate table that expires after 48 hours.

Built for MSPs and their clients

A managed client is a separate Account with its own books — not a sub-record of the MSP. Payments respects that boundary in both directions.

Organization (the client)MSP
Paying an invoicePays its own invoices by card; manages its own saved methods.Cannot pay on the client’s behalf; records receipts it has collected.
Payment historySees its own payments.Sees its own payments and those of every client it services.
Recording money receivedAn organization admin can record a receipt against its own invoice.Records receipts against any serviced client’s invoice.
Refunds and cancellationsNot permitted.MSP staff only. Reading history and moving money back out are separate rights.
Merchant configurationIts own saved cards and debit mandate.Its own Stripe Connect account, payout settings and reserve policy — never visible to a serviced client.

The widening is explicit: an MSP’s view resolves to its own account plus every account it primary-manages or holds an active management link to. An unrelated tenant’s payment is not found rather than forbidden. Tenant-owned configuration deliberately does not widen — servicing a client does not expose your merchant setup to them, or theirs to you.


How it works

  1. An invoice is issued in Solidlio to an organization, in that organization’s account currency.
  2. The client opens the portal and selects the invoices to pay. The running total updates as they select.
  3. The client confirms the card in Stripe’s own form. This is the only step that moves money.
  4. Stripe calls back over a signed webhook. Solidlio verifies the signature against the raw bytes, claims the event id for 48 hours to reject redeliveries, and settles the payment.
  5. The invoice recomputes its paid total from every payment net of refunds, plus any applied credit notes, and moves to PARTIAL or PAID.
  6. Staff can refund — the full payment from the MSP screen, or a partial amount from the finance console — and each refund re-runs the same reconciliation.

Money received outside Stripe enters at step 6 instead: staff record the cheque or transfer with its reference, and the same calculation runs.


Compliance and audit

Every payment row records the amount, the amount refunded to date, the currency, the method, the provider, the reference supplied by the operator, timestamps for paid, refunded and failed, and — for Stripe payments — the payment intent, charge and refund identifiers plus the card brand, last four digits and Stripe’s own receipt URL. Financial history is never destroyed: refunds accumulate against the original payment rather than replacing it, saved payment methods are soft-deleted, and reversed credit-note applications are marked rather than removed.

Because paid totals are derived rather than incremented, an invoice’s balance can be recomputed from source at any time and will agree with the payment records. Terminal invoice states are protected — a refund cannot silently re-issue a voided invoice, and recording a payment cannot publish a draft.

Solidlio never stores card numbers. Card data goes directly from the client’s browser to Stripe; the platform holds only Stripe’s tokenized references and the display metadata (brand, last four, expiry), which is kept current from Stripe’s card-updater events.


Editions

Payments is included in every plan, including Free. There is no feature flag and no usage limit on payments, saved payment methods, refunds or reconciliation.


Integrations

  • Stripe — card and bank-debit capture (Canadian PAD via acss_debit, US ACH via us_bank_account, SEPA via sepa_debit), refunds, disputes, saved payment methods, and Stripe Connect Express for MSP payouts and store settlement. API version pinned.
  • QuickBooks Online — recorded payments are queued for sync when the integration is connected.
  • European Central Bank rates (via the FX provider) — a daily currency table used to convert MSP payouts into the payee’s region currency.

Getting the money in is the part of billing that pays for the software.

See this working on a real account.

Book a walkthrough and we will run this capability against your own clients, devices and tickets.

Book a demo All features

A 30-minute walkthrough against your own workflow. No slides.