Creating an `mposUi` Instance {#pax-aio-mposui-instance-create-intro}
=====================================================================

Use this information to create and configure an `mposUI` instance.

Create an `mposUI` Instance {#pax-aio-mposui-instance-create-task}
==================================================================

Before starting this procedure, you must obtain secret key and merchant ID (MID) values to enter in to your `mposUI` instance. For more information, see [Generating a Secret Key for an Existing Merchant ID](/docs/cybs/en-us/pax-all-in-one/integration/all/na/pax-all-in-one/pax-aio-get-started-intro/pax-aio-mid-secret-key-generate-intro.md ""). Create an `mposUI` instance to access the functionality of the PAX All-in-One Android SDK.  
Follow these steps to create an `mposUi` instance:

1. Create an `mposUi` instance using the `create` function.

2. Set the merchantId field value to the merchant ID that you obtained.

3. Set the merchantSecret field value to the secret key that you obtained.

4. Specify the environment by setting the providerMode field value to `TEST` or to `LIVE`.

   * Use the ProviderMode.TEST setting to test your integration without charging a real payment card. Use the merchant ID and secret key you obtained from the test environment.
   * Use the ProviderMode.LIVE setting to process live transactions. Use the merchant ID and secret key you obtained from the production environment.
5. Configure the accessory as PAX.

   ```
   val mposUi = MposUi.create( 
               providerMode = ProviderMode.LIVE, // ProviderMode.TEST 
               merchantId = "MerchantId", 
               merchantSecret = "SecretKey",
               terminalParameters = AccessoryParameters.Builder(AccessoryFamily.PAX).integrated().build()
           )
   ```

Configure an `mposUI` Instance {#pax-aio-uiconfig-create-intro}
===============================================================

To use the `mposUi` instance with the PAX All-in-One Android SDK, you must configure the `mposUi` instance by next creating a `UiConfiguration` instance.

Create a `UiConfiguration` Instance {#pax-aio-uiconfig-instance-configure-task}
===============================================================================

Use the `UiConfiguration` instance to configure the UI functionality of the PAX All-in-One Android SDK.  
You can configure these parameters in the `UiConfiguration` instance that you create:

* Configure these Summary screen features:
  * Refund a transaction (`REFUND_TRANSACTION`).
  * Send a receipt by email (`SEND_RECEIPT_VIA_EMAIL`).
  * Capture a transaction (`CAPTURE_TRANSACTION`).
  * Print a customer receipt (`PRINT_CUSTOMER_RECEIPT`).
  * Print a merchant receipt (`PRINT_MERCHANT_RECEIPT`).
  * Retry a failed transaction (`RETRY_TRANSACTION`).
  * Increment a transaction (`INCREMENT_TRANSACTION`).
  * Add a tip after a sale with on-receipt tipping `(ADJUST_TIP)`.
    {#pax-aio-uiconfig-instance-configure-task_ul_mkm_dm3_lyb}
* Configure the Summary screen so that it can be skipped (`SKIP_SUMMARY_SCREEN`) or so that it closes after 5 seconds (`CLOSE_AFTER_TIMEOUT`). The default setting is to display the Summary screen.
* Configure the signature capture so that it prints on the paper receipt (`ON_RECEIPT`) or is skipped (`NONE`). The default setting is on-screen signature capture.
* Configure the merchant receipt (MERCHANT_RECEIPT) or customer receipt (CUSTOMER_RECEIPT) to be printed automatically.
* Configure the accessibility mode.

{#pax-aio-uiconfig-instance-configure-task_ul_kpy_gl3_lyb}  
Follow this step to create and configure the `UiConfiguration` instance in your app:

1. Create the `UiConfiguration` instance.

   ```
   mposUi.configuration = UiConfiguration(  
     summaryFeatures = setOf(
               SummaryFeature.REFUND_TRANSACTION,
               SummaryFeature.SEND_RECEIPT_VIA_EMAIL,
               SummaryFeature.CAPTURE_TRANSACTION,
               SummaryFeature.PRINT_CUSTOMER_RECEIPT,
               SummaryFeature.PRINT_MERCHANT_RECEIPT,
               SummaryFeature.RETRY_TRANSACTION,
               SummaryFeature.INCREMENT_TRANSACTION
               SummaryFeature.ADJUST_TIP
         )
   // Use this to skip the summary screen
   // resultDisplayBehavior = UiConfiguration.ResultDisplayBehavior.SKIP_SUMMARY_SCREEN,
   // Use this to set signature capture to be on paper receipt
   // signatureCapture = SignatureCapture.ON_RECEIPT,
   // Use this to enable automatic receipt printing
   // automaticPrintingOption = AutomaticPrintingOption.MERCHANT_RECEIPT,
   // Use this to enable accessibility mode
   // accessibilityModeOption = AccessibilityModeOption.OPTION_VISIBLE,
   )
   ```

