Canadian Cannabis Invoice Processing: B300 and Excise Stamps

Guide to Canadian cannabis invoice processing for B300, excise stamp tracking, duty reconciliation, and CRA-ready audit records.

Published
Updated
Reading Time
14 min
Topics:
Tax & ComplianceCanadacannabiscannabis excise dutyB300excise stamp trackinglicensed producers

Canadian cannabis invoice processing means capturing supplier invoices, sales records, and excise stamp activity in a way that lets a cannabis licensee complete Form B300, reconcile duty by province or territory, and stay audit-ready. That is what separates it from ordinary Canadian invoicing. You are not just recording who bought what and for how much. You are building a document trail that ties invoice data, stamp movements, and duty support back to the same reporting period.

In practice, that means your workflow has to pull from more than one document type. A reliable B300 process depends on supplier invoices, sales invoices, stamp-order records, and the supporting documents that explain how stamps were received, used, adjusted, or written off. Part D adds another layer because stamp inventory is not tracked as one national total. It has to be reconciled by province or territory across opening, received, used, unusable, adjusted, and closing balances, which means your records need structure as well as retention discipline.

This is why Canadian cannabis invoicing requirements create a finance-operations problem, not just a tax or compliance problem. The Canada Revenue Agency explains the reporting rules for Form B300, but finance teams still need a working process that turns those rules into monthly data capture, reconciliation, and review. If your source documents sit in disconnected folders, or if key fields only exist in someone else's spreadsheet, the return may still get filed, but it becomes much harder to verify later.

The rest of this guide treats Canadian cannabis invoice processing as that operating workflow. It starts with the source documents that feed the return, then shows how stamp control and duty reconciliation fit together, and finishes with the record-retention structure that makes the whole process defensible during close and usable during an audit.

Which Documents Feed B300 and CTLS Each Month

For licensed cultivators and licensed processors, a reliable B300 process starts with a document stack, not a tax form. If your team is chasing missing records at month-end, the return will always be harder to prepare than it needs to be. The practical question behind cannabis licensed producer invoice requirements is simple: which source documents prove what happened during the reporting period, and which fields from those documents need to line up across finance and compliance records?

Start with the obvious records, then expand outward. Most teams think first about supplier invoices and sales invoices, but licensed producer invoice compliance in Canada usually depends on a wider set of support:

  • Supplier invoices for packaging, inputs, contract services, and other costs tied to production or fulfillment
  • Sales invoices issued to buyers, including provincial cannabis distributors or boards
  • Credit notes and debit adjustments that change the net picture for the reporting period
  • Excise stamp order records and related purchase documents
  • Shipping confirmations, receiving records, and other proof that goods or stamps were received or dispatched
  • Delivery-charge and insurance support tied to stamp purchases
  • Inventory adjustment records, exception logs, and internal schedules used to explain variances
  • Supporting compliance schedules used by finance, operations, or regulatory staff to prepare monthly reporting

That broader document view matters because no single invoice usually contains everything you need. A sales invoice may show the customer, date, and amount, but not the operational detail needed to support province-specific reporting. A stamp purchase record may confirm what was ordered, while a separate receiving or usage log shows when those cannabis excise stamps actually entered stock or were applied to packaged product. When those records sit with different teams or systems, reconciliation becomes fragile fast.

The required support also changes with the transaction path. LP-to-LP transfers often need more attention to product description, quantities, dates, and the surrounding commercial paperwork because the transaction does not look the same as a sale into a provincial distribution channel. Sales to provincial cannabis distributors usually put more pressure on customer identification, province-level classification, invoice dates, product and package detail, and the supporting schedules used to match revenue, duty, and shipment activity. If you sell into more than one province, the document set needs to preserve jurisdiction cleanly from the start rather than trying to infer it later.

This is where finance and regulatory reporting meet. Health Canada reporting and the Cannabis Tracking and Licensing System are not just separate compliance obligations sitting beside B300. In practice, they pull from overlapping operational facts: product type, package format, quantities, shipment timing, buyer or destination, and province or territory. If AP, AR, warehouse, and compliance teams are each maintaining their own version of those facts, month-end turns into a reconciliation exercise between systems instead of a controlled reporting process.

At a field level, the B300 and CTLS bridge usually depends on the same details staying aligned across invoice, shipping, stamp, and reporting records: product class, package format, quantity, shipment or sale date, buyer or destination province, and any adjustment reason. If the sales invoice points to one province, the shipping record another, and the compliance schedule a third destination or product code, the finance team ends up reworking the month before duty and stamp balances can be signed off.

A better working model is to treat the monthly close as a document-collection checklist before anyone starts calculating or filing anything. For each reporting period, make sure you can point to:

  • Every supplier invoice that affects the period
  • Every sales invoice and credit note issued in the period
  • Every stamp order and related charge document
  • Every receiving, shipping, or fulfillment record needed to explain movement
  • Every inventory adjustment or exception record
  • Every internal schedule used to bridge raw documents into reported totals
  • Every record needed to keep finance outputs aligned with Health Canada and CTLS data points

That checklist is what turns a compliance topic into an operating workflow. The current search results mostly explain the rules. What finance teams actually need is confidence that when B300 preparation starts, the underlying record set is already complete, classified, and tied to the right reporting period. Once that document stack is in place, you can move on to the harder parts, such as province-by-province stamp control and duty reconciliation, without building the month from scattered files.

How Part D Turns Excise Stamps Into a Province-by-Province Control Process

Part D of Form B300 turns stamp handling into an inventory control process. You are not just confirming that stamps were purchased. You need to reconcile cannabis excise stamps by province or territory across opening balance, received, used, unusable, adjusted, and closing balances for the reporting period. That is why stamp data has to sit beside finance records instead of living in a separate warehouse log.

Canada's province-specific stamp regime makes that control more exacting. Licensed producers are not ordering generic labels. They are working through a single authorized stamp-provider workflow for province- or territory-specific stamp inventory, which means the stamp order itself is part of the compliance trail from the moment it is issued.

As CRA's Form B300 guidance on cannabis excise stamp inventory explains, cannabis excise stamp inventory must be reconciled for each reporting period by province or territory, and your books and records must support stamp movements for verification. In practice, each movement needs its own evidence chain. That is the heart of cannabis stamp inventory B300 support.

For stamps received, keep the stamp order, the provider invoice, receiving records, and any internal log that shows which jurisdiction the stamps were ordered for. For stamps used, retain the packaging or issuance records that connect the stamp movement to packaged product and the reporting period. For unusable or adjusted stamps, keep the exception record, reason, approval trail, and any destruction or correction support that explains why the balance changed.

Delivery charges and insurance costs belong in that evidence pack too. They may not change the stamp count, but they help complete the source trail around the order and receiving event. When those documents are stored separately from the core stamp records, teams often end up proving the same transaction twice during close.

The control point is consistency. If the province on the stamp order, the province in the usage log, and the province in the reporting workbook do not match, the reconciliation problem usually shows up late. A better process is to tag each stamp-related record by reporting period and jurisdiction as soon as it enters the workflow. That keeps cannabis excise stamp tracking in Canada connected to the same monthly data structure used for B300 support, instead of becoming a last-minute exercise in cross-checking scattered files.

How to Reconcile Cannabis Duty Across Provinces, Buyers, and Invoice Types

The greater-of framework only works if your documents support both sides of the calculation. Finance teams need enough data to test the flat-rate method and the ad valorem method before deciding which duty amount belongs in the period. If that information is incomplete at row level, cannabis duty reconciliation in Canada becomes a workbook patch instead of a controlled review.

A practical review usually tests three things on each relevant sales line:

  • Flat-rate path: the quantity, package, or other product data needed to support the per-unit side of the duty calculation
  • Ad valorem path: the selling price and related value fields needed to test the percentage-based result
  • Reported duty path: the worksheet reference or line logic showing which result was higher, including any additional cannabis duty tied to the destination province

Product format matters here. Dried flower, extracts, edibles, and beverages do not all create the same review burden, so product class should be treated as a control field, not a descriptive extra.

At minimum, each sales record should preserve the seller, buyer type, ship-to province or territory, product or package detail, quantity, selling price, duty-related line values, and any credit or adjustment reference. Those fields let you trace why a duty amount was reported under the Excise Act, 2001, whether additional cannabis duty applies, and whether the same logic was used across the invoice lines that feed cannabis excise duty in Canada.

The supporting file set also changes with the buyer path. LP-to-LP transfers often need closer review of commercial paperwork and quantity support because the transaction does not resemble a sale into a provincial channel. Distributor and provincial-board sales usually put more weight on province classification, invoice timing, product detail, and the schedules that bridge invoiced sales to reported duty. If your process mixes those transaction types together without a buyer-type or channel field, it becomes much harder to explain the result later.

For example, if a sale to an Ontario distributor is reported on B300, one line should let you see the product class, quantity or package detail, selling price, destination province, duty result chosen, and any credit or adjustment reference. That is what turns a cannabis excise duty invoice in Canada from a sales document into defensible return support.

This is also where ordinary invoice taxes still matter. Cannabis duty sits alongside, not in place of, broader Canadian tax fields. Your reconciliation file should preserve the GST/HST invoice fields that sit alongside cannabis duty lines and any provincial sales tax invoice rules that can stack on top of cannabis duty, especially when sales cross jurisdictions or involve different tax treatments.

The most reliable approach is to treat B300 support as the output of a document process, not the starting point. When each row carries buyer type, jurisdiction, quantity, selling price, duty support, and adjustment history, you can test the return against the underlying records. When those fields are missing or inconsistent, the return may still total correctly, but it becomes much harder to defend.


The Field Map to Extract Into Excel or CSV for a Repeatable B300 Workflow

The most useful way to structure Canadian cannabis invoice processing is to treat every source document as part of one reporting dataset. That does not mean every document needs the same columns. It means the export should let you sort, filter, and reconcile the month by reporting period, province or territory, document type, and control purpose.

A practical field map usually includes six groups:

  • Document identity: source file name, page number, document type, invoice or order number, issue date, and reporting period
  • Counterparty fields: supplier name, customer name, buyer type, account reference, and any internal entity code
  • Jurisdiction and product fields: province or territory, product category, package description, SKU or internal product code, quantity, and unit of measure
  • Duty support fields: selling price, duty-relevant line amount, adjustment amount, reason code, and any worksheet reference used to test the greater-of result
  • Stamp control fields: stamp order reference, stamp series or identifier where available, received date, used date, unusable flag, adjusted quantity, and closing-balance linkage
  • Verification fields: extracted notes, reviewer status, exception flag, and the file/page reference that lets you jump back to the source document

That structure helps you separate what each field is for. Some columns exist mainly for duty calculation, such as quantity, selling price, adjustments, and jurisdiction. Others support stamp reconciliation, such as stamp order reference, received date, used date, unusable flag, and closing-balance linkage. A third set supports CTLS consistency and audit review, especially document type, product detail, buyer path, and file or page references.

The monthly process becomes more manageable when the data flow is consistent:

  1. Gather supplier invoices, sales invoices, stamp records, and exception support for the reporting period.
  2. Standardize those records into one Excel, CSV, or JSON export with consistent field names.
  3. Filter the export by province or territory and reporting period to test stamp movement, sales activity, and duty support together.
  4. Investigate exceptions before filing, rather than patching the workbook after totals are already in circulation.
  5. Use the verified export as the support layer behind B300 preparation and retention.

This is where invoice data extraction for cannabis compliance workflows can earn its place. Invoice Data Extraction lets teams upload mixed PDFs or images, prompt the AI to pull duty-relevant fields from supplier invoices, sales records, and supporting documents, and download structured Excel, CSV, or JSON output. It also preserves source file and page references, which makes it much faster to move from a spreadsheet row back to the original document when you are checking a discrepancy or preparing support for a B300 cannabis duty return workflow.

The product is most useful when you define the schema first. If you tell the AI exactly which jurisdiction, quantity, buyer type, charge component, and verification fields you need, the export becomes a working control file instead of a generic document dump.

How to Keep Six Years of Cannabis Duty Support Audit-Ready

An audit-ready process starts with packaging each reporting period as its own evidence set. For every month or quarter you file, keep the raw invoices, sales records, stamp-order documents, stamp-movement support, reconciliation workbook, exception notes, and any schedules used to prepare or review B300 in one retrievable package. Keep them together so a future reviewer can reconstruct the period without rebuilding the month from memory.

That package should also be organized by jurisdiction. A clean folder or index structure usually includes the reporting period, province or territory, transaction path, and the final working paper reference. That makes it possible to move from a reported number to the source documents quickly, which aligns with the CRA electronic record-keeping rules for six-year audit support instead of relying on ad hoc searches when a question comes up later.

The practical test is simple: can someone new to the file trace a B300 line back to the supporting invoice, stamp record, adjustment note, and review worksheet without asking the original preparer? If not, the retention process is not finished. A strong evidence pack should include the extracted dataset, the source file and page references, the exception log, and the reviewer sign-off that explains how issues were resolved.

If your team uses Invoice Data Extraction, that structure becomes easier to maintain because the export can keep source file and page references attached to each row. That does not replace your retention policy. It gives you a faster way to retrieve the underlying support when a reviewer wants to check a quantity, a jurisdiction tag, or an unusable-stamp adjustment.

A workable close process usually ends with four concrete controls: define the required fields, standardize the monthly export, assign ownership for stamp and sales reconciliations, and archive the finished support pack immediately after filing. That is what turns CRA audit preparation cannabis records from a yearly scramble into a repeatable operating discipline.

Continue Reading

Extract invoice data to Excel with natural language prompts

Upload your invoices, describe what you need in plain language, and download clean, structured spreadsheets. No templates, no complex configuration.

Exceptional accuracy on financial documents
1–8 seconds per page with parallel processing
50 free pages every month — no subscription
Any document layout, language, or scan quality
Native Excel types — numbers, dates, currencies
Files encrypted and auto-deleted within 24 hours