FOSS Monero Point of Sale (POS) Android App
The app is designed to run specifically on the Alacrity MJ-Q50Plus device but should work on any Noryox NB55 based devices.
Warning
You should only communicate with the MoneroPay instance through a private and secure network
When running XMRpos for the first time you need to at least configure the MoneroPay endpoint. This can be done by:
- Tap on settings icon on the top right corner
- Tap on MoneroPay
- Change the MoneroPay address to the one you want to use.
If your device has a printer you have to configure it like this:
- Tap on settings icon on the top right corner
- Tap on printer settings
- Select the printer connection that your printer uses (NOTE: only Bluetooth is tested right now)
- Adjust the printer parameters if necessary
The payment flow is a 3 step process.
- Enter the amount in the
primaryFiatCurrency
and press the green button - Tell customers to scan the QR code or tap their phone against the card reader (which in this case emulates a NFC tag). The address, amount, and private note will get prefilled for most Monero wallet apps. The customer then sends the funds. Here you can also reference the
referenceFiatCurrencies
. - When the payment is done with either 0, 1, or 10 confirmations (configurable in settings) the app will automatically transfer you to this third screen where you have the choice to print out a receipt.
Here you can upload a logo which will be shown on the top of the receipt.
You can also change the company name which will appear just below the logo.
The contact information is also changeable from here and will appear just below the company name
At the bottom of the receipt is the receipt footer text which can also be changed here.
Here you can change the primaryFiatCurrency
and the referenceFiatCurrencies
Here you can enable and disable PIN codes on app start or to open settings. After enableing them, please use a PIN code you can remember because right now there is no way to reset them if you forget them.
All transactions which are successful are recorded to an internal database.
You can choose to export all of them as a CSV file (txId, xmrAmount, fiatValue, timestamp).
You can also choose to delete all transactions that are currently saved.
Here you enter the server address for your MoneroPay instance.
You can also choose to change the request interval which is how often the app will manually check the MoneroPay instance to look for changes instead of waiting for a callback
The number of required confirmations can also be changed here (0-conf, 1-conf or 10-conf)
Here you can choose the printer connection type of your printer (NOTE: Only Bluetooth is tested)
There are many parameters here that are changeable if your printer does not work out of the box.
The print test button prints a receipt the same way as it would be printed after a transaction, but with static values.
This guide will help you build and run XMRpos from source.
- Android Studio: Download and install Android Studio from here.
Start by cloning the repository to your local machine. Open a terminal and run the following command:
git clone https://github.com/MoneroKon/XMRpos
- Open Android Studio.
- Select Open an Existing Project.
- Navigate to the cloned XMRpos directory and then to the XMRpos subfolder and open the project.
Android Studio should automatically download the necessary dependencies when you open the project. If this doesn’t happen, manually sync the project with Gradle by following these steps:
- Go to File > Sync Project with Gradle Files.
- Wait for the sync to complete
If you are building for a specific variant (e.g., debug or release), you can configure the build variant:
- In Android Studio, open the Build Variants tab.
- Select the desired build variant (e.g.,
debug
orrelease
).
- Go to Build > Build APK(s).
- Wait for Android Studio to complete the build process.
Alternatively, you can build the APK using the terminal:
./gradlew assembleDebug # For Debug build
./gradlew assembleRelease # For Release build
The APK will be available in the app/build/outputs/apk/ directory.
Address:
42Za1V9t1PiPxYTj6UjogNiqaWYK1zMLuYBFFdUsqqvbGGKsw3KfNbkdwpd8QvyjPxGBBNNRJirKW9nyV4bqXvA7QMnS3Ax
Private View Key: 71472759ca4802d4f0f586edcf6d0f4cf4499708853ce097442b5b3090aaf00f
Height: 3321080