Examples of parsing - Vendi, Neo
Here is an example pulled from an unencrypted reader with the use of the “03 - 00” command:
56 69 56 4F 74 65 63 68 32 00 03 00 00 76 39 42 36 32 37 39 32 35 37 37 34 39 31 33 32 33 34 33 5E 54 45 53 54 20 43 41 52 44 2F 56 49 56 4F 54 45 43 48 5E 31 30 31 32 38 31 33 30 30 37 32 31 30 34 33 35 30 30 30 30 25 36 32 37 39 32 35 37 37 34 39 31 33 32 33 34 33 3D 31 30 31 32 38 31 33 30 30 37 32 31 30 34 33 35 30 30 30 30 00 9F 35 01 22 9F 39 01 07 FF EE 01 04 DF 30 01 00 DF EE 26 01 41 6A 44
This is the unencrypted MSD:
36 32 37 39 32 35 37 37 34 39 31 33 32 33 34 33 5E 54 45 53 54 20 43 41 52 44 2F 56 49 56 4F 54 45 43 48 5E 31 30 31 32 38 31 33 30 30 37 32 31 30 34 33 35 30 30 30 30 25 36 32 37 39 32 35 37 37 34 39 31 33 32 33 34 33 3D 31 30 31 32 38 31 33 30 30 37 32 31 30 34 33 35 30 30 30 30 00
Which translates from HEX-> ASCII to be:
6279257749132343^TEST CARD/VIVOTECH^10128130072104350000%6279257749132343=10128130072104350000.
To parse this out:
56 69 56 4F 74 65 63 68 32 00 // Header
03 // Command
00 // Command Status Code
00 76 // Total Length, 76 is the least significant byte, we can expect 76 → 118 hex nibbles)
39 // Length of Track 1 (39 hex → 57 decimal characters)
42 // Start sentinel ('B')
36 32 37 39 32 35 37 37 34 39
31 33 32 33 34 33 5E 54 45 53
54 20 43 41 52 44 2F 56 49 56
4F 54 45 43 48 5E 31 30 31 32
38 31 33 30 30 37 32 31 30 34
33 35 30 30 30 30 // Track 1 data
25 // Length of Track 2 (25 hex → 37 decimal characters)
36 32 37 39 32 35 37 37 34 39
31 33 32 33 34 33 3D 31 30 31
32 38 31 33 30 30 37 32 31 30
34 33 35 30 30 30 30 // Track 2 data
00 // End sentinel of track data ('.')
9F 35 01 22 // Value for 9F35 indicates the terminal type is 22.
9F 39 01 07 // Value for 9F 39 indicates that this was a tap. 07 = tap, 90 indicates a swipe.
FF EE 01 04 // Proprietary tag
DF 30 01 00 // Proprietary tag
DF EE 26 01 41 // Encryption status (no encryption)
6A 44 // Calculated CRC
This is also documented in the NEO IDG. Look for section 16.0 (Sample Scenarios and Frame Flow) for the 'Contactless MagStripe Transactions in Auto Poll Mode', example #4 for an overview of how this works.