Serialise parts for your own line scanners, MES and ERP: serial-only codes, printing, reading and checking without internet.
Use this when your own systems do the scanning: a fixed-mount reader on a packing line, handheld
scanners at receiving, or a vision system at end-of-line inspection. Each unit gets a unique,
signed serial your systems can read and check, with or without a connection to Satyakod.
1. Create the batch
In Batches → New batch:
Pick the product. A GTIN isn’t needed for serial-only codes.
Where codes are checked: Offline, or Online and offline if the same units will also be
checked by consumers or partners.
Code symbology:
Code
Best for
Code 128 · serial only
Linear scanners and laser readers; long, narrow labels
DataMatrix · serial only
Small parts and direct part marking; any 2D imager
QR Code · serial only
Camera-based readers and phones running your own app
GS1 DataMatrix
When your systems or customers expect GS1 data (GTIN, lot, dates)
Lot, dates and sale regions are kept with the batch in Satyakod. Serial-only codes don’t
carry them: your systems look them up from the batch, which the serial identifies.
2. Print
Send the job to the print line’s Zebra printer from the batch, or download the Printer job
(ZPL). Each serial-only label carries the code, the product name, the serial in groups of four for
people to read, and the batch id. The Serial list (CSV) has every serial with its index.
Print a few labels from the Proof sheet first and scan them with the line’s reader at line speed
before the full run.
3. Read
Configure the scanner to send just the decoded text, as most do by default (keyboard wedge, serial
port or the reader’s own API), with your usual suffix such as Enter. It sends the 16-character
serial, for example 0021A0512PXK20J9.From the serial alone, without a key, your system can read:
the batch: the first 24 bits are the number in the batch id (1045 for B-1045);
To confirm a serial is genuine without internet, an admin downloads the batch’s
verification key and your system checks each serial with it:
Offline verification, with examples in Python, Node.js and C#.
The serial list works too, as a lookup of issued serials.
5. Sync (optional)
Upload the scans when you’re online with POST /v1/verify/offline.
They appear in Scans, feed clone detection and alerts, and count in the monthly report, each
at the time it was scanned.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Satyakod","description":"Signed product codes and scan verification for brands.","colors":{"primary":"#4338CA","light":"#A5B4FC","dark":"#4338CA"},"logo":{"light":"https://mintcdn.com/anvionix-labs/Sa9Dyyphpzz0yQ1S/logo/light.svg?fit=max\u0026auto=format\u0026n=Sa9Dyyphpzz0yQ1S\u0026q=85\u0026s=adefbbe722bfb0d37f77564ea78e42b6","dark":"https://mintcdn.com/anvionix-labs/Sa9Dyyphpzz0yQ1S/logo/dark.svg?fit=max\u0026auto=format\u0026n=Sa9Dyyphpzz0yQ1S\u0026q=85\u0026s=f78e0cd7def34e22ec4a140f9ec9a683","href":"https://satyakod.com"},"favicon":"https://mintcdn.com/anvionix-labs/Sa9Dyyphpzz0yQ1S/favicon.svg?fit=max\u0026auto=format\u0026n=Sa9Dyyphpzz0yQ1S\u0026q=85\u0026s=6cbb1562c0910fc9d813c747a8a3878e","navbar":{"links":[{"href":"mailto:support@satyakod.com","label":"Support"}],"primary":{"type":"button","label":"Sign in","href":"https://app.satyakod.com"}},"footer":{"links":[{"header":"Satyakod","items":[{"label":"Dashboard","href":"https://app.satyakod.com"},{"label":"Contact support","href":"mailto:support@satyakod.com"}]}]},"icons":{"library":"lucide"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"anvionix-labs","hasAudioNarration":false,"actualSubdomain":"anvionix-labs","customDomains":[],"gitSource":{"type":"github","owner":"anvionixlabs","repo":"satyakod-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","_id":"6adf89354c5af91a41bf90c3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6af74fca50c7eef05a6b2e21","clientVersion":"0.0.4128","searchFilterCounts":[{"language":"default","tag":"Guides","count":24},{"language":"default","tag":"Integrations","count":8},{"language":"default","tag":"Workspace","count":7},{"language":"default","tag":"API reference","count":4},{"language":"default","tag":"Concepts","count":4},{"language":"default","tag":"Scans and alerts","count":4},{"language":"default","tag":"Consumers","count":4},{"language":"default","tag":"Systems","count":4},{"language":"default","tag":"Scans","count":3},{"language":"default","tag":"Codes","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"integrations/factory-scanners","slug":"/integrations/factory-scanners","pageMetadata":{"title":"Factory and warehouse scanners","description":"Serialise parts for your own line scanners, MES and ERP: serial-only codes, printing, reading and checking without internet.","href":"/integrations/factory-scanners"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Serialise parts for your own line scanners, MES and ERP: serial-only codes, printing, reading and checking without internet.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Mermaid,Table,Tip}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Mermaid)_missingMdxReference(`Mermaid`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Use this when your own systems do the scanning: a fixed-mount reader on a packing line, handheld\nscanners at receiving, or a vision system at end-of-line inspection. Each unit gets a unique,\nsigned serial your systems can read and check, with or without a connection to Satyakod.`}),`\n`,_jsx(Mermaid,{chart:`flowchart LR\n A[New batch: offline,\u003cbr/>Code 128 or DataMatrix] --> B[Sign]\n B --> C[Print on the line\u003cbr/>ZPL to Zebra]\n C --> D[Line scanner reads\u003cbr/>the 16-character serial]\n D --> E[Your MES checks it\u003cbr/>with the batch key]\n E --> F[(Your records)]\n E -. when online .-> G[Upload scans to Satyakod]`}),`\n`,_jsx(Heading,{level:`2`,id:`1-create-the-batch`,children:`1. Create the batch`}),`\n`,_jsxs(_components.p,{children:[`In `,_jsx(_components.strong,{children:`Batches → New batch`}),`:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Pick the product. A GTIN isn’t needed for serial-only codes.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Where codes are checked`}),`: `,_jsx(_components.em,{children:`Offline`}),`, or `,_jsx(_components.em,{children:`Online and offline`}),` if the same units will also be\nchecked by consumers or partners.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code symbology`}),`:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Code`}),_jsx(_components.th,{children:`Best for`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Code 128 · serial only`})}),_jsx(_components.td,{children:`Linear scanners and laser readers; long, narrow labels`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`DataMatrix · serial only`})}),_jsx(_components.td,{children:`Small parts and direct part marking; any 2D imager`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`QR Code · serial only`})}),_jsx(_components.td,{children:`Camera-based readers and phones running your own app`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`GS1 DataMatrix`})}),_jsx(_components.td,{children:`When your systems or customers expect GS1 data (GTIN, lot, dates)`})]})]})]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Lot, dates and sale regions are kept with the batch in Satyakod. Serial-only codes don’t\ncarry them: your systems look them up from the batch, which the serial identifies.`}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`2-print`,children:`2. Print`}),`\n`,_jsxs(_components.p,{children:[`Send the job to the print line’s Zebra printer from the batch, or download the `,_jsx(_components.strong,{children:`Printer job`}),`\n(ZPL). Each serial-only label carries the code, the product name, the serial in groups of four for\npeople to read, and the batch id. The `,_jsx(_components.strong,{children:`Serial list`}),` (CSV) has every serial with its index.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Print a few labels from the `,_jsx(_components.strong,{children:`Proof sheet`}),` first and scan them with the line’s reader at line speed\nbefore the full run.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`3-read`,children:`3. Read`}),`\n`,_jsxs(_components.p,{children:[`Configure the scanner to send just the decoded text, as most do by default (keyboard wedge, serial\nport or the reader’s own API), with your usual suffix such as Enter. It sends the 16-character\nserial, for example `,_jsx(_components.code,{children:`0021A0512PXK20J9`}),`.`]}),`\n`,_jsx(_components.p,{children:`From the serial alone, without a key, your system can read:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`the `,_jsx(_components.strong,{children:`batch`}),`: the first 24 bits are the number in the batch id (1045 for `,_jsx(_components.code,{children:`B-1045`}),`);`]}),`\n`,_jsxs(_components.li,{children:[`the `,_jsx(_components.strong,{children:`item index`}),` in the batch: the next 24 bits.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/concepts/serial-numbers`,children:`Serial numbers`}),` for the format.`]}),`\n`,_jsx(Heading,{level:`2`,id:`4-check`,children:`4. Check`}),`\n`,_jsxs(_components.p,{children:[`To confirm a serial is genuine without internet, an admin downloads the batch’s\n`,_jsx(_components.strong,{children:`verification key`}),` and your system checks each serial with it:\n`,_jsx(_components.a,{href:`/integrations/offline-verification`,children:`Offline verification`}),`, with examples in Python, Node.js and C#.\nThe serial list works too, as a lookup of issued serials.`]}),`\n`,_jsx(Heading,{level:`2`,id:`5-sync-optional`,children:`5. Sync (optional)`}),`\n`,_jsxs(_components.p,{children:[`Upload the scans when you’re online with `,_jsx(_components.a,{href:`/api-reference/verify-offline`,children:_jsx(_components.code,{children:`POST /v1/verify/offline`})}),`.\nThey appear in `,_jsx(_components.strong,{children:`Scans`}),`, feed clone detection and alerts, and count in the monthly report, each\nat the time it was scanned.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Factory and warehouse scanners","description":"Serialise parts for your own line scanners, MES and ERP: serial-only codes, printing, reading and checking without internet.","href":"/integrations/factory-scanners"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"1. Create the batch","slug":"1-create-the-batch","depth":2,"children":[]},{"title":"2. Print","slug":"2-print","depth":2,"children":[]},{"title":"3. Read","slug":"3-read","depth":2,"children":[]},{"title":"4. Check","slug":"4-check","depth":2,"children":[]},{"title":"5. Sync (optional)","slug":"5-sync-optional","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"anvionix-labs","siteName":"Satyakod","title":"Factory and warehouse scanners - Satyakod","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-13T17:58:37.901Z","originalFileLocation":"integrations/factory-scanners.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Serialise parts for your own line scanners, MES and ERP: serial-only codes, printing, reading and checking without internet.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Satyakod\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/anvionix-labs/z90Lg8DCEYBbF2eD/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/anvionix-labs/z90Lg8DCEYBbF2eD/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/anvionix-labs/z90Lg8DCEYBbF2eD/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/anvionix-labs/z90Lg8DCEYBbF2eD/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/anvionix-labs/z90Lg8DCEYBbF2eD/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/anvionix-labs/z90Lg8DCEYBbF2eD/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/anvionix-labs/z90Lg8DCEYBbF2eD/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/anvionix-labs/z90Lg8DCEYBbF2eD/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/anvionix-labs/z90Lg8DCEYBbF2eD/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Factory and warehouse scanners - Satyakod\">\u003cmeta data-mint-head property=\"og:description\" content=\"Serialise parts for your own line scanners, MES and ERP: serial-only codes, printing, reading and checking without internet.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Satyakod\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://anvionix-labs.mintlify.app/integrations/factory-scanners\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://anvionix-labs.mintlify.site/_mintlify/api/og/v2?division=Your+own+scanners\u0026amp;title=Factory+and+warehouse+scanners\u0026amp;description=Serialise+parts+for+your+own+line+scanners%2C+MES+and+ERP%3A+serial-only+codes%2C+printing%2C+reading+and+checking+without+internet.\u0026amp;theme=f20b265cf12bdc69a51386eb\u0026amp;signature=57aa9f42aee0a789566d1c3670d92bcac7246047771026d9b6bc0ac042123481\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Factory and warehouse scanners - Satyakod\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Serialise parts for your own line scanners, MES and ERP: serial-only codes, printing, reading and checking without internet.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://anvionix-labs.mintlify.site/_mintlify/api/og/v2?division=Your+own+scanners\u0026amp;title=Factory+and+warehouse+scanners\u0026amp;description=Serialise+parts+for+your+own+line+scanners%2C+MES+and+ERP%3A+serial-only+codes%2C+printing%2C+reading+and+checking+without+internet.\u0026amp;theme=f20b265cf12bdc69a51386eb\u0026amp;signature=57aa9f42aee0a789566d1c3670d92bcac7246047771026d9b6bc0ac042123481\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/anvionix-labs/z90Lg8DCEYBbF2eD/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Satyakod\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4338CA\">\u003clink data-mint-head rel=\"canonical\" href=\"https://anvionix-labs.mintlify.app/integrations/factory-scanners\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/integrations/factory-scanners.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://anvionix-labs.mintlify.app/#organization\",\"name\":\"Satyakod\",\"url\":\"https://anvionix-labs.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/anvionix-labs/Sa9Dyyphpzz0yQ1S/logo/light.svg?fit=max\u0026auto=format\u0026n=Sa9Dyyphpzz0yQ1S\u0026q=85\u0026s=adefbbe722bfb0d37f77564ea78e42b6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://anvionix-labs.mintlify.app#website\",\"name\":\"Satyakod\",\"url\":\"https://anvionix-labs.mintlify.app\",\"publisher\":{\"@id\":\"https://anvionix-labs.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://anvionix-labs.mintlify.app/integrations/factory-scanners#webpage\",\"url\":\"https://anvionix-labs.mintlify.app/integrations/factory-scanners\",\"name\":\"Factory and warehouse scanners\",\"description\":\"Serialise parts for your own line scanners, MES and ERP: serial-only codes, printing, reading and checking without internet.\",\"dateModified\":\"2026-11-13T17:58:37.901Z\",\"isPartOf\":{\"@id\":\"https://anvionix-labs.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://anvionix-labs.mintlify.app/integrations/factory-scanners#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://anvionix-labs.mintlify.app/integrations/factory-scanners#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Satyakod\",\"item\":\"https://anvionix-labs.mintlify.app\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Factory and warehouse scanners\",\"item\":\"https://anvionix-labs.mintlify.app/integrations/factory-scanners\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://anvionix-labs.mintlify.app/integrations/factory-scanners#article\",\"headline\":\"Factory and warehouse scanners\",\"name\":\"Factory and warehouse scanners\",\"description\":\"Serialise parts for your own line scanners, MES and ERP: serial-only codes, printing, reading and checking without internet.\",\"url\":\"https://anvionix-labs.mintlify.app/integrations/factory-scanners\",\"mainEntityOfPage\":{\"@id\":\"https://anvionix-labs.mintlify.app/integrations/factory-scanners#webpage\"},\"dateModified\":\"2026-11-13T17:58:37.901Z\",\"publisher\":{\"@id\":\"https://anvionix-labs.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://anvionix-labs.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Satyakod\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Satyakod\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/integrations/factory-scanners.md","siteName":"Satyakod","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"Integrations","groups":[{"group":"Your own scanners","pages":[{"title":"Factory and warehouse scanners","href":"/integrations/factory-scanners"},{"title":"Offline verification","description":"Check a batch's serials in your own systems, without internet, using the batch's verification key.","href":"/integrations/offline-verification"}]},{"group":"Systems","pages":[{"title":"SAP S/4HANA","href":"/integrations/sap"},{"title":"Zebra printers","href":"/integrations/zebra-printers"},{"title":"WhatsApp verify bot","href":"/integrations/whatsapp"},{"title":"AI assistants (MCP)","href":"/integrations/ai-assistants"}]},{"group":"Events","pages":[{"title":"Webhooks","href":"/integrations/webhooks"},{"title":"Zapier, Slack and Splunk","href":"/integrations/zapier-slack-splunk"}]}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api-reference/introduction"}]}]},"basePath":"","title":"Factory and warehouse scanners - Satyakod","buildId":"dpl_5tKr6cUUeuVJdEZ9JAEY3h4soMJ8","deploymentId":"dpl_5tKr6cUUeuVJdEZ9JAEY3h4soMJ8","dynamics":[],"chunks":[]}