What does cannabis point of sale software have to do?
Written from primary sources and checked against them. As of October 19, 2026. How that is done.
Short answer
What does cannabis point of sale software have to do?
A cannabis register has five jobs beyond taking payment: refuse the sales the state prohibits, tie every line to the state's own identifier for the package it came from, calculate and separately state the tax, report the transaction into the state's tracking system, and leave a record that can be reproduced years later.
What each of those means is set by the state, not by the software. Bloom has published 479 rules that gate a register across 13 states: Arizona, California, Colorado, Illinois, Maryland, Massachusetts, Michigan, Missouri, Nevada, New Jersey, New York, Oregon and Washington. Each carries the moment it fires, what it does when it fires, and the citation it came from, and the shape of all of them is below.
The job is not taking the money
Any till can take a card. What makes a cannabis register a different piece of software is that most of its work happens before the payment and after it, and almost none of that work is optional or configurable.
Before: is this person old enough, and is the document proving it one the rule accepts. Is the shop allowed to be selling at this hour. Has this package passed the test it has to pass. Would this basket exceed a ceiling that is measured in grams for one category and millilitres for another. Is this discount one the state permits, or one it specifically forbids because of what else is in the basket.
After: the transaction has to appear in the state's system as a sale against a specific tagged package, the tax has to be stated separately on a document with defined contents, the inventory has to reconcile by a deadline that is usually the following morning, and every one of those steps has to still be explainable when somebody asks about it next year.
None of that is a feature. It is the rule, and a system that treats it as a feature will have it switched off in some shop somewhere because it was getting in the way.
Where a rule fires
13 of 52 jurisdictions published. A jurisdiction appears only after its rules have been read against its own statute and administrative code.
| Moment | Rules | States | Outcomes |
|---|---|---|---|
| sale | 140 | 13 | warn, require approval, block, allow |
| delivery | 94 | 13 | block, allow, require approval, warn |
| advertising | 32 | 13 | block, require approval, warn |
| age verify | 32 | 13 | block, require approval |
| record retention | 25 | 13 | block, warn |
| patient verify | 22 | 13 | require approval, block, allow |
| transfer in | 18 | 12 | block, warn |
| reporting | 16 | 10 | block, warn, require approval |
| destruction | 15 | 13 | block |
| labeling | 15 | 13 | block |
| transfer out | 15 | 10 | block |
| inventory adjust | 13 | 13 | block, require approval |
| return | 13 | 13 | block, warn, require approval |
| discount | 11 | 10 | require approval, block, allow |
| shift close | 11 | 10 | warn, block |
| sample | 7 | 5 | block |
Every published rule carries the moment it fires as a field rather than as a paragraph of prose, which is what makes it enforceable by a machine instead of memorable by a person. The moments are ordinary shop events: verifying an age, ringing a sale, applying a discount, taking a return, receiving a transfer, sending one out, closing a shift, destroying waste, adjusting a count, printing a label, making a delivery, filing a report.
That framing is the difference between software that enforces rules and software that displays them. A rule attached to the moment it applies fires on its own. A rule written in a help article fires when somebody remembers it.
The column that repays a second look is the state count. Where a moment carries rules in every published state, it is a genuine constant of the category and any serious system has to model it. Where it carries rules in only some, it is a place where a system built for one market quietly does the wrong thing in another.
Block, warn, or require approval
374 of the 479 published rules carry the outcome block. That word is doing real work. A rule whose outcome is block describes conduct the state prohibits, and a message a cashier can dismiss on a busy Friday is not an implementation of it. The correct behaviour is that the sale does not complete.
Warn is different and it is not weaker, it is narrower. It marks the places where a person has to exercise judgment that software cannot: whether somebody is visibly intoxicated, whether a document looks altered. Software cannot make that call, so what it owes is to raise the question, capture the answer, and record who answered it. The value of a warning is entirely in the record it leaves.
Require approval sits between them. The transaction is permitted but only on a condition somebody has to attest to, and the attestation is the point. If your system has a supervisor override, the useful question is what it writes down when it is used.
One state's rules, in full
Show the published rules for
Showing Arizona. Every published fact for it, including the ones this page does not use, is on its own page.
| sale | 13 | warn, require approval, block |
|---|---|---|
| delivery | 7 | block, allow |
| advertising | 2 | block, require approval |
| age verify | 2 | block |
| patient verify | 2 | require approval, block |
| record retention | 2 | block, warn |
| reporting | 2 | block, warn |
| transfer in | 2 | block |
| transfer out | 2 | block |
| destruction | 1 | block |
| discount | 1 | require approval |
| inventory adjust | 1 | block |
| labeling | 1 | block |
| return | 1 | block |
| shift close | 1 | warn |
Below is every published rule for Arizona that fires while a customer is at the counter: verifying age, verifying a card, ringing the sale, applying a discount, taking a return, handling a sample. A further 20 rules fire away from it, and they are on the Arizona page in full.
AZ · sale · warn
A marijuana establishment must keep its retail site open to consumers at least 30 hours weekly between 7:00 a.m. and 10:00 p.m., and must post where entering consumers can see them its approval to operate, its licence, the hours during which it will sell, and the ADHS-format sign warning of dangers to fetuses from marijuana while pregnant or to infants while breastfeeding and of the risk of a report to the Department of Child Safety.
A.A.C. R9-18-308(A)(1)(a) and (A)(15)(a) to (d); A.R.S. 36-2854(A)(11); A.R.S. 36-2803(B) (same posted-sign duty for a nonprofit medical marijuana dispensary)read September 6, 2026
AZ · sale · require approval
A city, town or county may regulate the time, place and manner of marijuana establishment operations, may limit or prohibit establishments outright, may restrict public signage, and may prohibit or restrict delivery within its jurisdiction, so every store and every delivery destination must be checked against local ordinance.
A.R.S. 36-2857(A)(1) to (6) and (B); A.R.S. 36-2857(C) (limits on how far a locality may go); A.A.C. R9-18-308(A)(4)read September 6, 2026
AZ · age verify · block
No sale, transfer or provision of marijuana or a marijuana product to anyone under 21; a consumer is by definition an individual at least twenty-one years of age.
A.R.S. 36-2850(4) (definition of consumer); A.R.S. 36-2851(4) and (5); A.R.S. 36-2858(A)(2); A.A.C. R9-18-309(A)(1)read September 6, 2026
AZ · age verify · block
Before selling or transferring, the agent must verify the consumer's age using one of the eight document types listed in A.R.S. 4-241(K), each unexpired and bearing a photograph and date of birth.
A.A.C. R9-18-309(A)(1) (verify the consumer's age through one of the documents in A.R.S. 4-241(K)); A.R.S. 4-241(K)(1) to (8); A.R.S. 36-2854(A)(6)read September 6, 2026
AZ · sale · block
Block any single transaction exceeding one ounce of marijuana, of which no more than five grams may be marijuana concentrate; the five grams is carved out of the ounce, not added to it.
A.R.S. 36-2858(A)(1)(c); A.A.C. R9-18-309(A)(3)read September 6, 2026
AZ · sale · block
Do not dispense an amount that would cause the registered qualifying patient to exceed two and one-half ounces of marijuana in any fourteen-day period, measured against the state registry allotment rather than the store's own ledger.
A.R.S. 36-2806.02(A)(3); A.R.S. 36-2801(1)(a)(i) and (1)(b)(i); A.R.S. 36-2807(C)(2)read October 19, 2026
AZ · sale · block
After verifying and before handing over the marijuana, the agent must enter into the state verification system how much was dispensed, whether it went to the patient or the caregiver, the date and time, and the registry identification numbers of both the dispensary and the dispensing agent.
A.R.S. 36-2806.02(B)(1) to (4); ADHS guidance GD-107-PHS-EDC (the transaction must be recorded in the point-of-sale or inventory control system and the electronic verification system at the time the dispensary relinquishes possession, regardless of location); A.A.C. R9-17-314read September 6, 2026
AZ · patient verify · require approval
A qualifying patient under eighteen may hold a registry card only where a custodial parent or legal guardian serves as designated caregiver and controls the acquisition, dosage and frequency, so a minor patient may not transact alone.
A.R.S. 36-2804.03(B)(1) to (3), in particular (B)(3)(b) and (c)read October 19, 2026
AZ · sale · block
An out-of-state registry card has the same force as an Arizona card for possession, but a visiting qualifying patient is NOT authorized to obtain marijuana from a nonprofit medical marijuana dispensary; serve them as an adult-use consumer or not at all.
A.R.S. 36-2804.03(C); A.R.S. 36-2801(19)read September 6, 2026
AZ · sale · block
The sixteen percent marijuana excise tax does not apply to marijuana dispensed to a registered qualifying patient or registered designated caregiver by a dual licensee or nonprofit medical marijuana dispensary, so the POS must zero that line on a verified medical sale while still charging transaction privilege tax.
A.R.S. 42-5452(A), second sentenceread October 19, 2026
AZ · sale · block
A product subject to the marijuana excise tax may not be bundled with a product or service that is not subject to that tax, so a single bundled SKU mixing taxed marijuana with untaxed goods or services cannot be sold.
A.R.S. 42-5452(C)read October 19, 2026
AZ · sale · block
Beyond the transaction privilege tax, the use tax and the sixteen percent state excise, neither the state nor a locality may levy any additional tax, fee or assessment on the sale of marijuana or on the licensing, operations or activities of marijuana establishments, unless the fee is generally applicable to non-marijuana businesses.
A.R.S. 36-2864(A) and (B); A.R.S. 36-2864(C) (uniform increases to the retail transaction privilege tax rate remain allowed)read October 19, 2026
AZ · sale · block
Only batches whose test results comply with R9-18-408 and Table 3.1 may be offered for sale or transfer, and until results are back the batch must be stored away from product offered for sale; a failing batch is remediated or destroyed; and the agent must make the results available to the consumer on request before the sale.
A.A.C. R9-18-311(A)(1) and (2), (B)(1), (B)(8) and (B)(9); A.A.C. R9-18-309(A)(2) (make results available to the consumer if requested); A.R.S. 36-2803(E) and (F)(1) and (2) (medical testing before dispensing, results to a patient immediately on request, and a posted sign notifying patients of that right); A.R.S. 36-2854(A)(5)read September 6, 2026
AZ · sale · block
Every unit sold must carry the establishment licence number, the amount, strain and batch number, and the same batch number must key the licensee's own inventory control system, so a sale line without a batch identifier cannot be completed.
A.A.C. R9-18-310(A)(2)(a) to (d); A.A.C. R9-18-101(6) (batch number is a unique identifier assigned by the marijuana establishment); A.A.C. R9-18-314(C)read September 6, 2026
AZ · return · block
A delivering agent may not pick up or otherwise receive marijuana from a consumer for transport back to the establishment once a delivery is complete, and must return to the retail site at the end of the trip plan with any product that was not handed over.
A.A.C. R9-18-312.01(D)(1) and (D)(2); A.A.C. R9-18-308(A)(2)(j)(v)read September 6, 2026
AZ · discount · require approval
Arizona has no state rule on discounts, bundled promotions, free product, nominal-price promotions or trade samples to consumers; the only adjacent hard limits are the excise anti-bundling provision and the ban on advertising potency, so a giveaway or a deep discount needs review rather than an automatic block.
A.R.S. 42-5452(C) (no bundling a taxed product with an untaxed product or service); A.R.S. 36-2859(C)(1)(d) (no advertising potency or THC levels); A.R.S. title 36 chapter 28.2 and A.A.C. R9-18 articles 1 to 4, searched, silent on discounts, free product and samplesread October 19, 2026
AZ · sale · block
Every principal officer, board member, employee and volunteer must hold a valid marijuana facility agent licence linked to the establishment in the ADHS electronic system, and must have that licence in immediate possession while working at any site or transporting marijuana; an unlicensed individual may not be employed, serve as an officer, or volunteer.
A.A.C. R9-18-308(A)(6), (A)(8)(a) and (b) and (A)(9)(a) to (c); A.R.S. 36-2855(A) and (C); A.R.S. 36-2850(22)read September 6, 2026
AZ · sale · block
A nonprofit medical marijuana dispensary may not allow any person to consume marijuana on its property, and no one may smoke marijuana in a public place or open space, so no on-premises consumption may be offered or recorded.
A.R.S. 36-2806(G); A.R.S. 36-2851(8)(a); A.R.S. 36-2853(C) (smoking in a public place or open space is a petty offense); A.R.S. 36-2802(C)read September 6, 2026
AZ · patient verify · block
Before dispensing, the agent must access the ADHS verification system and confirm that the registry identification card is valid, that each person presenting a card is the person identified on it, and that the amount would not breach the fourteen-day limit.
A.R.S. 36-2806.02(A)(1) to (3); A.R.S. 36-2807(A) to (C)read October 20, 2026
Every line ties back to a package the state already knows about
Retail software outside cannabis sells a product. Cannabis software sells a package, and the state issued its identifier before it ever reached you. That single difference cascades through the whole design: receiving is not a purchase order, it is accepting specific identifiers against a manifest; a sale is not a stock decrement, it is a transaction recorded against an identifier; and a count that does not tie back to those identifiers is not an inventory, it is an estimate.
The practical consequence is that a sale line without a package identifier cannot be completed rather than being completed and fixed later. Fixing it later means a correction in the state's system, and corrections are what an inspection reads first.
The receipt is a regulated document
The slip handed to a customer is not marketing collateral with a total on it. In the states published so far it has defined contents, and the tax has to appear separately from the price rather than folded into it.
No published rule for Arizona states the receipt requirement in those terms. Pick another state above to see one, or open the Arizona page for everything that has been published for it.
How the tax itself is calculated, what stacks on what, who is exempt and how it rounds is a longer question with its own page: how cannabis retail tax is calculated.
The work that is not the sale
20 of Arizona's published rules fire somewhere other than the register: receiving, transferring, adjusting, destroying, delivering, closing, reporting and retaining. This is the half of the job that gets left to a spreadsheet, and it is the half an inspection actually examines.
A reconciliation deadline is the clearest example. If the rule says the day's inventory has to be reconciled in the state's system by a fixed hour the following morning, then that deadline, not the close of trade, is the end of the working day. A destruction has a holding period and a documented time and method. An adjustment has to carry a reason. A transfer in has to be checked against a manifest identifier by identifier and the differences documented per identifier, not in total.
Every one of those is a place where software either produces the record as a by-product of the work or leaves a person to produce it afterwards from memory. The second option is how shops end up reconstructing a February afternoon in October, which is the subject of what an inspection asks for.
What to put to any vendor, including this one
Six questions, none of which require a demo to answer. Which rules does the system enforce, named individually rather than as compliance. Where did each of them come from, as a citation. When was that source last read, as a date. What happens when a rule changes after a sale has already been made under the old one. What does the system do when the state's reporting system is unreachable for an afternoon. And what can you take with you if you leave.
A system that can answer all six is doing the job whether or not it is this one. A system that answers the first and goes quiet on the rest is asking you to carry the risk on its behalf, and the signature on the report is yours.
Where this page stops
Questions people ask next
- Is a cannabis point of sale just a normal till with a track and trace connection?
- Not if it is doing the job. A track and trace connection reports what happened after the fact. The rules that decide whether a sale may happen at all live in the state's own statute and administrative code: who may buy, at what hours, in what quantity, at what price, with what on the label and what on the receipt. Reporting a prohibited sale accurately is still a prohibited sale.
- What is the difference between blocking a sale and warning about it?
- Every published rule carries an outcome as well as a trigger. Where the outcome is block, the rule prohibits the transaction and a dismissible warning is not enforcement of it. Where the outcome is warn, a person is expected to make a judgment, and the useful thing software can do is record that they made it and what they were shown. Require approval sits between the two and its whole value is the attestation it captures.
- Does the receipt have to show anything in particular?
- In the states published so far, yes, and the requirement is specific rather than general: the tax stated separately from the price, and a defined set of fields on the document handed to the customer. The rules and their citations are rendered on this page from the published corpus, and each links to the state's own text.
- What has to be recorded that is not part of the sale?
- More than most operators expect. Reconciliation against the state system on a deadline, the reason on every inventory adjustment, the time and method of every destruction, the manifest on every transfer in and out, and business records kept for a fixed number of years. These are the rules that decide how an inspection goes, and they are grouped on this page by the moment they fire.
- Can one system cover more than one state?
- It can if the rules are data rather than code. Two states rarely differ in the shape of the question, only in the answer: both have a purchase ceiling, both have hours, both have an identity check. Bloom keeps each state's answer as a published row with its own citation and read date, which is why adding a state does not mean rewriting the register.
- How do I tell whether the system I already run is enforcing the current rule?
- Ask it two things: which rule it is enforcing, and when that rule was last checked against the source. Most systems can tell you the number they apply. Far fewer can name the citation or the date. The state pages here will tell you what the current rule is either way, whether or not you ever buy anything.
Sources
- A.A.C. R9-18-308(A)(1)(a) and (A)(15)(a) to (d); A.R.S. 36-2854(A)(11); A.R.S. 36-2803(B) (same posted-sign duty for a nonprofit medical marijuana... and 19 further citations arizona official sourceread September 6, 2026
- A.R.S. 36-2857(A)(1) to (6) and (B); A.R.S. 36-2857(C) (limits on how far a locality may go); A.A.C. R9-18-308(A)(4) arizona official sourceread September 6, 2026
- A.R.S. 36-2850(4) (definition of consumer); A.R.S. 36-2851(4) and (5); A.R.S. 36-2858(A)(2); A.A.C. R9-18-309(A)(1) arizona official sourceread September 6, 2026
- A.A.C. R9-18-309(A)(1) (verify the consumer's age through one of the documents in A.R.S. 4-241(K)); A.R.S. 4-241(K)(1) to (8); A.R.S. 36-2854(A)(6) arizona official sourceread September 6, 2026
- A.R.S. 36-2858(A)(1)(c); A.A.C. R9-18-309(A)(3) arizona official sourceread September 6, 2026
- A.R.S. 36-2806.02(A)(3); A.R.S. 36-2801(1)(a)(i) and (1)(b)(i); A.R.S. 36-2807(C)(2) and 2 further citations arizona official sourceread October 19, 2026
- A.R.S. 36-2804.03(B)(1) to (3), in particular (B)(3)(b) and (c) and 1 further citation arizona official sourceread October 19, 2026
- A.R.S. 36-2810(B); A.R.S. 36-2810(A) and (D) arizona official sourceread September 6, 2026
- A.R.S. 42-5452(A), second sentence and 2 further citations arizona official sourceread October 19, 2026
- A.R.S. 36-2864(A) and (B); A.R.S. 36-2864(C) (uniform increases to the retail transaction privilege tax rate remain allowed) arizona official sourceread October 19, 2026
- A.R.S. 36-2854(A)(4)(a) to (d), in particular (c)(vi) and (d); A.A.C. R9-18-314(A) and (C) and 2 further citations arizona official sourceread September 6, 2026
- A.R.S. 36-2859(C)(1)(a) to (e), (C)(2) to (C)(5) and (D) (version effective 7/1/26); A.R.S. 36-2859(E) (billboards within one thousand radial feet... and 1 further citation arizona official sourceread September 6, 2026
- A.R.S. 36-2806(G); A.R.S. 36-2851(8)(a); A.R.S. 36-2853(C) (smoking in a public place or open space is a petty offense); A.R.S. 36-2802(C) arizona official sourceread September 6, 2026