A multi-merchant terminal allows several business entities to process payment cards on a single terminal, with each business having a separate merchant account. The payment terminal communicates its merchant configuration to the PSDK during initialization.
When there are multiple merchants supported on the terminal, the POS needs to select one
of the merchants when logging in. The POS can select a merchant prior to login by
calling :java:ref:PaymentSdk.getDeviceInformation().getMerchantConfig()` to access an
array of sponsored merchants. The field
Merchant.mRecordId contains the
reference id to the merchant to include in the login credentials.
The POS can also perform a login without specifying a merchant.
If the terminal supports multiple merchants, it will reject this login and send a user
input event with text content “Please select the merchant”, as well as an array of menu
entries containing the common names of all of the sponsored merchants supported by
the terminal. This may be accessed at
UserInputEvent.getRequestParameters().getContent(). At this point, the POS
must select one of the menu entries corresponding to the desired merchant (see
UserInputEvent.getRequestParameters().getMenuEntries()) and return the menu
UserInputEventResponse to the PSDK, which in turn resends the
original login request with the selected merchant identifier added to the credentials.