Check digit calculation of Modulo 43

Description of calculating check digits



InfoActiveBarcode calculates check digits for most codes automatically.
This documentation is only for the sake of completeness.

Modulo 43

Calculation of a checksum according to Modulo 43:
A check digit according to Modulo 43 is used e.g. by the Code 39.

First, reference numbers are assigned to all characters of the code. These reference numbers are added to a total. This sum is divided by 43. The rest of this division corresponds to the checksum, which is then replaced by the character corresponding to the reference number is represented.

A calculation example:

Digits: 1 5 9 A Z
Reference numbers: 1 +5 +9 +10 +35
Sum of reference numbers: 60
Calculate checksum: 60 / 43 = 1 Remainder 17
Check digit "H" (Reference number 17)

Reference numbers:
00 0
01 1
02 2
03 3
04 4
05 5
06 6
07 7
08 8
09 9
10 A
11 B
12 C
13 D
14 E
15 F
16 G
17 H
18 I
19 J
20 K
21 L
22 M
23 N
24 O
25 P
26 Q
27 R
28 S
29 T
30 U
31 V
32 W
33 X
34 Y
35 Z
36 -
37 .
38 Space
39 $
40 /
41 +
42 %


Code example for calculating the checksum according to Modulo 43

Excel VBA Code for calculating the checksum according to Modulo 43, e.g. for the HIBC code:
' calc modulo 43
‘ returns the input string plus the check character
' demo for www.activebarcode.com
Public Function MOD43CheckChar(sValue As String) As String
    Const charSet As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%"
    Dim i As Integer
    Dim T As Long
    For i = 1 To Len(Trim(UCase(sValue)))
        T = InStr(charSet, Mid(sValue, i, 1)) - 1 + T
    Next i
    MOD43CheckChar = sValue & Mid$(charSet, (T Mod 43 + 1), 1)
End Function