# Multi-MID
# General Overview
Multi-MID is a feature that allows for a single physical terminal to be associated with multiple merchant accounts. This is used for businesses like salons where each stylist has their own business and a unique MerchantID.
Merchants can easily swap between MIDs by switching the user on the device. To do this, you can click on the the current user option in the top right corner from your Home Screen and select user.
This will swap the MID so that all transactions will be associated with an employees' MID.
You will also be able to see the store name in the top left corner change when you swap, which indicates the change in MIDs.
# Multi-MID Configuration
Any developer device/emulator can be converted into a muli-MID device for development purposes. To do so, please follow the steps outlined below.
- Create two test merchants with the same acquirer.
NOTE
If the merchant accounts do not use the same acquirer, the multi-MID activation will fail.
- Activate the terminal using the first test merchant account.
TIP
You can do so by scanning the QR code or entering the MID and TID information manually. You can refer to our Terminal Activation section.
- Once the terminal is active, you must unlock the GoDaddy Poynt Developer settings.
WARNING!
Most of these settings should not be modified. Changing them could render the terminal unusable.
Follow the path Settings > About and tap on PoyntOS 10 times to get a message saying that the Developer Preferences have been enabled.
Go back to the Settings screen and follow the path Developer Preferences > Payments/Add Merchant > Terminal Id.
Make sure the right acquirer is selected in the drop-down and enter the MID and TID associated with your second test account, and tap on the Add button.
TIP
You can find the MID and TID for the second test merchant in Poynt HQ.
If the activation is successful, you should see a Select User screen which will now contain the list of terminal users from the second test merchant.
If you don't see this screen, check the device logcat and search for "/activate." The log lines surrounding this will have an error message explaining the failure reason.
To change between test merchant #1 and test merchant #2, use the Switch User button on the terminal home screen.
NOTE
We recommend using descriptive names when creating terminal users in each of the test merchant accounts, which will allow you to identify the test merchant you are using to log in.
# Integration
# Multi-MID Terminal Verification
To determine if your application is running on a multi-MID device, you may call IPoyntBusinessService.getAllBusinesses() (opens new window). In your callback's onResponse() (opens new window) check if the List of Business Objects contains more than 1 element, and if it does, it will confirm that the terminal is set up as a multi-MID device.
When a terminal user switch occurs, Poynt broadcasts the event poynt.intent.action.ACCOUNT_LOGIN
. Your application should have a BroastcastReceiver class listening to this event and triggering an IPoyntBusinessService.getBusiness() (opens new window) call to determine if the merchant switch has occurred, and therefore updating the state of your application.
<receiver
android:name=".LoginReceiver"
android:exported="true">
<intent-filter>
<action
android:name="poynt.intent.action.ACCOUNT_LOGIN"/>
</intent-filter>
</receiver>
If Merchant A installed a gift card application and used it to reload a customer's card. Whenever Merchant B logs in, the gift card app should receive the ACCOUNT_LOGIN
event.
In this case, check if the other merchant is logged in now and present a sign-in screen (assuming that merchant B also uses the same gift card application) or a registration screen. When merchant A logs back in, the app should recognize that this merchant was already logged in.