Skip to main content
A statement is the running account ledger for one contact: every invoice you send adds a debit (they owe you), every payment you record adds a credit (they paid you), and the balance shows where they stand after each entry. It answers “what does this client owe me right now, and how did we get here?” It is not a bank statement and not a profit-and-loss report. For money in and out of the business, see Finance overview.

Statements are written for you

You cannot add, edit, or delete a statement entry. There is no button, no form, and no import. The ledger is built entirely from what you do elsewhere in Finance, and it is append-only; history is never rewritten. Four things write an entry, all automatically: That last pair is the whole design: a mistake is corrected by posting an opposite entry, not by removing the old one. You always keep the full trail of what happened.
How the money arrived makes no difference. A payment you record by hand and one a client makes through a gateway pay link post the same credit, and a refund posts the same reversing debit whether you issue it in DMLY or from the gateway’s own dashboard.
A draft invoice is not in the ledger. The debit posts the moment you send it. Void an invoice and only the still-unpaid part is credited back, so a part-paid invoice doesn’t double-count against the payment that was already recorded.
Three things people expect to see here and won’t:
  • Orders never post to the ledger on their own. An order reaches the statement only once you convert it to an invoice and send that invoice. See Invoices.
  • Shopify and WooCommerce sales stay out of the ledger entirely, including a pay link you send against one. That sale was never invoiced here, so it has no debit for a payment to offset. See Orders.
  • Session and package credits are a separate ledger with its own tab. Granting or using a credit changes nothing on the statement. See Plans and credits.

Read the Statements tab

Open Finance → Statements. The columns are Date, Client, Description, Debit, Credit, and Balance. Each row is either a debit or a credit, never both; the other column shows a dash. The tab lists entries from every client together, newest first, 20 to a page, with a pager underneath once there is more than one page. Balance is that one client’s balance after that one entry, so two rows in a row usually belong to different people and their balances have nothing to do with each other. There is no workspace total and no totals row: this tab is a log, not a report. Search by keyword matches client name and entry description, and it searches the whole ledger rather than the page in front of you, so an entry from months ago is one search away instead of a long walk through the pager. That is the only filter: there is no date range, no client picker, and the column headings don’t sort. Rows also aren’t clickable, so to see the underlying document open it from Invoices or Payments. To read one client’s history cleanly, open the contact instead and use the Statements tab on their profile. It shows Date, Type, Amount, Balance, and Description for that contact only. This tab only appears for contacts at the Client lifecycle stage, so a contact you have moved to inactive or archived has ledger entries but no Statements tab. A lead is rarely in that position: creating an invoice for one converts them to a client there and then, so the tab appears as soon as they are invoiced rather than waiting for payment. Their entries are on Finance → Statements either way.
The Balance column runs a separate chain per currency, so a contact you have billed in two currencies gets two independent balances rather than one meaningless total. The figure beside an entry is the balance in that entry’s currency, which is why it can appear to jump around as you read down a mixed-currency list. Read it against the currency on the same row.

Things worth knowing before you rely on it

Finance → Statements pages through the whole ledger, but the Statements tab on a contact’s profile is capped: it lists the 50 most recent entries, with no pager and no search of its own. It does tell you when you’re seeing a slice, in a line under the table (Showing the latest 50 of 214), so a missing older entry is never a silent truncation. For the full history of a long-standing client, go to Finance → Statements and search their name.
A client who settles up completely lands on a balance of exactly 0.00, and on Finance → Statements the Balance cell renders as a dash rather than a zero. An empty balance cell there means paid off, not missing. The Statements tab on a contact’s profile is unaffected: it renders a settled balance as 0.00.
Date is the day DMLY wrote the entry, the day you sent the invoice or recorded the payment. It is not the invoice issue date, and entries can’t be backdated.
No statements yet. means no invoice has been sent and no payment recorded for this workspace. No matches found. means your keyword filtered every row out. Clear the search box.

Invoices

Sending an invoice is what puts a debit on the ledger.

Payments

Every payment posts the matching credit, however it was collected.