Home → About NC Cardinal → Policies → Reserved Barcode Ranges
Last Updated 11/02/2026
This is a list of the ranges of barcodes in use by Cardinal libraries. Over time we've worked to get everyone into their own 14 digit barcode range reserved just for their system. We reserve the shorter numeric barcodes for Student Access accounts because these accounts use their Student IDs for barcodes, and Student IDs are all over the place.
If you have cards you're actively issuing in other ranges not mentioned here, please reach out to the Cardinal team. If you need to buy new patron cards or need to reserve a new barcode range, we need to coordinate that so that we can reserve a range that isn't already in use. (We also try to keep track of non-Cardinal libraries so that if any of them join, they don't have to rebarcode all their patrons.)
Some libraries have institutional or staff accounts that have short text barcodes to easily pull up the accounts, like 'STORYTIME', 'ILL', or that sort of thing. If you want to make use of these non-numeric barcodes as shortcuts, please add your system's Non-Patron Prefix to the beginning of the barcode.
| System | Length | Patron Prefixes | Non-Patron Prefixes |
| ALEXANDER | 14 | 24269 | ALX |
| APPALACHIAN | 14 | 44501, 44502, 44503 | APP |
| BHM | 14 | 28344 | BHM |
| BLADEN | 14 | 20441 | BLD |
| BRASWELL | 14 | 57505 | BRS |
| BROWN | 14 | 20308 | BRN |
| BRUNSWICK | 14 | 21420, 21421, 21422, 21423, 21427, 21428 | BRU |
| BUNCOMBE | 13 | 10205 | BUN |
| BURKE | 14 | 23557 | BRK |
| CALDWELL | 14 | 40669 | CLD |
| CARTERET | 14 | 24208 | CRT |
| CAMDEN | 14 | 29488 (294889) | |
| CASWELL | 14 | 24622 | CAS |
| CLAYTON | 14 | 29523 | CLA |
| CLEVELAND | 14 | 62999 | CLV |
| COOLEY | 14 | 31244 | CLY |
| CUMBERLAND | 14 | 21781 | CMB |
| CURRITUCK | 14 | 29488 (294883, 294884, 294885) | CUR |
| DARE | 14 | 29488 (294882, 294886, 294887) | DAR |
| DAVIDSON | 14 | 35908 | DVD |
| DAVIE | 14 | 29872 | DVE |
| DUPLIN | 14 | 20372 | DUP |
| FARMVILLE | 14 | 33900 | FRM |
| FONTANA | 14 | 19493, 29493 | FRL |
| FORSYTH | 14 | 11125 | FOR |
| FRANKLIN | 14 | 70000 | FRK |
| GIBSONVILLE | 14 | 20449 | GIB |
| GRANVILLE | 14 | 32756 | GRN |
| HALIFAX | 14 | 11011 | HLF |
| HARNETT | 14 | 23630 | HRN |
| HAYWOOD | 14 | 23115, 24115 | HAY |
| HENDERSON | 14 | 23258 | HND |
| HIGH POINT | 14 | 20519 | HGH |
| IREDELL | 14 | 23114 | IRD |
| JACKSON | 14 | 69493 | JCK |
| JOHNSTON | 14 | 28950 | JHN |
| LEE | 14 | 23262 | LEE |
| MADISON | 14 | 21229 | MAD |
| MAUNEY | 14 | 52999 | MNY |
| MCDOWELL | 14 | 27910 | MCD |
| NANTAHALA | 14 | 70605 | NAN |
| NC_GOV | 14 | 23091, 32850 | GOV |
| NEUSE | 14 | 29149 | NEU |
| NORTHWESTERN | 14 | 40000, 50000 | NWR |
| ONSLOW | 14 | 46015 | ONS |
| PASQUOTANK | 14 | 29488 (294881, 294888) | PAS |
| PERRY | 14 | 23727 | PRY |
| PERSON | 14 | 24621 | PRS |
| POLK | 14 | 21250 | PLK |
| ROBESON | 14 | 24510 | ROB |
| ROCKINGHAM | 14 | 21554 | RCK |
| RUTHERFORD | 14 | 20113, 20134, 20254, 28801 | RTH |
| SAMPSON | 12 | 81010, 81050 | SMP |
| SANDHILL | 14 | 17033, 27033, 37033, 47033, 57033, 67033 | SND |
| SCOTLAND | 14 | 20388 | SCT |
| STANLY | 14 | 21010 | STN |
| TRANSYLVANIA | 14 | 28079 | TRN |
| TRV | 14 | 11111, 12222, 14444, 15555, 16666 | TRV |
| WARREN | 14 | 20304, 28017 | WRN |
| WAYNE | 14 | 22947 | WYN |
| YANCEY | 14 | 13333 | YAN |
If you have item barcodes you're actively issuing in other ranges not mentioned here, please reach out to the Cardinal team. If you need a new barcode range for purchasing barcodes, we need to coordinate that so that we can reserve a range that isn't already in use. (We also try to keep track of non-Cardinal libraries so that if any of them join, they don't have to rebarcode all their items.)
Acquisitions Prefixes are the prefixes systems use for dummy item barcodes before the item is shelf ready.
| System | Barcode Length | Item Barcode Prefix | Acquisitions Prefix |
| ALEXANDER | 14 | 34269 | |
| APPALACHIAN | 14 | 50501, 50502, 50503 | |
| BHM | 14 | 38344 | |
| BLADEN | 14 | 30441 | |
| BRASWELL | 14 | 37807 | BRAS |
| BRASWELL | 15 | 54019 | BRAS |
| BROWN | 14 | 30308 | |
| BRUNSWICK | 14 | 31420, 31421, 31422, 31423, 31427 | |
| BUNCOMBE | 13 | 00205, 00206, 00204 | |
| BURKE | 14 | 33557 | |
| CALDWELL | 14 | 50669 | |
| CAMDEN | 14 | 39488 (394889) | CMD |
| CARTERET | 14 | 34208 | |
| CASWELL | 14 | 34621 | |
| CLAYTON | 14 | 39523 | |
| CLEVELAND | 14 | 22281 | |
| COOLEY | 14 | 20100 | |
| CUMBERLAND | 14 | 31781 | CMB |
| CURRITUCK | 14 | 39844, 39488 (394882, 394886, 394887) | CUR |
| DARE | 14 | 39488 (394883, 394884, 394885) | DAR |
| DAVIDSON | 14 | 25908 | |
| DAVIE | 14 | 39872 | |
| DUPLIN | 14 | 30372 | |
| FARMVILLE | 14 | 23900 | |
| FONTANA | 14 | 39493 | FON |
| FORSYTH | 13 | 01125, 01124, 21125 | FOR |
| FRANKLIN | 14 | 72350 | |
| GIBSONVILLE | 14 | 30449 | |
| GRANVILLE | 14 | 42756 | GRAN |
| HALIFAX | 14 | 01011 | |
| HARNETT | 14 | 33436, 33633, 33632, 33631, 33630 | |
| HAYWOOD | 14 | 33115 | |
| HIGH POINT | 14 | 30519 | HIH |
| HENDERSON | 14 | 33258 | HCPL |
| IREDELL | 14 | 33114 | |
| JACKSON | 14 | 79493 | JACK |
| JOHNSTON | 14 | 38950, 38955 | JOHN |
| LEE | 14 | 33262 | |
| MADISON | 14 | 30229 | |
| MAUNEY | 14 | 26280 | |
| MCDOWELL | 14 | 37810 | |
| NANTAHALA | 14 | 80605 | |
| NC_GOV | 14 | 33091, 31957, 47000, 31879, 32850, 34100 | |
| NEUSE | 14 | 39149 | |
| NORTHWESTERN | 14 | 30005, 30094, 30499, 30664, 30665, 30666, 30667, 30668, 30669, 30670, 30671, 30672, 40599, 80001 | NWACQ |
| ONSLOW | 14 | 36015 | |
| PASQUOTANK | 14 | 39488 (394881, 394888) | PAS |
| PERRY | 14 | 33727 | |
| PERSON | 14 | 34622 | |
| POLK | 14 | 31250 | POLK |
| ROBESON | 14 | 34510 | |
| ROCKINGHAM | 14 | 31554 | |
| RUTHERFORD | 14 | 38801, 30254, 30113, 30134 | |
| SAMPSON | 15 | 81019 | |
| SANDHILL | 14 | 48198, 38198, 28198, 58198, 18198 | |
| SCOTLAND | 14 | 30388 | |
| STANLY | 14 | 31010, 31011, 31012, 31013, 31014, 31015 | STAN |
| TRANSYLVANIA | 14 | 38079 | TRAN |
| TRV | 14 | 31111, 32222, 34444, 35555, 36666 | |
| WARREN | 14 | 28017, 38017 | |
| WAYNE | 15 | 90000, 64019, 99000, 99900 | WAYNE |
| YANCEY | 14 | 33333 |
Some RFID readers require configurations that define the expected barcode ranges they'll encounter. In order to facilitate this setup, we've listed the systems that we believe use RFID and the regex each system's barcode ranges they have encoded in RFID tags.
| System | Length | Range | Barcode Regex |
| FORSYTH | 13 | 01125, 01124, 21125 | (^[02]112[45]\d{8}) |
| APPALACHIAN | 14 | 50501, 50502, 50503 | (^5050[1-3]\d{9}) |
| BRASWELL | 14 | 37807 | (^37807\d{9}) |
| CLEVELAND | 14 | 22281 | (^22281\d{9}) |
| CUMBERLAND | 14 | 31781 | (^31781\d{9}) |
| DAVIE | 14 | 39872 | (^39872\d{9}) |
| FRANKLIN | 14 | 72350 | (^72350\d{9}) |
| HARNETT | 14 | 33630 | (^33630\d{9}) |
| HAYWOOD | 14 | 33115 | (^33115\d{9}) |
| HENDERSON | 14 | 33258 | (^33258\d{9}) |
| HIGH POINT | 14 | 30519 | (^30519\d{9}) |
| IREDELL | 14 | 33114 | (^33114\d{9}) |
| JACKSON | 14 | 79493 | (^79493\d{9}) |
| LEE | 14 | 33262 | (^33262\d{9}) |
| MACON | 14 | 39493 | (^39493\d{9}) |
| MAUNEY | 14 | 26280 | (^26280\d{9}) |
| MCDOWELL | 14 | 37810 | (^37810\d{9}) |
| NEUSE | 14 | 39149 | (^39149\d{9}) |
| POLK | 14 | 31250 | (^31250\d{9}) |
| ROBESON | 14 | 34510 | (^34510\d{9}) |
| ROCKINGHAM | 14 | 31554 | (^31554\d{9}) |
| SCOTLAND | 14 | 30388 | (^30388\d{9}) |
| SWAIN | 14 | 39493 | (^39493\d{9}) |
| TRANSYLVANIA | 14 | 38079 | (^38079\d{9}) |
| WAYNE | 15 | 64019 | (^64019\d{10}) |
| WAYNE | 15 | 99000 | (^99000\d{10}) |
So, when put all together, this might read as follows for a TechLogic RFID pad configuration:
(((?!.{15})((^5050[1-3]\d{9})|(^37807\d{9})|(^22281\d{9})|(^31781\d{9})|(^39872\d{9})|(^72350\d{9})|(^33630\d{9})|(^33115\d{9})|(^33258\d{9})|(^30519\d{9})|(^33114\d{9})|(^79493\d{9})|(^33262\d{9})|(^39493\d{9})|(^26280\d{9})|(^37810\d{9})|(^39149\d{9})|(^31250\d{9})|(^34510\d{9})|(^31554\d{9})|(^30388\d{9})|(^39493\d{9})|(^38079\d{9})))|((?!.{14})((^[02]112[45]\d{8})))|((?!.{16})((^64019\d{10})|(^99000\d{10}))))
Notes on this regex expression:
Every element of the expression is enclosed with brackets ()
List elements within the expression are seperated by bars |
(?!.{15}) for example, means the ranges in the following list are 14 digits
^ is the beginning of a match
\d{9} for example, means any other nine digits afterwards
[02] means either the digit 0 or the digit 2
[0-2] means any digit between 0 and 2, aka 0 or 1 or 2