Type a name.
Get paid by scan.
Tell Kiira on WhatsApp who to invoice. She builds the PDF, stamps the DuitNow QR on page one, sends it to your customer, and marks the invoice paid the second the transfer lands. You never open the app unless you want to.
Ten words. One invoice.
This is the whole flow. No form to open, no template to pick, no "generate PDF" button. Tell Kiira what and who — she fills in the rest from the customer record and your product catalogue.
Actual flow. No edits.
Invoice KR-2026-0042
Syarikat Maju Sdn Bhd · RM 4,200.00
Web Design Package · Net 7 · Due 27 Apr
DuitNow QR embedded · MyInvois ready
Everything it needs. Nothing it doesn't.
Malaysian banks, SSM, LHDN and your customer all want slightly different things on an invoice. Kiira puts each of them in the right place the first time — not in a footer nobody reads.
Logo, colour, business name pulled from your Kiira profile. No template drop-down — it looks like you because it is you.
Your sequence, your prefix. Kiira enforces uniqueness without renumbering old invoices.
Legal name, address, TIN, BRN — populated from the customer record so you don't keep retyping.
Description, qty, unit price, SST at 0/6/8%. Rounded the way LHDN wants, not the way your spreadsheet guessed.
A scan-to-pay QR with the total prefilled. Scans cleanly from a phone photo too — useful if the invoice is printed.
Short URL for customers who can't scan — opens the same DuitNow flow in-browser. No "call for bank details" fallback.
When you're on the Compliance tier, the LHDN-validated UUID stamps here after submission. Not before.
Payment terms in EN + BM, set at the customer level. Works for mixed-tongue customers without a second template.
Paid in two taps, not two emails.
Every invoice ships with a scan-to-pay DuitNow QR on page one — total prefilled, reference locked, auto-reconciled the moment the transfer lands. Your customer opens their banking app, scans, confirms. No "can you send me your bank details" detour.
Customer scans with any banking app.
Maybank, CIMB, Public, HLB, RHB, AmBank, Bank Islam — every major banking app in Malaysia reads a DuitNow QR. No special wallet to install.
Amount + reference come prefilled.
They can't overtype the total or the invoice reference. If your customer tries to pay RM 42 on an RM 420 invoice, the QR won't let them.
Kiira sees the transfer, marks paid.
The bank webhook lands, Kiira matches the reference back to the invoice, flips the status to paid, and files the receipt in your sales ledger. You get a WhatsApp ping.
The quiet things that make it yours.
One-person businesses still get to have a real invoice. A proper number sequence, a logo at the right size, and a recurring rule for the retainer clients who pay the same thing every month.
Your number sequence · locked.
Pick your prefix and starting number once. Kiira enforces uniqueness, gap-free sequencing, and leading zeros — the things your accountant quietly wants.
Your brand, not a template.
Upload a logo, pick one accent colour, that's it. No 14-tab template editor. Invoices render in your brand, not in ours.
Recurring that actually recurs.
Monthly retainer? Set the rule once — Kiira drafts the invoice on the day, pings you on WhatsApp, sends once you approve. You can still edit before it ships.
Credit notes + part-payments.
Customer paid half? Kiira marks it partial, leaves the DuitNow QR live for the balance. Refund? Credit note linked to the original — and to the original MyInvois UUID if applicable.
Bilingual terms.
Set payment terms in EN + BM at the customer level. Maju Sdn Bhd gets the formal version. Kedai Pak Cik gets the casual one.
Tracked. Opened. Paid.
Every invoice shows whether the customer opened it, scanned the QR, and completed payment. No guessing whether your chase email landed.
Your sales ledger, written by the bank.
When a DuitNow transfer lands for an invoice you sent, Kiira matches the reference, marks the invoice paid, creates the receipt entry in your sales ledger, and reconciles against the bank line — all before you've refreshed the chat.
DuitNow QR stamped. Customer gets the PDF and a short link. Status: sent.
Banking app opens with the amount prefilled. Status: opened.
Bank webhook fires within seconds. Kiira matches on reference. Status: paid.
Sales entry created, bank line marked reconciled, you get a WhatsApp ping. Status: closed.
Invoicing is free. Payment rails cost per transfer, not per month.
The invoice itself — PDF, DuitNow QR, WhatsApp send, reconciliation — is on the starter tier. MyInvois submission sits on Compliance (RM79/mo) because that's where LHDN charges us to live. No per-invoice fee either way.
Starter
- Unlimited invoices
- DuitNow QR on every invoice
- WhatsApp send flow
- Recurring + credit notes
- MyInvois submission
Compliance
- Everything on Starter
- MyInvois submission
- Consolidated B2C rollup
- Self-billed invoices
- Peppol schema auto-updates
What people ask about sending invoices.
Do I need a Billplz or Stripe account to accept DuitNow?
+
What if my customer pays by bank transfer without scanning the QR?
+
Can I send invoices in BM or Chinese?
+
How does the WhatsApp-send flow find my customer?
+
Can my customer pay by card?
+
Do recurring invoices auto-send?
+
What about the 72-hour MyInvois cancellation window on these?
+
The rest of the invoice stack.
How the QR renders, reconciles, and plays with your bank feed.
The LHDN-facing side. Peppol, UUIDs, validation in plain English.
The expense side. Forward a receipt; it's booked.
The full scrollable tour.
Stop chasing "can pay already?"
Every Kiira invoice ships with DuitNow QR, payment link, and auto-reconciliation from day one. No card to sign up. No per-invoice fee. No portal your customer needs to learn.