> 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/sdks-and-tools/universal-sdk-documentation/ios/data-classes.md).

# Data Classes

### BarCodeData

{% code overflow="wrap" %}

```
(instancetype) NewBarCodeData: (NSData*) data
                Ksn: (NSData*) ksn 
                encrypted: (BOOL) encrypted
                encryption: (Byte) encryption;
```

{% endcode %}

<table data-header-hidden><thead><tr><th width="176.54541015625" valign="top"></th><th width="164.5455322265625"></th><th></th></tr></thead><tbody><tr><td colspan="3" valign="top">BarCodeData</td></tr><tr><td valign="top">Member</td><td>Type/ Format</td><td>Description</td></tr><tr><td valign="top">Data</td><td>NSData*</td><td>Data payload</td></tr><tr><td valign="top">Encrypted</td><td>Bool</td><td>0x00 = data is not encrypted 0x01 = data is encrypted</td></tr><tr><td valign="top">EncryptionType</td><td>Byte</td><td>Encryption type</td></tr><tr><td valign="top">KSN</td><td>NSData*</td><td>Key Serial Number</td></tr><tr><td valign="top">NewBarCodeData()</td><td> </td><td>Initializes a BarCodeData.</td></tr></tbody></table>

### CertificateInfo <a href="#id-11.2_certificateinfo" id="id-11.2_certificateinfo"></a>

CertificateInfo is used for the connection to a devices requiring client credentials. See the following for details on installing a certificate chain: **DYNAFLEX TLS CERTIFICATE INSTALLATION MANUAL**

<table data-header-hidden><thead><tr><th valign="top"></th><th></th><th></th></tr></thead><tbody><tr><td colspan="3" valign="top">CertificateInfo</td></tr><tr><td valign="top">Member</td><td>Type/ Format</td><td>Description</td></tr><tr><td valign="top">format</td><td>NSString*</td><td>Certificate data format. “PKCS12” – for .p12 file. “PFX” – for .pfx file.</td></tr><tr><td valign="top">data</td><td>NSData*</td><td>Certificate data.</td></tr><tr><td valign="top">password</td><td>NSString*</td><td>Password to access the certificate data.</td></tr><tr><td valign="top">inithWithFormat()</td><td> </td><td>Initializes CertificateInfo.</td></tr></tbody></table>

### IData <a href="#id-11.3_idata" id="id-11.3_idata"></a>

IData is used for the payload of events and passing data to functions. When assigning the member StringValue, the member ByteArray is automatically assigned. Same is true vice versa. In this way either a string or an array can be accessed without need of data conversion.

<table data-header-hidden><thead><tr><th width="132.90911865234375" valign="top"></th><th width="162"></th><th></th></tr></thead><tbody><tr><td colspan="3" valign="top">IData</td></tr><tr><td valign="top">Member</td><td>Type/ Format</td><td>Description</td></tr><tr><td valign="top">StringValue</td><td>NSString*</td><td>String value</td></tr><tr><td valign="top">ByteArray</td><td>NSData*</td><td>Byte array</td></tr><tr><td valign="top">dataWithString()</td><td>NSString*</td><td>Initializes an IData from an NSString.</td></tr><tr><td valign="top">dataWithData()</td><td>NSData*</td><td>Initializes an IData from an NSData.</td></tr><tr><td valign="top">dataWithHex()</td><td>NSString*</td><td>Initializes an IData from an NSString formatted as hexadecimal.</td></tr></tbody></table>

Example of using IData.

{% code overflow="wrap" %}

```
// String usage
var data1: IData = IData.dataWithHex("3030")

// Array usage
var byteArray[2]: Byte = {0x30,0x30}
var dataBytes: NSData = NSData.dataWithBytes(byteArray, length:2) var data2: IData = Idata.dataWithData(dataBytes)
```

{% endcode %}

### IResult <a href="#id-11.4_iresult" id="id-11.4_iresult"></a>

Contains status and data of operations of return type IResult.

{% code overflow="wrap" %}

```
@property (nonatomic) MTU_StatusCode status; 
@property (nonatomic, strong) IData* data;

(IResult*) status:(MTU_StatusCode) Status data: (IData*) Data;
```

{% endcode %}

### ITransaction <a href="#id-11.5_itransaction" id="id-11.5_itransaction"></a>

This is the interface used as the parameter for startTransaction(). For an example, see the sample code in IDevice Walk Through.

<table data-header-hidden><thead><tr><th width="167.45452880859375" valign="top"></th><th width="182.272705078125"></th><th></th></tr></thead><tbody><tr><td colspan="3" valign="top">ITransaction</td></tr><tr><td valign="top">Member</td><td>Type/ Format</td><td>Description</td></tr><tr><td valign="top"><p> </p><p>Timeout</p></td><td><p> </p><p>Byte</p></td><td><p>Transaction timeout in seconds. Default is 60 seconds.</p><p> </p><p>Usage:</p><p>0 to 255 - Depending on the device, 0 means no timeout.</p></td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>PaymentMethods</p></td><td><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>PaymentMethod</p></td><td><p>List of the PaymentMethod enumeration.</p><p> </p><p>Usage:</p><p>MSR         - For magnetic stripe cards.</p><p>Contact     - For EMV chip cards.</p><p>Contactless - For NFC contactless cards. ManualEntry - For user to manually enter transaction data without any card access. When set to ManualEntry, the other payment methods do not apply.</p><p>BarCode     - Reserved for future use. AppleVAS    - Reserved for future use. BarCodeEncryped - Reserved for future use. NFC         - For NFC MiFare.</p><p>GoogleVAS   - Reserved for future use.</p></td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>QuickChip</p></td><td><p> </p><p> </p><p> </p><p> </p><p>BOOL</p></td><td><p>In QuickChip mode, the device does not prompt for an amount. Device sends an ARQC request to the host. Device automatically populates the ARPC response data with EMV Tag 8A set to “Z3”. Card holder is prompted to remove the card. Transaction result is later determined by the processor and not by the card.</p><p>Usage:</p><p>false - Do not enable QuickChip mode.</p><p>true - Enable QuickChip mode. Default.</p></td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p>EMVOnly</p></td><td><p> </p><p> </p><p> </p><p>BOOL</p></td><td><p>Flag that determines whether or not to start a transaction in EMV mode. This takes effect for devices which support both MSR and EMV mode (not limited to eDynamo, tDynamo, and DynaPro Family). This has no effect on non EMV devices.</p><p>Usage:</p><p>false - Do not start transaction in EMV mode.</p><p>true - Only start transaction in EMV mode. Default.</p></td></tr><tr><td valign="top"><p> </p><p> </p><p>PreventMSRSignatureF orCardWithICC</p></td><td><p> </p><p> </p><p> </p><p>BOOL</p></td><td><p>Flag that forces the device to skip signature capture during an MSR-only transaction if the card’s service code indicates it is a chip card.</p><p> </p><p>Usage:</p><p>false - Allow the prompt for a signature if requested.</p><p>true - Do not prompt for signature.</p></td></tr></tbody></table>

<table data-header-hidden><thead><tr><th valign="top"></th><th width="130.1817626953125"></th><th></th></tr></thead><tbody><tr><td colspan="3" valign="top">ITransaction</td></tr><tr><td valign="top"><p> </p><p> </p><p>SuppressThankYouMes sage</p></td><td><p> </p><p> </p><p>BOOL</p></td><td><p>By default, devices with a display signal the end of a transaction by briefly showing “THANK YOU,” then “WELCOME.”</p><p>Usage:</p><p>false - Do not suppress the thank you message.</p><p>true - Suppress the thank you message.</p></td></tr><tr><td valign="top"><p> </p><p> </p><p>DisplayAmountForQuic kChip</p></td><td><p> </p><p> </p><p>BOOL</p></td><td><p>Display Amount for Quick Chip Transaction Flow.</p><p>Usage:</p><p>false - Do not display Amount when QuickChip mode is true. Default.</p><p>true - Display Amount when QuickChip mode is true.</p></td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>OverrideFinalTransacti onMessage</p></td><td><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>Byte</p></td><td><p>By default, devices with a display signal the end of a transaction by returning to the idle page and showing “WELCOME.” This parameter directs the device to show a message based on the Message ID from the command displayMessage(). This option completely overrides the device’s idle page behavior until the next transaction, power cycle, or other similar state change.</p><p> </p><p>Example:</p><p>0x00 - reserved, do not use. 0x01 - “AMOUNT”</p><p>0x02 - “AMOUNT OK?”</p><p>0x03 - “APPROVED”</p><p>0x04 - “CALL YOUR BANK”</p><p>0x05 - “CANCEL OR ENTER”</p><p>0x06 - “CARD ERROR”</p><p>0x07 - “DECLINED”</p><p>0x08 - “ENTER AMOUNT”</p></td></tr><tr><td valign="top"><p> </p><p> </p><p>EMVResponseFormat</p></td><td><p> </p><p> </p><p>Byte</p></td><td><p>The format of the EMV response.</p><p> </p><p>Usage:</p><p>0x00 – Legacy. Default. 0x01 – RFU</p></td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>TransactionType</p></td><td><p> </p><p> </p><p> </p><p> </p><p>Byte 1</p></td><td><p>EMV Tag 9C - The type of financial transaction, represented by the first two digits of the ISO 8583:1987 Processing Code.</p><p> </p><p>Usage:</p><p>0x00 – purchase. Default.</p><p>0x01 – cash advance</p><p>0x09 – purchase with cashback</p><p>0x20 – refund</p><p>Supported transaction types can found in the commands programmers manual specific to the device.</p></td></tr></tbody></table>

<table data-header-hidden><thead><tr><th width="143.81817626953125" valign="top"></th><th width="171.54541015625"></th><th></th></tr></thead><tbody><tr><td colspan="3" valign="top">ITransaction</td></tr><tr><td valign="top"><p> </p><p> </p><p>Amount</p></td><td><p> </p><p>NSString* Max 13</p></td><td><p>EMV Tag 9F02 - Authorized amount of the transaction.</p><p> </p><p>Example:</p><p>“1.23” – $1.23</p><p>“10” – $10.00</p></td></tr><tr><td valign="top"><p> </p><p> </p><p>CashBack</p></td><td><p> </p><p> </p><p>NSString* Max 13</p></td><td><p>EMV Tag 9F03 - Secondary amount associated with the transaction.</p><p>Example:</p><p>“1.23” – $1.23</p><p>“10” – $10.00</p></td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p>CurrenyCode</p></td><td><p> </p><p> </p><p>NSData* 2</p></td><td><p>EMV Tag 5F2A - Currency code of the transaction according to ISO 4217. The byte array is null by default.</p><p> </p><p>Example:</p><p>0x0840 = US Dollar 0x0978 = Euro 0x0826 = UK Pound</p></td></tr><tr><td valign="top"><p> </p><p> </p><p>CurrencyExponent</p></td><td><p> </p><p>NSData* 1</p></td><td><p>EMV Tag 5F36 - The decimal point position from the right of the transaction amount. The byte array is null by default.</p><p>Example:</p><p>0x02 – decimal point at 2 position from the right.</p></td></tr><tr><td valign="top">TransactionCategory</td><td>NSData* 1</td><td>EMV Tag 9F53 - The type of contactless transaction being performed. The byte array is null by default.</td></tr><tr><td valign="top"><p> </p><p>MerchantCategory</p></td><td>NSData* 2</td><td>EMV Tag 9F15 - The type of business being done by the merchant, represented according to ISO 18245. The byte array is null by default.</td></tr><tr><td valign="top">MerchantID</td><td>NSData* 15</td><td>EMV Tag 9F16 - Used to uniquely identify a given merchant. The byte array is null by default.</td></tr><tr><td valign="top">MerchantCustomData</td><td>NSData* 20</td><td>EMV Tag 9F7C – Proprietary merchant data that may be requested. The byte array is null by default.</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p>ManualEntryType</p></td><td><p> </p><p> </p><p> </p><p>Byte</p></td><td><p>User interface sequence.</p><p> </p><p>Usage:</p><p>0x00 - Card Number, Expiration Date, Security Code 0x01 - Name on Card, Card Number, Expiration Date, Security Code (Reserved for Future Use)</p><p>0x02 – Qwick Code, Last 4 digits of Card Number, Security Code (Reserved for future use)</p></td></tr></tbody></table>

<table data-header-hidden><thead><tr><th width="182" valign="top"></th><th width="129.818115234375"></th><th></th></tr></thead><tbody><tr><td colspan="3" valign="top">ITransaction</td></tr><tr><td valign="top"><p> </p><p>ManualEntryFormat</p></td><td><p> </p><p>Byte</p></td><td><p>Card number valid format.</p><p> </p><p>Usage:</p><p>0x00 - PAN min 8, max 21 digits</p></td></tr><tr><td valign="top"><p> </p><p> </p><p>ManualEntrySound</p></td><td><p> </p><p> </p><p>Byte</p></td><td><p>Beeper feedback.</p><p> </p><p>Usage:</p><p>0x00 - On keypress sound disabled</p><p>0x01 - On keypress sound enabled</p></td></tr><tr><td valign="top">AppleVASMode</td><td>VASMode</td><td>An enumeration for the Apple VAS Mode.</td></tr><tr><td valign="top">AppleVASProtocol</td><td>VASProtocol</td><td>An enumeration for the Apple VAS Protocol.</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p>FunctionalButtonRight Option</p></td><td><p> </p><p> </p><p> </p><p>uint16_t</p></td><td><p>String ID to use for the Right functional button.</p><p>When user presses this button, device sends a notification to the host to indicate the present card functional button Right is pressed. Device then waits for the next command from the host. While waiting, the screen shows “PLEASE WAIT”.</p><p>null = Disable.</p><p>0x0000 to 0x00FF = String ID</p></td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p>ECP2FrameData</p></td><td><p> </p><p> </p><p>NSData* 3-18</p></td><td><p>Apple ECP2.0 frame from Byte 2 to Byte N. See Apple ECP2.0 specification.</p><p>·         For example, if ECP2.0 VASUP-A frame is 6A02C3020003FFFF</p><p>then Byte 2-N is 0xC3020003FFFF.</p><p>By default, ECP2.0 frame (Byte 2 -N) is 0xC3020003FFFF</p></td></tr><tr><td valign="top">CustomNFCTransactio nMode</td><td>MTU_NFCTransacti onMode</td><td>NFC transaction modes.</td></tr><tr><td valign="top">CustomNFCDataMode</td><td>MTU_NFCDataMod e</td><td>Custom NFC data mode.</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p>TipMode</p></td><td><p> </p><p> </p><p> </p><p>Byte</p></td><td><p>Tip mode.</p><p> </p><p>0x00 = Disable Tip Mode</p><p>0x01 = Show Tip GUI immediately using %</p><p>0x02 = Show Tip GUI immediately using $</p><p>0x11 = Enable Read Channel(s), with +Tip Button using %</p><p>0x12 = Enable Read Channel(s), with +Tip Button, using $</p></td></tr><tr><td valign="top"><p> </p><p> </p><p>Tip1DisplayMode</p></td><td><p> </p><p> </p><p>Byte</p></td><td><p>Display mode for Tip button 1.</p><p>0x00 = % or $</p><p>0x01 = Display Custom 0x02 = Display NO TIP 0x03 = Disabled</p></td></tr></tbody></table>

<table data-header-hidden><thead><tr><th width="173.81817626953125" valign="top"></th><th width="96.54541015625"></th><th></th></tr></thead><tbody><tr><td colspan="3" valign="top">ITransaction</td></tr><tr><td valign="top"><p> </p><p> </p><p>Tip2DisplayMode</p></td><td><p> </p><p> </p><p>Byte</p></td><td><p>Display mode for Tip button 2.</p><p>0x00 = % or $</p><p>0x01 = Display Custom 0x02 = Display NO TIP 0x03 = Disabled</p></td></tr><tr><td valign="top"><p> </p><p> </p><p>Tip3DisplayMode</p></td><td><p> </p><p> </p><p>Byte</p></td><td><p>Display mode for Tip button 3.</p><p> </p><p>0x00 = % or $</p><p>0x01 = Display Custom 0x02 = Display NO TIP 0x03 = Disabled</p></td></tr><tr><td valign="top"><p> </p><p> </p><p>Tip4DisplayMode</p></td><td><p> </p><p> </p><p>Byte</p></td><td><p>Display mode for Tip button 4.</p><p>0x00 = % or $</p><p>0x01 = Display Custom 0x02 = Display NO TIP 0x03 = Disabled</p></td></tr><tr><td valign="top"><p> </p><p> </p><p>Tip5DisplayMode</p></td><td><p> </p><p> </p><p>Byte</p></td><td><p>Display mode for Tip button 5.</p><p>0x00 = % or $</p><p>0x01 = Display Custom 0x02 = Display NO TIP 0x03 = Disabled</p></td></tr><tr><td valign="top"><p> </p><p> </p><p>Tip6DisplayMode</p></td><td><p> </p><p> </p><p>Byte</p></td><td><p>Display mode for Tip button 6.</p><p>0x00 = % or $</p><p>0x01 = Display Custom 0x02 = Display NO TIP 0x03 = Disabled</p></td></tr><tr><td valign="top"><p> </p><p>Tip1Value</p></td><td><p> </p><p>NSString*</p></td><td><p>Display value for Tip button 1.</p><p>“1.00” = $1.00 (Display Mode is $)</p><p>“10.0001” = 10.0001% (Display Mode is %)</p></td></tr><tr><td valign="top"><p> </p><p>Tip2Value</p></td><td><p> </p><p>NSString*</p></td><td><p>Display value for Tip button 2.</p><p>“1.00” = $1.00 (Display Mode is $)</p><p>“10.0001” = 10.0001% (Display Mode is %)</p></td></tr><tr><td valign="top"><p> </p><p>Tip3Value</p></td><td><p> </p><p>NSString*</p></td><td><p>Display value for Tip button 3.</p><p>“1.00” = $1.00 (Display Mode is $)</p><p>“10.0001” = 10.0001% (Display Mode is %)</p></td></tr></tbody></table>

<table data-header-hidden><thead><tr><th width="137.45458984375" valign="top"></th><th width="139.0909423828125"></th><th></th></tr></thead><tbody><tr><td colspan="3" valign="top">ITransaction</td></tr><tr><td valign="top"><p> </p><p>Tip4Value</p></td><td><p> </p><p>NSString*</p></td><td><p>Display value for Tip button 4.</p><p>“1.00” = $1.00 (Display Mode is $)</p><p>“10.0001” = 10.0001% (Display Mode is %)</p></td></tr><tr><td valign="top"><p> </p><p>Tip5Value</p></td><td><p> </p><p>NSString*</p></td><td><p>Display value for Tip button 5.</p><p>“1.00” = $1.00 (Display Mode is $)</p><p>“10.0001” = 10.0001% (Display Mode is %)</p></td></tr><tr><td valign="top"><p> </p><p>Tip6Value</p></td><td><p> </p><p>NSString*</p></td><td><p>Display value for Tip button 6.</p><p>“1.00” = $1.00 (Display Mode is $)</p><p>“10.0001” = 10.0001% (Display Mode is %)</p></td></tr><tr><td valign="top"><p> </p><p>TaxAmount</p></td><td><p> </p><p>NSString*</p></td><td><p>Tax amount.</p><p>“1.00” = $1.00</p></td></tr></tbody></table>

### NFCData <a href="#id-11.6_nfcdata" id="id-11.6_nfcdata"></a>

These constructors initialize an NFCData object. Use NewNFCData with the data byte array from the NFCData event to return an NFCData.

{% code overflow="wrap" %}

```
(instancetype) NewNFCData : (NSData*) data
        encrypted : (BOOL) encrypted 
        encryptionType : (Byte) encryptionType
        KSN : (nullable NSData*) ksn;
```

{% endcode %}

<table data-header-hidden><thead><tr><th width="158.3636474609375" valign="top"></th><th width="140.8182373046875"></th><th></th></tr></thead><tbody><tr><td colspan="3" valign="top">BarCodeData</td></tr><tr><td valign="top">Member</td><td>Type/ Format</td><td>Description</td></tr><tr><td valign="top">Data</td><td>NSData*</td><td>Data payload</td></tr><tr><td valign="top">Encrypted</td><td>Bool</td><td>0x00 = data is not encrypted 0x01 = data is encrypted</td></tr><tr><td valign="top">EncryptionType</td><td>Byte</td><td>Encryption type</td></tr><tr><td valign="top">KSN</td><td>NSData*</td><td>Key Serial Number</td></tr></tbody></table>

### NFCDataBuilder <a href="#id-11.7_nfcdatabuilder" id="id-11.7_nfcdatabuilder"></a>

These constructors initialize an NFCData and NFCRAPDUData object.

{% code overflow="wrap" %}

```
(nullable NFCData*) GetNFC : (MTU_DeviceType)DeviceType
                Data : (NSData*) Data;
                
(nullable NFCRAPDUData*) GetNFC : (MTU_DeviceType)DeviceType
                RAPDUData : (NSData*) Data;
```

{% endcode %}

<table data-header-hidden><thead><tr><th width="136.54541015625" valign="top"></th><th width="189.0909423828125"></th><th></th></tr></thead><tbody><tr><td colspan="3" valign="top">BarCodeData</td></tr><tr><td valign="top">Member</td><td>Type/ Format</td><td>Description</td></tr><tr><td valign="top">DeviceType</td><td>MTU_Dev iceType</td><td>Enumerated device type.</td></tr><tr><td valign="top">Data</td><td>NSData*</td><td>Data payload</td></tr></tbody></table>

### NFCEventBuilder <a href="#id-11.8_nfceventbuilder" id="id-11.8_nfceventbuilder"></a>

This class assist in parsing NFCEvent data.

{% code overflow="wrap" %}

```
(MTU_NFCEvent) GetEventValue :(NSString*) data; 
(NSString*) GetEventString : (MTU_NFCEvent) event;
```

{% endcode %}

<table data-header-hidden><thead><tr><th width="162" valign="top"></th><th width="138.9091796875"></th><th></th></tr></thead><tbody><tr><td colspan="3" valign="top">Static</td></tr><tr><td valign="top">Member</td><td>Return</td><td>Description</td></tr><tr><td valign="top">GetEventValue()</td><td><p>MTU_</p><p>NFCEvent</p></td><td>Returns the NFCEvent enumeration.</td></tr><tr><td valign="top">GetEventString()</td><td>NSString</td><td>Returns a string representation of NFCEvent enumeration.</td></tr></tbody></table>

### NFCRAPDUData <a href="#id-11.9_nfcrapdudata" id="id-11.9_nfcrapdudata"></a>

These constructors initialize an NFCRAPDUData object. Use NFCDataBuilder.getNFC with data byte array from the NFCRAPDUResponse event to return an NFCRAPDUData.

{% code overflow="wrap" %}

```
NewNFCRAPDUData : (NSData*) data 
    Response :(NSData*) response
    encrypted : (BOOL) encrypted 
    encryptionType : (Byte) encryptionType
    KSN : (nullable NSData*) ksn;
    
NFCRAPDUData NFCDataBuilder.GetNFC : (MTU_DeviceType)DeviceType 
    RAPDUData : (NSData*) Data;
```

{% endcode %}

<table data-header-hidden><thead><tr><th width="172.63641357421875" valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top">Parameter</td><td valign="top">Description</td></tr><tr><td valign="top">response</td><td valign="top">Response data.</td></tr><tr><td valign="top">data</td><td valign="top">The data payload.</td></tr><tr><td valign="top">encrypted</td><td valign="top"><p>Encryption status.</p><p>false = data is not encrypted true = data is encrypted</p></td></tr><tr><td valign="top">encryptionType</td><td valign="top">The encryption type.</td></tr><tr><td valign="top">ksn</td><td valign="top">The Key Serial Number.</td></tr><tr><td valign="top">deviceType</td><td valign="top">Device type.</td></tr></tbody></table>

Return Value:

Returns an instance of NFCRAPDUData.

### PersonalInfoEntry <a href="#id-11.10_personalinfoentry" id="id-11.10_personalinfoentry"></a>

These constructors initialize a PersonalInfoEntry object.

* Call startPersonalInfoEntry().
* At OnEvent():TouchscreenPersonalInfo, build the object.

{% code overflow="wrap" %}

```
(PersonalInfoEntry*) GetPersonalInfoEntry : (MTU_DeviceType)DeviceType
                data : (NSData*) data;
```

{% endcode %}

<table data-header-hidden><thead><tr><th width="145.6363525390625" valign="top"></th><th width="186"></th><th></th></tr></thead><tbody><tr><td colspan="3" valign="top">BarCodeData</td></tr><tr><td valign="top">Member</td><td>Type/ Format</td><td>Description</td></tr><tr><td valign="top">Data</td><td>NSData*</td><td>Data payload</td></tr><tr><td valign="top">DataType</td><td>MTU_CaptureType</td><td>Returns the capture type.</td></tr><tr><td valign="top"><p> </p><p>Encrypted</p></td><td><p> </p><p>Bool</p></td><td>Returns the encryption status. false = data is not encrypted true = data is encrypted</td></tr><tr><td valign="top">EncryptionType</td><td>Byte</td><td>Returns the encryption type.</td></tr><tr><td valign="top">KSN</td><td>NSData*</td><td>Returns the Key Serial Number.</td></tr></tbody></table>


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://developer.magtek.com/sdks-and-tools/universal-sdk-documentation/ios/data-classes.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
