# Sparklane Developers - [Sparklane developer docs](https://docs.sparklane.com/index.md): Drop-in barcode scanning for iOS apps, with or without ZipZap hardware. - [Getting started](https://docs.sparklane.com/sdk/getting-started.md): Add ZipZapKit to an iOS app and scan your first barcode into a ScanField. - [Replacing a TextField](https://docs.sparklane.com/sdk/scanfield/replacing-a-textfield.md): Swap an existing SwiftUI TextField for ScanField without changing your data flow. - [Scan sources](https://docs.sparklane.com/sdk/scanfield/sources.md): Camera, HID keyboard-wedge scanners, and ZipZap hardware all feed the same field. - [When a scanner is connected](https://docs.sparklane.com/sdk/scanfield/connected-scanners.md): How ScanField changes behaviour when a hardware scanner is attached. - [Barcode types](https://docs.sparklane.com/sdk/modifiers/barcode-types.md): Restrict which barcode types a ScanField accepts. - [Validation](https://docs.sparklane.com/sdk/modifiers/validation.md): Reject scans that don't match what a ScanField expects, before they reach your data. - [Normalization](https://docs.sparklane.com/sdk/modifiers/normalization.md): Canonicalize scanned values before they reach your binding. - [GS1 Application Identifiers](https://docs.sparklane.com/sdk/gs1/application-identifiers.md): Parse GS1 element strings into typed fields. - [GS1 Digital Link](https://docs.sparklane.com/sdk/gs1/digital-link.md): Parse GS1 Digital Link URIs into the same structure as element strings. - [Migrating from Scandit](https://docs.sparklane.com/sdk/migrating-from-scandit.md): Map Scandit concepts to ZipZapKit, use the thin adapter, and know what isn't covered. - [API reference](https://docs.sparklane.com/api-reference/overview.md): Swift API reference for ZipZapKit. - [ScanField](https://docs.sparklane.com/api-reference/scanfield.md): ScanField view and its initializers. - [Modifiers](https://docs.sparklane.com/api-reference/modifiers.md): Barcode type, validation, and normalization modifiers. - [Sources and hardware](https://docs.sparklane.com/api-reference/sources.md): Scan source and hardware connection types. - [GS1 parsing](https://docs.sparklane.com/api-reference/gs1.md): GS1 element string and Digital Link types. - [Changelog](https://docs.sparklane.com/changelog.md): Release notes for ZipZapKit. - [License](https://docs.sparklane.com/license.md): Licensing terms for ZipZapKit. - [Integrating ZipZap hardware](https://docs.sparklane.com/hardware/overview.md): Use ZipZap backpack and case scanners with the SDK. - [HID or SDK](https://docs.sparklane.com/hardware/hid-vs-sdk.md): Use a ZipZap scanner as a plain keyboard with no code, or integrate the SDK for barcode types, validation, and scanner events. - [Configuration](https://docs.sparklane.com/hardware/configuration.md): Configure scanner settings from your app or with configuration barcodes. - [AAMVA test barcodes](https://docs.sparklane.com/hardware/aamva-test-barcodes.md): Sample PDF417 driver's license barcodes for testing ID-scanning apps. - [Barcode anatomy](https://docs.sparklane.com/tools/barcode-anatomy.md): Scan or paste a barcode to see its type, GS1 prefix, check digit, GS1 Application Identifiers and more, explained part by part. - [Barcode generator](https://docs.sparklane.com/tools/generator.md): Make GS1 DataMatrix, GS1-128 and GS1 Digital Link QR codes from a GTIN, batch and dates, or any common barcode from your own data. Download as SVG or PNG. - [Barcode reference](https://docs.sparklane.com/reference/overview.md): How the barcodes you'll scan are built: every barcode type ZipZapKit and ZipZap hardware know, plus guides to check digits, error correction, GS1 data and more. - [Barcode groups](https://docs.sparklane.com/reference/barcode-groups.md): Which barcode types belong to which group (retail product, logistics, GS1, 1D, 2D, postal, ID and documents) and how to enable a whole group in ZipZapKit. - [Why doesn't my scan match the number printed under the barcode?](https://docs.sparklane.com/reference/scan-vs-printed-number.md): Leading zeros, check digits, add-ons and scanner prefixes: why scanned data differs from the digits printed under a barcode, and how to fix it. - [GS1 Application Identifiers](https://docs.sparklane.com/reference/gs1-application-identifiers.md): Every GS1 Application Identifier (AI): what it means, its format and length, and whether it needs a separator, generated from GS1's own syntax dictionary. - [Check digits](https://docs.sparklane.com/reference/check-digits.md): How barcode check digits are calculated, with worked examples for GS1 mod-10, ISBN-10 and ISSN mod-11, Code 128 mod-103 and Code 39 mod-43. - [How much error correction should I use?](https://docs.sparklane.com/reference/error-correction.md): Choosing an error correction level for QR Code, Aztec and PDF417: low for screens, medium for clean labels, high and larger for boxes that get scraped. - [Sunrise 2027](https://docs.sparklane.com/reference/sunrise-2027.md): The retail industry's move to 2D barcodes at checkout: what's changing by the end of 2027, which barcodes are involved, and what it means for your app. - [UPC-A](https://docs.sparklane.com/reference/barcode-types/upc-a.md): The 12-digit barcode on retail products in the United States and Canada: its structure, number system digit, check digit, and how to scan it. - [UPC-E](https://docs.sparklane.com/reference/barcode-types/upc-e.md): The short UPC barcode on small packages: how 8 printed digits expand to a 12-digit UPC-A, how it's structured, and how to scan it. - [EAN-13](https://docs.sparklane.com/reference/barcode-types/ean-13.md): The 13-digit barcode on retail products worldwide: its structure, GS1 prefixes, the check digit, and how to scan it. - [EAN-8](https://docs.sparklane.com/reference/barcode-types/ean-8.md): The 8-digit barcode for retail products too small for an EAN-13: its structure, check digit, and how it differs from UPC-E. - [ISBN](https://docs.sparklane.com/reference/barcode-types/isbn.md): How a book's ISBN is carried in an EAN-13 barcode: the 978 and 979 prefixes, ISBN-10 versus ISBN-13, hyphens, and the price add-on. - [ISSN](https://docs.sparklane.com/reference/barcode-types/issn.md): How a magazine or journal's ISSN is carried in an EAN-13 barcode with prefix 977, and how the issue number add-on works. - [GS1 DataBar](https://docs.sparklane.com/reference/barcode-types/gs1-databar.md): The family of compact GS1 barcodes used on fresh food and coupons: its seven variants, which work at checkout, what Expanded can carry, and how to scan it. - [GS1 Composite](https://docs.sparklane.com/reference/barcode-types/gs1-composite.md): A linear GS1 barcode with a small 2D barcode stacked above it for extra data: its components, capacities, and why a scan can come back with only half the data. - [ITF-14](https://docs.sparklane.com/reference/barcode-types/itf-14.md): The 14-digit barcode on shipping cases and cartons: its structure, bearer bars, indicator digit, and how to scan it. - [2 of 5 barcodes](https://docs.sparklane.com/reference/2-of-5-barcodes.md): Interleaved, Industrial, IATA, Matrix and other 2 of 5 barcodes: how they differ, why vendors name them inconsistently, and why they misread. - [Interleaved 2 of 5](https://docs.sparklane.com/reference/barcode-types/interleaved-2-of-5.md): A compact numeric barcode that encodes digits in pairs: how it works, why it misreads, and how to scan it safely. - [Code 128](https://docs.sparklane.com/reference/barcode-types/code-128.md): The general-purpose linear barcode for text and numbers: its three code sets, structure, mod-103 check character, and how to scan it. - [GS1-128](https://docs.sparklane.com/reference/barcode-types/gs1-128.md): The Code 128 barcode that carries GS1 data on logistics labels: Application Identifiers, FNC1 separators, structure, and how to parse it. - [Code 39](https://docs.sparklane.com/reference/barcode-types/code-39.md): The simple alphanumeric barcode used in industry, healthcare and government: its 43 characters, start and stop asterisks, optional check, and Full ASCII. - [Code 93](https://docs.sparklane.com/reference/barcode-types/code-93.md): A denser successor to Code 39 with two required check characters: its structure, Full ASCII shift characters, and how to scan it. - [Codabar](https://docs.sparklane.com/reference/barcode-types/codabar.md): The numeric barcode with letter start and stop characters, used by libraries and in older healthcare and shipping systems. - [Code 11](https://docs.sparklane.com/reference/barcode-types/code-11.md): The numeric barcode used to label telecommunications equipment: its characters, check characters, and how to scan it. - [MSI Plessey](https://docs.sparklane.com/reference/barcode-types/msi-plessey.md): The numeric barcode on retail shelf labels: its structure, its several check digit methods, and how to scan it. - [Industrial 2 of 5](https://docs.sparklane.com/reference/barcode-types/industrial-2-of-5.md): A simple, low-density numeric barcode that encodes digits in its bars only, found on older industrial labels. - [Matrix 2 of 5](https://docs.sparklane.com/reference/barcode-types/matrix-2-of-5.md): A numeric 2 of 5 barcode that encodes each digit in three bars and two spaces, found in older warehouse systems. - [QR Code](https://docs.sparklane.com/reference/barcode-types/qr-code.md): The most widely used 2D barcode: how it's structured, versions and capacity, error correction levels, GS1 Digital Link, and how to scan it. - [Micro QR Code](https://docs.sparklane.com/reference/barcode-types/micro-qr.md): A smaller QR Code with a single finder pattern, for marking small items with very little data. - [Data Matrix](https://docs.sparklane.com/reference/barcode-types/datamatrix.md): The compact 2D barcode used in healthcare, electronics and manufacturing: its structure, sizes, fixed error correction, and GS1 DataMatrix. - [PDF417](https://docs.sparklane.com/reference/barcode-types/pdf417.md): The stacked 2D barcode on driver's licenses and boarding passes: rows and codewords, error correction levels, and how to scan it. - [MicroPDF417](https://docs.sparklane.com/reference/barcode-types/micro-pdf417.md): A compact form of PDF417 with one to four columns, used where space is tight and as the 2D part of GS1 Composite barcodes. - [Aztec](https://docs.sparklane.com/reference/barcode-types/aztec.md): The 2D barcode with a bullseye at its center, common on mobile train and airline tickets: structure, sizes, error correction, and how to scan it. - [MaxiCode](https://docs.sparklane.com/reference/barcode-types/maxicode.md): The fixed-size 2D barcode with a bullseye and hexagonal modules, used on parcel shipping labels. - [Han Xin](https://docs.sparklane.com/reference/barcode-types/han-xin.md): A 2D barcode designed in China to encode Chinese characters efficiently: structure, sizes and error correction. - [Grid Matrix](https://docs.sparklane.com/reference/barcode-types/grid-matrix.md): A 2D barcode designed for Chinese text, built from a grid of framed blocks: sizes, error correction and how to scan it. - [USPS Intelligent Mail](https://docs.sparklane.com/reference/barcode-types/usps-intelligent-mail.md): The 65-bar, 4-state barcode on US letters and flats: its tracking and routing codes, how it replaced POSTNET and PLANET, and how to scan it. - [POSTNET](https://docs.sparklane.com/reference/barcode-types/postnet.md): The retired USPS barcode of tall and short bars that encoded ZIP Codes: its structure, correction digit, and where you'll still find it. - [PLANET](https://docs.sparklane.com/reference/barcode-types/planet.md): The retired USPS tracking barcode, POSTNET's inverse: its structure, what its digits meant, and what replaced it. - [Royal Mail 4-State (RM4SCC)](https://docs.sparklane.com/reference/barcode-types/royal-mail-4-state.md): Royal Mail's 4-state customer barcode for UK postcodes: its structure, checksum, and its replacement by Mailmark. - [Royal Mail Mailmark](https://docs.sparklane.com/reference/barcode-types/mailmark.md): Royal Mail's barcodes for business mail: the two 4-state formats, the three 2D Data Matrix formats, what they carry, and how to scan them. - [Australia Post 4-State](https://docs.sparklane.com/reference/barcode-types/australia-post.md): Australia Post's 4-state customer barcode: its three lengths, the delivery point identifier, Reed–Solomon error correction, and how to scan it. - [Japan Post](https://docs.sparklane.com/reference/barcode-types/japan-post.md): Japan Post's 4-state customer barcode: the postal code and address number it carries, its mod-19 check digit, and how to scan it. - [KIX](https://docs.sparklane.com/reference/barcode-types/kix.md): PostNL's 4-state address barcode for Dutch mail: the postcode and house number it carries, and how it differs from Royal Mail's code. - [Korea Post](https://docs.sparklane.com/reference/barcode-types/korea-post.md): Korea Post's barcode for postal codes: a six-digit code and check digit, encoded by the position of identical bars. - [China Post 2 of 5](https://docs.sparklane.com/reference/barcode-types/china-post-2-of-5.md): The 2 of 5 barcode used by China Post for mail sorting, also called Datalogic 2 of 5: a Matrix 2 of 5 variant with its own start and stop. - [MRZ (machine-readable zone)](https://docs.sparklane.com/reference/documents/mrz.md): The lines of OCR-B text on passports, ID cards and visas: their layout, fields, check digits, and how to read them reliably. This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.