Skip to content

NMS2S for New Mexico retailers

NMS2S reconciliation: matching your POS to New Mexico's state system every day and every month

The daily ticket-to-ticket-ID match, the Sales Floor count, the tax check NMS2S can't do, and the monthly reconciliation 16.8.2.40 NMAC requires — for any NMS2S-integrated POS.

By BudAlly

Published Reviewed by Regulatory counsel (advisory)

The Metrc version of this procedure is at /metrc/reconciliation. New Mexico differs in three ways: identifiers (Item ID / Barcode ID, not tags), the Sales Floor gate, and the fact that tax is entered, not computed.

Daily

  1. Sales to tickets. Every POS ticket should have an NMS2S ticket ID returned on push. List tickets without one (sync failure, item not on Sales Floor, patient limit rejection) and NMS2S tickets without a POS ticket (rung directly in the web app). Chase within 24 hours.
  2. Tax check. For each ticket, the tax amount sent to NMS2S must equal what the POS computed: excise 14% of retail (from Jul 1, 2026) plus state + local GRT by location code; zero excise and GRT-deductible for medical patients, caregivers and reciprocal cards. Any difference is a POS configuration error — fix it the same day; it compounds into the monthly TAP filing.
  3. Voids. Whole-ticket only, 50+ character reason, strict eligibility. Make sure the POS void and the NMS2S void both exist.
  4. Sales Floor vs POS on-hand. Quantities by Item ID should match after sync. A difference means a room move hasn't happened or a sale didn't report.

Every receiving

Manifest Ready to Receive → count by Item ID → receive with actual counts and notes (Partially Received where short) → deli-style conversion for dry flower → move to Sales Floor → POS sync → invoice checked against accepted quantities; a difference is a credit memo.

Monthly (16.8.2.40 NMAC: at least once per calendar month)

  1. NMS2S inventory by room at a cut-off; POS on-hand at the same cut-off; physical count.
  2. Match by Item ID and Barcode ID; trace differences through receiving, sales, voids, adjustments (adjustments and splits are manual in the web app unless submitted through a validated expanded-API integration — either way, the adjustment reason and your change log are the trail).
  3. Classify: documentation / timing / process / loss. Loss → notify CCD (theft, diversion or loss reporting).
  4. Adjust in NMS2S with a reason and a name; log it.
  5. Reconcile tax: POS tax by type = NMS2S tax amounts = the TAP return (excise by location code, by the 25th) and the GRT return with the medical deduction (D0-034).
  6. Report, second-person sign-off, file.

What to automate

The daily lists, the tax check, the Sales Floor vs on-hand comparison, the report. Not: adjustments, voids, room moves, notifications — a person does those in NMS2S, and the software confirms from the next export.

BudAlly runs this against NMS2S exports and your POS today, and against expanded-API inventory reads with approved adjustments submitted through the API once our CCD validation completes — BudAlly in New Mexico.