By E-commerce 4 Internet Marketers Editorial
Explainer. Omnichannel regulated retailers need the counter and the cart to sell from the same SKU truth. When card-present software and the online store keep separate stock counts or separate customer records, restricted products get oversold, age or geo gates fire inconsistently, and dispute or audit files disagree about what was sold where. This explainer maps what Network Merchants (NMI) and Authorize.Net publicly document about card-present POS, product catalogs, and stored payment profiles, then outlines how website owners and developers should wire those payment layers to a commerce inventory and customer system of record. It is architecture guidance for high-risk and regulated catalogs. It is not legal advice, and it does not invent POS features that vendor docs do not describe.
Why split POS and cart systems hurt regulated catalogs
High-risk and regulated verticals (hemp-derived goods, nicotine, supplements with shipping limits, age-gated SKUs, and similar catalogs) amplify ordinary omnichannel bugs:
- Oversells of restricted units. A storefront shows available quantity while a same-day in-store sale already consumed the last compliant unit.
- Mismatched compliance logs. Online checkout may record age attestation, shipping destination rules, and product class. A standalone POS sale may record only amount and card brand. Later chargebacks, recalls, or inspections then lack a single order timeline.
- Broken customer continuity. A buyer who pays in store and later renews online cannot reuse a tokenized payment method if the POS channel never wrote a vault or Customer Information Manager (CIM) profile the cart can charge.
- Descriptor and receipt confusion. Separate merchant descriptors and receipt templates across channels increase unrecognized-charge disputes even when inventory math is correct.
The fix is not "buy any terminal." The fix is a shared product identity, a shared inventory ledger, and an explicit map from gateway payment tokens to the merchant's customer ID, with payment terminals treated as acceptance edges rather than as inventory masters.
What NMI announces for card-present SmartPOS and the gateway
On July 21, 2026, NMI published that it entered the smart terminal market with AXIUM SmartPOS, its first all-in-one card-present terminal line for ISOs, ISVs, SaaS platforms, and merchants. The launch description states the devices are built on Ingenico's AXIUM Android platform and integrated with the NMI payment acceptance platform. NMI's release positions retail use cases that include speeding checkout, managing inventory, and serving customers anywhere in the store, and it states partners can use the NMI Gateway to connect in-person payments with e-commerce, self-checkout, order-ahead, recurring billing, and unattended environments (NMI SmartPOS announcement).
Verified payment-scope details from that announcement and related NMI SmartPOS docs:
- Supported in-person methods described in the launch include chip, swipe, tap, and mobile wallets.
- The launch describes an offline-first architecture so merchants can keep accepting payments when connectivity drops, with transactions syncing when service returns.
- Hardware profiles called out include DX (portable retail), RX (countertop and semi-attended kiosk), and EX (mobile and field), with initial devices described as PCI PTS v6 certified through 2032.
- NMI's SmartPOS / Axium transaction-flow documentation states that credential-on-file parameters are not supported on SmartPOS
startTransaction()calls, and thatTaxAmountandPurchaseOrderNumberalso error on SmartPOS. Offline authorization preferences and offline upload modes are documented for SmartPOS specifically (NMI SmartPOS transaction flow).
For developers, the practical reading is that SmartPOS is a modern card-present acceptance surface on the NMI platform, with an official story that the gateway can sit across in-person and ecommerce channels. The press-release inventory language is a retail use-case claim, not a substitute for a verified warehouse quantity API. Do not assume the terminal alone is your stock ledger.
NMI Product Manager is a payment product catalog, not a warehouse
NMI documents a Product Manager service that lets merchants define preset products in the gateway account by SKU, description, and pricing, and manage them through the Payment API (add_product, update_product, delete_product) or newer Product Manager REST endpoints. Documented fields center on SKU uniqueness, description, cost, currency, optional tax and discount amounts, unit of measure, category, commodity code, and images. Products are described as usable in invoices and other payment flows (Product Manager via API; Product Management reference).
What that means for omnichannel regulated retail:
- Use Product Manager (or your ISV's product sync into NMI) to keep payment-line SKU and price labels aligned with the cart catalog.
- Keep on-hand quantity, lot or batch, location, and sell-through reservations in the commerce platform, ERP, or WMS that already powers the website.
- Treat gateway product records as a payment catalog mirror. Do not treat them as proof that NMI replaces Shopify, WooCommerce, Magento, or a dedicated inventory service for stock math.
If an OpenAPI tag mentions "inventory tracking," still bind engineering decisions to the documented product fields. This article does not claim a stock-quantity endpoint that the published field lists do not show.
NMI Customer Vault for shared payment profiles (with limits)
NMI Customer Vault stores tokenized card or ACH data on NMI's PCI-scoped servers and returns a Customer Vault ID for later charges without the merchant storing raw payment data. NMI's support article states the vault works with card-present and card-not-present flows, including the Virtual Terminal, Payment API, Batch Upload, and mobile devices using the iProcess app. Each vault ID can hold up to 255 billing or shipping IDs, CVV is not stored, and Automatic Card Updater can help keep cards current when enabled (Customer Vault overview; Customer Vault docs).
Implications for sharing "customer profiles" with the online cart:
- Vault IDs are payment tokens, not a full CRM. Age flags, license checks, subscription eligibility, and shipping restriction history still belong in the merchant's customer record.
- Because SmartPOS documentation rejects credential-on-file parameters on the device transaction API, do not design a counter flow that expects SmartPOS itself to create credential-on-file tokens the way a card-not-present vault enrollment might. Enroll cards into Customer Vault through supported vault and API paths (and partner apps such as iProcess where that path is documented), then reference the vault ID from ecommerce and other allowed channels.
- Store
merchant_customer_id(or equivalent) in your database next to the vault ID so in-store and online orders attach to one person without copying PAN data into the cart database.
What Authorize.Net documents for mPOS and Windows POS
Authorize.Net's support article on the 2.0 Mobile Point of Sale (mPOS) app describes turning a supported Apple or Android device into a mobile POS for credit and debit acceptance, including Tap to Pay, tap-to-terminal via reader, Bluetooth EMV or swipe readers, and manual entry. Cash can be recorded in the app only and is not passed to the Merchant Interface. The FAQ states an Internet connection is required, eCheck is not supported, and Automated Recurring Billing (ARB) and Customer Information Manager (CIM) cannot be used with the mPOS app. Billing data entry in mPOS is limited (card, expiration, ZIP), with optional shipping name and address fields; requiring unsupported Merchant Interface payment-form fields can produce Error 33 (Authorize.Net mPOS KA-08236).
Authorize.Net's Virtual Point of Sale materials describe the Windows Authorize.Net 2.0 app with a supported card reader as an in-person acceptance path that stores payment information in Authorize.Net's PCI-compliant environment and supports EMV for merchants on stated processor connections such as First Data Nashville and TSYS (VPOS product page).
For omnichannel inventory and profiles, the verified takeaway is sharp:
- Authorize.Net mPOS and VPOS are payment acceptance applications. Official pages describe transactions, readers, receipts, and processor matrices. They do not document a native shared warehouse inventory sync with Shopify, WooCommerce, or Magento.
- Because mPOS explicitly cannot use CIM or ARB, a counter sale taken only inside mPOS does not automatically create a reusable Customer Profiles token for the online cart. Developers who need one customer payment profile across channels must enroll cards through CIM-capable paths (Merchant Interface, Customer Profiles API, Accept Customer hosted forms, or
createCustomerProfileFromTransactionwhere applicable), not assume mPOS wrote the profile.
Authorize.Net Customer Profiles on the cart side
Authorize.Net Customer Profiles (CIM) let merchants tokenize and store payment and shipping information for returning customers and recurring use. Developer docs describe customer, payment, and shipping profile APIs, hosted Accept Customer forms, and charging via the profile element on createTransactionRequest. Support materials state each customer profile can include up to 10 payment profiles and up to 100 shipping profiles, managed in the Merchant Interface or via API (Customer Profiles feature guide; CIM Merchant Interface guide).
Use CIM as the payment-profile layer for ecommerce and for any proprietary business application that calls the Profiles API. Pair it with your own customer ID, order history, and compliance attributes. Do not confuse CIM with product inventory.
A practical architecture for unified inventory and profiles
For website owners and developers selling regulated goods online and in person, a durable pattern looks like this:
1. One product master, many acceptance edges
- Master SKU, title, regulatory class, age gate, ship rules, and tax class live in the commerce catalog (or PIM).
- POS line items must reference the same SKU the cart uses. Map barcode or PLU to that SKU in the POS integration layer.
- Mirror price and description into NMI Product Manager or your payment ISV only as needed for invoicing and receipt consistency.
2. One inventory ledger with reservation semantics
- Decrement (or soft-reserve) inventory in the commerce or WMS system when either channel commits a sale.
- Online checkout reserves stock through the same API the POS uses after authorization or capture, depending on your risk tolerance for auth-time versus capture-time allocation.
- For offline NMI SmartPOS payment acceptance, design an explicit reconciliation job. Offline payment success is not automatically the same as inventory commit. Queue inventory adjustments when the transaction uploads, and alert ops if a SKU went negative against online reservations.
3. One customer ID, gateway tokens as foreign keys
- NMI shops: Customer Vault ID plus merchant customer ID.
- Authorize.Net shops: CIM customer profile ID (and payment profile IDs) plus merchant customer ID.
- Never store full PAN in the cart database when a vault or CIM token exists.
- Expect channel gaps. mPOS will not populate CIM. SmartPOS will not accept credential-on-file parameters on device start. Build enrollment steps that match each vendor's documented path.
4. One compliance event stream per order
Whether the tender was chip-present or card-not-present, write the same structured order event: SKU list, quantities, location or ship-to, customer ID, age or ID check result if required, gateway transaction ID, and channel tag (pos vs web). That shared log is what makes inventory math and later dispute or regulatory review coherent.
Operations checklist
- Inventory source of truth is commerce/WMS, not the terminal app and not gateway Product Manager alone.
- POS and cart share SKU identity before go-live; barcode maps are tested with restricted SKUs, not only best sellers.
- NMI merchants enable Customer Vault where token reuse is required and store vault IDs against CRM customers (Customer Vault).
- Authorize.Net merchants treat mPOS as acceptance only and enroll reusable profiles through CIM-capable APIs or the Merchant Interface (mPOS FAQ; CIM guide).
- Do not pass SmartPOS credential-on-file or TaxAmount parameters that NMI documents as errors (SmartPOS transaction flow).
- Offline card acceptance requires a written inventory catch-up path so web carts cannot sell the same last unit.
- Align statement descriptors and receipt branding across POS and ecommerce to reduce unrecognized charges.
- Regression-test oversell, age-gate, and ship-restriction SKUs on both channels in the same sandbox day.
What this article deliberately omits
- Any claim that NMI Product Manager or Authorize.Net mPOS/VPOS is a full multi-warehouse inventory system with verified stock-quantity APIs beyond documented product catalog fields.
- Invented SmartPOS or mPOS features for age verification, ID scanning, or state hemp rules.
- Processor pricing, interchange claims, or unstated Tap to Pay processor rollouts beyond the tables in KA-08236.
- Legal conclusions about which SKUs may be sold in-store versus online in any jurisdiction.
Those omissions keep the piece useful for developers who need integration boundaries without fake certainty.
Sources
- NMI, NMI Enters the Smart Terminal Market with SmartPOS Solution (July 21, 2026).
- NMI Docs, SmartPOS / Axium transaction flow.
- NMI Support, Product Manager via API.
- NMI Docs, Product Management (Payment API reference).
- NMI Support, Customer Vault.
- NMI Docs, Customer Vault.
- Authorize.Net Support, What is the Mobile Point of Sale (mPOS) app and how to use it? (KA-08236).
- Authorize.Net, Virtual Point of Sale (VPOS).
- Authorize.Net Developer, Customer Profiles.
- Authorize.Net Support, How to use Customer Information Manager (CIM)? (KA-07407).