Invoicing

EMS generates invoices automatically when production orders are verified. Each invoice calculates excise duty using the Canadian tiered formula (rate applied per 2 mL of liquid), adds GST/HST based on the consignee's province, and applies any custom fee presets you've configured. The result is a complete, audit-ready invoice that flows straight to the customer portal.


Auto-generation

You don't create invoices manually in EMS — they are generated automatically at a specific point in the production workflow. When a production order passes verification (meaning all stamps have been applied, batch IDs are in "Applied" status, and the PO is marked complete), EMS creates an invoice with:

No manual action is needed. The invoice appears in the Invoicing module in Draft status, ready for your review.

One invoice per verified PO

EMS creates exactly one invoice per production order. If a consignee has multiple POs verified on the same day, each gets its own invoice. This keeps the audit trail clean — every invoice traces back to exactly one production run.


Excise duty calculation

Canadian excise duty on vaping products is calculated using a tiered formula based on liquid volume. The duty is applied per 2 mL increment — meaning a 15 mL product is charged at the rate for 8 increments (15 mL / 2 mL = 7.5, rounded up to 8).

EMS applies different duty rates depending on the target region:

How duty is calculated

For each line item, EMS divides the liquid volume by 2 mL and rounds up to get the number of increments. It then multiplies the number of increments by the rate per increment to get the duty per unit. The duty per unit is multiplied by the quantity to get the line duty. The total duty is the sum of all line duties on the invoice.

Example

For 480 units at 15 mL each, destined for Ontario:

  • 15 mL divided by 2, rounded up = 8 increments per unit
  • 8 increments multiplied by the Ontario rate = duty per unit
  • 480 units multiplied by the duty per unit = total line duty

Rates are configured in Settings → Invoicing → Duty Rate. When the CRA updates duty rates, you update them in Settings and all future invoices use the new rates. Existing invoices are not retroactively recalculated — they preserve the rate that was in effect at generation time.

Keep duty rates current

EMS does not automatically update duty rates when the CRA announces changes. It is your responsibility to update the rates in Settings before the effective date. Set a calendar reminder whenever a rate change is announced to avoid generating invoices at the wrong rate.


Invoice lifecycle

Invoice status flow

Draft → Issued → Paid → Archived

Every invoice moves through these four stages:

Status transitions are one-way

You cannot move an invoice backward in the lifecycle. An Issued invoice cannot return to Draft, and a Paid invoice cannot return to Issued. If you need to correct an issued invoice, the standard practice is to issue a credit note or create an adjustment invoice.


Fee presets

In addition to excise duty and taxes, you may need to charge handling fees, processing fees, or other service charges. EMS supports reusable fee presets so you don't have to manually add the same charges to every invoice.

To create a fee preset:

  1. Navigate to Settings → Invoicing → Fee Presets.
  2. Click + New Preset.
  3. Enter a name (e.g. "Standard handling" or "Expedited processing").
  4. Choose the fee type:
    • Per unit — a fixed amount multiplied by the number of units on the invoice (e.g. $0.15 per unit)
    • Flat — a fixed dollar amount regardless of quantity (e.g. $250.00 flat fee)
  5. Enter the amount.
  6. Click Save.

To apply a fee preset to an invoice:

  1. Open the invoice (must be in Draft status).
  2. Click Add Fee in the fees section.
  3. Select the preset from the dropdown. The fee is calculated and added as a line item.
  4. You can attach multiple presets to the same invoice — for example, both a per-unit handling fee and a flat expedited processing fee.
Set up presets during onboarding

Create your standard fee presets before your first production order is verified. That way, when the first auto-generated invoice appears in Draft status, you can attach the right presets and issue it immediately rather than scrambling to configure fees on the fly.


Tax configuration

EMS applies GST/HST on top of the invoice subtotal (excise duty + fees). Tax rates are configured per province:

  1. Navigate to Settings → Invoicing → Tax Rates.
  2. You'll see a table with one row per province/territory.
  3. Enter the applicable GST/HST rate for each province (e.g. 13% for Ontario, 5% for Alberta).
  4. Click Save.

When an invoice is generated, EMS looks up the consignee's primary address to determine which province they're in, then applies that province's tax rate. The tax line appears on the invoice as a separate line item below the subtotal.

If a consignee changes their registered address to a different province, future invoices will use the new province's rate. Existing invoices are not retroactively updated — they preserve the rate that applied at generation time.

Verify consignee addresses

The tax rate applied to an invoice is determined entirely by the consignee's primary address on file. If a consignee's address is missing or set to the wrong province, their invoices will be taxed at the wrong rate. Review consignee profiles during onboarding to ensure addresses are accurate.


Portal visibility

The customer portal gives your consignees self-service access to their invoices. Visibility depends on invoice status:

Portal updates happen in real time. When you change an invoice's status from Draft to Issued, it appears on the customer's portal within seconds — no manual sync or notification step required.

Customers receive no automatic email notification

EMS does not send email notifications when an invoice is issued. If you want to notify customers, do so through your normal communication channels. The portal is the source of truth — customers who check it regularly will see new invoices as soon as they're issued.


Editing invoices

Only invoices in Draft status can be edited. Once an invoice is issued, it is permanently locked. Here is what you can change on a draft invoice:

Every edit recalculates the invoice totals in real time. The duty subtotal, fee subtotal, tax, and grand total all update as you make changes, so you always see the current amount before issuing.

Review carefully before issuing

Once you click "Issue", the invoice is locked forever. There is no undo. If you discover an error after issuing, you'll need to handle it outside the invoice module (e.g. a manual credit note or a new corrective invoice). Take the extra minute to verify line items, quantities, and fees before clicking Issue.


Best practices