Validates a reseller’s barcode and checks if it’s valid and swappable.
A rule that blocks the resale is not an HTTP error. The barcode resolved, so the answer is 200 with swappable: false and an error naming the rule, and without event or type. Check swappable rather than the status code.
error
Meaning
RESELL_NOT_ALLOWED
The ticket was already scanned, or its holder name was already changed. valid is false.
RESELL_PENDING_NAME_CHANGE
A name change on the ticket is awaiting payment.
RESELL_ALREADY_RESOLD
The ticket already came from a swap. A ticket can only be resold once.
RESELL_NOT_SWAPPABLE
The ticket belongs to an organization your API key does not cover.
When a ticket matches more than one rule, the first one in that order is the one reported.
GET
/
resellers
/
validate
Validate reseller barcode
curl --request GET \ --url https://api-alpha.fourvenues.com/resellers/validate \ --header 'Authorization: <api-key>'
Reseller API key, sent raw in the Authorization header: Authorization: rs_live_xxxxxxxxxxxxxxxx. Keys prefixed rs_test_ operate against the test environment. The same key serves v2 and the swap operations, and it only reaches the organizations Fourvenues authorized on it.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Fourvenues API","colors":{"primary":"#3b82f6","light":"#bfdbfe","dark":"#1e3a8a"},"logo":{"light":"https://mintcdn.com/fourvenues/Ac72CI1QKm9VekjS/logo/light.svg?fit=max\u0026auto=format\u0026n=Ac72CI1QKm9VekjS\u0026q=85\u0026s=34ea2eeb6703cf90846a1e2b12c609f4","dark":"https://mintcdn.com/fourvenues/9J2VM2OC0BjwtJkX/logo/dark.svg?fit=max\u0026auto=format\u0026n=9J2VM2OC0BjwtJkX\u0026q=85\u0026s=74f3030430b847511eda6a8a53b2b2a9"},"favicon":"https://mintcdn.com/fourvenues/Ac72CI1QKm9VekjS/favicon.png?fit=max\u0026auto=format\u0026n=Ac72CI1QKm9VekjS\u0026q=85\u0026s=d15a8ade3ca7d1be1b67cf5eef18e987","api":{"mdx":{"auth":{"method":"key"},"server":"https://channels-service.fourvenues.com"}},"navbar":{"links":[{"href":"https://www.fourvenues.com/","label":"Contact Us"}]},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/fourvenues","github":"https://github.com/fourvenuestech"}},"integrations":{"plausible":{"domain":"docs.fourvenues.com"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"fourvenues","hasAudioNarration":false,"actualSubdomain":"fourvenues","customDomains":["docs.fourvenues.com"],"gitSource":{"type":"github","owner":"fourvenuestech","repo":"docs.fourvenues.com","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6ac3bd69efb6989e0145c9a0","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"default","tag":"API Reference","count":131},{"language":"default","tag":"Integrations API","count":85},{"language":"default","tag":"Channel Manager API","count":62},{"language":"default","tag":"Bookings","count":21},{"language":"default","tag":"Tickets","count":20},{"language":"default","tag":"Introduction","count":19},{"language":"default","tag":"Discount Codes","count":12},{"language":"default","tag":"Lists","count":10},{"language":"default","tag":"Webhook Endpoints","count":10},{"language":"default","tag":"Events","count":8}]},"assistantConfig":{},"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":"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":"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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"reseller/api-reference/validate-reseller-barcode","slug":"/reseller/api-reference/validate-reseller-barcode","pageMetadata":{"openapi":"get /resellers/validate","title":"Validate reseller barcode","description":"Validates a reseller's barcode and checks if it's valid and swappable.\n\nA rule that blocks the resale is not an HTTP error. The barcode resolved, so the answer is `200` with `swappable: false` and an `error` naming the rule, and without `event` or `type`. Check `swappable` rather than the status code.\n\n| `error` | Meaning |\n| --- | --- |\n| `RESELL_NOT_ALLOWED` | The ticket was already scanned, or its holder name was already changed. `valid` is `false`. |\n| `RESELL_PENDING_NAME_CHANGE` | A name change on the ticket is awaiting payment. |\n| `RESELL_ALREADY_RESOLD` | The ticket already came from a swap. A ticket can only be resold once. |\n| `RESELL_NOT_SWAPPABLE` | The ticket belongs to an organization your API key does not cover. |\n\nWhen a ticket matches more than one rule, the first one in that order is the one reported.\n","href":"/reseller/api-reference/validate-reseller-barcode"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n table: \"table\",\n tbody: \"tbody\",\n td: \"td\",\n th: \"th\",\n thead: \"thead\",\n tr: \"tr\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Validates a reseller’s barcode and checks if it’s valid and swappable.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"A rule that blocks the resale is not an HTTP error. The barcode resolved, so the answer is \", _jsx(_components.code, {\n children: \"200\"\n }), \" with \", _jsx(_components.code, {\n children: \"swappable: false\"\n }), \" and an \", _jsx(_components.code, {\n children: \"error\"\n }), \" naming the rule, and without \", _jsx(_components.code, {\n children: \"event\"\n }), \" or \", _jsx(_components.code, {\n children: \"type\"\n }), \". Check \", _jsx(_components.code, {\n children: \"swappable\"\n }), \" rather than the status code.\"]\n }), \"\\n\", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: _jsx(_components.code, {\n children: \"error\"\n })\n }), _jsx(_components.th, {\n children: \"Meaning\"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"RESELL_NOT_ALLOWED\"\n })\n }), _jsxs(_components.td, {\n children: [\"The ticket was already scanned, or its holder name was already changed. \", _jsx(_components.code, {\n children: \"valid\"\n }), \" is \", _jsx(_components.code, {\n children: \"false\"\n }), \".\"]\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"RESELL_PENDING_NAME_CHANGE\"\n })\n }), _jsx(_components.td, {\n children: \"A name change on the ticket is awaiting payment.\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"RESELL_ALREADY_RESOLD\"\n })\n }), _jsx(_components.td, {\n children: \"The ticket already came from a swap. A ticket can only be resold once.\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"RESELL_NOT_SWAPPABLE\"\n })\n }), _jsx(_components.td, {\n children: \"The ticket belongs to an organization your API key does not cover.\"\n })]\n })]\n })]\n }), \"\\n\", _jsx(_components.p, {\n children: \"When a ticket matches more than one rule, the first one in that order is the one reported.\"\n })]\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":{"openapi":"get /resellers/validate","title":"Validate reseller barcode","description":"Validates a reseller's barcode and checks if it's valid and swappable.\n\nA rule that blocks the resale is not an HTTP error. The barcode resolved, so the answer is `200` with `swappable: false` and an `error` naming the rule, and without `event` or `type`. Check `swappable` rather than the status code.\n\n| `error` | Meaning |\n| --- | --- |\n| `RESELL_NOT_ALLOWED` | The ticket was already scanned, or its holder name was already changed. `valid` is `false`. |\n| `RESELL_PENDING_NAME_CHANGE` | A name change on the ticket is awaiting payment. |\n| `RESELL_ALREADY_RESOLD` | The ticket already came from a swap. A ticket can only be resold once. |\n| `RESELL_NOT_SWAPPABLE` | The ticket belongs to an organization your API key does not cover. |\n\nWhen a ticket matches more than one rule, the first one in that order is the one reported.\n","href":"/reseller/api-reference/validate-reseller-barcode"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Validate reseller barcode","description":"Validates a reseller's barcode and checks if it's valid and swappable.\n\nA rule that blocks the resale is not an HTTP error. The barcode resolved, so the answer is `200` with `swappable: false` and an `error` naming the rule, and without `event` or `type`. Check `swappable` rather than the status code.\n\n| `error` | Meaning |\n| --- | --- |\n| `RESELL_NOT_ALLOWED` | The ticket was already scanned, or its holder name was already changed. `valid` is `false`. |\n| `RESELL_PENDING_NAME_CHANGE` | A name change on the ticket is awaiting payment. |\n| `RESELL_ALREADY_RESOLD` | The ticket already came from a swap. A ticket can only be resold once. |\n| `RESELL_NOT_SWAPPABLE` | The ticket belongs to an organization your API key does not cover. |\n\nWhen a ticket matches more than one rule, the first one in that order is the one reported.\n","parameters":["21883f2e-7d54-4537-a9d0-78868dd36b04"],"responses":{"200":"e3eb4cc3-64ee-48ed-a56c-7960789d0c27","400":"96bce94c-79a4-446c-a586-f80ffe2a2afa","401":"5b958a6c-91d6-4550-b79e-d8ac1aa9e989","404":"dbbf796e-2be7-4042-bd54-ef645bb08337"},"security":["f1d969b7-036b-4ec2-8482-df6ad2730d74"],"method":"get","type":"path","servers":["e836c003-7907-45b3-93c7-9df906814e93","eeb3e056-f061-45fb-9c09-32e5cddd4a73"],"path":"/resellers/validate","baseUrlOptions":["https://api-alpha.fourvenues.com","https://api.fourvenues.com"],"title":"Validate reseller barcode","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"21883f2e-7d54-4537-a9d0-78868dd36b04":{"name":"barcode","in":"query","required":true,"schema":{"type":"string","isRequired":true,"description":"The barcode (qrCode) to be validated","uniqueKey":"","typeLabel":"string"},"description":"The barcode (qrCode) to be validated"}},"responses":{"e3eb4cc3-64ee-48ed-a56c-7960789d0c27":{"description":"Successful validation","headers":{"Content-Type":{"description":"Response content type","schema":{"type":"string","example":"application/json"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","example":"abcdefghijk1234567890","uniqueKey":"id","typeLabel":"string"},"barcode":{"type":"string","example":"ABCD1234","uniqueKey":"barcode","typeLabel":"string"},"valid":{"type":"boolean","example":true,"uniqueKey":"valid","typeLabel":"boolean"},"swappable":{"type":"boolean","example":true,"description":"`false` when a rule blocks the resale. `error` then names the rule.","uniqueKey":"swappable","typeLabel":"boolean"},"event":{"type":"object","properties":{"id":{"type":"string","example":"abcdefghijk1234567890","uniqueKey":"event.id","typeLabel":"string"},"name":{"type":"string","example":"Saturdays at Ginger Klub","uniqueKey":"event.name","typeLabel":"string"},"date_start":{"type":"string","format":"date-time","example":"2024-02-29T23:00:00.000Z","uniqueKey":"event.date_start","typeLabel":"string\u003cdate-time>"},"date_end":{"type":"string","format":"date-time","example":"2024-03-01T06:30:00.000Z","uniqueKey":"event.date_end","typeLabel":"string\u003cdate-time>"},"date_only":{"type":"boolean","example":false,"uniqueKey":"event.date_only","typeLabel":"boolean"}},"uniqueKey":"event","typeLabel":"object"},"type":{"type":"object","properties":{"id":{"type":"string","example":"abcdefghijk1234567890","uniqueKey":"type.id","typeLabel":"string"},"name":{"type":"string","example":"Entrada + 1 copa","uniqueKey":"type.name","typeLabel":"string"},"date_start":{"type":"string","format":"date-time","example":"2024-01-30T18:15:00.000Z","uniqueKey":"type.date_start","typeLabel":"string\u003cdate-time>"},"date_end":{"type":"string","format":"date-time","example":"2024-01-30T18:30:00.000Z","uniqueKey":"type.date_end","typeLabel":"string\u003cdate-time>"},"date_only":{"type":"boolean","example":false,"uniqueKey":"type.date_only","typeLabel":"boolean"},"price":{"type":"number","format":"float","example":15,"uniqueKey":"type.price","typeLabel":"number\u003cfloat>"},"service_fee":{"type":"number","format":"float","example":1.2,"uniqueKey":"type.service_fee","typeLabel":"number\u003cfloat>"},"currency":{"type":"string","example":"EUR","uniqueKey":"type.currency","typeLabel":"string"}},"uniqueKey":"type","typeLabel":"object"},"error":{"type":"string","description":"Only present when `swappable` is `false`.","enum":["RESELL_NOT_ALLOWED","RESELL_PENDING_NAME_CHANGE","RESELL_ALREADY_RESOLD","RESELL_NOT_SWAPPABLE"],"example":"RESELL_ALREADY_RESOLD","uniqueKey":"error","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"swappable":{"title":"swappable","value":{"id":"abcdefghijk1234567890","barcode":"ABCD1234","valid":true,"swappable":true,"event":{"id":"abcdefghijk1234567890","name":"Saturdays at Ginger Klub","date_start":"2024-02-29T23:00:00.000Z","date_end":"2024-03-01T06:30:00.000Z","date_only":false},"type":{"id":"abcdefghijk1234567890","name":"Entrada + 1 copa","date_start":"2024-01-30T18:15:00.000Z","date_end":"2024-01-30T18:30:00.000Z","date_only":false,"price":"15","service_fee":"1.2","currency":"EUR"}}},"alreadyResold":{"title":"alreadyResold","value":{"valid":true,"swappable":false,"error":"RESELL_ALREADY_RESOLD","barcode":"ABCD1235"}}},"exampleType":"examples"}},"exampleType":"examples"},"96bce94c-79a4-446c-a586-f80ffe2a2afa":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"valid":{"type":"boolean","example":false,"uniqueKey":"valid","typeLabel":"boolean"},"swappable":{"type":"boolean","example":false,"uniqueKey":"swappable","typeLabel":"boolean"},"error":{"type":"string","example":"RESELL_NOT_ALLOWED","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"valid":false,"swappable":false,"error":"RESELL_NOT_ALLOWED"}}},"exampleType":"generated"}},"exampleType":"generated"},"5b958a6c-91d6-4550-b79e-d8ac1aa9e989":{"description":"Unauthorized request","content":{"application/json":{"schema":{"type":"object","properties":{"valid":{"type":"boolean","example":false,"uniqueKey":"valid","typeLabel":"boolean"},"swappable":{"type":"boolean","example":false,"uniqueKey":"swappable","typeLabel":"boolean"},"error":{"type":"string","example":"UNAUTHORIZED","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"valid":false,"swappable":false,"error":"UNAUTHORIZED"}}},"exampleType":"generated"}},"exampleType":"generated"},"dbbf796e-2be7-4042-bd54-ef645bb08337":{"description":"Reseller not found","content":{"application/json":{"schema":{"type":"object","properties":{"valid":{"type":"boolean","example":false,"uniqueKey":"valid","typeLabel":"boolean"},"swappable":{"type":"boolean","example":false,"uniqueKey":"swappable","typeLabel":"boolean"},"error":{"type":"string","example":"RESELL_NOT_ALLOWED","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"valid":false,"swappable":false,"error":"RESELL_NOT_ALLOWED"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"f1d969b7-036b-4ec2-8482-df6ad2730d74":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"Reseller API key, sent raw in the `Authorization` header: `Authorization: rs_live_xxxxxxxxxxxxxxxx`. Keys prefixed `rs_test_` operate against the test environment. The same key serves v2 and the swap operations, and it only reaches the organizations Fourvenues authorized on it.","scopes":[]}}},"servers":{"e836c003-7907-45b3-93c7-9df906814e93":{"url":"https://api-alpha.fourvenues.com","description":"Alpha"},"eeb3e056-f061-45fb-9c09-32e5cddd4a73":{"url":"https://api.fourvenues.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"Authorization","description":"Reseller API key, sent raw in the `Authorization` header: `Authorization: rs_live_xxxxxxxxxxxxxxxx`. Keys prefixed `rs_test_` operate against the test environment. The same key serves v2 and the swap operations, and it only reaches the organizations Fourvenues authorized on it.","scopes":[]},"schema":{"title":"Authorization","type":"string","description":"Reseller API key, sent raw in the `Authorization` header: `Authorization: rs_live_xxxxxxxxxxxxxxxx`. Keys prefixed `rs_test_` operate against the test environment. The same key serves v2 and the swap operations, and it only reaches the organizations Fourvenues authorized on it.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"Authorization"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"openapi/reseller_api.json"},"subdomain":"fourvenues","siteName":"Fourvenues API","title":"Validate reseller barcode - Fourvenues API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-23T11:53:15.083Z","originalFileLocation":"reseller/api-reference/validate-reseller-barcode.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=\"Validates a reseller\u0026#x27;s barcode and checks if it\u0026#x27;s valid and swappable. A rule that blocks the resale is not an HTTP error. The barcode resolved, so the answer is 200 with swappable: false and an error naming the rule, and without event or type. Check swappable rather than the status code. | error | Meaning | | --- | --- | | RESELL_NOT_ALLOWED | The ticket was already scanned, or its holder name was already changed. valid is false. | | RESELL_PENDING_NAME_CHANGE | A name change on the ticket is awaiting payment. | | RESELL_ALREADY_RESOLD | The ticket already came from a swap. A ticket can only be resold once. | | RESELL_NOT_SWAPPABLE | The ticket belongs to an organization your API key does not cover. | When a ticket matches more than one rule, the first one in that order is the one reported.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Fourvenues 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/fourvenues/Yw_SY54bSs0GSoYA/_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/fourvenues/Yw_SY54bSs0GSoYA/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/fourvenues/Yw_SY54bSs0GSoYA/_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/fourvenues/Yw_SY54bSs0GSoYA/_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/fourvenues/Yw_SY54bSs0GSoYA/_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/fourvenues/Yw_SY54bSs0GSoYA/_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/fourvenues/Yw_SY54bSs0GSoYA/_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/fourvenues/Yw_SY54bSs0GSoYA/_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/fourvenues/Yw_SY54bSs0GSoYA/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Validate reseller barcode - Fourvenues API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Validates a reseller\u0026#x27;s barcode and checks if it\u0026#x27;s valid and swappable. A rule that blocks the resale is not an HTTP error. The barcode resolved, so the answer is 200 with swappable: false and an error naming the rule, and without event or type. Check swappable rather than the status code. | error | Meaning | | --- | --- | | RESELL_NOT_ALLOWED | The ticket was already scanned, or its holder name was already changed. valid is false. | | RESELL_PENDING_NAME_CHANGE | A name change on the ticket is awaiting payment. | | RESELL_ALREADY_RESOLD | The ticket already came from a swap. A ticket can only be resold once. | | RESELL_NOT_SWAPPABLE | The ticket belongs to an organization your API key does not cover. | When a ticket matches more than one rule, the first one in that order is the one reported.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Fourvenues API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.fourvenues.com/reseller/api-reference/validate-reseller-barcode\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://fourvenues.mintlify.site/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Validate+reseller+barcode\u0026amp;description=Validates+a+reseller%27s+barcode+and+checks+if+it%27s+valid+and+swappable.%0A%0AA+rule+that+blocks+the+resale+is+not+an+HTTP+error.+The+barcode+resolved%2C+so+the+answer+\u0026amp;theme=495e8dbd34f1f1d44d3c3d73\u0026amp;signature=f76764e78a0d08bd14755f0cd71f0b965476845606be6e2fab053973ea5f7b80\">\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=\"Validate reseller barcode - Fourvenues API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Validates a reseller\u0026#x27;s barcode and checks if it\u0026#x27;s valid and swappable. A rule that blocks the resale is not an HTTP error. The barcode resolved, so the answer is 200 with swappable: false and an error naming the rule, and without event or type. Check swappable rather than the status code. | error | Meaning | | --- | --- | | RESELL_NOT_ALLOWED | The ticket was already scanned, or its holder name was already changed. valid is false. | | RESELL_PENDING_NAME_CHANGE | A name change on the ticket is awaiting payment. | | RESELL_ALREADY_RESOLD | The ticket already came from a swap. A ticket can only be resold once. | | RESELL_NOT_SWAPPABLE | The ticket belongs to an organization your API key does not cover. | When a ticket matches more than one rule, the first one in that order is the one reported.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://fourvenues.mintlify.site/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Validate+reseller+barcode\u0026amp;description=Validates+a+reseller%27s+barcode+and+checks+if+it%27s+valid+and+swappable.%0A%0AA+rule+that+blocks+the+resale+is+not+an+HTTP+error.+The+barcode+resolved%2C+so+the+answer+\u0026amp;theme=495e8dbd34f1f1d44d3c3d73\u0026amp;signature=f76764e78a0d08bd14755f0cd71f0b965476845606be6e2fab053973ea5f7b80\">\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/fourvenues/Yw_SY54bSs0GSoYA/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Fourvenues API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3b82f6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.fourvenues.com/reseller/api-reference/validate-reseller-barcode\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/reseller/api-reference/validate-reseller-barcode.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.fourvenues.com/#organization\",\"name\":\"Fourvenues API\",\"url\":\"https://docs.fourvenues.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/fourvenues/Ac72CI1QKm9VekjS/logo/light.svg?fit=max\u0026auto=format\u0026n=Ac72CI1QKm9VekjS\u0026q=85\u0026s=34ea2eeb6703cf90846a1e2b12c609f4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.fourvenues.com#website\",\"name\":\"Fourvenues API\",\"url\":\"https://docs.fourvenues.com\",\"publisher\":{\"@id\":\"https://docs.fourvenues.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.fourvenues.com/reseller/api-reference/validate-reseller-barcode#webpage\",\"url\":\"https://docs.fourvenues.com/reseller/api-reference/validate-reseller-barcode\",\"name\":\"Validate reseller barcode\",\"description\":\"Validates a reseller's barcode and checks if it's valid and swappable. A rule that blocks the resale is not an HTTP error. The barcode resolved, so the answer is 200 with swappable: false and an error naming the rule, and without event or type. Check swappable rather than the status code. | error | Meaning | | --- | --- | | RESELL_NOT_ALLOWED | The ticket was already scanned, or its holder name was already changed. valid is false. | | RESELL_PENDING_NAME_CHANGE | A name change on the ticket is awaiting payment. | | RESELL_ALREADY_RESOLD | The ticket already came from a swap. A ticket can only be resold once. | | RESELL_NOT_SWAPPABLE | The ticket belongs to an organization your API key does not cover. | When a ticket matches more than one rule, the first one in that order is the one reported.\",\"dateModified\":\"2026-09-23T11:53:15.083Z\",\"isPartOf\":{\"@id\":\"https://docs.fourvenues.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.fourvenues.com/reseller/api-reference/validate-reseller-barcode#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.fourvenues.com/reseller/api-reference/validate-reseller-barcode#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Fourvenues API\",\"item\":\"https://docs.fourvenues.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Validate reseller barcode\",\"item\":\"https://docs.fourvenues.com/reseller/api-reference/validate-reseller-barcode\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.fourvenues.com/reseller/api-reference/validate-reseller-barcode#apireference\",\"headline\":\"Validate reseller barcode\",\"name\":\"Validate reseller barcode\",\"description\":\"Validates a reseller's barcode and checks if it's valid and swappable. A rule that blocks the resale is not an HTTP error. The barcode resolved, so the answer is 200 with swappable: false and an error naming the rule, and without event or type. Check swappable rather than the status code. | error | Meaning | | --- | --- | | RESELL_NOT_ALLOWED | The ticket was already scanned, or its holder name was already changed. valid is false. | | RESELL_PENDING_NAME_CHANGE | A name change on the ticket is awaiting payment. | | RESELL_ALREADY_RESOLD | The ticket already came from a swap. A ticket can only be resold once. | | RESELL_NOT_SWAPPABLE | The ticket belongs to an organization your API key does not cover. | When a ticket matches more than one rule, the first one in that order is the one reported.\",\"url\":\"https://docs.fourvenues.com/reseller/api-reference/validate-reseller-barcode\",\"mainEntityOfPage\":{\"@id\":\"https://docs.fourvenues.com/reseller/api-reference/validate-reseller-barcode#webpage\"},\"dateModified\":\"2026-09-23T11:53:15.083Z\",\"publisher\":{\"@id\":\"https://docs.fourvenues.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.fourvenues.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Fourvenues API\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Fourvenues API\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/reseller/api-reference/validate-reseller-barcode.md","siteName":"Fourvenues API","nav":{"global":null,"tabs":[{"tab":"Getting Start","pages":[{"title":"Getting Start","href":"/introduction/readme"}]},{"tab":"Channel Manager API","pages":[{"title":"Channel Manager API","href":"/channel-manager/introduction/overview"}]},{"tab":"Integrations API","pages":[{"title":"Integrations API","href":"/integrations/introduction/overview"}]},{"tab":"Reseller API","groups":[{"group":"Introduction","pages":[{"title":"Overview","href":"/reseller/introduction/overview"},{"title":"Authentication","description":"To get started using the Reseller API, you'll need to authenticate your requests.","href":"/reseller/introduction/authentication"}]},{"group":"API Reference","pages":[{"openapi":"get /resellers/validate","title":"Validate reseller barcode","href":"/reseller/api-reference/validate-reseller-barcode"},{"openapi":"post /resellers/swap","title":"Swap reseller ticket","description":"Swaps a reseller's ticket with a new one and provides a new barcode and PDF.\n\n**One ticket per request.** `ticket` is a single object, not a list: there is no batch or multi-swap variant of this endpoint, and any field outside the documented ones answers `400`. To transfer several tickets, call the endpoint once per barcode. Each call is independent, so a failure on one barcode leaves the others untouched.\n\n**One swap per ticket.** The swap returns a new ticket that carries the resale on it, so calling `swap` again with that new barcode answers `200` with `swappable: false` and `error: \"RESELL_ALREADY_RESOLD\"`. The same rule is what [Validate reseller barcode](/reseller/api-reference/validate-reseller-barcode) reports up front.\n\nA rule that blocks the resale answers `200` with `swappable: false` and no swap performed, except for an already scanned ticket or one whose holder name was already changed, which answer `400`. Check `swappable` rather than the status code.\n\n| `error` | Meaning |\n| --- | --- |\n| `RESELL_NOT_ALLOWED` | The ticket was already scanned, or its holder name was already changed. `valid` is `false`. |\n| `RESELL_PENDING_NAME_CHANGE` | A name change on the ticket is awaiting payment. |\n| `RESELL_ALREADY_RESOLD` | The ticket already came from a swap. A ticket can only be resold once. |\n| `RESELL_NOT_SWAPPABLE` | The ticket belongs to an organization your API key does not cover. |\n\nWhen a ticket matches more than one rule, the first one in that order is the one reported.\n","href":"/reseller/api-reference/swap-reseller-ticket"},{"group":"V2","pages":[{"openapi":"get /resellers/v2/organizations","title":"List reseller organizations","href":"/reseller/api-reference/v2/get-v2-organizations"},{"openapi":"get /resellers/v2/events","title":"List reseller events","href":"/reseller/api-reference/v2/get-v2-events"},{"openapi":"get /resellers/v2/events/{id}","title":"Get reseller event","href":"/reseller/api-reference/v2/get-v2-event-by-id"},{"openapi":"get /resellers/v2/tickets","title":"List tickets of a buyer","href":"/reseller/api-reference/v2/get-v2-tickets"}]}]}]}]},"basePath":"","title":"Validate reseller barcode - Fourvenues API","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DDP9JXtj.js","utils-8yQyvEtx.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CBCFR8Sn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-rQaXkUHa.js","snippetPresets-J5KpBTgV.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BVxVH4Cj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BxdQ2vIi.js","shallow-BjV2tFiD.js","getApiPlaygroundDisplay-C_55tL4O.js","CodeSnippet-C0JpiCOC.js","CodeSnippets-w9Ps7djG.js","Page-DTNSD-0M.js","getPastedJson-BDfB-H8d.js","icon-g-kUkkO9.js","MethodPill-v4l6fq0h.js","DuplicateIcon-CvLo-CfU.js","createIcon-165clrrV.js","DynamicMarkdown-D3RQ-fEj.js","SectionHeading-vvo-3yLf.js","axios-vUo_bRtp.js","Markdown-CMT1uFWQ.js","clsx-C8f2yC9R.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CI2D8R2Y.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-k78Wrw_e.js"]}