Skip to main content
An invoice is the centre of Finance. Bookings, orders and subscriptions all produce invoices rather than being billed directly, so this is the page you will use most. You build an invoice from your Offerings, send it to a client on WhatsApp with a link they can pay, and watch it move from Draft to Paid.
A pay link needs a connected payment gateway. Until you connect one, an invoice still sends and still produces a PDF, but there is no link to pay it with — opening Payment link & QR shows No payment gateway is connected yet. Connect one to generate a payment link. Set one up first in Payments and gateways.

Create the invoice

1

Open Finance → Invoices

Start a new invoice and pick the contact it is for.Creating an invoice for a contact converts them to a client automatically. This is normal — a client is just a contact at the client lifecycle stage, not a separate record. See Client profile.
2

Add your line items

Line items come from your catalogue. When you add an Offering, its name and price are copied onto the invoice as a snapshot — editing that Service or Product later never changes an invoice you have already issued.Every line must be in the same currency. There is no exchange-rate conversion, so an invoice mixing currencies is rejected rather than converted.
3

Set the due date and notes

Due date and Notes for client start blank. Leave the due date empty and it is worked out on save from your Default due days; leave the notes empty and your default invoice notes are used. Both live in Finance settings.Terms and currency are not editable per invoice — terms come from your Finance settings, and the currency comes from your business details.
4

Apply a coupon (optional)

Enter a Coupon code (optional) to discount the invoice. The discount is worked out against the total including tax, so a percentage coupon takes that percentage off the total your client actually owes. A discount can never take an invoice below zero. See Coupons.
If the client is paying you on the spot — cash at the counter, a card machine — record that payment as you create the invoice instead of sending it and chasing it.

Send it on WhatsApp

Sending flips the invoice from Draft to Sent, posts the amount to the client’s statement as money they owe you, and mints a pay link. The message goes out on WhatsApp by default, preferring DMLY’s approved dmly_invoice_sent template. An approved template is what lets the message reach a client outside the 24-hour window; inside an open window a freeform message still goes through. See Connect WhatsApp.
Once an invoice is sent it can no longer be deleted. Only a Draft can be deleted; a sent invoice must be voided instead, which keeps the record. Check the amount before you send.
Open Payment link & QR on an invoice to get everything you need to collect the money.

The link

The pay link is the payment provider’s own hosted checkout page. Copy link to paste it anywhere, or Visit link to open the checkout page yourself. To send it, use Share via below.

The QR code

The same link as a QR code, generated in your browser from the link itself. Print it, or show it on screen for a client to scan at the counter.
Under Share via you can send the link on WhatsApp, SMS or Email. WhatsApp is the default and the one to reach for. The link always matches the Balance due, not the original total. If a client part-pays, the next link you share is re-minted for what is still outstanding — you never have to work out the remainder yourself. An invoice with nothing left to pay, no contact attached, or one that has been voided will not produce a link.
If you have connected more than one gateway, an invoice uses the first one you connected unless a provider is chosen. Worth knowing if payments are landing in an account you did not expect.

The PDF

Download PDF gives you the invoice as invoice-<number>.pdf, using the same layout as the print view. It is branded from your business details — logo, address, email, phone and registration number, with your workspace name as the business name. Fix anything wrong there rather than on the invoice. Invoice numbers are issued per workspace and never collide: INV-0001, INV-0002, and so on. Numbers are zero-padded to four digits, and the prefix is yours to change in Finance settings.

The statuses

Overdue is applied automatically by a nightly job, not the moment the clock passes midnight — an invoice paid in the meantime is skipped.
The webhook topics for invoices use slightly different names to these labels (invoice.created, invoice.partially_paid, invoice.voided). Only relevant if you are building an integration.

Record a payment yourself

Not every payment comes through a gateway. Record cash, a bank transfer or a card-machine charge against the invoice and it lands in the same ledger as an online payment. The methods available are Cash, Bank transfer, Credit / debit card, Cheque, EFTPOS and Other. You can also record a payment against a client directly from their client profile.
A gateway payment reconciles itself. When your provider confirms a charge, DMLY applies it to the invoice and moves it to Partially paid or Paid without you touching it — there is no need to record it a second time.

Voiding an invoice

Voiding cancels an invoice without deleting it. Two things are worth understanding:
  • Only the unpaid balance is credited back. Money the client already paid stays recorded against the invoice. Crediting the full total would double-count what you have already received and push their statement balance negative.
  • Loyalty points earned on that sale are taken back, so a voided sale does not leave points behind that were never really earned.

Invoices and loyalty points

Loyalty is off until you switch it on under Loyalty in Finance settings. Once it is on, a paid invoice earns the client loyalty points — and if you have also set a redeem threshold, a personal coupon is created for them automatically once their balance crosses it. Leave the threshold at zero and no coupon is ever minted. Invoices raised from an appointment are the exception: their points are awarded when the appointment is completed, not when the invoice is paid. This stops a client earning points for a session they never turned up to.
The notification is only dropped when two things are true at once: dmly_invoice_sent is not approved by Meta, and the client’s 24-hour window is closed. A pending or rejected template still delivers a freeform message if the client messaged you within the last 24 hours. So check both — your template status under Connect WhatsApp, and whether the client has messaged you recently. Also confirm the contact is reachable on WhatsApp at all; a contact with no WhatsApp identity cannot receive one.
A gateway payment applies to the invoice only when the provider tells DMLY it succeeded. Every gateway needs its webhook endpoint set manually in the provider’s own dashboard — DMLY does not register it for you. If that step was skipped, charges succeed at the provider and never reach the invoice. See Payments and gateways.

Payments and gateways

Connect Stripe, PayPal, Paystack, Razorpay, MyFatoorah or Mercado Pago.

Finance settings

Numbering, default due days, currency, tax and terms.

Orders

Sell stock-tracked products, then generate an invoice from the order.

Subscriptions

Bill clients on a recurring plan from your catalogue.