Flourish Software Blog

Running Dual Entry Under NMS2S: A New Mexico Operator's Guide

Written by Santiago Perez | Sep 10, 2026

Running Dual Entry Under NMS2S: A New Mexico Operator's Guide

New Mexico moved off BioTrack in stages through late August, and BioTrack went dark at 12:01 a.m. on September 4. If you need the migration timeline and the prep steps, those are in New Mexico NMS2S Transition: What Cannabis Operators Must Do. This is the piece that comes after it: how to run the business now that the state system is live.

Start with what NMS2S is. It is a compliance ledger. It records what the state needs recorded, it is free to every licensee, and the Cannabis Control Division has put eight role-specific training manuals, a set of training videos, and a helpline at 505-524-0940 behind it. What it is not is an operating system for a cannabis business. It was never built to be one.

That is why non-retail operators across the state are currently running dual entry by hand. Retail sales report to NMS2S automatically over the state's retail API. Everything else, including inventory movement, transfers, destruction, and manifests, is web-app only. There is no inventory API, and the state has not published a timeline for one.

Book a demo with Flourish Software

The Sequencing Rule That Makes Dual Entry Survivable

One decision does most of the work: build the record in Flourish, then enter the finished figure in NMS2S.

The state system is unforgiving in specific ways. Harvest entry behaves as a final action with no undo, and its date window only accepts entries within about a day of the current date, so you cannot backfill a harvest from last week. A shipper cannot void a manifest once it has been created. And NMS2S has no mobile app and no barcode scanning at all, so anything done there is a desk task typed from notes.

Flourish is where the record is still reversible. Weigh containers by container in the mobile app at the point of work, where a paired Bluetooth scale captures wet weights automatically. Let the totals sum, confirm the figure, then type one correct number into the state system once. Reverse that order, and you are trying to correct a record that cannot be corrected. Our harvest dual-entry guide walks through the full sequence.

Receiving: The State Records the Manifest, and That Is All

NMS2S records the manifest transfer. That is the whole of what it does with an inbound shipment. It does not model cost, it has no concept of a purchase order, and it does not include non-cannabis inventory at all, so packaging, nutrients, and supplies have no home in the state system, and neither does what you paid. An operator who runs receiving only in NMS2S has met the state's recording requirement and still has no idea what the shelf inventory is worth.

The sequence that works, detailed in our non-retail receiving guide:

  • Review the incoming transfer in NMS2S first and accept, partially accept, or reject it there
  • Read the actual package IDs off the accepted packages rather than off the shipper's manifest
  • Create and receive the transfer in Flourish using those IDs
  • On a partial receipt, use the new ID the state issues for the received quantity, not the original

Flourish carries the rest: purchase orders with full API coverage, standard-versus-actual costing that reports the variance between what you expected to pay and what you did, vendor records with default and backup vendors, and the non-cannabis inventory management that the state system has no place for.

Outbound: A Manifest Is Not an Invoice

NMS2S records the manifest. It has no concept of order, customer, price, payment, or terms.

That is the entire commercial layer of a wholesale business, and it lives in Flourish: order entry from the UI, spreadsheet import, the API, or a marketplace connection such as LeafLink or Apex Trading; tiered pricing by customer segment with configurable payment terms; invoices generated automatically on order completion; and AR aging reports with payment tracking and overdue alerts.

Sequence matters here for the same reason it does at harvest. Settle commercial terms in Flourish first, take payment where you can, and create the transfer in NMS2S last, because the shipper cannot void a manifest once it exists. Confirm quantities, the receiving license, and how the customer wants the material processed before you submit. Details are in our outbound invoicing, shipping, and wholesale guide.

Book a demo with Flourish Software

Retail: The State Receives the Sale, You Still Have to Make It

This one needs the least argument. NMS2S receives sales data. It does not process transactions, apply discounts, or print receipts, and there is no state-provided point-of-sale system.

Flourish's retail point of sale covers the selling experience: discounts and promotions, online orders, reserve-ahead and delivery, front- and back-of-house fulfillment, cash management, inventory counts, and reporting, with loyalty enabled through the AIQ Loyalty integration. The Flourish retail integration with NMS2S is live and processing transactions for New Mexico operators, so a sale is entered once in Flourish and automatically reported to the state.

That automatic reporting is the exception, not the rule. The non-retail work above is still mirrored in the NMS2S web app on purpose, so both record sets agree until the state publishes an inventory API.

Your Migrated Data Needs a Second Look

Migration moved your data. It did not validate it, and some of what it did needs to be corrected by hand. We walk the full correction list in NMS2S Migration: What Didn't Come Over, and How to Check Your Data. Here is the short version and how it lands on daily operations.

Product type mappings revealed that the defaults are wrong for many catalogs. Usable Cannabis defaulted to Cannabis Packaged when a large share of it should be Pre-Rolls Packaged, 50 to 65 percent of the category on pre-roll-heavy operators. Extract for Inhalation defaulted to volatile solvent vape types even for jarred concentrate. Solventless items landed under volatile solvent, and Flower Lot defaulted to dry flower when the material may be fresh-frozen or deli-style. Legacy BioTrack groupings, meaning lot, intermediate, and end products, no longer line up with the new type names.

Expiration dates are the ones to check today. NMS2S auto-filled every migrated record with a date one year from the migration. That one carries a labeling consequence as well, which we cover in New Mexico Cannabis Label Requirements: What NMS2S Prints and What It Doesn't.

Plants took a similar hit. The state migration stripped room assignment, life stage, and grouping, and it set birth dates to the transplant date. If you are reconciling a grow, treat all four of those fields as unreliable until someone has looked at them.

A few of these cannot be fixed with the state's Migration Correction Tool at all, and item master changes in Flourish do not sync to NMS2S, so state-side corrections are done record by record. Our category transition guide lists what maps to what.

One more thing worth fixing while you are in there. NMS2S re-mints its 16-digit IDs as material moves, so the state identifier is not stable across a product's life. Recalls, audits, and GMP do not run on state IDs. A lot number is the only identifier you own, and it ties a recall to a single production run and traces an auditor from a finished unit back to its inputs and its COA. Our lot and batch numbering guide covers the setup.

Reconcile Your Records Before an Inspector Does

Confirm that inventory quantities in Flourish match what is physically on your shelves and in your rooms, that order fulfillment records are complete, that lot numbers trace back to real production runs, and that anything hand-entered in the NMS2S web app during the transition has a matching record on your side.

Dual entry is the reality until the state publishes an inventory API. The operators who come out of this clean will be the ones who kept a complete operational record and treated the state ledger as the report it is. A discrepancy costs far less to find now than to explain during an audit.

Book a demo with Flourish Software