A perfect invoice is useless if it sits in a spam folder, goes to an address nobody reads, or is accepted by a mail server and then quietly dropped. Getting delivery right means four things: the document reaches the right person, it lands in the inbox rather than the junk folder, it arrives at the right moment, and you can prove it arrived. For a Shopify store, delivery also decides how much time you spend chasing payments, answering “can you resend my receipt?” emails, and hunting for paperwork at tax time.
This guide covers why each of those matters and what to do about it. It comes from building Send Invoice, a Shopify app that turns orders into invoices and eight other documents and delivers them by email, Slack or Google Drive.
Key takeaways
- Sent is not the same as delivered. A mail server can accept a message and still never put it in an inbox. Track real delivery confirmations, not just “sent”.
- Authentication decides inbox or spam. Since February 2024, Gmail and Yahoo have required bulk senders (more than 5,000 messages a day) to authenticate with SPF, DKIM and DMARC. Invoices from an unauthenticated domain are easy to filter out.
- Timing is part of delivery. An invoice that arrives when the order is paid or fulfilled gets opened. One sent in a batch three weeks later gets questioned.
- Every delivered invoice is also a record. Filing a copy somewhere you control, such as your own Google Drive, turns delivery into bookkeeping.
What does invoice delivery actually mean?
Invoice delivery is everything that happens between “the invoice exists” and “the right person has it in front of them.” Generating the PDF is the easy half. Delivery covers:
- Destination: the customer’s inbox, your accountant, a warehouse, a Slack channel or a folder.
- Format: an attached PDF, or a secure download link when the file is too large or the channel can’t carry attachments.
- Timing: at checkout, on fulfillment, on payment, or on a fixed schedule.
- Confirmation: evidence that the message reached its destination.
Most stores think about the first item and skip the other three. The other three are where payments get delayed.
Why sent doesn’t mean delivered
When your app or email tool says an invoice was “sent”, that usually only means the receiving mail server replied OK, I’ll take it. What happens next is up to that server. It might put the message in the inbox, move it to spam, or drop it without telling anyone.
We found this out the hard way. While building Send Invoice’s email delivery, we had sends that our email provider accepted and that then never appeared anywhere. There was no bounce and no error, and our logs said “sent”. The customer never got the invoice and the merchant had no idea.
What fixed it was delivery confirmation. Send Invoice now listens for the provider’s delivery events and records a separate delivered time next to sent. In testing, a confirmed delivery can come back within about a second of sending. So when an invoice shows sent but never delivered, that tells you something real: the message didn’t make it, and you should resend it or check the address.
What to do: whatever tool you use, find out whether it reports delivered or only sent. If it only reports sent, you won’t hear about silent failures until a customer tells you they never got the invoice.
How email authentication decides inbox or spam
Inbox providers decide where a message goes largely by checking whether the sender is who they say they are. Three standards do that work:
| Standard | What it proves | Who sets it up |
|---|---|---|
| SPF (Sender Policy Framework) | Which servers may send mail for your domain | You, in DNS (often already set by your email host) |
| DKIM (DomainKeys Identified Mail) | The message was signed by your domain and not altered | You, by adding a DKIM record your sending service gives you |
| DMARC (Domain-based Message Authentication, Reporting and Conformance) | What inboxes should do when SPF or DKIM fail | You, in DNS |
Gmail and Yahoo made this mandatory for bulk senders in February 2024. Anyone sending more than 5,000 messages a day must authenticate with SPF, DKIM and DMARC, and keep their reported spam rate below 0.3%. Smaller senders aren’t exempt from filtering. They just get less warning before it happens.
For invoices this has a practical consequence. If your store’s domain has a strict DMARC policy
(p=quarantine or p=reject) and your invoicing app sends “from”
your domain without signing as it, some inboxes will do exactly what your policy says and filter those
invoices.
That’s why Send Invoice offers two ways to send from your own address on the Pro plan:
- Verify by DNS (DKIM): you add two records at your registrar, a TXT record for DKIM and a CNAME for Return-Path. Mail is then signed as your domain, which gives full DMARC alignment. This is the method we recommend.
- Verify by email link: for merchants who can’t edit DNS. You click a link to confirm a single mailbox. It’s quicker, but mail is signed by our email provider rather than your domain, so a strict-DMARC domain may still see some invoices filtered.
If you can edit DNS, spend the ten minutes on DKIM. It’s the biggest single improvement you can make to invoice delivery.
Why timing is part of delivery
An invoice has a useful life. When it arrives in the minutes after checkout or fulfillment, the purchase is fresh and the customer knows exactly what it’s for. When it arrives weeks later in a batch, it looks like a mistake, or even like phishing.
Timing also matters for B2B orders, where the due date is the whole point. Shopify supports real payment terms such as Net 30, but many invoicing tools ignore them and print a generic due date. If you grant the optional permission, Send Invoice reads your Shopify payment terms, so the due date on the invoice is the one you agreed with the buyer rather than a seven-day placeholder.
Automation keeps timing consistent without you thinking about it. In Send Invoice a schedule can fire:
- On an event: when an order is placed, fulfilled or paid.
- On a clock: hourly (Pro), daily, weekly or monthly, with options to skip weekends, hold sends during quiet hours, and pause over holidays without a flood of catch-up emails afterwards.
Payment reminders need the most care. A good reminder schedule chases an overdue order after a set number of days, repeats at an interval, stops after a maximum number of reminders, and stops immediately once the order is paid. Without those limits a daily schedule will chase the same customer every day, which does more harm to the relationship than a late payment.
Why the destination matters as much as the message
Not every invoice is for a customer. The same order can produce a packing slip for the warehouse, a copy for your bookkeeper, and a notification for your team. Sending each one to the wrong place fails in the same way as not sending it.
A few rules we built into Send Invoice after watching them go wrong:
- One destination per schedule. A schedule delivers to email, Slack or Google Drive, never several at once. If you want the same documents in two places, create two schedules. We made this change after an email schedule was also quietly filing copies to Drive, which nobody had asked for.
- Links when attachments won’t work. Slack can’t carry a PDF attachment, and very large PDFs make emails bounce. In both cases the document goes as a secure download link that expires after seven days.
- Archive copies don’t count as sends. A copy filed to your Drive archive is a record, not a delivery, so it doesn’t use up your monthly invoice quota or trip duplicate-send protection. (A schedule whose destination is Drive is different: that upload is its delivery.)
Why a delivered invoice is also a record
Every invoice you deliver is a record you may need later, for a VAT return, a chargeback dispute, or a customer asking for a copy from last spring. If your only copy is in your sent folder, finding it later is slow.
Two habits cover this:
- File as you send. Send Invoice can archive each invoice PDF into a Google Drive folder you own, including a shared drive. The app only gets access to the folder you pick, not the rest of your Drive.
- Export in bulk when you need it. On Pro you can pick a date range and conditions and download a ZIP of every matching invoice PDF, up to 250 orders at a time. It’s useful at quarter-end, or when your accountant asks for “everything from Q2”.
A quick invoice delivery checklist
- Your sending tool reports delivered, not just sent
- Invoices come from your own domain, verified with DKIM
- Your domain has SPF and DMARC records
- Invoices fire on a real event (placed, fulfilled, paid) or a clear schedule
- B2B invoices use your real payment terms for the due date
- Payment reminders have a maximum count and stop when the order is paid
- Each document type goes to the right destination: customer, warehouse or bookkeeper
- A copy of every invoice is filed somewhere you control
FAQ
Why do my customers say they never got my invoice email?
The most common causes are a typo in the customer's email address, the invoice being filtered to spam because your domain isn't authenticated, or the receiving server accepting the email and then dropping it. Check whether your tool shows a delivered confirmation, not just sent, and set up DKIM for your sending domain.
Does Shopify send invoices automatically?
Shopify sends order confirmation emails, and its free Order Printer app can print invoices from the admin, but neither one sends a branded, numbered invoice PDF to the customer on its own. Invoicing apps like Send Invoice build the invoice from the order and can send it automatically when the order is placed, fulfilled or paid.
Is it better to attach the invoice PDF or send a link?
An attached PDF is the most convenient for customers and accountants. A download link keeps the email small and works in channels like Slack that can't carry attachments. In Send Invoice each schedule can attach the PDF or send a link, and an oversized attachment switches to a link automatically.
Do I need my own sending domain to email invoices?
No. You can send from a shared, already-authenticated address. Your own verified domain looks more trustworthy to customers and keeps your brand in the From line. If your domain has a strict DMARC policy, sending from it without DKIM verification can get your invoices filtered.
How can I tell if an invoice was actually delivered?
Look for a delivery status that is separate from the sent status. Send Invoice records a delivered time when the email provider confirms the message reached the recipient's server. If an invoice shows sent but never delivered, it most likely didn't arrive.
More on how it works: Delivery · Automation · User guide