MPOS Hardware
Microsoft do not give recommendations on hardware, but they have tested some hardware. I also can share what is working for a scenario where an offline database on the MPOS should be installed. HP RP9 G1 AiO Retail System, Model 9018







Payment terminals
Building payment connectors is time consuming, but Microsoft have provided documentation and samples that is available her. For me, I prefer ISV solutions for this.
Additional Scanners


Generic preparation recommendations when having issues
In the following chapter is some preparation steps that you should be prepared to do.Install TeamViewer on the MPOS device
To make sure that a professional quickly can analyze the device, we always try to use or install team viewer on the RSSU and MPOS devices. This makes it possible to access the machines. Please follow security precautions when using TeamViewer.Start collecting information
Dynamics 365 for Retail contains a comprehensive set of events that is logged in the system, and that is available for IT resources. Please check out the following pages for additional steps to troubleshoot. https://docs.microsoft.com/en-us/dynamics365/unified-operations/retail/dev-itpro/retail-component-events-diagnostics-troubleshooting The following section contains issues experienced with manually installing Dynamics 365 MPOS. If you cannot figure it out quickly, create a Microsoft support request as fast as you can. Normally Microsoft responds fast and can give recommendations quite quickly, but often they will need information on the actual machine to see if there are issues related to software and hardware. MPOS and RSSU is logging a tremendous set of information that is relevant for a support case. Take pictures, screen dumps and collect data.Event logs
Always look into the event logs on the MPOS and the RSSU. Also learn to export the event logs as they can give valuable information on what is wrong. The following event logs are of interest. • Windows > Application • Windows > Security • Windows > System • Application and Services Logs > MPOS/Operational
Machine information
Collect Microsoft System Information, such as devices that are installed in the MPOS or device drivers loaded, and provides a menu for displaying the associated system topic. To collect this data do- Run a Command Prompt as an Administrator
- Execute MSINFO32.exe
- Go to Menu File > Save as machine.nfo
Backups of the local database
Take backups of the RSSU and local database, as this can be handy to analyze the data composition of the database. Some times Microsoft will ask for exact database version and information like:-
What version of SQL is this?Further, is this Standard, Enterprise, Express, etc.? => Run query select @@version and share the resulting string.
- How large is the SQL DB at this time?
- Plenty of space available on the hard drive still?
- What is the current size of the offline database and RetailChannelDatabase log file?
- Operating system is Windows 10 Enterprise LTSB with separate disk for SQL. SSD disks is highly recommended!
- SQL Server 2016 standard edition with full text search installed locally on server. – I would not recommend SQL Express on a RSSU with multiple MPOS’es installed.
- Install .NET 3.5 ,4.6, IIS and run Windows update before setup
- Make sure that SSL certificates(RSSU and MPOS) have been installed and setup on the machine. Remember to add them to you Azure account
- Verify that you have an Azure AD credentials that you can use to sign in to Retail headquarters.
- Verify that you have administrative or root access to install Retail Modern POS on a device.
- Verify that you can access the Retail Server from the device. (like ping with https://XXX.YY.ZZ/RetailServer/healthcheck?testname=ping)
- Verify that the Microsoft Dynamics 365 for Retail, Enterprise edition, environment contains the Retail permission groups and jobs in the Human resources module. These permission groups and jobs should have been installed as part of the demo data.
Set Async interval on RSSU
This has been described in a previous blogpost.Installation of MPOS issues
There are a number of pre-requisites that needs to be followed that is available on Microsoft DOCS. Read them very carefully and follow them to the letter. Do not assume anything unless stated in the documentation. Also read https://docs.microsoft.com/en-us/dynamics365/unified-operations/retail/dev-itpro/retail-device-activation. Here are my additional tips:When having customizations or extensions
If you have made extensions, remember to make sure that the developer that have made the deployable package have build the package with “configuration = Release”. There are scenario’s where the MPOS installation can give issues like this.
Having the right local SQL express with the right user access on the MPOS
If you are making a retail POS image (With Windows and SQL preinstalled), please make sure to select the right SQL version(Currently SQL 2014 SP2). If SQL express is not already installed, then the MPOS installer will automatically download and install it. But the file is 1.6 Gb, and it is therefore recommended to manually install the SQL express, or have it as part of the standard image. SQL Express is available her, and select the SQLEXPRADV_x64_ENU.exe
Cannot download MPOS package from Dynamics 365
If you try to manually download the installation package, windows explorer have been setup to sometimes deny this.
Cannot install the MPOS Offline package
When installing the MPOS the following error may come. In many cases the user must be leveraged to administrator. If you receive the following error, it means that the version you are installing is older than the existing version, and the current version must be uninstalled first. Do not try to install a higher version than is deployed in your Cloud RSSU default database, as this is not supported. Also if you need to “down-grade” a MPOS, then uninstall the MPOS first, and then reinstall the older release.
PowerShell scripts for manual uninstalling of MPOS
In 95% of any situation, just uninstalling the MPOS app should work. But if you are out of options, Microsoft have created an uninstall powershell script. Cd “C:\Program Files (x86)\Microsoft Dynamics 365\70\Retail Modern POS\Tools” Uninstall-RetailModernPOS.ps1 I often experience that we need to run the uninstall in the following sequence: 1. Run it as a local administrator 2. Then a “uninstall” icon appears on the desktop, that we need to click on 3. Run it again as a local administrator Then the MPOS is gone, and you can reinstall the correct MPOS.Connectivity issues
Here are some tips on connectivity issues, and how to solve them.MPOS is slow to log in
When starting the MPOS, it sometimes can use a few seconds before available. We see this, it you typical have a slow internet connection with high latency. The MPOS is doing some stuff towards the cloud, and this just takes time.MPOS cannot go online after being offline
I think this behavior currently is some bug that can happen in certain situations and if the RSSU looses internet connectivity. Microsoft are investigating the causes. If not possible to go online after the MPOS have been in offline, it is possible to reactivate the MPOS to get online. In the event log you may see issues like this : “UpsertAndValidateShifts”
MPOS cannot connect with the payment connector
The following is mainly related to some issues that could be happening if having a third party payment connector using PINPAD. In most generic cases this is not relevant for those that is using standard or other payment connectors.

Retail offline database exceeds 10 Gb limit
To ensure that a POS don’t exceed the SQL Express 10 Gb disk restrictions, I have created a SQL script that reduces size of the log file. Please evaluate to implement on all POS’es. BACKUP DATABASE [RetailOfflineDatabase] TO DISK = N’Nul’ WITH NOFORMAT, NOINIT, NAME = N’RetailOfflineDatabase-Full Database Backup’, SKIP, NOREWIND, NOUNLOAD, STATS = 10 USE [RetailOfflineDatabase] GO DBCC SHRINKFILE (N’RetailOfflineDatabase_log’ , 0, TRUNCATEONLY)Getting strange errors like “The channel does not exist or was not published”
In some rare situations you could experience getting errors like.
Getting strange errors like “A database error occurred”
We have also experienced this when the RSSU is overloaded. Remember that the Microsoft recommendation on the RSSU hardware needs to be scaled accordingly to hos many MPOS’es is connected and how much data and transaction volume. Get an SQL expert to evaluate the setup of the RSSU prior to go live and remember to volume test the setup.

Getting strange errors like “We where unable to obtain the card payment accept page URL”
We have also experienced the following issue. The solution was simple; Remember to enable the local hardware station on the MPOS.
Getting strange errors like “StaffId”, when returning a transaction
In a situation where there are connection between the MPOS and the RSSU, but the RSSU don’t have a connection to the cloud, AND you perform a “return transaction”. You may get the following error.
Keep and eye on your devices.
In the menu item Channel client connection status you can see last time each device was connected.
Functional issues
With functional issues I refer to issues that is related to user errors and more functional issues that can occure.Dynamics 365 for Retail on version 8
Even though version 8 have been launched for Dynamics 365 for Finance and Operations, I have not seen that Retail yet(10 may 2018) is supported on version 8. So before going forward on version 8, please check with Microsoft support.Barcode scanned as tendered currency amount
This is a funny issue, that can occur. Some background story is in place here. A customer wants to pay for the product in another currency, and the cashier selected the “pay currency” on the MPOS, ready to key in the amount that the customer is paying. But unfortunately, the cashier scanned the product barcode, and then the MPOS committed the sale as the customer had paid 7.622.100.917,80 in currency, and should have 5.707.750.079.417 in return (local currency). Lesson learned; Always remember to set the parameters “Overtender maximum amount” and the Amounts fields.
Cannot post retail statement, because of a rounding issue.
This is a known issue, and Microsoft have a hotfix for this. Always make sure you periodically update you system with the latest hotfixes. Here is my small tip on this; Try 4-5 time to click on post, and then it suddenly goes though and get’s posted. We do not know why ??Retail statement (Legacy) and Retail Statement
In version 7.3.2, Microsoft released a new set of functionality for calculating and posting retail statements. You can read more about it her. Microsoft recommend that you use the Retail statements configuration key for the improved statement posting feature, unless you have compelling reasons to use the Retail statements (legacy) configuration key instead. Microsoft will continue to invest in the new and improved statement posting feature, and it’s important that you switch to it at the earliest opportunity to benefit from it. The legacy statement posting feature will be deprecated in a future release.
Access hidden Retail menu items.
The form “Retail Store transactions” contains all retail transactions that is received from the MPOS/RSSU’s, and here you will find, sales, logins, payments etc. This first step for any user should be to personalize this form, and only show the relevant fields and columns(Not done here).






Sales transactions(items) | &mi=RetailTransactionSalesTrans |
Payment transactions | &mi=RetailTransactionPaymentTrans |
Discount transactions | &mi=RetailTransactionDiscountTrans |
Income/Expense transactions | &mi=RetailTransactionIncomeExpenseTrans |
Info code transactions | &mi=RetailTransactionInfocodeTrans |
Banked declaration transactions | &mi=RetailTransactionBankedTenderTrans |
Safe tender transactions | &mi=RetailTransactionSafeTenderTrans |
Loyalty card transactions | &mi=RetailTransactionLoyaltyRewardPointTrans |
Order/Invoice transactions | &mi=RetailTransactionOrderInvoiceTrans |
Unit conversion between <unit 1> and <unit 2> does not exist.
If you use Retail Kitting, and have kits with intraclass unit conversions, then there is an issue, that Microsoft is working on. This is scenarios where the included kit line is stocked in pcs and consumed in centiliters. Luckily Microsoft is working on this, and we expect a fix on this.Wrong date format on the POS receipt.
In EN-US we have the date format MM/DD/YYYY. In Europe we use DD/MM/YYYY. The date format on the receipt is controlled by the language code defined on the store. We often prefer to have EN-US as the language on stores, but this gets wrong date format. Therefore to get the right date format on the receipt, you either have to maintain product names/descriptions in multiple languages (like both EN-US and EN-GB), and specify that the languageon the POS store should be EN-GB. We are working on finding a better and more permanent solution to this.Dual display.
Microsoft writes: “When a secondary display is configured, the number 2 Windows display is used to show basic information. The purpose of the secondary display is to support independent software vendor (ISV) extension, because out of the box, the secondary display isn’t configurable and shows limited content. ” In short…. You have to create/develop it yourself in the project. This requires a skilled Retail developer that masters RetailSDK, C# and javascript.Credit Card payment with signature
In certain situations it could happen that the payment terminal is capable of processing the payment, but for some reason this is not closing the “waiting for customer payment”. In most cases this is related to the payment terminal being able to perform offline transactions, and then the payment terminal will print a receipt where the customer must sign. In such cases we have created a separate payment method called “pay with signature”, that is posted in exactly the same way as a credit card payment method. Then the cashier is able to continue the payment processing, and register that the payment was ok, and then print out the receipt.Something very wrong was done by the cashier, then suspend the transaction
If there for some reason, the cashier is not able to continue on the transaction, the casher have the option of suspending the transaction, and then continue. Then later, the POS experts can resume the transaction, and find out what went wrong.Setting up MPOS in tablet mode
The MPOS works very nice in tablet mode. But if you have dual display, the PC cannot be put into tablet mode. We have not found a way to fix, and if you know, please share.MPOS resolution and screen layout does not fit the screen
Do not just set the MPOS resolution to the screen resolution. If there is a “title bar”, you need to subtract that title bar height from the screen layout. This is important in scenarios where you have dual displays.
Use lock screen and not log off on the registers.
The log-out/in process to more “costly” from a resource perspective than the lock operation.
Keep the MPOS running (but logged out) when not using the device.
As the Dynamics 365 periodically sends new data to the MPOS offline database, this will be done through the day/night. Then the MPOS is “fit-for-fight” when the user logs in.Run Distribution jobs in batch
My guide lines on retail distribution jobs is that all Retail jobs will start with the R-prefix, followed by the number. Download distribution jobs will be R1000-1999. Upload Distribution jobs will be R2000-2999. Processing batch jobs will be R3000-3999. Retail supply chain processes will be named R4000-4999. There are a number of jobs distributing data from Dynamics 365 to the store databases (RSSU) and the offline databases. The jobs and suggested recurrence I suggest isName | Description | Recurrence | Time |
1000 | R1000-Currency | Daily | 04:00 |
1010 | R1010-Customers | Daily | 04.00 |
1020 | R1020-Prices and discounts | Every 60 minutes | nn.05 |
1030 | R1030-Info code information | Daily | 04:00 |
1040 | R1040-Products | Every 60 minutes | xx.04 |
1050 | R1050-Loyalty information | Every 60 minutes | xx.07 |
1060 | R1060-Staff | Every 60 minutes | xx.09 |
1070 | R1070-Channel configuration | Daily | 04:00 |
1080 | R1080-Tax | Daily | 04:00 |
1090 | R1090-Registers | Daily | 04:00 |
1095 | R1095-Offline database configuration | – | |
1100 | R1100-Product and price parameters | Daily | 04:00 |
1110 | R1110-Global configuration | Daily | 04:00 |
1115 | R1115-Global address book reference data |