Unique key that makes this request safe to retry. Replaying the key with the same body returns the original response with Idempotent-Replayed: true; replaying it with a different body returns 409 idempotency.key_conflict.
Required string length: 1 - 255
Example:
"a1b2c3d4-0000-4000-8000-000000000000"
Body
application/json
Pair up to 100 chips in one request. All units must belong to the same collection; units are issued in the order provided.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Endstate API","colors":{"primary":"#0D9373","light":"#07C983","dark":"#0D9373"},"logo":{"light":"https://mintcdn.com/endstate/7r-sSPorwOnbb4QJ/logo/light.png?fit=max\u0026auto=format\u0026n=7r-sSPorwOnbb4QJ\u0026q=85\u0026s=565266775e787378280a8d9fc438da1c","dark":"https://mintcdn.com/endstate/7r-sSPorwOnbb4QJ/logo/dark.png?fit=max\u0026auto=format\u0026n=7r-sSPorwOnbb4QJ\u0026q=85\u0026s=05c5d28cb884129713cb966e0773b3f9"},"favicon":"https://mintcdn.com/endstate/-o0caas8YOAvZHeK/favicon.png?fit=max\u0026auto=format\u0026n=-o0caas8YOAvZHeK\u0026q=85\u0026s=63980c55cef5eefd51957777c8cb7630","icons":{"library":"lucide"},"contextual":{"options":["copy","view","claude","chatgpt","mcp"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"endstate","hasAudioNarration":false,"actualSubdomain":"endstate","customDomains":["docs.endstate.io"],"gitSource":{"type":"github","owner":"end-state","repo":"endstate","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"0aefdd91-a1d0-4b8c-9237-466bf41d9069","liveDeploymentHistoryId":"6ae146c04e6f686841d5b0ab","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae146c04e6f686841d5b0ab"},"feedback":{"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae1b3b7b8d58072c0207180","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"SDKs","count":144},{"language":"default","tag":"Reference","count":129},{"language":"default","tag":"Core SDK","count":82},{"language":"default","tag":"API Reference","count":49},{"language":"default","tag":"Endpoints","count":48},{"language":"default","tag":"Reader SDK","count":31},{"language":"default","tag":"Web SDK","count":30},{"language":"default","tag":"Documentation","count":24},{"language":"default","tag":"Webhooks","count":17},{"language":"default","tag":"Session","count":13}]},"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":"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":"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":"llms-txt-v2","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":"per-site-search-delta","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":"editor-private-page-search","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/chips/pair-chips-in-bulk","slug":"/api-reference/chips/pair-chips-in-bulk","pageMetadata":{"title":"Pair chips in bulk","description":"Pairs up to 100 chips to units of a single collection in one request. Units are issued in the order provided.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/chips/bulk","href":"/api-reference/chips/pair-chips-in-bulk","autogeneratedByOpenApi":true},"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: \"Pairs up to 100 chips to units of a single collection in one request. Units are issued in the order provided.\"\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Pair chips in bulk","description":"Pairs up to 100 chips to units of a single collection in one request. Units are issued in the order provided.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/chips/bulk","href":"/api-reference/chips/pair-chips-in-bulk","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"bulkPairChips","summary":"Pair chips in bulk","description":"Pairs up to 100 chips to units of a single collection in one request. Units are issued in the order provided.","tags":["Chips"],"security":["873daa30-943d-4a47-8fab-1949600fa48a"],"parameters":["89927691-58fa-401f-a329-c88fb9209a66"],"requestBody":"10a39277-f420-4179-a75a-ed5917ade97a","responses":{"201":"b6cfbeb8-174c-4bf2-b1bf-3101d35badca","400":"b8632680-6de6-48bc-8271-cebe17752ad7","401":"58e57046-7688-4b23-8bf7-4489d177cd63","403":"d71b4427-a8d4-4fb6-9876-527cd74c5006","404":"9aa9a25c-bc39-4eab-b5b0-5d9397e15019","409":"00a60dc8-fb34-47c6-9f78-492bccb8fa54","422":"2bce050d-fb1a-418b-9406-ca27ad347931","500":"644c102d-b53b-4090-89f1-b5483703d1dd"},"method":"post","type":"path","servers":["50b89c0d-b575-4dba-8f38-0083ece47f3a","37acff5c-c235-465a-ae2e-54702160b9af"],"path":"/v1/chips/bulk","baseUrlOptions":["https://api2.endstate.io","https://api-staging.endstate.io"],"title":"Pair chips in bulk","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"89927691-58fa-401f-a329-c88fb9209a66":{"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Unique key that makes this request safe to retry. Replaying the key with the same body returns the original response with `Idempotent-Replayed: true`; replaying it with a different body returns 409 `idempotency.key_conflict`.","example":"a1b2c3d4-0000-4000-8000-000000000000","isRequired":false,"uniqueKey":"","typeLabel":"string"},"required":false,"name":"Idempotency-Key","in":"header"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"chips":{"type":"array","items":{"oneOf":[{"type":"object","required":["unit_id","is_test"],"properties":{"unit_id":{"type":"string","format":"uuid","description":"Unit (resource) the chip is paired to.","example":"11111111-1111-1111-1111-111111111111","isRequired":true,"uniqueKey":"chips.items.[INDEX].oneOf.0.unit_id","typeLabel":"string\u003cuuid>"},"is_test":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"chips.items.[INDEX].oneOf.0.is_test","typeLabel":"enum\u003cboolean>"}},"additionalProperties":false,"uniqueKey":"chips.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["unit_id","chip_id","e"],"properties":{"unit_id":{"type":"string","format":"uuid","description":"Unit (resource) the chip is paired to.","example":"11111111-1111-1111-1111-111111111111","isRequired":true,"uniqueKey":"chips.items.[INDEX].oneOf.1.unit_id","typeLabel":"string\u003cuuid>"},"chip_id":{"type":"string","pattern":"^[0-9A-Fa-f]{10}$","description":"Chip identifier from the tap URL. Always returned uppercase.","example":"ABCDEF0123","isRequired":true,"uniqueKey":"chips.items.[INDEX].oneOf.1.chip_id","typeLabel":"string"},"e":{"type":"string","pattern":"^[0-9A-F]{32}$","description":"PICC e-value from the tap URL.","example":"C78566198547116F3A715DC1C62AF96F","isRequired":true,"uniqueKey":"chips.items.[INDEX].oneOf.1.e","typeLabel":"string"},"c":{"type":"string","description":"Tap verification code (`c`) from the tap URL. When onboarding a chip for an organization configured to require it, pairing rejects a missing or unreadable value with `chip.mac_required` and an invalid value with `chip.invalid_e_value`. Include the complete value from the tap URL.","example":"ABA8AF6C69A76F0F","uniqueKey":"chips.items.[INDEX].oneOf.1.c","typeLabel":"string"},"is_test":{"type":"boolean","enum":[false],"uniqueKey":"chips.items.[INDEX].oneOf.1.is_test","typeLabel":"enum\u003cboolean>"}},"additionalProperties":false,"uniqueKey":"chips.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"chips.items.[INDEX]","typeLabel":"object"},"minItems":1,"maxItems":100,"isRequired":true,"uniqueKey":"chips","typeLabel":"object[]"}},"required":["chips"],"description":"Pair up to 100 chips in one request. All units must belong to the same collection; units are issued in the order provided.","uniqueKey":"","typeLabel":"object"},"example":{"chips":[{"unit_id":"22222222-2222-2222-2222-222222222222","is_test":true},{"unit_id":"33333333-3333-3333-3333-333333333333","chip_id":"ABCDEF0123","e":"C78566198547116F3A715DC1C62AF96F"}]},"examples":{"Example":{"title":"Example","value":{"chips":[{"unit_id":"22222222-2222-2222-2222-222222222222","is_test":true},{"unit_id":"33333333-3333-3333-3333-333333333333","chip_id":"ABCDEF0123","e":"C78566198547116F3A715DC1C62AF96F"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"b6cfbeb8-174c-4bf2-b1bf-3101d35badca":{"description":"Created chips, in the order provided.","content":{"application/json":{"schema":{"type":"object","properties":{"chips":{"type":"array","items":{"type":"object","properties":{"chip_id":{"type":"string","pattern":"^[0-9A-F]{10}$","description":"Chip identifier from the tap URL.","example":"ABCDEF0123","isRequired":true,"uniqueKey":"chips.items.[INDEX].chip_id","typeLabel":"string"},"is_test":{"type":"boolean","isRequired":true,"uniqueKey":"chips.items.[INDEX].is_test","typeLabel":"boolean"},"unit":{"type":"object","properties":{"id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.id","typeLabel":"string\u003cuuid>"},"external_id":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.external_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.external_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.external_id","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.name.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.name","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"Plain-text description of the unit. Null when none.","example":"Hand-built interconnect with silver-gold conductors.","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Plain-text description of the unit. Null when none.","example":"Hand-built interconnect with silver-gold conductors.","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.description","typeLabel":"string | null"},"attributes":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"chips.items.[INDEX].unit.attributes.oneOf.0.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.attributes.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{}],"uniqueKey":"chips.items.[INDEX].unit.attributes.oneOf.1.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.attributes.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.attributes","typeLabel":"object | null"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.created_at","typeLabel":"string\u003cdate-time>"},"redirect_url":{"oneOf":[{"type":"string","format":"uri","description":"Tap redirect URL for this unit; takes precedence over product/collection/org defaults.","example":"https://brand.example/p","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.redirect_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Tap redirect URL for this unit; takes precedence over product/collection/org defaults.","example":"https://brand.example/p","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.redirect_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.redirect_url","typeLabel":"string\u003curi> | null"},"collection":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.0.id","typeLabel":"string\u003cuuid>"},"name":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.0.name","typeLabel":"string | null"},"external_id":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.0.external_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.0.external_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.0.external_id","typeLabel":"string | null"},"contract":{"type":"object","properties":{"address":{"type":"string","description":"Unique address identifying the collection.","example":"0x1111111111111111111111111111111111111111","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.0.contract.address","typeLabel":"string"},"chain_id":{"type":"integer","example":84532,"isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.0.contract.chain_id","typeLabel":"integer"},"status":{"type":"string","enum":["deploying","active","failed"],"description":"Collection lifecycle status. `deploying` while the collection is being provisioned; `active` once it is ready to use.","example":"active","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.0.contract.status","typeLabel":"enum\u003cstring>"}},"required":["address","chain_id","status"],"isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.0.contract","typeLabel":"object"},"token":{"type":"object","properties":{"status":{"type":"string","enum":["pending","active"],"description":"Issuance state of this unit within the collection. `pending` until the unit is issued; `active` once issued. There is no failure status: a unit whose issuance cannot complete stays `pending` - if a unit remains `pending` well beyond a few minutes, stop polling and contact support.","example":"pending","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.0.token.status","typeLabel":"enum\u003cstring>"},"serial":{"oneOf":[{"type":"integer","description":"Collection-scoped serial number. Assigned when the unit becomes `active`; null until then.","example":5,"isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.0.token.serial.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Collection-scoped serial number. Assigned when the unit becomes `active`; null until then.","example":5,"isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.0.token.serial.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.0.token.serial","typeLabel":"integer | null"}},"required":["status","serial"],"isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.0.token","typeLabel":"object"}},"required":["id","name","external_id","contract","token"],"description":"The unit's collection. Null only for units created before collections existed.","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"id":{"type":"string","format":"uuid"},"name":{"oneOf":[{"type":"string"},{"type":"null"}]},"external_id":{"oneOf":[{"type":"string"},{"type":"null"}]},"contract":{"type":"object","properties":{"address":{"type":"string","description":"Unique address identifying the collection.","example":"0x1111111111111111111111111111111111111111"},"chain_id":{"type":"integer","example":84532},"status":{"type":"string","enum":["deploying","active","failed"],"description":"Collection lifecycle status. `deploying` while the collection is being provisioned; `active` once it is ready to use.","example":"active"}},"required":["address","chain_id","status"]},"token":{"type":"object","properties":{"status":{"type":"string","enum":["pending","active"],"description":"Issuance state of this unit within the collection. `pending` until the unit is issued; `active` once issued. There is no failure status: a unit whose issuance cannot complete stays `pending` - if a unit remains `pending` well beyond a few minutes, stop polling and contact support.","example":"pending"},"serial":{"oneOf":[{"type":"integer","description":"Collection-scoped serial number. Assigned when the unit becomes `active`; null until then.","example":5},{"type":"null","description":"Collection-scoped serial number. Assigned when the unit becomes `active`; null until then.","example":5}]}},"required":["status","serial"]}},"required":["id","name","external_id","contract","token"],"description":"The unit's collection. Null only for units created before collections existed.","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"chips.items.[INDEX].unit.collection","typeLabel":"object | null"}},"required":["id","external_id","name","description","attributes","created_at","redirect_url","collection"],"description":"Snapshot of the paired unit, including its collection and issuance status. Poll the unit (GET /v1/units/{unit_id}) until `collection.token.status` is `active`. Issuance has no failure status on this surface - if the unit stays `pending` well beyond a few minutes, stop polling and contact support.","isRequired":true,"uniqueKey":"chips.items.[INDEX].unit","typeLabel":"object"},"scan_count":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"chips.items.[INDEX].scan_count","typeLabel":"integer"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"chips.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"}},"required":["chip_id","is_test","unit","scan_count","created_at"],"uniqueKey":"chips.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"chips","typeLabel":"object[]"}},"required":["chips"],"description":"The paired chips, in the order provided. Each carries a snapshot of its unit and issuance status.","uniqueKey":"","typeLabel":"object"},"example":{"chips":[{"chip_id":"FEDCBA9876","is_test":true,"unit":{"id":"22222222-2222-2222-2222-222222222222","external_id":"unit-001","name":"Example Unit","description":null,"attributes":null,"created_at":"2026-05-16T12:00:00.000Z","collection":{"id":"8e1a7f50-90ab-4cde-8012-3456789abcde","name":"Example Collection","external_id":"collection-001","contract":{"address":"0x1111111111111111111111111111111111111111","chain_id":84532,"status":"active"},"token":{"status":"pending","serial":null}}},"scan_count":0,"created_at":"2026-05-16T12:00:00.000Z"},{"chip_id":"ABCDEF0123","is_test":false,"unit":{"id":"33333333-3333-3333-3333-333333333333","external_id":"unit-002","name":"Example Unit","description":null,"attributes":null,"created_at":"2026-05-16T12:00:00.000Z","collection":{"id":"8e1a7f50-90ab-4cde-8012-3456789abcde","name":"Example Collection","external_id":"collection-001","contract":{"address":"0x1111111111111111111111111111111111111111","chain_id":84532,"status":"active"},"token":{"status":"pending","serial":null}}},"scan_count":0,"created_at":"2026-05-16T12:00:00.000Z"}]},"examples":{"Example":{"title":"Example","value":{"chips":[{"chip_id":"FEDCBA9876","is_test":true,"unit":{"id":"22222222-2222-2222-2222-222222222222","external_id":"unit-001","name":"Example Unit","description":null,"attributes":null,"created_at":"2026-05-16T12:00:00.000Z","collection":{"id":"8e1a7f50-90ab-4cde-8012-3456789abcde","name":"Example Collection","external_id":"collection-001","contract":{"address":"0x1111111111111111111111111111111111111111","chain_id":84532,"status":"active"},"token":{"status":"pending","serial":null}}},"scan_count":0,"created_at":"2026-05-16T12:00:00.000Z"},{"chip_id":"ABCDEF0123","is_test":false,"unit":{"id":"33333333-3333-3333-3333-333333333333","external_id":"unit-002","name":"Example Unit","description":null,"attributes":null,"created_at":"2026-05-16T12:00:00.000Z","collection":{"id":"8e1a7f50-90ab-4cde-8012-3456789abcde","name":"Example Collection","external_id":"collection-001","contract":{"address":"0x1111111111111111111111111111111111111111","chain_id":84532,"status":"active"},"token":{"status":"pending","serial":null}}},"scan_count":0,"created_at":"2026-05-16T12:00:00.000Z"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"b8632680-6de6-48bc-8271-cebe17752ad7":{"description":"The request was malformed or failed validation.\n\n| Error code | When |\n| --- | --- |\n| `chip.bulk_mixed_collections` | A bulk pairing request included units from more than one collection. Pair one collection per request. |\n| `validation.failed` | The request failed schema validation. See `error.details` for per-field issues. |","x-error-codes":["chip.bulk_mixed_collections","validation.failed"],"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"oneOf":[{"type":"string","description":"Stable, namespaced error code. The `ErrorCode` catalogue lists every code defined today; handle an unrecognized value as a generic failure rather than throwing, since codes are added over time.","enum":["environment.conflict","environment.invalid_configuration","organization.changed","validation.failed","auth.unauthorized","auth.forbidden","session_token.invalid_or_expired","session_token.wrong_chip","wallet_session.invalid_or_expired","not_found.resource","rate_limit.exceeded","chip.not_found","chip.invalid_e_value","chip.already_scanned","quota.exceeded","chip.not_a_test_chip","unit.not_found","unit.already_exists","unit.not_minted","collection.not_found","collection.already_exists","collection.not_active","collection_backfill.blocked","organization.not_found","chip.already_paired","chip.key_unusable","chip.mac_required","chip.bulk_mixed_collections","chip.bulk_pending","unit.issuance_pending","claim.owner_unknown","claim.already_to_recipient","claim.in_progress","claim.not_found","chip_replacement.locked","chip_replacement.in_progress","chip_replacement.not_found","transfer.owner_unknown","transfer.already_to_recipient","transfer.in_progress","transfer.not_found","submission.not_executable","vault.not_found","vault.already_exists","vault.provisioning_failed","vault.not_permitted","vault.unavailable","vault.challenge_invalid","vault.address_in_use","vault.key_conflict","vault.signer_unauthorized","vault_connection.not_found","vault_connection.not_active","vault_connection.already_exists","vault_connection.conflict","idempotency.key_conflict","idempotency.in_progress","internal.error","webhook_endpoint.not_found","webhook_endpoint.deleted","webhook_endpoint.limit_reached","webhook_endpoint.url_refused","webhook_endpoint.signing_unavailable","webhook_event_type.unknown","webhook_event.not_found","webhook_endpoint.disabled","webhook_delivery.in_progress","webhook_endpoint.not_subscribed"],"example":"chip.not_found","isRequired":true,"uniqueKey":"error.code.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"string","description":"Stable, namespaced error code. The `ErrorCode` catalogue lists every code defined today; handle an unrecognized value as a generic failure rather than throwing, since codes are added over time.","example":"chip.not_found","isRequired":true,"uniqueKey":"error.code.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring> | string"},"message":{"type":"string","description":"Human-readable description, for logs and debugging. Wording may change without notice - never parse or match against it.","example":"Chip not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Identifier for this request, matching the `X-Request-Id` response header. Log it and include it in any support request.","example":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"doc_url":{"type":"string","description":"Documentation page for this error code.","example":"https://docs.endstate.io/errors/chip-not-found","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"details":{"type":"object","properties":{"formErrors":{"type":"array","items":{"type":"string","uniqueKey":"error.details.formErrors.items.[INDEX]","typeLabel":"string"},"description":"Issues that apply to the request as a whole rather than one field.","example":[],"isRequired":true,"uniqueKey":"error.details.formErrors","typeLabel":"string[]"},"fieldErrors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"error.details.fieldErrors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"error.details.fieldErrors.additionalProperties","typeLabel":"string[]"},"description":"Validation issues keyed by the field that failed.","example":{"name":["Required"]},"isRequired":true,"uniqueKey":"error.details.fieldErrors","typeLabel":"object"}},"required":["formErrors","fieldErrors"],"description":"Per-field validation detail. Present only on `validation.failed`.","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message","request_id","doc_url"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"Every error response, regardless of endpoint or HTTP status, uses this envelope.","uniqueKey":"","typeLabel":"object"},"examples":{"chip.bulk_mixed_collections":{"title":"chip.bulk_mixed_collections","value":{"error":{"code":"chip.bulk_mixed_collections","message":"A bulk pairing request included units from more than one collection. Pair one collection per request.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/chip-bulk-mixed-collections"}}},"validation.failed":{"title":"validation.failed","value":{"error":{"code":"validation.failed","message":"The request failed schema validation. See `error.details` for per-field issues.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/validation-failed"}}}},"exampleType":"examples"}},"exampleType":"examples"},"58e57046-7688-4b23-8bf7-4489d177cd63":{"description":"Authentication failed.\n\n| Error code | When |\n| --- | --- |\n| `auth.unauthorized` | Credential is missing or malformed. |","x-error-codes":["auth.unauthorized"],"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"oneOf":[{"type":"string","description":"Stable, namespaced error code. The `ErrorCode` catalogue lists every code defined today; handle an unrecognized value as a generic failure rather than throwing, since codes are added over time.","enum":["environment.conflict","environment.invalid_configuration","organization.changed","validation.failed","auth.unauthorized","auth.forbidden","session_token.invalid_or_expired","session_token.wrong_chip","wallet_session.invalid_or_expired","not_found.resource","rate_limit.exceeded","chip.not_found","chip.invalid_e_value","chip.already_scanned","quota.exceeded","chip.not_a_test_chip","unit.not_found","unit.already_exists","unit.not_minted","collection.not_found","collection.already_exists","collection.not_active","collection_backfill.blocked","organization.not_found","chip.already_paired","chip.key_unusable","chip.mac_required","chip.bulk_mixed_collections","chip.bulk_pending","unit.issuance_pending","claim.owner_unknown","claim.already_to_recipient","claim.in_progress","claim.not_found","chip_replacement.locked","chip_replacement.in_progress","chip_replacement.not_found","transfer.owner_unknown","transfer.already_to_recipient","transfer.in_progress","transfer.not_found","submission.not_executable","vault.not_found","vault.already_exists","vault.provisioning_failed","vault.not_permitted","vault.unavailable","vault.challenge_invalid","vault.address_in_use","vault.key_conflict","vault.signer_unauthorized","vault_connection.not_found","vault_connection.not_active","vault_connection.already_exists","vault_connection.conflict","idempotency.key_conflict","idempotency.in_progress","internal.error","webhook_endpoint.not_found","webhook_endpoint.deleted","webhook_endpoint.limit_reached","webhook_endpoint.url_refused","webhook_endpoint.signing_unavailable","webhook_event_type.unknown","webhook_event.not_found","webhook_endpoint.disabled","webhook_delivery.in_progress","webhook_endpoint.not_subscribed"],"example":"chip.not_found","isRequired":true,"uniqueKey":"error.code.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"string","description":"Stable, namespaced error code. The `ErrorCode` catalogue lists every code defined today; handle an unrecognized value as a generic failure rather than throwing, since codes are added over time.","example":"chip.not_found","isRequired":true,"uniqueKey":"error.code.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring> | string"},"message":{"type":"string","description":"Human-readable description, for logs and debugging. Wording may change without notice - never parse or match against it.","example":"Chip not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Identifier for this request, matching the `X-Request-Id` response header. Log it and include it in any support request.","example":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"doc_url":{"type":"string","description":"Documentation page for this error code.","example":"https://docs.endstate.io/errors/chip-not-found","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"details":{"type":"object","properties":{"formErrors":{"type":"array","items":{"type":"string","uniqueKey":"error.details.formErrors.items.[INDEX]","typeLabel":"string"},"description":"Issues that apply to the request as a whole rather than one field.","example":[],"isRequired":true,"uniqueKey":"error.details.formErrors","typeLabel":"string[]"},"fieldErrors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"error.details.fieldErrors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"error.details.fieldErrors.additionalProperties","typeLabel":"string[]"},"description":"Validation issues keyed by the field that failed.","example":{"name":["Required"]},"isRequired":true,"uniqueKey":"error.details.fieldErrors","typeLabel":"object"}},"required":["formErrors","fieldErrors"],"description":"Per-field validation detail. Present only on `validation.failed`.","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message","request_id","doc_url"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"Every error response, regardless of endpoint or HTTP status, uses this envelope.","uniqueKey":"","typeLabel":"object"},"examples":{"auth.unauthorized":{"title":"auth.unauthorized","value":{"error":{"code":"auth.unauthorized","message":"Credential is missing or malformed.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/auth-unauthorized"}}}},"exampleType":"examples"}},"exampleType":"examples"},"d71b4427-a8d4-4fb6-9876-527cd74c5006":{"description":"Authenticated, but not permitted.\n\n| Error code | When |\n| --- | --- |\n| `auth.forbidden` | Credential is valid but does not have access to the requested resource or action. |","x-error-codes":["auth.forbidden"],"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"oneOf":[{"type":"string","description":"Stable, namespaced error code. The `ErrorCode` catalogue lists every code defined today; handle an unrecognized value as a generic failure rather than throwing, since codes are added over time.","enum":["environment.conflict","environment.invalid_configuration","organization.changed","validation.failed","auth.unauthorized","auth.forbidden","session_token.invalid_or_expired","session_token.wrong_chip","wallet_session.invalid_or_expired","not_found.resource","rate_limit.exceeded","chip.not_found","chip.invalid_e_value","chip.already_scanned","quota.exceeded","chip.not_a_test_chip","unit.not_found","unit.already_exists","unit.not_minted","collection.not_found","collection.already_exists","collection.not_active","collection_backfill.blocked","organization.not_found","chip.already_paired","chip.key_unusable","chip.mac_required","chip.bulk_mixed_collections","chip.bulk_pending","unit.issuance_pending","claim.owner_unknown","claim.already_to_recipient","claim.in_progress","claim.not_found","chip_replacement.locked","chip_replacement.in_progress","chip_replacement.not_found","transfer.owner_unknown","transfer.already_to_recipient","transfer.in_progress","transfer.not_found","submission.not_executable","vault.not_found","vault.already_exists","vault.provisioning_failed","vault.not_permitted","vault.unavailable","vault.challenge_invalid","vault.address_in_use","vault.key_conflict","vault.signer_unauthorized","vault_connection.not_found","vault_connection.not_active","vault_connection.already_exists","vault_connection.conflict","idempotency.key_conflict","idempotency.in_progress","internal.error","webhook_endpoint.not_found","webhook_endpoint.deleted","webhook_endpoint.limit_reached","webhook_endpoint.url_refused","webhook_endpoint.signing_unavailable","webhook_event_type.unknown","webhook_event.not_found","webhook_endpoint.disabled","webhook_delivery.in_progress","webhook_endpoint.not_subscribed"],"example":"chip.not_found","isRequired":true,"uniqueKey":"error.code.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"string","description":"Stable, namespaced error code. The `ErrorCode` catalogue lists every code defined today; handle an unrecognized value as a generic failure rather than throwing, since codes are added over time.","example":"chip.not_found","isRequired":true,"uniqueKey":"error.code.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring> | string"},"message":{"type":"string","description":"Human-readable description, for logs and debugging. Wording may change without notice - never parse or match against it.","example":"Chip not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Identifier for this request, matching the `X-Request-Id` response header. Log it and include it in any support request.","example":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"doc_url":{"type":"string","description":"Documentation page for this error code.","example":"https://docs.endstate.io/errors/chip-not-found","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"details":{"type":"object","properties":{"formErrors":{"type":"array","items":{"type":"string","uniqueKey":"error.details.formErrors.items.[INDEX]","typeLabel":"string"},"description":"Issues that apply to the request as a whole rather than one field.","example":[],"isRequired":true,"uniqueKey":"error.details.formErrors","typeLabel":"string[]"},"fieldErrors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"error.details.fieldErrors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"error.details.fieldErrors.additionalProperties","typeLabel":"string[]"},"description":"Validation issues keyed by the field that failed.","example":{"name":["Required"]},"isRequired":true,"uniqueKey":"error.details.fieldErrors","typeLabel":"object"}},"required":["formErrors","fieldErrors"],"description":"Per-field validation detail. Present only on `validation.failed`.","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message","request_id","doc_url"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"Every error response, regardless of endpoint or HTTP status, uses this envelope.","uniqueKey":"","typeLabel":"object"},"examples":{"auth.forbidden":{"title":"auth.forbidden","value":{"error":{"code":"auth.forbidden","message":"Credential is valid but does not have access to the requested resource or action.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/auth-forbidden"}}}},"exampleType":"examples"}},"exampleType":"examples"},"9aa9a25c-bc39-4eab-b5b0-5d9397e15019":{"description":"The resource does not exist within your organization.\n\n| Error code | When |\n| --- | --- |\n| `chip.not_found` | The chip ID does not exist in your organization. |\n| `not_found.resource` | The requested resource does not exist within your organization. |\n| `unit.not_found` | The unit ID does not exist in your organization. |","x-error-codes":["chip.not_found","not_found.resource","unit.not_found"],"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"oneOf":[{"type":"string","description":"Stable, namespaced error code. The `ErrorCode` catalogue lists every code defined today; handle an unrecognized value as a generic failure rather than throwing, since codes are added over time.","enum":["environment.conflict","environment.invalid_configuration","organization.changed","validation.failed","auth.unauthorized","auth.forbidden","session_token.invalid_or_expired","session_token.wrong_chip","wallet_session.invalid_or_expired","not_found.resource","rate_limit.exceeded","chip.not_found","chip.invalid_e_value","chip.already_scanned","quota.exceeded","chip.not_a_test_chip","unit.not_found","unit.already_exists","unit.not_minted","collection.not_found","collection.already_exists","collection.not_active","collection_backfill.blocked","organization.not_found","chip.already_paired","chip.key_unusable","chip.mac_required","chip.bulk_mixed_collections","chip.bulk_pending","unit.issuance_pending","claim.owner_unknown","claim.already_to_recipient","claim.in_progress","claim.not_found","chip_replacement.locked","chip_replacement.in_progress","chip_replacement.not_found","transfer.owner_unknown","transfer.already_to_recipient","transfer.in_progress","transfer.not_found","submission.not_executable","vault.not_found","vault.already_exists","vault.provisioning_failed","vault.not_permitted","vault.unavailable","vault.challenge_invalid","vault.address_in_use","vault.key_conflict","vault.signer_unauthorized","vault_connection.not_found","vault_connection.not_active","vault_connection.already_exists","vault_connection.conflict","idempotency.key_conflict","idempotency.in_progress","internal.error","webhook_endpoint.not_found","webhook_endpoint.deleted","webhook_endpoint.limit_reached","webhook_endpoint.url_refused","webhook_endpoint.signing_unavailable","webhook_event_type.unknown","webhook_event.not_found","webhook_endpoint.disabled","webhook_delivery.in_progress","webhook_endpoint.not_subscribed"],"example":"chip.not_found","isRequired":true,"uniqueKey":"error.code.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"string","description":"Stable, namespaced error code. The `ErrorCode` catalogue lists every code defined today; handle an unrecognized value as a generic failure rather than throwing, since codes are added over time.","example":"chip.not_found","isRequired":true,"uniqueKey":"error.code.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring> | string"},"message":{"type":"string","description":"Human-readable description, for logs and debugging. Wording may change without notice - never parse or match against it.","example":"Chip not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Identifier for this request, matching the `X-Request-Id` response header. Log it and include it in any support request.","example":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"doc_url":{"type":"string","description":"Documentation page for this error code.","example":"https://docs.endstate.io/errors/chip-not-found","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"details":{"type":"object","properties":{"formErrors":{"type":"array","items":{"type":"string","uniqueKey":"error.details.formErrors.items.[INDEX]","typeLabel":"string"},"description":"Issues that apply to the request as a whole rather than one field.","example":[],"isRequired":true,"uniqueKey":"error.details.formErrors","typeLabel":"string[]"},"fieldErrors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"error.details.fieldErrors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"error.details.fieldErrors.additionalProperties","typeLabel":"string[]"},"description":"Validation issues keyed by the field that failed.","example":{"name":["Required"]},"isRequired":true,"uniqueKey":"error.details.fieldErrors","typeLabel":"object"}},"required":["formErrors","fieldErrors"],"description":"Per-field validation detail. Present only on `validation.failed`.","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message","request_id","doc_url"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"Every error response, regardless of endpoint or HTTP status, uses this envelope.","uniqueKey":"","typeLabel":"object"},"examples":{"chip.not_found":{"title":"chip.not_found","value":{"error":{"code":"chip.not_found","message":"The chip ID does not exist in your organization.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/chip-not-found"}}},"not_found.resource":{"title":"not_found.resource","value":{"error":{"code":"not_found.resource","message":"The requested resource does not exist within your organization.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/not-found-resource"}}},"unit.not_found":{"title":"unit.not_found","value":{"error":{"code":"unit.not_found","message":"The unit ID does not exist in your organization.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/unit-not-found"}}}},"exampleType":"examples"}},"exampleType":"examples"},"00a60dc8-fb34-47c6-9f78-492bccb8fa54":{"description":"The request conflicts with the resource's current state.\n\n| Error code | When |\n| --- | --- |\n| `chip.already_paired` | The chip is already paired to a unit and cannot be paired again. |\n| `chip.bulk_pending` | A bulk pairing for this collection is still processing. Retry once it completes. |\n| `chip.key_unusable` | This chip cannot currently be verified. Contact support to restore verification. |\n| `collection.not_active` | The collection has not finished provisioning. Wait until its status is `active`. |\n| `environment.invalid_configuration` | The environment configuration is invalid. Contact support before retrying. |\n| `idempotency.in_progress` | A request with this `Idempotency-Key` is already in progress. |\n| `idempotency.key_conflict` | The `Idempotency-Key` was previously used with a different request body. |\n| `unit.issuance_pending` | One or more units already have an issuance in progress. Wait for it to settle. |","x-error-codes":["chip.already_paired","chip.bulk_pending","chip.key_unusable","collection.not_active","environment.invalid_configuration","idempotency.in_progress","idempotency.key_conflict","unit.issuance_pending"],"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"oneOf":[{"type":"string","description":"Stable, namespaced error code. The `ErrorCode` catalogue lists every code defined today; handle an unrecognized value as a generic failure rather than throwing, since codes are added over time.","enum":["environment.conflict","environment.invalid_configuration","organization.changed","validation.failed","auth.unauthorized","auth.forbidden","session_token.invalid_or_expired","session_token.wrong_chip","wallet_session.invalid_or_expired","not_found.resource","rate_limit.exceeded","chip.not_found","chip.invalid_e_value","chip.already_scanned","quota.exceeded","chip.not_a_test_chip","unit.not_found","unit.already_exists","unit.not_minted","collection.not_found","collection.already_exists","collection.not_active","collection_backfill.blocked","organization.not_found","chip.already_paired","chip.key_unusable","chip.mac_required","chip.bulk_mixed_collections","chip.bulk_pending","unit.issuance_pending","claim.owner_unknown","claim.already_to_recipient","claim.in_progress","claim.not_found","chip_replacement.locked","chip_replacement.in_progress","chip_replacement.not_found","transfer.owner_unknown","transfer.already_to_recipient","transfer.in_progress","transfer.not_found","submission.not_executable","vault.not_found","vault.already_exists","vault.provisioning_failed","vault.not_permitted","vault.unavailable","vault.challenge_invalid","vault.address_in_use","vault.key_conflict","vault.signer_unauthorized","vault_connection.not_found","vault_connection.not_active","vault_connection.already_exists","vault_connection.conflict","idempotency.key_conflict","idempotency.in_progress","internal.error","webhook_endpoint.not_found","webhook_endpoint.deleted","webhook_endpoint.limit_reached","webhook_endpoint.url_refused","webhook_endpoint.signing_unavailable","webhook_event_type.unknown","webhook_event.not_found","webhook_endpoint.disabled","webhook_delivery.in_progress","webhook_endpoint.not_subscribed"],"example":"chip.not_found","isRequired":true,"uniqueKey":"error.code.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"string","description":"Stable, namespaced error code. The `ErrorCode` catalogue lists every code defined today; handle an unrecognized value as a generic failure rather than throwing, since codes are added over time.","example":"chip.not_found","isRequired":true,"uniqueKey":"error.code.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring> | string"},"message":{"type":"string","description":"Human-readable description, for logs and debugging. Wording may change without notice - never parse or match against it.","example":"Chip not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Identifier for this request, matching the `X-Request-Id` response header. Log it and include it in any support request.","example":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"doc_url":{"type":"string","description":"Documentation page for this error code.","example":"https://docs.endstate.io/errors/chip-not-found","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"details":{"type":"object","properties":{"formErrors":{"type":"array","items":{"type":"string","uniqueKey":"error.details.formErrors.items.[INDEX]","typeLabel":"string"},"description":"Issues that apply to the request as a whole rather than one field.","example":[],"isRequired":true,"uniqueKey":"error.details.formErrors","typeLabel":"string[]"},"fieldErrors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"error.details.fieldErrors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"error.details.fieldErrors.additionalProperties","typeLabel":"string[]"},"description":"Validation issues keyed by the field that failed.","example":{"name":["Required"]},"isRequired":true,"uniqueKey":"error.details.fieldErrors","typeLabel":"object"}},"required":["formErrors","fieldErrors"],"description":"Per-field validation detail. Present only on `validation.failed`.","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message","request_id","doc_url"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"Every error response, regardless of endpoint or HTTP status, uses this envelope.","uniqueKey":"","typeLabel":"object"},"examples":{"chip.already_paired":{"title":"chip.already_paired","value":{"error":{"code":"chip.already_paired","message":"The chip is already paired to a unit and cannot be paired again.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/chip-already-paired"}}},"chip.bulk_pending":{"title":"chip.bulk_pending","value":{"error":{"code":"chip.bulk_pending","message":"A bulk pairing for this collection is still processing. Retry once it completes.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/chip-bulk-pending"}}},"chip.key_unusable":{"title":"chip.key_unusable","value":{"error":{"code":"chip.key_unusable","message":"This chip cannot currently be verified. Contact support to restore verification.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/chip-key-unusable"}}},"collection.not_active":{"title":"collection.not_active","value":{"error":{"code":"collection.not_active","message":"The collection has not finished provisioning. Wait until its status is `active`.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/collection-not-active"}}},"environment.invalid_configuration":{"title":"environment.invalid_configuration","value":{"error":{"code":"environment.invalid_configuration","message":"The environment configuration is invalid. Contact support before retrying.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/environment-invalid-configuration"}}},"idempotency.in_progress":{"title":"idempotency.in_progress","value":{"error":{"code":"idempotency.in_progress","message":"A request with this `Idempotency-Key` is already in progress.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/idempotency-in-progress"}}},"idempotency.key_conflict":{"title":"idempotency.key_conflict","value":{"error":{"code":"idempotency.key_conflict","message":"The `Idempotency-Key` was previously used with a different request body.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/idempotency-key-conflict"}}},"unit.issuance_pending":{"title":"unit.issuance_pending","value":{"error":{"code":"unit.issuance_pending","message":"One or more units already have an issuance in progress. Wait for it to settle.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/unit-issuance-pending"}}}},"exampleType":"examples"}},"exampleType":"examples"},"2bce050d-fb1a-418b-9406-ca27ad347931":{"description":"The request was well-formed but could not be processed.\n\n| Error code | When |\n| --- | --- |\n| `chip.invalid_e_value` | The tap credential could not be verified. The `e` value or the tap verification code (`c`) did not check out. |\n| `chip.mac_required` | Your organization requires the tap verification code (the tap's `c` value) to pair a chip. Re-tap with a reader that captures it and retry. |","x-error-codes":["chip.invalid_e_value","chip.mac_required"],"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"oneOf":[{"type":"string","description":"Stable, namespaced error code. The `ErrorCode` catalogue lists every code defined today; handle an unrecognized value as a generic failure rather than throwing, since codes are added over time.","enum":["environment.conflict","environment.invalid_configuration","organization.changed","validation.failed","auth.unauthorized","auth.forbidden","session_token.invalid_or_expired","session_token.wrong_chip","wallet_session.invalid_or_expired","not_found.resource","rate_limit.exceeded","chip.not_found","chip.invalid_e_value","chip.already_scanned","quota.exceeded","chip.not_a_test_chip","unit.not_found","unit.already_exists","unit.not_minted","collection.not_found","collection.already_exists","collection.not_active","collection_backfill.blocked","organization.not_found","chip.already_paired","chip.key_unusable","chip.mac_required","chip.bulk_mixed_collections","chip.bulk_pending","unit.issuance_pending","claim.owner_unknown","claim.already_to_recipient","claim.in_progress","claim.not_found","chip_replacement.locked","chip_replacement.in_progress","chip_replacement.not_found","transfer.owner_unknown","transfer.already_to_recipient","transfer.in_progress","transfer.not_found","submission.not_executable","vault.not_found","vault.already_exists","vault.provisioning_failed","vault.not_permitted","vault.unavailable","vault.challenge_invalid","vault.address_in_use","vault.key_conflict","vault.signer_unauthorized","vault_connection.not_found","vault_connection.not_active","vault_connection.already_exists","vault_connection.conflict","idempotency.key_conflict","idempotency.in_progress","internal.error","webhook_endpoint.not_found","webhook_endpoint.deleted","webhook_endpoint.limit_reached","webhook_endpoint.url_refused","webhook_endpoint.signing_unavailable","webhook_event_type.unknown","webhook_event.not_found","webhook_endpoint.disabled","webhook_delivery.in_progress","webhook_endpoint.not_subscribed"],"example":"chip.not_found","isRequired":true,"uniqueKey":"error.code.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"string","description":"Stable, namespaced error code. The `ErrorCode` catalogue lists every code defined today; handle an unrecognized value as a generic failure rather than throwing, since codes are added over time.","example":"chip.not_found","isRequired":true,"uniqueKey":"error.code.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring> | string"},"message":{"type":"string","description":"Human-readable description, for logs and debugging. Wording may change without notice - never parse or match against it.","example":"Chip not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Identifier for this request, matching the `X-Request-Id` response header. Log it and include it in any support request.","example":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"doc_url":{"type":"string","description":"Documentation page for this error code.","example":"https://docs.endstate.io/errors/chip-not-found","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"details":{"type":"object","properties":{"formErrors":{"type":"array","items":{"type":"string","uniqueKey":"error.details.formErrors.items.[INDEX]","typeLabel":"string"},"description":"Issues that apply to the request as a whole rather than one field.","example":[],"isRequired":true,"uniqueKey":"error.details.formErrors","typeLabel":"string[]"},"fieldErrors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"error.details.fieldErrors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"error.details.fieldErrors.additionalProperties","typeLabel":"string[]"},"description":"Validation issues keyed by the field that failed.","example":{"name":["Required"]},"isRequired":true,"uniqueKey":"error.details.fieldErrors","typeLabel":"object"}},"required":["formErrors","fieldErrors"],"description":"Per-field validation detail. Present only on `validation.failed`.","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message","request_id","doc_url"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"Every error response, regardless of endpoint or HTTP status, uses this envelope.","uniqueKey":"","typeLabel":"object"},"examples":{"chip.invalid_e_value":{"title":"chip.invalid_e_value","value":{"error":{"code":"chip.invalid_e_value","message":"The tap credential could not be verified. The `e` value or the tap verification code (`c`) did not check out.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/chip-invalid-e-value"}}},"chip.mac_required":{"title":"chip.mac_required","value":{"error":{"code":"chip.mac_required","message":"Your organization requires the tap verification code (the tap's `c` value) to pair a chip. Re-tap with a reader that captures it and retry.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/chip-mac-required"}}}},"exampleType":"examples"}},"exampleType":"examples"},"644c102d-b53b-4090-89f1-b5483703d1dd":{"description":"Something went wrong on our end.\n\n| Error code | When |\n| --- | --- |\n| `internal.error` | An unexpected server error occurred. Retry with exponential backoff and include `request_id` in any support request. |","x-error-codes":["internal.error"],"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"oneOf":[{"type":"string","description":"Stable, namespaced error code. The `ErrorCode` catalogue lists every code defined today; handle an unrecognized value as a generic failure rather than throwing, since codes are added over time.","enum":["environment.conflict","environment.invalid_configuration","organization.changed","validation.failed","auth.unauthorized","auth.forbidden","session_token.invalid_or_expired","session_token.wrong_chip","wallet_session.invalid_or_expired","not_found.resource","rate_limit.exceeded","chip.not_found","chip.invalid_e_value","chip.already_scanned","quota.exceeded","chip.not_a_test_chip","unit.not_found","unit.already_exists","unit.not_minted","collection.not_found","collection.already_exists","collection.not_active","collection_backfill.blocked","organization.not_found","chip.already_paired","chip.key_unusable","chip.mac_required","chip.bulk_mixed_collections","chip.bulk_pending","unit.issuance_pending","claim.owner_unknown","claim.already_to_recipient","claim.in_progress","claim.not_found","chip_replacement.locked","chip_replacement.in_progress","chip_replacement.not_found","transfer.owner_unknown","transfer.already_to_recipient","transfer.in_progress","transfer.not_found","submission.not_executable","vault.not_found","vault.already_exists","vault.provisioning_failed","vault.not_permitted","vault.unavailable","vault.challenge_invalid","vault.address_in_use","vault.key_conflict","vault.signer_unauthorized","vault_connection.not_found","vault_connection.not_active","vault_connection.already_exists","vault_connection.conflict","idempotency.key_conflict","idempotency.in_progress","internal.error","webhook_endpoint.not_found","webhook_endpoint.deleted","webhook_endpoint.limit_reached","webhook_endpoint.url_refused","webhook_endpoint.signing_unavailable","webhook_event_type.unknown","webhook_event.not_found","webhook_endpoint.disabled","webhook_delivery.in_progress","webhook_endpoint.not_subscribed"],"example":"chip.not_found","isRequired":true,"uniqueKey":"error.code.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"string","description":"Stable, namespaced error code. The `ErrorCode` catalogue lists every code defined today; handle an unrecognized value as a generic failure rather than throwing, since codes are added over time.","example":"chip.not_found","isRequired":true,"uniqueKey":"error.code.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring> | string"},"message":{"type":"string","description":"Human-readable description, for logs and debugging. Wording may change without notice - never parse or match against it.","example":"Chip not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Identifier for this request, matching the `X-Request-Id` response header. Log it and include it in any support request.","example":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"doc_url":{"type":"string","description":"Documentation page for this error code.","example":"https://docs.endstate.io/errors/chip-not-found","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"details":{"type":"object","properties":{"formErrors":{"type":"array","items":{"type":"string","uniqueKey":"error.details.formErrors.items.[INDEX]","typeLabel":"string"},"description":"Issues that apply to the request as a whole rather than one field.","example":[],"isRequired":true,"uniqueKey":"error.details.formErrors","typeLabel":"string[]"},"fieldErrors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"error.details.fieldErrors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"error.details.fieldErrors.additionalProperties","typeLabel":"string[]"},"description":"Validation issues keyed by the field that failed.","example":{"name":["Required"]},"isRequired":true,"uniqueKey":"error.details.fieldErrors","typeLabel":"object"}},"required":["formErrors","fieldErrors"],"description":"Per-field validation detail. Present only on `validation.failed`.","uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message","request_id","doc_url"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"Every error response, regardless of endpoint or HTTP status, uses this envelope.","uniqueKey":"","typeLabel":"object"},"examples":{"internal.error":{"title":"internal.error","value":{"error":{"code":"internal.error","message":"An unexpected server error occurred. Retry with exponential backoff and include `request_id` in any support request.","request_id":"req_8e1a7f50-90ab-4cde-f012-3456789abcde","doc_url":"https://docs.endstate.io/errors/internal-error"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"873daa30-943d-4a47-8fab-1949600fa48a":{"ApiKeyBearer":{"type":"http","scheme":"bearer","bearerFormat":"end_sk","description":"Use `Authorization: Bearer end_sk_*` for partner API keys (e.g. `end_sk_AbCd_example_api_key`).","scopes":[],"schemeName":"ApiKeyBearer"}}},"servers":{"50b89c0d-b575-4dba-8f38-0083ece47f3a":{"url":"https://api2.endstate.io","description":"Production"},"37acff5c-c235-465a-ae2e-54702160b9af":{"url":"https://api-staging.endstate.io","description":"Staging"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"end_sk","description":"Use `Authorization: Bearer end_sk_*` for partner API keys (e.g. `end_sk_AbCd_example_api_key`).","scopes":[],"schemeName":"ApiKeyBearer"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Use `Authorization: Bearer end_sk_*` for partner API keys (e.g. `end_sk_AbCd_example_api_key`).","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"ApiKeyBearer","name":"Authorization"}],"title":"ApiKeyBearer"}]},"originalFileLocation":"openapi.json"},"subdomain":"endstate","siteName":"Endstate API","title":"Pair chips in bulk - Endstate API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T00:50:13.416Z","originalFileLocation":"api-reference/chips/pair-chips-in-bulk.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=\"Pairs up to 100 chips to units of a single collection in one request. Units are issued in the order provided.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Endstate API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/endstate/BhrYECvbn-kli8W2/_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/endstate/BhrYECvbn-kli8W2/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/endstate/BhrYECvbn-kli8W2/_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/endstate/BhrYECvbn-kli8W2/_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/endstate/BhrYECvbn-kli8W2/_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/endstate/BhrYECvbn-kli8W2/_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/endstate/BhrYECvbn-kli8W2/_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/endstate/BhrYECvbn-kli8W2/_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/endstate/BhrYECvbn-kli8W2/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Pair chips in bulk - Endstate API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Pairs up to 100 chips to units of a single collection in one request. Units are issued in the order provided.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Endstate API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.endstate.io/api-reference/chips/pair-chips-in-bulk\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://endstate.mintlify.app/_mintlify/api/og/v2?division=Chips\u0026amp;title=Pair+chips+in+bulk\u0026amp;description=Pairs+up+to+100+chips+to+units+of+a+single+collection+in+one+request.+Units+are+issued+in+the+order+provided.\u0026amp;theme=95894d2e15e1795f3b1a5a6e\u0026amp;signature=d463ed2495d9aca84d504a8478512a06d402bfc045532acafe7c7386c95c36e8\">\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=\"Pair chips in bulk - Endstate API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Pairs up to 100 chips to units of a single collection in one request. Units are issued in the order provided.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://endstate.mintlify.app/_mintlify/api/og/v2?division=Chips\u0026amp;title=Pair+chips+in+bulk\u0026amp;description=Pairs+up+to+100+chips+to+units+of+a+single+collection+in+one+request.+Units+are+issued+in+the+order+provided.\u0026amp;theme=95894d2e15e1795f3b1a5a6e\u0026amp;signature=d463ed2495d9aca84d504a8478512a06d402bfc045532acafe7c7386c95c36e8\">\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/endstate/BhrYECvbn-kli8W2/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Endstate API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0D9373\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.endstate.io/api-reference/chips/pair-chips-in-bulk\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/chips/pair-chips-in-bulk.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.endstate.io/#organization\",\"name\":\"Endstate API\",\"url\":\"https://docs.endstate.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/endstate/7r-sSPorwOnbb4QJ/logo/light.png?fit=max\u0026auto=format\u0026n=7r-sSPorwOnbb4QJ\u0026q=85\u0026s=565266775e787378280a8d9fc438da1c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.endstate.io#website\",\"name\":\"Endstate API\",\"url\":\"https://docs.endstate.io\",\"publisher\":{\"@id\":\"https://docs.endstate.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.endstate.io/api-reference/chips/pair-chips-in-bulk#webpage\",\"url\":\"https://docs.endstate.io/api-reference/chips/pair-chips-in-bulk\",\"name\":\"Pair chips in bulk\",\"description\":\"Pairs up to 100 chips to units of a single collection in one request. Units are issued in the order provided.\",\"dateModified\":\"2026-10-28T00:50:13.416Z\",\"isPartOf\":{\"@id\":\"https://docs.endstate.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.endstate.io/api-reference/chips/pair-chips-in-bulk#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.endstate.io/api-reference/chips/pair-chips-in-bulk#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.endstate.io/api-reference/service/service-health-check\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Chips\",\"item\":\"https://docs.endstate.io/api-reference/chips/fetch-a-chip\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Pair chips in bulk\",\"item\":\"https://docs.endstate.io/api-reference/chips/pair-chips-in-bulk\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.endstate.io/api-reference/chips/pair-chips-in-bulk#apireference\",\"headline\":\"Pair chips in bulk\",\"name\":\"Pair chips in bulk\",\"description\":\"Pairs up to 100 chips to units of a single collection in one request. Units are issued in the order provided.\",\"url\":\"https://docs.endstate.io/api-reference/chips/pair-chips-in-bulk\",\"mainEntityOfPage\":{\"@id\":\"https://docs.endstate.io/api-reference/chips/pair-chips-in-bulk#webpage\"},\"dateModified\":\"2026-10-28T00:50:13.416Z\",\"publisher\":{\"@id\":\"https://docs.endstate.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.endstate.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Endstate API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Endstate API","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/set-up-catalog"}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/sdks/overview"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"group":"Endpoints","pages":[{"group":"Service","pages":[{"title":"Service health check","deprecated":null,"version":null,"openapi":"/openapi.json get /health","href":"/api-reference/service/service-health-check"},{"title":"Service welcome","deprecated":null,"version":null,"openapi":"/openapi.json get /","href":"/api-reference/service/service-welcome"}]},{"group":"Chips","pages":[{"title":"Fetch a chip","description":"Returns a single chip by its identifier, including a snapshot of the unit it is paired to and that unit's issuance status.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/chips/{chip_id}","href":"/api-reference/chips/fetch-a-chip"},{"title":"Pair chips in bulk","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/chips/bulk","href":"/api-reference/chips/pair-chips-in-bulk"},{"title":"List chips","description":"Returns a cursor-paginated list of chips in your organization, each with a reference to the unit it is paired to. Use `is_test` to filter to test or encoded chips.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/chips","href":"/api-reference/chips/list-chips"},{"title":"Pair a chip","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/chips","href":"/api-reference/chips/pair-a-chip"},{"title":"Get a chip replacement","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/units/{unit_id}/chip-replacements/{replacement_id}","href":"/api-reference/chips/get-a-chip-replacement"},{"title":"Replace a unit's chip","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/units/{unit_id}/chip-replacements","href":"/api-reference/chips/replace-a-units-chip"}]},{"group":"Collections","pages":[{"title":"Fetch a collection","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/collections/{collection_id}","href":"/api-reference/collections/fetch-a-collection"},{"title":"Update a collection","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/collections/{collection_id}","href":"/api-reference/collections/update-a-collection"},{"title":"List collections","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/collections","href":"/api-reference/collections/list-collections"},{"title":"Create a collection","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/collections","href":"/api-reference/collections/create-a-collection"}]},{"group":"Publishable keys","pages":[{"title":"List publishable keys","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/publishable-keys","href":"/api-reference/publishable-keys/list-publishable-keys"}]},{"group":"Session Tokens","pages":[{"title":"Introspect the bearer session token","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/session-tokens/current","href":"/api-reference/session-tokens/introspect-the-bearer-session-token"},{"title":"Revoke the bearer session token","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/session-tokens/current","href":"/api-reference/session-tokens/revoke-the-bearer-session-token"}]},{"group":"Settings","pages":[{"title":"Get external auth settings","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/settings/auth","href":"/api-reference/settings/get-external-auth-settings"},{"title":"Register your own token issuer","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/settings/auth","href":"/api-reference/settings/register-your-own-token-issuer"},{"title":"Return to Endstate-managed identity","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/settings/auth","href":"/api-reference/settings/return-to-endstate-managed-identity"},{"title":"List CORS origins","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/settings/cors-origins","href":"/api-reference/settings/list-cors-origins"},{"title":"Replace CORS origins","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/settings/cors-origins","href":"/api-reference/settings/replace-cors-origins"},{"title":"Get org settings","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/settings","href":"/api-reference/settings/get-org-settings"},{"title":"Update org settings","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/settings","href":"/api-reference/settings/update-org-settings"}]},{"group":"Taps","pages":[{"title":"List taps","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/taps","href":"/api-reference/taps/list-taps"},{"title":"Record a tap and issue a session token","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/taps","href":"/api-reference/taps/record-a-tap-and-issue-a-session-token"}]},{"group":"Test helpers","pages":[{"title":"Generate an e/c pair for a test chip","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/test-helpers/taps","href":"/api-reference/test-helpers/generate-an-ec-pair-for-a-test-chip"}]},{"group":"Claims","pages":[{"title":"Get a claim","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/units/{unit_id}/claims/{claim_id}","href":"/api-reference/claims/get-a-claim"},{"title":"Claim a unit","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/units/{unit_id}/claims","href":"/api-reference/claims/claim-a-unit"}]},{"group":"Units","pages":[{"title":"Fetch a unit","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/units/{unit_id}","href":"/api-reference/units/fetch-a-unit"},{"title":"Update a unit","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/units/{unit_id}","href":"/api-reference/units/update-a-unit"},{"title":"List units","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/units","href":"/api-reference/units/list-units"},{"title":"Create a unit","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/units","href":"/api-reference/units/create-a-unit"}]},{"group":"Transfers","pages":[{"title":"Get a transfer","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/units/{unit_id}/transfers/{transfer_id}","href":"/api-reference/transfers/get-a-transfer"},{"title":"Transfer a unit","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/units/{unit_id}/transfers","href":"/api-reference/transfers/transfer-a-unit"}]},{"group":"Webhooks","pages":[{"title":"Count a webhook endpoint's deliveries by outcome","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/webhooks/endpoints/{endpoint_id}/health","href":"/api-reference/webhooks/count-a-webhook-endpoints-deliveries-by-outcome"},{"title":"Recover events a webhook endpoint missed","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/webhooks/endpoints/{endpoint_id}/recover","href":"/api-reference/webhooks/recover-events-a-webhook-endpoint-missed"},{"title":"Rotate a webhook endpoint's signing secret","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/webhooks/endpoints/{endpoint_id}/rotate-secret","href":"/api-reference/webhooks/rotate-a-webhook-endpoints-signing-secret"},{"title":"Fetch a webhook endpoint","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/webhooks/endpoints/{endpoint_id}","href":"/api-reference/webhooks/fetch-a-webhook-endpoint"},{"title":"Delete a webhook endpoint","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/webhooks/endpoints/{endpoint_id}","href":"/api-reference/webhooks/delete-a-webhook-endpoint"},{"title":"Update a webhook endpoint","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/webhooks/endpoints/{endpoint_id}","href":"/api-reference/webhooks/update-a-webhook-endpoint"},{"title":"Read a webhook endpoint's signing secret","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/webhooks/endpoints/{endpoint_id}/secret","href":"/api-reference/webhooks/read-a-webhook-endpoints-signing-secret"},{"title":"Send a test event to a webhook endpoint","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/webhooks/endpoints/{endpoint_id}/test","href":"/api-reference/webhooks/send-a-test-event-to-a-webhook-endpoint"},{"title":"List webhook endpoints","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/webhooks/endpoints","href":"/api-reference/webhooks/list-webhook-endpoints"},{"title":"Create a webhook endpoint","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/webhooks/endpoints","href":"/api-reference/webhooks/create-a-webhook-endpoint"},{"title":"List webhook event types","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/webhooks/event-types","href":"/api-reference/webhooks/list-webhook-event-types"},{"title":"List delivery attempts for a webhook event","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/webhooks/events/{event_id}/attempts","href":"/api-reference/webhooks/list-delivery-attempts-for-a-webhook-event"},{"title":"Deliver a webhook event to an endpoint again","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/webhooks/events/{event_id}/redeliver","href":"/api-reference/webhooks/deliver-a-webhook-event-to-an-endpoint-again"},{"title":"Fetch a webhook event","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/webhooks/events/{event_id}","href":"/api-reference/webhooks/fetch-a-webhook-event"},{"title":"List webhook events","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/webhooks/events","href":"/api-reference/webhooks/list-webhook-events"}]}]}]}]},"title":"Pair chips in bulk - Endstate API","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}