> For the complete documentation index, see [llms.txt](https://developer.magtek.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.magtek.com/hardware/card-readers/mms-dyna-devices/dynaflex-ii-go/documentation/developers-manuals/programmers-manual-commands/notifications/user-interface/operation-complete.md).

# Operation Complete

## Notification 0x1805 - User Interface Operation Complete

This notification requests that the host take action during operations involving the device’s User Interface modules.

&#x20;For this notification, Notification Detail described in Notification Message contains one byte each, shown in Table 350, to indicate:

* The User Interface Module (UI) involved
* The Reason (Rsn) for the notification (UI Event)
* Detail (Det) about the notification that has different meanings depending on the Reason, and
* An Extra field (Ext) that has different meanings depending on the Reason.

## Table - Notification Detail Codes

{% hint style="info" %}
Module 0x00 Miscellaneous contains UI notification detail codes that are not specific to a particular UI module.
{% endhint %}

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th><th valign="top"></th><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top">UI</td><td valign="top">Rsn</td><td valign="top">Det</td><td valign="top">Ext</td><td valign="top">Meaning</td></tr><tr><td valign="top"> </td><td valign="top"> </td><td valign="top"> </td><td valign="top"> </td><td valign="top"> </td></tr></tbody></table>

### Module 0x01 (Touchscreen only)

{% hint style="info" %}
Module 0x01 Touchscreen contains UI notification detail codes that are specific to the touchscreen module (Touch Only).

* Reason 0x01 = Signature Capture
* Reason 0x02 = Functional button selected
* Reason 0x03 = Button text string selected
* Reason 0x04 = Button $Amount selected
* Reason 0x05 = Present card functional button Right is selected
  {% endhint %}

<table data-header-hidden><thead><tr><th width="75.3636474609375" valign="top"></th><th width="78.00006103515625" valign="top"></th><th width="67.0909423828125" valign="top"></th><th width="81.18182373046875" valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top">UI</td><td valign="top">Rsn</td><td valign="top">Det</td><td valign="top">Ext</td><td valign="top">Meaning</td></tr><tr><td valign="top">01</td><td valign="top">02</td><td valign="top">01</td><td valign="top">00</td><td valign="top">Touchscreen, Functional button Left selected</td></tr><tr><td valign="top">01</td><td valign="top">02</td><td valign="top">02</td><td valign="top">00</td><td valign="top">Touchscreen, Functional button Middle selected</td></tr><tr><td valign="top">01</td><td valign="top">02</td><td valign="top">03</td><td valign="top">00</td><td valign="top">Touchscreen, Functional button Right selected</td></tr><tr><td valign="top">01</td><td valign="top">03</td><td valign="top">01</td><td valign="top">00</td><td valign="top">Touchscreen, Text string button 1 selected</td></tr><tr><td valign="top">01</td><td valign="top">03</td><td valign="top">02</td><td valign="top">00</td><td valign="top">Touchscreen, Text string button 2 selected</td></tr><tr><td valign="top">01</td><td valign="top">03</td><td valign="top">03</td><td valign="top">00</td><td valign="top">Touchscreen, Text string button 3 selected</td></tr><tr><td valign="top">01</td><td valign="top">03</td><td valign="top">04</td><td valign="top">00</td><td valign="top">Touchscreen, Text string button 4 selected</td></tr><tr><td valign="top">01</td><td valign="top">03</td><td valign="top">05</td><td valign="top">00</td><td valign="top">Touchscreen, Text string button 5 selected</td></tr><tr><td valign="top">01</td><td valign="top">03</td><td valign="top">06</td><td valign="top">00</td><td valign="top">Touchscreen, Text string button 6 selected</td></tr><tr><td valign="top">01</td><td valign="top">04</td><td valign="top">00</td><td valign="top">00</td><td valign="top">Touchscreen, $Amount button selected, Data Attached contain the amount selected as described in Table - Notification Payload for $ Amount button selected, Data Attached</td></tr><tr><td valign="top">01</td><td valign="top">05</td><td valign="top">00</td><td valign="top">00</td><td valign="top">Touchscreen, Present card functional button Right selected</td></tr></tbody></table>

### Module 0x02 (Display Only)

{% hint style="info" %}
Module 0x02 Display contains UI notification detail codes that are specific to the display module. The device primarily uses these notifications to request that the host stand in as a display to interact with cardholders / operators when the device does not have a display of its own or the display is configured with Property 1.2.3.1.2.3 Send UI notifications along with showing message on the display.&#x20;

* Reason 0x01 = Display Message Request
* Reason 0x02 = Cardholder Selection Request
  {% endhint %}

<table data-header-hidden><thead><tr><th width="49.90911865234375" valign="top"></th><th width="55.81817626953125" valign="top"></th><th width="51.272705078125" valign="top"></th><th width="50.45452880859375" valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top">UI</td><td valign="top">Rsn</td><td valign="top">Det</td><td valign="top">Ext</td><td valign="top">Meaning</td></tr><tr><td valign="top"><p> </p><p>02</p></td><td valign="top"><p> </p><p>01</p></td><td valign="top"><p> </p><p>00</p></td><td valign="top"><p> </p><p>00</p></td><td valign="top"><p>Display, Display Message, No Data Attached, Clear Display.</p><p>The host should clear any existing messages it is currently displaying.</p></td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>02</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>01</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>01</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>00</p></td><td valign="top"><p>Display, Display Message, Data Attached, No Cancel Function</p><p>In this case, the notification includes additional data and display control, defined in Table - Notification Payload for Display Message Request Notifications, in the Notification Payload portion of the Notification Message.</p><p>This notification is for simple messages. The host should show the requested message until another notification arrives or until the host needs to use the display for its own purposes. For example, during a transaction, this notification will pass along the simple messages in the transaction sequence like CARD READ OK - REMOVE CARD , THANK YOU , and WELCOME .</p></td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>02</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>01</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>02</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>00</p></td><td valign="top"><p>Display, Display Message, Data Attached, Include Cancel Function </p><p>In this case, the notification includes additional data and display control, defined in Table - Notification Payload for Display Message Request Notifications, in the Notification Payload portion of the Notification Message.</p><p> </p><p>The host should show the requested message and should allow the request to be canceled by a cardholder or operator. For example, during a transaction, this notification will pass along the simple messages in the transaction sequence like “TAP, INSERT, or SWIPE CARD,” where cancelation is appropriate. If the cancel button involves canceling the whole transaction, the host should send Command 0x1008 - Cancel Transaction.</p></td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p>02</p></td><td valign="top"><p> </p><p> </p><p> </p><p>02</p></td><td valign="top"><p> </p><p> </p><p> </p><p>00</p></td><td valign="top"><p> </p><p> </p><p> </p><p>00</p></td><td valign="top"><p>Display, Cardholder Selection, Data Attached, Reserved </p><p>In this case, the notification includes additional data and display control, defined in</p><p>Table - Notification Payload for Cardholder Selection Notifications (No Display Only), in the Notification Payload portion of the Notification Message.</p><p>The host should show the requested selection, then send Command 0x1802 - Report Cardholder Selection to device to return the cardholder’s selection to the device.</p></td></tr></tbody></table>

### Module 0x04 (Barcode Reader)

{% hint style="info" %}
Module 0x04 Barcode Reader contains notification detail codes that are specific to the barcode reader module.

Reason 0x03 = Read Barcode Result
{% endhint %}

<table data-header-hidden><thead><tr><th width="58.09088134765625"></th><th width="52.90911865234375"></th><th width="44.727294921875"></th><th width="48.72735595703125"></th><th></th></tr></thead><tbody><tr><td>UI</td><td>Rsn</td><td>Det</td><td>Ext</td><td>Meaning</td></tr><tr><td>04</td><td>03</td><td>01</td><td>00</td><td><p>Barcode Reader, Read Barcode Result, Success, Unidentified Type</p><p>The barcode reader has successfully read a barcode.  In this case, the device includes barcode data in the Notification Payload portion of the Notification Message.  If the data is encrypted, the data is in the format described in Table 7.4‑5.  Data that is not encrypted is in the format described in Table 7.4‑6.</p></td></tr><tr><td>04</td><td>03</td><td>01</td><td>01</td><td><p>Barcode Reader, Read Barcode Result, Success, MagTek Blob Type</p><p>The barcode reader has successfully read a barcode.  In this case, the device includes barcode data in the Notification Payload portion of the Notification Message.  MagTek Blob data is always encrypted.  The data is in the format described in Table 7.4‑5.</p></td></tr><tr><td>04</td><td>03</td><td>01</td><td>02</td><td><p>Barcode Reader, Read Barcode Result, Success, EMV Type</p><p>The barcode reader has successfully read a barcode.  In this case, the device includes barcode data in the Notification Payload portion of the Notification Message.  EMV barcode data is always encrypted.  The data is in the format described in Table 7.4‑5.</p></td></tr><tr><td>04</td><td>03</td><td>02</td><td>01</td><td>Barcode Reader, Read Barcode Result, Operation Failed, Timeout</td></tr></tbody></table>

### Module 0x05 Buzzer&#x20;

{% hint style="info" %}
Module 0x05 Buzzer contains notification detail codes that are specific to the buzzer module.

Reason 0x04 = Buzzer Result
{% endhint %}

<table data-header-hidden><thead><tr><th width="49.9090576171875"></th><th width="55.81817626953125"></th><th width="56.72723388671875"></th><th width="62.9091796875"></th><th></th></tr></thead><tbody><tr><td>UI</td><td>Rsn</td><td>Det</td><td>Ext</td><td>Meaning</td></tr><tr><td>05</td><td>04</td><td>01</td><td>00</td><td>Buzzer, Buzzer Result, Operation Success, Reserve</td></tr><tr><td>05</td><td>04</td><td>02</td><td>00</td><td>Buzzer, Buzzer Result, Operation Fail, Reserve</td></tr></tbody></table>

### Module 0x06 Card Emulation&#x20;

{% hint style="info" %}
Module 0x06 Card Emulation contains notification detail codes that are specific to card emulation.

Reason 0x05 = Card Emulation Result
{% endhint %}

<table data-header-hidden><thead><tr><th width="57.18182373046875"></th><th width="52.90911865234375"></th><th width="51.0909423828125"></th><th width="67.54547119140625"></th><th valign="top"></th></tr></thead><tbody><tr><td>UI</td><td>Rsn</td><td>Det</td><td>Ext</td><td valign="top">Meaning</td></tr><tr><td>06</td><td>05</td><td>01</td><td>00</td><td valign="top">Card Emulation, Card Emulation Result, Operation Success, Reserve</td></tr><tr><td>06</td><td>05</td><td>02</td><td>01</td><td valign="top">Card Emulation, Card Emulation Result, Operation Fail, Timeout</td></tr><tr><td>06</td><td>05</td><td>02</td><td>03</td><td valign="top">Card Emulation, Card Emulation Result, Operation Fail, Cancel</td></tr><tr><td>06</td><td>05</td><td>02</td><td>04</td><td valign="top">Card Emulation, Card Emulation Result, Operation Fail, Error</td></tr></tbody></table>

### Module 0x07 LED

{% hint style="info" %}
Module 0x07 LED contains notification detail codes that are specific to the LED module.\
• Reason 0x06 = LED Result
{% endhint %}

<table data-header-hidden><thead><tr><th width="57.18182373046875"></th><th width="52.90911865234375"></th><th width="51.0909423828125"></th><th width="67.54547119140625"></th><th valign="top"></th></tr></thead><tbody><tr><td>UI</td><td>Rsn</td><td>Det</td><td>Ext</td><td valign="top">Meaning</td></tr><tr><td>07</td><td>06</td><td>01</td><td>00</td><td valign="top">LED Result, LED 1 Operation, Success</td></tr><tr><td>07</td><td>06</td><td>01</td><td>01</td><td valign="top">LED Result, LED 1 Operation, Fail</td></tr><tr><td>07</td><td>06</td><td>02</td><td>03</td><td valign="top">LED Result, LED 2 Operation, Success</td></tr><tr><td>07</td><td>06</td><td>02</td><td>01</td><td valign="top">LED Result, LED 2 Operation, Fail</td></tr><tr><td>07</td><td>06</td><td>03</td><td>00</td><td valign="top">LED Result, LED 3 Operation, Success</td></tr><tr><td>07</td><td>06</td><td>03</td><td>01</td><td valign="top">LED Result, LED 3 Operation, Fail</td></tr><tr><td>07</td><td>06</td><td>04</td><td>00</td><td valign="top">LED Result, LED 4 Operation, Success</td></tr><tr><td>07</td><td>06</td><td>04</td><td>01</td><td valign="top">LED Result, LED 4 Operation, Fail</td></tr></tbody></table>

## Table - Notification Payload for Barcode Reader, Read Barcode Result, Success (Encrypted Data Attached)

<table data-header-hidden><thead><tr><th width="97.90911865234375"></th><th width="59.81817626953125"></th><th></th><th width="56.0909423828125"></th><th width="59.181884765625"></th><th width="81.3636474609375"></th></tr></thead><tbody><tr><td>Tag</td><td>Len</td><td>Value/Description</td><td>Typ</td><td>Req</td><td>Default</td></tr><tr><td></td><td></td><td>Beginning of Notification Message</td><td></td><td></td><td></td></tr><tr><td></td><td></td><td>1805 = User Interface Operation Complete</td><td></td><td></td><td></td></tr><tr><td>84</td><td>var</td><td>Notification Payload</td><td>B</td><td>R</td><td> </td></tr><tr><td>/DFDF59</td><td>var</td><td><p>Encrypted Data Primitive</p><p> </p><p>Decrypt the value of this TLV data object using the algorithm and variant specified in the Encrypted Data KSN parameter and the Encrypted Data Encryption Type parameter to read its contents.  The format of the decrypted data is shown in Table 7.4‑6.</p></td><td>B</td><td>R</td><td> </td></tr><tr><td>/DFDF50</td><td>var</td><td>Encrypted Data KSN</td><td>B</td><td>R</td><td> </td></tr><tr><td>/DFDF51</td><td>01</td><td><p>Encrypted Data Encryption Type</p><p>See section 4.4 Encryption Type for a list of valid values.</p></td><td>B</td><td>R</td><td> </td></tr><tr><td></td><td></td><td>End of Notification Message</td><td></td><td></td><td></td></tr></tbody></table>

## Table - Notification Payload for Barcode Reader, Read Barcode Result, Success (Unencrypted Data)

| Tag   | Len | Value / Description    | Typ | Req | Default |
| ----- | --- | ---------------------- | --- | --- | ------- |
| FC    | var | Barcode Data Container | T   | R   |         |
| /DF74 | var | Barcode Data           | B   | O   |         |

## Table – Default User Interface String IDs and Strings

<table data-header-hidden><thead><tr><th width="181.27276611328125"></th><th></th></tr></thead><tbody><tr><td>Display String ID</td><td>Display String</td></tr><tr><td>0x0000</td><td>“ ”</td></tr><tr><td>0x0001</td><td>“Thank You”</td></tr><tr><td>0x0002</td><td>“Hello”</td></tr><tr><td>0x0003</td><td>“Please Select”</td></tr><tr><td>0x0004</td><td>“Touch Screen To Continue”</td></tr><tr><td>0x0005</td><td>“Cancel”</td></tr><tr><td>0x0006</td><td>“Select a Transaction”</td></tr><tr><td>0x0007</td><td>“Deposit”</td></tr><tr><td>0x0008</td><td>“Withdrawal”</td></tr><tr><td>0x0009</td><td>“Choose PIN”</td></tr><tr><td>0x000A</td><td>“Change PIN”</td></tr><tr><td>0x000B</td><td>“Balance”</td></tr><tr><td>0x000C</td><td>“Cash Advance”</td></tr><tr><td>0x000D</td><td>“Authenticate Me”</td></tr><tr><td>0x000E</td><td>“Transfer”</td></tr><tr><td>0x000F</td><td>“Make Payment”</td></tr><tr><td>0x0010</td><td>“On Sale”</td></tr><tr><td>0x0011</td><td>“Discount”</td></tr><tr><td>0x0012</td><td>“Clearance”</td></tr><tr><td>0x0013</td><td>“$5.00 /5 Mins.”</td></tr><tr><td>0x0014</td><td>“$6.00 /7 Mins.”</td></tr><tr><td>0x0015</td><td>“$7.00 /9 Mins.”</td></tr><tr><td>0x0016</td><td>“$8.00 /15 Mins.”</td></tr><tr><td>0x0017</td><td>“Call Attendant”</td></tr><tr><td>0x0018</td><td>“Print Receipt”</td></tr><tr><td>0x0019</td><td>“Email Receipt”</td></tr><tr><td>0x001A</td><td>“Text Receipt”</td></tr><tr><td>0x001B</td><td>“Please Select An Amount”</td></tr><tr><td>0x001C</td><td>“Please Select A Tip Amount”</td></tr><tr><td>0x001D</td><td>“Menu Selection 1”</td></tr><tr><td>0x001E</td><td>“Menu Selection 2”</td></tr><tr><td>0x001F</td><td>“Menu Selection 3”</td></tr><tr><td>0x0020</td><td>“Menu Selection 4”</td></tr><tr><td>0x0021</td><td>“Service Request”</td></tr><tr><td>0x0022</td><td>“Show More”</td></tr><tr><td>0x0023</td><td>“Options”</td></tr><tr><td>0x0024</td><td>“What is the issue?”</td></tr><tr><td>0x0025</td><td>“Exit”</td></tr><tr><td>0x0026</td><td>“No Hot Water”</td></tr><tr><td>0x0027</td><td>“Doesn't Spin”</td></tr><tr><td>0x0028</td><td>“Water Leakage”</td></tr><tr><td>0x0029</td><td>“No Heat”</td></tr><tr><td>0x002A</td><td>“Please select a Machine”</td></tr><tr><td>0x002B</td><td>“Pump 1”</td></tr><tr><td>0x002C</td><td>“Pump 2”</td></tr><tr><td>0x002D</td><td>“Pump 3”</td></tr><tr><td>0x002E</td><td>“Pump 4”</td></tr><tr><td>0x002F</td><td>“A1”</td></tr><tr><td>0x0030</td><td>“A2”</td></tr><tr><td>0x0031</td><td>“A3”</td></tr><tr><td>0x0032</td><td>“A4”</td></tr><tr><td>0x0033</td><td>“B1”</td></tr><tr><td>0x0034</td><td>“B2”</td></tr><tr><td>0x0035</td><td>“B3”</td></tr><tr><td>0x0036</td><td>“B4”</td></tr><tr><td>0x0037</td><td>“C1”</td></tr><tr><td>0x0038</td><td>“C2”</td></tr><tr><td>0x0039</td><td>“C3”</td></tr><tr><td>0x003A</td><td>“C4”</td></tr><tr><td>0x003B</td><td>“$5.50 – Cake”</td></tr><tr><td>0x003C</td><td>“$5.00 – Muffin”</td></tr><tr><td>0x003D</td><td>“$6.50 – Croissant”</td></tr><tr><td>0x003E</td><td>“$4.50 – Danish”</td></tr><tr><td>0x003F</td><td>“Req. QR Code”</td></tr><tr><td>0x0040</td><td>“Scan QR Code”</td></tr><tr><td>0x0041</td><td>“Scan NFC”</td></tr><tr><td>0x0042</td><td>“Call Server”</td></tr><tr><td>0x0043</td><td>“Request Bill”</td></tr><tr><td>0x0044</td><td>“Approve”</td></tr><tr><td>0x0045</td><td>“Reject”</td></tr><tr><td>0x0046</td><td>“Verify SMS”</td></tr><tr><td>0x0047</td><td>“Verify Email”</td></tr><tr><td>0x0048</td><td>“English”</td></tr><tr><td>0x0049</td><td>“Spanish”</td></tr><tr><td>0x0080</td><td>“Hola”</td></tr><tr><td>0x0081</td><td>“Por Favor Seleccione”</td></tr><tr><td>0x0082</td><td>“Toca Para Continuar”</td></tr><tr><td>0x0083</td><td>“Cancelar”</td></tr><tr><td>0x0084</td><td>“Seleccione Una Transaccion”</td></tr><tr><td>0x0085</td><td>“Deposito”</td></tr><tr><td>0x0086</td><td>“Retiro”</td></tr><tr><td>0x0087</td><td>“Elija PIN”</td></tr><tr><td>0x0088</td><td>“Cambiar PIN”</td></tr><tr><td>0x0089</td><td>“Adelanto En Efectivo”</td></tr><tr><td>0x008A</td><td>“Autenticarme”</td></tr><tr><td>0x008B</td><td>“Verificar SMS”</td></tr><tr><td>0x008C</td><td>“Confirmar”</td></tr><tr><td>0x008D</td><td>“Mostrar Mas”</td></tr><tr><td>0x008E</td><td>“Opciones”</td></tr><tr><td>0x008F</td><td>“Salida”</td></tr><tr><td>0x0090</td><td>“Transferir”</td></tr><tr><td>0x0091</td><td>“Realizar Pago”</td></tr><tr><td>0x0092</td><td>“En Venta”</td></tr><tr><td>0x0093</td><td>“Descuento”</td></tr><tr><td>0x0094</td><td>“Autorizacion”</td></tr><tr><td>0x0095</td><td>“Operador De Llamada”</td></tr><tr><td>0x0096</td><td>“Imprimir Recibo”</td></tr><tr><td>0x0097</td><td>“Correo Electronico”</td></tr><tr><td>0x0098</td><td>“Recibo De Texto”</td></tr><tr><td>0x0099</td><td>“Seleccione Una Cantidad”</td></tr><tr><td>0x009A</td><td>“Anadir Un Consejo”</td></tr><tr><td>0x009B</td><td>“Requerido Codigo QR”</td></tr><tr><td>0x009C</td><td>“Escanear Codigo QR”</td></tr><tr><td>0x009D</td><td>“Escanear NFC”</td></tr><tr><td>0x009E</td><td>“Servidor De Llamadas”</td></tr><tr><td>0x009F</td><td>“Solicitar Factura”</td></tr><tr><td>0x00A0</td><td>“Aprobar”</td></tr><tr><td>0x00A1</td><td>“Rechazar”</td></tr><tr><td>0x00A2</td><td>“Gracias”</td></tr><tr><td>0x00A3</td><td>“Ingles”</td></tr><tr><td>0x00A4</td><td>“Espanol”</td></tr></tbody></table>

{% hint style="info" %}
String ID value can be from 0x0000 to 0x012B, and String length maximum is 30 characters. This default configured Strings can be changed and uploaded to the device
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developer.magtek.com/hardware/card-readers/mms-dyna-devices/dynaflex-ii-go/documentation/developers-manuals/programmers-manual-commands/notifications/user-interface/operation-complete.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
