Magnetic Strip Encoding Standards |
Below will be found a brief synopsis of some Magnetic Strip Encoding Standards.
As a general rule, data on Magnetic Cards conforms to the encoding format for financial transaction cards (ISO 7811). Tracks 1 and 3 read alphanumeric data at 210 bpi, while track 2 reads numeric data only at 75 bpi.
ISO 7810 defines the physical characteristics of the card. (3.375" length, 2.125" height, .030" thick)
The majority of magnetic cards used in the UK, Europe and USA confirm to the following ISO standards for magnetic cards.
The majority of magnetic cards used in the USA, UK, and Europe confirm to the following ISO standards for magnetic cards.
Full copies of these standards can be pruchased from
http://www.iso.org/ and
http://www.ansi.org/. The information below is abstracted from these standards. Further ISO Standards are available from
American National Standards Institute.
ISO Number
| Description of Standard |
7810
| Physical Characterisitics of Credit Card Size Document |
7811-1
| Embossing |
7811-2
| Magnetic Stripe - Low Coercivity |
7811-3
| Location of Embossed Characters |
7811-4
| Location of Tracks 1 and 2 |
7811-5
| Location of Track 3 |
7811-6
| Magnetic Stripe - High Coercivity |
7813
| Financial Transaction Cards |
|
Physical Dimensions of Cards:
Physical Plastic Card
|
2.175", 55.245mm
|
3.375", 85.725mm 0.030", 0.762mm thick
| |
Characteristics of Tracks:
Position |
Track Number
|
Recording Density (bits per inch)
|
Character Configuration (including parity bit)
|
Information Content (including control characters)
|
0.223" (5.664mm) from card edge
|
0.110" (2.794mm) |
Track 1
|
210BPI
|
7 bits per character
|
79 Alphanumeric characters
|
|
0.110" (2.794mm) |
Track 2
|
75BPI
|
5 bits per character
|
40 Numeric characters
|
|
0.110" (2.794mm) |
Track 3
|
210BPI
|
5 bits per character
|
107 Numeric characters
|
|
Track One:
|
<
|
76 alphanumeric characters
|
>
| |
SS
|
FC
|
data
|
FS
|
data
|
FS
|
data
|
ES
|
LRC
|
|
| | Description |
Value
|
SS
| | Start Sentinel |
05h
|
FC
| | Format Code |
|
FS
| | Field Seperator |
3Eh
|
ES
| | End Sentinel |
1Fh
|
LRC
| | Longitudinal Redunancy Check Character |
|
Track Two:
|
<
|
37 numeric characters
|
>
| |
SS
|
|
data
|
FS
|
data
|
ES
|
LRC
|
|
| | Description |
Value
|
SS
| | Start Sentinel |
0Bh
|
FS
| | Field Seperator |
0Dh
|
ES
| | End Sentinel |
0Fh
|
LRC
| | Longitudinal Redunancy Check Character |
|
Track Three: (ISO 4909)
|
<
|
104 numeric characters
|
>
| |
SS
|
FC
|
data
|
FS
|
data
|
ES
|
LRC
|
|
| | Description |
Value
|
SS
| | Start Sentinel |
0Bh
|
FC
| | Format Code |
2 digits
|
FS
| | Field Seperator |
0Dh
|
ES
| | End Sentinel |
0Fh
|
LRC
| | Longitudinal Redunancy Check Character |
|
Character Sets
Data stored on magnetic stripes does not use the standard ASCII character set as used on PCs. Below are the two ANSI/ISO character sets used on magnetic stripes.
ANSI/ISO ALPHA Data Format
(Track 1)
The ANSI/ISO ALPHA format is 7 bit, 6 data bits + 1 parity bit (odd). The data is read least significant bit first.
The character set contains 64 characters, 43 alphanumeric, 3 framing/field characters and 18 control/special characters.
Data bits
|
|
Character
|
Value
|
Function
|
b1
|
b2
|
b3
|
b4
|
b5
|
b6
|
b7
|
|
(Hex)
|
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
space
|
00
| Special |
1
|
0
|
0
|
0
|
0
|
0
|
0
|
!
|
01
| Special |
0
|
1
|
0
|
0
|
0
|
0
|
0
|
"
|
02
| Special |
1
|
1
|
0
|
0
|
0
|
0
|
1
|
#
|
03
| Special |
0
|
0
|
1
|
0
|
0
|
0
|
0
|
$
|
04
| Special |
1
|
0
|
1
|
0
|
0
|
0
|
1
|
%
|
05
| Start Sentinel |
0
|
1
|
1
|
0
|
0
|
0
|
1
|
&
|
06
| Special |
1
|
1
|
1
|
0
|
0
|
0
|
0
|
'
|
07
| Special |
0
|
0
|
0
|
1
|
0
|
0
|
0
|
(
|
08
| Special |
1
|
0
|
0
|
1
|
0
|
0
|
1
|
)
|
09
| Special |
0
|
1
|
0
|
1
|
0
|
0
|
1
|
*
|
0A
| Special |
1
|
1
|
0
|
1
|
0
|
0
|
0
|
+
|
0B
| Special |
0
|
0
|
1
|
1
|
0
|
0
|
1
|
,
|
0C
| Special |
1
|
0
|
1
|
1
|
0
|
0
|
0
|
-
|
0D
| Special |
0
|
1
|
1
|
1
|
0
|
0
|
0
|
.
|
0E
| Special |
1
|
0
|
0
|
1
|
0
|
0
|
1
|
/
|
0F
| Special |
|
|
|
|
|
|
|
|
| |
0
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
10
| Data |
1
|
0
|
0
|
0
|
1
|
0
|
1
|
1
|
11
| Data |
0
|
1
|
0
|
0
|
1
|
0
|
1
|
2
|
12
| Data |
1
|
1
|
0
|
0
|
1
|
0
|
0
|
3
|
13
| Data |
0
|
0
|
1
|
0
|
1
|
0
|
1
|
4
|
14
| Data |
1
|
0
|
1
|
0
|
1
|
0
|
0
|
5
|
15
| Data |
0
|
1
|
1
|
0
|
1
|
0
|
0
|
6
|
16
| Data |
1
|
1
|
1
|
0
|
1
|
0
|
1
|
7
|
17
| Data |
0
|
0
|
0
|
1
|
1
|
0
|
1
|
8
|
18
| Data |
1
|
0
|
0
|
1
|
1
|
0
|
0
|
9
|
19
| Data |
|
|
|
|
|
|
|
|
| |
0
|
1
|
0
|
1
|
1
|
0
|
0
|
:
|
1A
| Special |
1
|
1
|
0
|
1
|
1
|
0
|
1
|
;
|
1B
| Special |
0
|
0
|
1
|
1
|
1
|
0
|
0
|
<
|
1C
| Special |
1
|
0
|
1
|
1
|
1
|
0
|
1
|
=
|
1D
| Special |
0
|
1
|
1
|
1
|
1
|
0
|
1
|
>
|
1E
| Special |
1
|
1
|
1
|
1
|
1
|
0
|
0
|
?
|
1F
| End sentinel |
0
|
0
|
0
|
0
|
0
|
1
|
0
|
@
|
20
| Special |
|
|
|
|
|
|
|
|
| |
1
|
0
|
0
|
0
|
0
|
1
|
1
|
A
|
21
| Data |
0
|
1
|
0
|
0
|
0
|
1
|
1
|
B
|
22
| Data |
1
|
1
|
0
|
0
|
0
|
1
|
0
|
C
|
23
| Data |
0
|
0
|
1
|
0
|
0
|
1
|
1
|
D
|
24
| Data |
1
|
0
|
1
|
0
|
0
|
1
|
0
|
E
|
25
| Data |
0
|
1
|
1
|
0
|
0
|
1
|
0
|
F
|
26
| Data |
1
|
1
|
1
|
0
|
0
|
1
|
1
|
G
|
27
| Data |
0
|
0
|
0
|
1
|
0
|
1
|
1
|
H
|
28
| Data |
1
|
0
|
0
|
1
|
0
|
1
|
0
|
I
|
29
| Data |
0
|
1
|
0
|
1
|
0
|
1
|
0
|
J
|
2A
| Data |
1
|
1
|
0
|
1
|
0
|
1
|
1
|
K
|
2B
| Data |
0
|
0
|
1
|
1
|
0
|
1
|
0
|
L
|
2C
| Data |
1
|
0
|
1
|
1
|
0
|
1
|
1
|
M
|
2D
| Data |
0
|
1
|
1
|
1
|
0
|
1
|
1
|
N
|
2E
| Data |
1
|
1
|
1
|
1
|
0
|
1
|
0
|
O
|
2F
| Data |
0
|
0
|
0
|
0
|
1
|
1
|
1
|
P
|
30
| Data |
1
|
0
|
0
|
0
|
1
|
1
|
0
|
Q
|
31
| Data |
0
|
1
|
0
|
0
|
1
|
1
|
0
|
R
|
32
| Data |
1
|
1
|
0
|
0
|
1
|
1
|
1
|
S
|
33
| Data |
0
|
0
|
1
|
0
|
1
|
1
|
0
|
T
|
34
| Data |
1
|
0
|
1
|
0
|
1
|
1
|
1
|
U
|
35
| Data |
0
|
1
|
1
|
0
|
1
|
1
|
1
|
V
|
36
| Data |
1
|
1
|
1
|
0
|
1
|
1
|
0
|
W
|
37
| Data |
0
|
0
|
0
|
1
|
1
|
1
|
0
|
X
|
38
| Data |
1
|
0
|
0
|
1
|
1
|
1
|
1
|
Y
|
39
| Data |
0
|
1
|
0
|
1
|
1
|
1
|
1
|
Z
|
3A
| Data |
|
|
|
|
|
|
|
|
| |
1
|
1
|
0
|
1
|
1
|
1
|
0
|
[
|
3B
| Special |
0
|
0
|
1
|
1
|
1
|
1
|
1
|
\
|
3C
| Special |
1
|
0
|
1
|
1
|
1
|
1
|
0
|
]
|
3D
| Special |
0
|
1
|
1
|
1
|
1
|
1
|
0
|
^
|
3E
| Field Separator |
1
|
1
|
1
|
1
|
1
|
1
|
1
|
_
|
3F
| Special |
|
ANSI/ISO BCD Data Format
(Tracks 2 and 3)
The ANSI/ISO BCD format is 5 bit, 4 data bits + 1 parity bit (odd). The data is read least significant bit first.
The character set contains 16 characters, 10 alphanumeric, 3 framing/field characters and 3 control/special characters.
Data bits
|
|
Character
|
Value
|
Function
|
b1
|
b2
|
b3
|
b4
|
b5
|
|
(Hex)
|
|
0
|
0
|
0
|
0
|
1
|
0
|
00
| Data |
1
|
0
|
0
|
0
|
0
|
1
|
01
| Data |
0
|
1
|
0
|
0
|
0
|
2
|
02
| Data |
1
|
1
|
0
|
0
|
1
|
3
|
03
| Data |
0
|
0
|
1
|
0
|
0
|
4
|
04
| Data |
1
|
0
|
1
|
0
|
1
|
5
|
05
| Data |
0
|
1
|
1
|
0
|
1
|
6
|
06
| Data |
1
|
1
|
1
|
0
|
0
|
7
|
07
| Data |
0
|
0
|
0
|
1
|
0
|
8
|
08
| Data |
1
|
0
|
0
|
1
|
1
|
9
|
09
| Data |
0
|
1
|
0
|
1
|
1
|
:
|
0A
| Control |
1
|
1
|
0
|
1
|
0
|
;
|
0B
| Start Sentinel |
0
|
0
|
1
|
1
|
1
|
<
|
0C
| Control |
1
|
0
|
1
|
1
|
0
|
=
|
0D
| Field Separator |
0
|
1
|
1
|
1
|
0
|
>
|
0E
| Control |
1
|
0
|
0
|
1
|
1
|
?
|
0F
| End Sentinel |
|
Note from the table below that Magnetic Stripe Readers used for acquiring Credit Card data need only to read tracks 1 or 2 from the card. Note also the redundancy:
Track 1 contains the customer's name in addition to the account number and expiration date recorded at higher density.
Lower-density data recorded on track 2 contains only the account number and expiration date.
In the early years of Magnetic Stripe technology, data was recorded at lower density to increase read-reliability. Low density data is still recorded on track 2 for compatibility with older-technology readers and provide redundancy when reading with newer-technology readers. Readers with both track 1 and 2 are recommended for acquiring Credit Card data since redundancy permits the authorization process to compare account information on both tracks and also fallback to the lower density track data if the reader is unable to decode track 1 due to damaged track data on the card.
Track 3, originally an alternate numeric-only track, is no longer used in the Banking and Credit Card format.
Track 1 and 2 of the Driver's License Magnetic Stripe format conform to the original formatting standards used by the Banking and Credit Card industry. While the data encoded on the tracks is different from the Banking and Credit Card industry, the number of bits/character is the same. In order to encode the additional alpha-numeric information required on the Driver's License, the specification was revised to permit alpha-numeric information to be encoded on track 3.
Note from the table below that the information contained on the 3 tracks of the Driver's License differ only slightly from the AAMVA standard to the early California DL standard. While the information contained on each track may be only slightly different, the field order, field lengths, and method of field separation and termination differs significantly. This table is only an overview of what data fields are contained on the three tracks of a magnetically coded driver's license. For detailed format specifications refer to the
AAMVA specification.
Track
|
Data Type
|
Credit Card
|
AAMVA License
|
Non-AAMVA Version of California License
|
1
|
Alpha-Numeric
(210 BPI, 7 Bits/Char)
|
Account Number Name Expiration Date
|
Last Name First Name Address City State
|
Last Name First Name Address City
|
2
|
Numeric-Only
(75 BPI, 5 Bits/Char)
|
Account Number Expiration Date
|
Drivers License Number Expiration Date Birthdate
|
Drivers License Number Expiration Date Birthdate
|
3
|
Numeric-Only
(210 BPI, 5 Bits/Char)
(No longer in use)
|
(ISO 4909 Specification -
No longer in use)
|
(N/A)
|
(N/A)
|
Alpha-Numeric
(210 BPI, 7 Bits/Char)
|
(N/A)
|
Postal Code Sex Height Weight Hair Color Eye Color
|
State Postal Code Sex Height Weight Hair Color Eye Color
|
- Track:
- In all cases utilize Track 1 -- which is alphanumeric (up to 79 characters).
- Sentinel Characters:
- Start Sentinel: %
- Separator: ^
- End Sentinel: ?
- Card Types: (Note: all Encodings should be equal-to or less-than 30-characters)
- Member Card: %MC^xxxxxxx? (where the seven x's are digits -- padded to the left with 0's)
- Guest-of-Member Card: %GM^xxxxxxx? (where the seven x's are digits -- padded to the left with 0's)
- Gift Card: %GC^xxxxxxx? (where the seven x's are digits -- padded to the left with 0's)
- Card Philosphy:
- The x-numberings must be unique within Card Type.
- These 'arbitrary' numberings are 'attached' (ie. cross-referenced) to the appropriate Member, Guest, Gift Card file upon activation -- and 'inherit' their respective 'associations', Expiration Dates, Denominations, Limits, etc. at the moment of activation.