DEV Community

Karactif Tech
Karactif Tech

Posted on

Your Invoice Isn't Late. It's in a Quarantine Folder.

Your Invoice Isn't Late. It's in a Quarantine Folder.

You have the sent item. Timestamped, correct address, PDF attached. The client's accounts payable team says, politely and repeatedly, that they never received it. Both of you are telling the truth.

The invoice is sitting in a quarantine folder, or was rejected at a gateway, or was delivered to a mailbox nobody reads. It never reached a human, so from the client's side it does not exist. From your side it was sent, so you stopped worrying.

This is the least discussed failure mode in small business billing, and almost never about content.

An invoice is transactional mail that looks like marketing

An invoice has the profile of a bulk email: an attachment, links, a template, a sending domain the recipient has never corresponded with. Spam filters do not know you are billing for three days of electrical work. They score patterns.

The traits that make an invoice look professional — a designed layout, a logo, a payment button, a PDF — are also traits filters associate with campaigns. Your invoice is legitimate mail dressed as the thing filters are trained to stop.

Four things that get an invoice filtered

An unfamiliar sending domain. A domain registered last month has no history for a receiver to score you on. New domain, attachment, link, first contact: a textbook bulk profile, even for a single invoice to a single client.

Heavy or scanned attachments. Filters cannot read an image-only PDF, and many corporate gateways quarantine anything above roughly 10 MB; a phone-scanned invoice with a photo attached can cross that line unnoticed.

Shortened links and tracking pixels. A bit.ly link and an open-tracking pixel are marketing signals; three links and a tracking image read as a campaign, because structurally they are one.

The recipient's own rules. Corporate quarantine, external-sender banners, attachment stripping, upload-only portals. None of that is your reputation, and none of it is visible from your outbox.

SPF, DKIM and DMARC, without the acronym soup

These three records are how a receiving server decides whether mail claiming to be from your domain actually is. In plain terms:

  • SPF is a DNS record listing the servers allowed to send mail for your domain. Mail from an unlisted server fails the check.
  • DKIM attaches a cryptographic signature to each message, so the receiver can verify it was not altered in transit.
  • DMARC tells receivers what to do when SPF or DKIM fails, and can send you reports about who is sending as you.

If you send from a Gmail or Outlook mailbox, your provider authenticates their domain, not yours — which is why a bill from yourbusiness@gmail.com can read as less than a business.

If you send from your own domain through an app or SMTP service, someone has to publish those records — most hosts have a wizard, but it is a task, not a default. A new domain starts from zero regardless.

Write the email like a bill

The subject line is the first filter and the first impression:

Invoice 1042 — Acme Studios — due 15 April

Specific, boring, expected. Compare with INVOICE!! PAYMENT REQUIRED IMMEDIATELY — the shape of the mail everyone is told to delete. Skip emoji, "free" and urgency punctuation.

The body should be three or four sentences: invoice number, amount, due date, what you want done with it, and who to contact if something is wrong. Plain text. One link, or one attachment — not both plus a portal plus a "view online" button.

A real signature helps twice: it gives the client a phone number, and it makes the message look like correspondence from a business rather than an anonymous template.

The PDF is part of deliverability

  • Text-based, not a photo. A PDF exported from an invoicing app is readable and searchable; a scan of a printed page is a picture, and filters treat it accordingly.
  • Keep it small. Under 5 MB clears most limits. A 15 MB scan is a delivery risk.
  • No ZIP files. Compressed attachments are heavily filtered, and "invoice.zip" has a bad reputation for good reason.
  • No password unless agreed in advance. A password-protected PDF that requires a second email is a support ticket.
  • A descriptive file name. 2026-04-15_Acme_INV-1042.pdf is legible to humans and harmless to filters.

Confirm delivery instead of assuming

"Sent" is not "delivered", and "delivered" is not "read". Build a small confirmation habit:

  1. Watch for bounces, and read them — a soft bounce may succeed on retry, a hard bounce never will.
  2. Ask for one line: "Can you confirm you've got invoice 1042?" It is a normal thing to ask and it closes the loop.
  3. If there is no confirmation in two working days, use a second channel — phone, portal or message — and mention that you also emailed it.
  4. Ask regular clients to add your address to their safe senders or AP allowlist. Once is enough for most.

When the client's AP system is the wall

Larger clients often run an approval and intake process that sits in front of the inbox. Two things help more than any subject-line tweak:

Do vendor onboarding before the first invoice. Supplier forms, bank-detail verification, portal registration. It is slow and it is the actual gate.

Ask what format their system accepts. Some strip attachments entirely and require a portal upload; some accept a link; some take a PDF only under a size limit. One question to the AP contact saves weeks of resends.

Keep a named contact in accounts payable, not only your project contact. The project contact approves the work; AP releases the money, and they are the person whose filters you are fighting.

Doing it inside the app

If you would rather not build the document by hand, Invoice Maker produces the PDF for you. It is a free iOS and Android app from Caractiv Tech: describe a job by text or voice, review the editable invoice or quote draft, then export a clean, text-based PDF. Saved clients and reusable line items keep repeat invoices consistent, and 34 currencies and 40+ Premium templates cover branding. Manual invoicing works offline; AI drafting needs a connection. Free to download, with a Premium subscription.

It cannot guarantee your mail reaches the client's inbox — that depends on your domain, their filters and your attachment size. The app makes a good PDF; deliverability is infrastructure you own.

The pre-send deliverability check

  1. Send from a domain you control, with SPF, DKIM and DMARC published.
  2. Subject line names the invoice and the client, nothing else.
  3. Plain-text body, one clear action, one link or one attachment.
  4. PDF under 5 MB, text-based, no password, no ZIP.
  5. A bounce check and one confirmation request within two working days.

None of this is glamorous. It is the difference between an invoice that exists and an invoice that gets paid.


Disclosure: I work on the invoicing app linked above, which is why I write about this. The advice is general and applies to any billing tool. This article is general information, not legal, accounting or financial advice.


Appendix: distribution assets (not part of the article body)

Social summaries

X: An invoice can be "sent" and still never exist. Quarantine folders, gateway rejections, attachment limits. The fix isn't a better invoice — it's sending domain authentication, a boring subject line, a text-based PDF under 5 MB, and asking for one line of confirmation.

LinkedIn: The least discussed invoicing failure: the invoice was sent, correctly, and never reached a human. Filters score patterns, not intentions — and an invoice has the profile of bulk mail (attachment, links, unfamiliar domain, template layout). Four things to fix: authenticate your sending domain (SPF/DKIM/DMARC), keep the PDF text-based and small, write a subject line that reads like a bill, and confirm delivery instead of assuming it.

Reddit (r/smallbusiness — answer-first, no link): Before you blame the client, check three things: your attachment size (many gateways quarantine over ~10 MB), whether your domain has SPF/DKIM/DMARC set up, and whether the mail actually went to the AP address they monitor. A phone-scanned PDF is the usual culprit — it's big and unreadable to filters. Ask for a one-line confirmation; "sent" only means it left your outbox.

Image suggestion

Concept: A split image: on the left, an outbox showing a sent invoice; on the right, a corporate mail gateway queue with one envelope held behind glass. Overlay text: "Sent ≠ delivered." Keep the palette muted; this is an infrastructure story.

Alt text: A sent invoice email beside a mail gateway holding the message in quarantine, illustrating that sent does not mean delivered.

Notes: 1200×800 for the header; 1080×1080 for LinkedIn. Avoid real company domains and logos; a generic envelope icon works better than a screenshot of any real email client.

Top comments (0)