DispensariesOverviewOrder aheadMichiganNew JerseyIllinoisArizonaPaymentsCompliance
Home / Cannabis / Compliance
FOR LICENSED RETAILERS ยท 21+

Records that hold up when someone asks.

ID checks recorded on every sale. An audit trail with names on it. Metrc-connected in Michigan, New Jersey and Illinois. Compliance at a dispensary is mostly boring records kept perfectly, so Batchly keeps them for you.

A compliance question rarely arrives on a dramatic day. It arrives months later, about an ordinary Tuesday: was that customer checked, who approved that refund, why was that sale voided. The register that answers those questions calmly is the one that wrote everything down at the time, automatically, without asking the cashier to do anything extra. That is the job Batchly does at your counter, and this page lays out what the register does today and what is on the roadmap.

ID checks at the register, recorded on the sale itself

Mark your cannabis products age-restricted (one checkbox per product); the ID rule each state sets for adult-use and medical customers is on that state's page. Batchly puts the ID check inside the transaction: the register prompts for ID before any sale carrying one of those products can complete, staff confirm the ID on the spot (scan the license barcode or read the date of birth off the card, and the register does the age math), and the verification record rides the sale row itself. Not a separate log that drifts out of sync, a field on the transaction. When an inspector or your own counsel asks about one specific sale from last March, the proof is one lookup. A new hire on their second shift cannot skip the check, because the register will not ring a flagged item without it.

An audit trail someone else can trust

Refunds and voids are where records usually go quiet. In Batchly, each one is an audit event with the acting user stamped by the server. The register does not get to claim who did it; the server records who was signed in and when. The trail is tamper-evident, and no tenant role, including owner, edits it after the fact. Six months from now, every refund has a name, a time, and a sale attached. Your records hold up when someone asks, which is the entire point of keeping them.

The everyday flow feeds the same discipline. When a customer orders ahead by text, the order arrives in a queue with a name and a timestamp, your team pulls and labels the items, and the sale that completes it carries the same ID check and the same records as a walk-up. Order history, inventory counts, and the menu all stay in step because they are one system, not three.

Metrc: connected in Michigan, New Jersey, and Illinois

Batchly is Metrc-connected and holds production Metrc API access in Michigan, New Jersey and Illinois (September 2026). The register never talks to Metrc directly; Batchly's server does, from the sale row, which is what keeps the three pieces below in step:

We set Metrc up with you: your Metrc user key and license number, your item mapping, before the first sale. What each state requires at the counter is on the Michigan, New Jersey and Illinois pages. Until the purchase-limit counter ships, your records are still strong: itemized, server-stamped sales give a limit question or a state inquiry an answer today.

Getting paid

Payments stay yours: bring the setup you use today and Batchly works around it. Details on the payments page.

Where you're licensed matters

Requirements differ sharply by state. Arizona has no Metrc integration in the path, so a licensed shop there runs Batchly with no integration wait; what still applies at the counter (21+ ID checks, purchase limits, record-keeping) is on that page, along with the standing hedge to confirm current AZDHS rules for your license type. Michigan, New Jersey and Illinois run Metrc, and Batchly is Metrc-connected in all three; what the register does in each state, and the month it was checked, is described and dated on that state's page. Start with the cannabis overview for how Batchly fits different license environments.

Questions dispensary operators ask

Does Batchly integrate with Metrc?

Yes. Batchly is Metrc-connected: each sale is reported to Metrc as a sales receipt with the package tag, and Batchly holds production Metrc API access in Michigan, New Jersey and Illinois. We set Metrc up with you. Purchase-limit counters at the register are on the roadmap.

How are ID checks recorded?

The 21+ check happens before the sale completes, and the record rides the sale row itself. Every age-restricted sale carries its own verification record, so proving a specific transaction was checked is one lookup, not a hunt through a separate log.

Can a manager edit or delete audit entries?

No. Refunds and voids are stamped with the acting user on the server, and the trail is tamper-evident. The register does not get to claim who did something; the server records who was signed in and when. No tenant role, including owner, can edit or delete the trail.

What compliance features does the register have today?

21+ ID checks logged on every age-restricted sale, server-stamped audit trails on refunds and voids, and Metrc-connected sales-receipt reporting with the package tag (production API access in Michigan, New Jersey and Illinois; we set Metrc up with you). Purchase-limit counters are on the roadmap. Nothing here is legal advice; verify requirements with your counsel and your licensing authority.

Batchly is business software for licensed cannabis retailers, 21+. Rules change and vary by state and license type. Nothing on this page is legal advice. Verify current requirements with your counsel and your licensing authority.

Run a counter you can defend

ID checks on every sale, an audit trail with names on it, and Metrc reporting in Michigan, New Jersey and Illinois. Free for 21 days.

Start free for 21 days