Devuelve el detalle del canje —producto y cliente— sin entregarlo. Sirve para que el operador confirme qué tiene que dar antes de llamar a POST /external/purchase/redeem/{code}.
Atención: este endpoint devuelve el canje directamente, sin el envelope { success, status, message, data }.
GET
/
external
/
purchase
/
code
/
{code}
Consultar un canje por código
curl --request GET \ --url https://api.tiendadepuntos.com/external/purchase/code/{code} \ --header 'x-api-key: <api-key>'
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Tienda de Puntos","description":"Guías y recursos para conectar Tienda de Puntos con tu negocio.","colors":{"primary":"#5b53f0","light":"#5b53f0","dark":"#8b85f5"},"logo":{"light":"https://mintcdn.com/tiendadepuntos/WnSIFgAFSkI7bdnr/logo/light.png?fit=max\u0026auto=format\u0026n=WnSIFgAFSkI7bdnr\u0026q=85\u0026s=8187339b0bc9e96cfb1fede6be7db42f","dark":"https://mintcdn.com/tiendadepuntos/WnSIFgAFSkI7bdnr/logo/dark.png?fit=max\u0026auto=format\u0026n=WnSIFgAFSkI7bdnr\u0026q=85\u0026s=81c582f44eeca4f00583f870e53ab395"},"favicon":"https://mintcdn.com/tiendadepuntos/WnSIFgAFSkI7bdnr/favicon.png?fit=max\u0026auto=format\u0026n=WnSIFgAFSkI7bdnr\u0026q=85\u0026s=6e6c345757dc587a976308ee43c1a0a5","appearance":{"default":"light"},"navbar":{"links":[{"href":"mailto:hola@tiendadepuntos.com","label":"Soporte"}],"primary":{"type":"button","label":"Buscar mi Tienda de Puntos","href":"https://mi.tiendadepuntos.com/auth/my-business"}},"footer":{"socials":{"website":"https://www.tiendadepuntos.com","linkedin":"https://www.linkedin.com/company/tienda-de-puntos"},"links":[{"header":"Plataforma","items":[{"label":"Sitio web","href":"https://www.tiendadepuntos.com"},{"label":"Ingresá a tu tienda","href":"https://mi.tiendadepuntos.com/auth/my-business"}]},{"header":"Recursos","items":[{"label":"Blog","href":"https://www.tiendadepuntos.com/blog"},{"label":"Contacto","href":"mailto:hola@tiendadepuntos.com"}]}]},"fonts":{"family":"Inter"},"icons":{"library":"lucide"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tiendadepuntos","hasAudioNarration":false,"actualSubdomain":"tiendadepuntos","customDomains":["developers.tiendadepuntos.com"],"gitSource":{"type":"github","owner":"tiendadepuntos","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{},"buildId":"6ac1d0a6cd821381e02d7458","clientVersion":"0.0.4124","searchFilterCounts":[{"language":"default","tag":"Documentación","count":49},{"language":"default","tag":"API · Endpoints","count":41},{"language":"default","tag":"Clientes","count":6},{"language":"default","tag":"API · Empezar","count":5},{"language":"default","tag":"Canjes","count":5},{"language":"default","tag":"Ítems de puntos","count":5},{"language":"default","tag":"Niveles","count":5},{"language":"default","tag":"Operadores","count":5},{"language":"default","tag":"Premios","count":5},{"language":"default","tag":"Puntos","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--tdp-page-bg: #ffffff;--tdp-primary: #5b53f0;--tdp-primary-hover: #4a42d9;--tdp-accent-text: #5b53f0;--tdp-ink: #17171b;--tdp-muted: #686872;--tdp-border: #e7e7eb;--tdp-surface: #f7f7f8;--tdp-card-bg: #ffffff;--tdp-card-border: #e9e9ee;--tdp-card-hover-border: #d8d6e8;--tdp-card-shadow: 0 14px 38px rgba(25, 22, 55, 0.06);--tdp-icon-bg: #ffffff;--tdp-icon-border: #dfddef;--tdp-arrow: #a3a3aa;--tdp-hero-button-bg: #17171b;--tdp-hero-button-text: #ffffff;--tdp-visual-points-bg:\n radial-gradient(circle at 80% 18%, rgba(255, 255, 255, 0.8), transparent 23%),\n linear-gradient(145deg, #eeecff, #c9c4ff);--tdp-visual-ring: rgba(91, 83, 240, 0.15);--tdp-purchase-bg: rgba(255, 255, 255, 0.85);--tdp-purchase-border: rgba(255, 255, 255, 0.75);--tdp-purchase-shadow: 0 30px 70px rgba(59, 49, 145, 0.2);--tdp-purchase-divider: #e9e7f5;--tdp-purchase-title: #24232b;--tdp-purchase-muted: #777482}html.dark,body.dark,[data-theme=\"dark\"],[data-mode=\"dark\"],.dark{--tdp-page-bg: #0f1014;--tdp-primary: #5b53f0;--tdp-primary-hover: #4a42d9;--tdp-accent-text: #a8a3ff;--tdp-ink: #f4f4f6;--tdp-muted: #b5b5bf;--tdp-border: #2c2d36;--tdp-surface: #191a21;--tdp-card-bg: #15161d;--tdp-card-border: #2a2b35;--tdp-card-hover-border: #49465f;--tdp-card-shadow: 0 18px 42px rgba(0, 0, 0, 0.28);--tdp-icon-bg: #1d1e27;--tdp-icon-border: #373449;--tdp-arrow: #858796;--tdp-hero-button-bg: #f4f4f6;--tdp-hero-button-text: #101116;--tdp-visual-points-bg:\n radial-gradient(circle at 80% 18%, rgba(255, 255, 255, 0.12), transparent 23%),\n linear-gradient(145deg, #1e1c38, #3f3974);--tdp-visual-ring: rgba(168, 163, 255, 0.18);--tdp-purchase-bg: rgba(20, 21, 29, 0.88);--tdp-purchase-border: rgba(255, 255, 255, 0.12);--tdp-purchase-shadow: 0 30px 70px rgba(0, 0, 0, 0.34);--tdp-purchase-divider: #333247;--tdp-purchase-title: #f4f4f6;--tdp-purchase-muted: #b6b4c4}html,#background-color,body{background:var(--tdp-page-bg)}#topbar-cta-button{border:0;background:transparent;box-shadow:none}#topbar-cta-button>a{min-height:38px;padding:0 11px 0 16px;border:0;border-radius:999px;background:var(--tdp-primary);box-shadow:0 2px 8px rgba(91, 83, 240, 0.22);color:#fff;font-size:13px;font-weight:600;transition:background-color 160ms ease, box-shadow 160ms ease}#topbar-cta-button>a:hover{background:var(--tdp-primary-hover);color:#fff;box-shadow:0 3px 10px rgba(91, 83, 240, 0.3)}#topbar-cta-button *{color:#fff}#topbar-cta-button svg{width:18px;height:18px;margin-left:3px}.tdp-landing{max-width:1080px;min-height:calc(100vh - 4rem);margin:0 auto;padding:0 28px 96px;background:var(--tdp-page-bg);color:var(--tdp-ink)}.tdp-landing *{box-sizing:border-box}.tdp-landing a{text-decoration:none}.tdp-hero{max-width:780px;margin:0 auto;padding:112px 0 76px;text-align:center}.tdp-kicker,.tdp-eyebrow{display:block;color:var(--tdp-accent-text);font-size:11px;font-weight:700;letter-spacing:0.12em;line-height:1.4}.tdp-hero-title{margin:18px 0 0;color:var(--tdp-ink);font-size:60px;font-weight:560;letter-spacing:0;line-height:1.02}.tdp-hero-subtitle{max-width:650px;margin:26px auto 0;color:var(--tdp-muted);font-size:18px;line-height:1.65}.tdp-hero-actions{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:34px}.tdp-btn-primary,.tdp-btn-secondary,.tdp-btn-light{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:0 18px;border-radius:999px;font-size:14px;font-weight:600;transition:transform 160ms ease, background-color 160ms ease}.tdp-btn-primary{background:var(--tdp-hero-button-bg);color:var(--tdp-hero-button-text)}.tdp-btn-primary:hover,.tdp-btn-light:hover{transform:translateY(-1px)}.tdp-btn-secondary{border:1px solid var(--tdp-border);color:var(--tdp-ink)}.tdp-btn-secondary:hover{background:var(--tdp-surface)}.tdp-topics{display:grid;grid-template-columns:repeat(3, 1fr);gap:14px;scroll-margin-top:90px}.tdp-topic-card{position:relative;display:flex;min-height:258px;flex-direction:column;padding:26px;border:1px solid var(--tdp-card-border);border-radius:18px;background:var(--tdp-card-bg);color:inherit;transition:border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease}.tdp-topic-card:hover{border-color:var(--tdp-card-hover-border);box-shadow:var(--tdp-card-shadow);transform:translateY(-3px)}.tdp-topic-icon{display:grid;width:42px;height:42px;place-items:center;border:1px solid var(--tdp-icon-border);border-radius:12px;background:var(--tdp-icon-bg);color:var(--tdp-accent-text)}.tdp-topic-copy{margin-top:auto}.tdp-topic-copy h2{margin:9px 0 7px;color:var(--tdp-ink);font-size:19px;font-weight:620;letter-spacing:0;line-height:1.25}.tdp-topic-copy p{margin:0;color:var(--tdp-muted);font-size:14px;line-height:1.55}.tdp-card-arrow{position:absolute;top:28px;right:28px;color:var(--tdp-arrow);font-size:18px;transition:color 160ms ease, transform 160ms ease}.tdp-topic-card:hover .tdp-card-arrow{color:var(--tdp-accent-text);transform:translateX(3px)}.tdp-feature-row{display:grid;grid-template-columns:minmax(0, 0.9fr) minmax(0, 1.1fr);align-items:center;gap:70px;padding:120px 0 24px;scroll-margin-top:80px}.tdp-feature-row-reverse{grid-template-columns:minmax(0, 1.1fr) minmax(0, 0.9fr)}.tdp-feature-copy h2,.tdp-api-banner h2{margin:14px 0 16px;color:var(--tdp-ink);font-size:32px;font-weight:580;letter-spacing:0;line-height:1.15}.tdp-feature-copy p,.tdp-api-banner p{margin:0;color:var(--tdp-muted);font-size:16px;line-height:1.7}.tdp-text-link{display:inline-flex;gap:8px;margin-top:25px;color:var(--tdp-ink);font-size:14px;font-weight:650}.tdp-text-link span{transition:transform 160ms ease}.tdp-text-link:hover span{transform:translateX(4px)}.tdp-visual{position:relative;display:grid;min-height:390px;place-items:center;overflow:hidden;border-radius:28px}.tdp-visual-points{background:var(--tdp-visual-points-bg)}.tdp-visual-points::before,.tdp-visual-points::after{position:absolute;width:210px;height:210px;border:1px solid var(--tdp-visual-ring);border-radius:50%;content:\"\"}.tdp-visual-points::before{top:-80px;left:-45px}.tdp-visual-points::after{right:-70px;bottom:-100px}.tdp-purchase-card{position:relative;z-index:1;width:min(78%, 340px);padding:22px;border:1px solid var(--tdp-purchase-border);border-radius:18px;background:var(--tdp-purchase-bg);box-shadow:var(--tdp-purchase-shadow);backdrop-filter:blur(12px);transform:rotate(-2deg)}.tdp-purchase-header{display:flex;align-items:center;gap:12px;padding-bottom:18px;border-bottom:1px solid var(--tdp-purchase-divider)}.tdp-purchase-header span:last-child{display:flex;flex-direction:column}.tdp-purchase-header strong{color:var(--tdp-purchase-title);font-size:14px}.tdp-purchase-header small,.tdp-points-row small{color:var(--tdp-purchase-muted);font-size:11px}.tdp-avatar{display:grid;width:40px;height:40px;place-items:center;border-radius:50%;background:var(--tdp-primary);color:#fff;font-size:12px;font-weight:700}.tdp-points-row{display:flex;align-items:baseline;justify-content:space-between;padding-top:20px}.tdp-points-row>span{color:var(--tdp-accent-text);font-size:28px;font-weight:700;letter-spacing:0}.tdp-visual-integrations{background:linear-gradient(rgba(255, 255, 255, 0.055) 1px, transparent 1px),\n linear-gradient(90deg, rgba(255, 255, 255, 0.055) 1px, transparent 1px),\n #17171b;background-size:32px 32px}.tdp-integration-node{position:absolute;z-index:2;display:grid;width:74px;height:74px;place-items:center;border:1px solid rgba(255, 255, 255, 0.16);border-radius:20px;background:#27262e;color:#fff;box-shadow:0 15px 35px rgba(0, 0, 0, 0.24);font-size:12px;font-weight:700;letter-spacing:0.06em}.tdp-node-center{width:92px;height:92px;border-color:rgba(139, 133, 245, 0.55);background:#5b53f0}.tdp-node-left{left:13%;bottom:17%}.tdp-node-right{top:16%;right:13%}.tdp-connector{position:absolute;z-index:1;width:150px;height:1px;background:linear-gradient(90deg, transparent, #7770ee);transform-origin:right}.tdp-connector-left{transform:translate(-58px, 60px) rotate(-34deg)}.tdp-connector-right{background:linear-gradient(90deg, #7770ee, transparent);transform:translate(58px, -60px) rotate(-34deg);transform-origin:left}.tdp-api-banner{display:flex;align-items:center;justify-content:space-between;gap:48px;margin-top:120px;padding:46px 50px;border-radius:26px;background:var(--tdp-primary)}.tdp-api-banner .tdp-eyebrow{color:#cbc8ff}.tdp-api-banner h2{margin-top:10px;color:#fff}.tdp-api-banner p{max-width:600px;color:#dedcff}.tdp-btn-light{flex:0 0 auto;background:#fff;color:#262331}.tdp-integration-logo{display:block;width:min(190px, 60%);max-height:74px;object-fit:contain;margin:10px 0 22px;padding:12px 16px;border:1px solid var(--tdp-card-border);border-radius:12px;background:var(--tdp-card-bg)}@media (max-width: 820px){.tdp-hero-title{font-size:48px}.tdp-topics{grid-template-columns:1fr}.tdp-topic-card{min-height:220px}.tdp-feature-row,.tdp-feature-row-reverse{grid-template-columns:1fr;gap:36px;padding-top:88px}.tdp-feature-row-reverse .tdp-visual{order:2}.tdp-api-banner{align-items:flex-start;flex-direction:column}}@media (max-width: 560px){.tdp-landing{padding:0 18px 64px}.tdp-hero{padding:76px 0 56px}.tdp-hero-title{font-size:38px}.tdp-hero-subtitle{font-size:16px}.tdp-hero-actions{align-items:stretch;flex-direction:column}.tdp-visual{min-height:320px;border-radius:22px}.tdp-api-banner{margin-top:88px;padding:32px 26px}}"}],"page":{"pagePath":"api-reference/endpoints/canjes/consultar-un-canje-por-codigo","slug":"/api-reference/endpoints/canjes/consultar-un-canje-por-codigo","pageMetadata":{"title":"Consultar un canje por código","description":"Devuelve el detalle del canje —producto y cliente— sin entregarlo. Sirve para que el operador confirme qué tiene que dar antes de llamar a `POST /external/purchase/redeem/{code}`.\n\n**Atención**: este endpoint devuelve el canje directamente, sin el envelope `{ success, status, message, data }`.","deprecated":null,"version":null,"sidebarTitle":"Consultar un canje por código","openapi":"/api-reference/openapi.json get /external/purchase/code/{code}","href":"/api-reference/endpoints/canjes/consultar-un-canje-por-codigo","autogeneratedByOpenApi":true},"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 strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Devuelve el detalle del canje —producto y cliente— sin entregarlo. Sirve para que el operador confirme qué tiene que dar antes de llamar a \", _jsx(_components.code, {\n children: \"POST /external/purchase/redeem/{code}\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Atención\"\n }), \": este endpoint devuelve el canje directamente, sin el envelope \", _jsx(_components.code, {\n children: \"{ success, status, message, data }\"\n }), \".\"]\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":{"title":"Consultar un canje por código","description":"Devuelve el detalle del canje —producto y cliente— sin entregarlo. Sirve para que el operador confirme qué tiene que dar antes de llamar a `POST /external/purchase/redeem/{code}`.\n\n**Atención**: este endpoint devuelve el canje directamente, sin el envelope `{ success, status, message, data }`.","deprecated":null,"version":null,"sidebarTitle":"Consultar un canje por código","openapi":"/api-reference/openapi.json get /external/purchase/code/{code}","href":"/api-reference/endpoints/canjes/consultar-un-canje-por-codigo","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Devuelve el detalle del canje —producto y cliente— sin entregarlo. Sirve para que el operador confirme qué tiene que dar antes de llamar a `POST /external/purchase/redeem/{code}`.\n\n**Atención**: este endpoint devuelve el canje directamente, sin el envelope `{ success, status, message, data }`.","operationId":"ExternalPurchaseController_findByCode","parameters":["243dc951-a559-4cdc-a47d-eb22b2f4f8f1"],"responses":{"200":"9d12b3a4-0c53-4880-8092-1154c03b4512","400":"0e489181-fe39-4227-8749-2be84b87f792","401":"218e5def-37dd-49a7-a5d3-d351c20c3ca3","404":"cf30a16e-b200-4dea-b9ae-df43d38960f3"},"security":["1efc4e15-a9b6-4362-8c11-b2d79d9b4a9e"],"summary":"Consultar un canje por código","tags":["Canjes"],"x-mint":{"href":"/api-reference/endpoints/canjes/consultar-un-canje-por-codigo","metadata":{"title":"Consultar un canje por código","sidebarTitle":"Consultar un canje por código"}},"method":"get","type":"path","servers":["b3a69718-a9fe-4116-a340-620ea57d373e","b1c4d4f7-1090-47b8-b751-e9830f418b25"],"path":"/external/purchase/code/{code}","baseUrlOptions":["https://api.tiendadepuntos.com","https://api-qa.tiendadepuntos.com"],"title":"Consultar un canje por código","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"243dc951-a559-4cdc-a47d-eb22b2f4f8f1":{"name":"code","required":true,"in":"path","description":"Código del canje.","schema":{"type":"string","example":"A1B2C3","isRequired":true,"description":"Código del canje.","uniqueKey":"","typeLabel":"string"}}},"responses":{"9d12b3a4-0c53-4880-8092-1154c03b4512":{"description":"Detalle del canje. Sin envelope.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"number","description":"ID del canje.","example":45012,"isRequired":true,"uniqueKey":"id","typeLabel":"number"},"code":{"oneOf":[{"type":"string","description":"Código que presenta el cliente para retirar el premio. Es el que se usa en `POST /external/purchase/redeem/{code}`.","example":"A1B2C3","isRequired":true,"uniqueKey":"code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Código que presenta el cliente para retirar el premio. Es el que se usa en `POST /external/purchase/redeem/{code}`.","example":"A1B2C3","isRequired":true,"uniqueKey":"code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"code","typeLabel":"string | null"},"status":{"type":"string","description":"Estado del canje. Los canjes creados por la API nacen en `pending`.","enum":["pending","canceled","delivered"],"example":"pending","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"Si el canje fue por un premio o por dinero.","enum":["product","money"],"isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"points":{"type":"number","description":"Puntos debitados al cliente.","example":500,"isRequired":true,"uniqueKey":"points","typeLabel":"number"},"moneyAmount":{"oneOf":[{"type":"number","description":"Monto en pesos. Solo en canjes por dinero.","example":null,"isRequired":true,"uniqueKey":"moneyAmount.oneOf.0","typeLabel":"number"},{"type":"null","description":"Monto en pesos. Solo en canjes por dinero.","example":null,"isRequired":true,"uniqueKey":"moneyAmount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"moneyAmount","typeLabel":"number | null"},"product":{"oneOf":[{"type":"object","description":"Premio canjeado. `null` en canjes por dinero.","required":["id","name"],"properties":{"id":{"type":"number","description":"ID del premio.","example":771,"isRequired":true,"uniqueKey":"product.oneOf.0.id","typeLabel":"number"},"name":{"type":"string","description":"Nombre del premio.","example":"Café gratis","isRequired":true,"uniqueKey":"product.oneOf.0.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"product.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"product.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"product","typeLabel":"object | null"},"client":{"oneOf":[{"type":"object","description":"Cliente que canjeó.","required":["id","firstName","lastName","email"],"properties":{"id":{"type":"number","description":"ID del cliente.","example":84213,"isRequired":true,"uniqueKey":"client.oneOf.0.id","typeLabel":"number"},"firstName":{"type":"string","example":"Juan Manuel","isRequired":true,"uniqueKey":"client.oneOf.0.firstName","typeLabel":"string"},"lastName":{"type":"string","example":"Pérez","isRequired":true,"uniqueKey":"client.oneOf.0.lastName","typeLabel":"string"},"email":{"oneOf":[{"type":"string","description":"Sirve para identificar al cliente en el mostrador antes de entregar el premio.","example":"juanma@mailinator.com","isRequired":true,"uniqueKey":"client.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sirve para identificar al cliente en el mostrador antes de entregar el premio.","example":"juanma@mailinator.com","isRequired":true,"uniqueKey":"client.oneOf.0.email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client.oneOf.0.email","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"client.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"client.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"client","typeLabel":"object | null"},"branch":{"oneOf":[{"type":"object","description":"Sucursal donde se registró el canje.","required":["id","name"],"properties":{"id":{"type":"number","description":"ID de la sucursal.","example":1972,"isRequired":true,"uniqueKey":"branch.oneOf.0.id","typeLabel":"number"},"name":{"type":"string","example":"Sucursal Centro","isRequired":true,"uniqueKey":"branch.oneOf.0.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"branch.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"branch.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"branch","typeLabel":"object | null"},"createdAt":{"format":"date-time","type":"string","example":"2026-07-28T18:05:00.000Z","isRequired":true,"uniqueKey":"createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"format":"date-time","type":"string","example":"2026-07-28T18:05:00.000Z","isRequired":true,"uniqueKey":"updatedAt","typeLabel":"string\u003cdate-time>"}},"required":["id","code","status","type","points","moneyAmount","product","client","branch","createdAt","updatedAt"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":45012,"code":"A1B2C3","status":"pending","type":"product","points":500,"moneyAmount":null,"product":{"id":771,"name":"Café gratis"},"client":{"id":84213,"firstName":"Juan Manuel","lastName":"Pérez","email":"juanma@mailinator.com"},"branch":{"id":1972,"name":"Sucursal Centro"},"createdAt":"2026-07-28T18:05:00.000Z","updatedAt":"2026-07-28T18:05:00.000Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"0e489181-fe39-4227-8749-2be84b87f792":{"description":"El cuerpo o los parámetros no pasaron la validación.","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","example":400,"uniqueKey":"statusCode","typeLabel":"integer"},"timestamp":{"type":"string","format":"date-time","example":"2026-07-31T14:05:12.431Z","uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"path":{"type":"string","example":"/external/tags/add","uniqueKey":"path","typeLabel":"string"},"method":{"type":"string","example":"POST","uniqueKey":"method","typeLabel":"string"},"message":{"type":"string","example":"Error de validación","uniqueKey":"message","typeLabel":"string"},"errors":{"oneOf":[{"type":"array","items":{"type":"object","uniqueKey":"errors.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object"},"uniqueKey":"errors.oneOf.1","typeLabel":"null"}],"uniqueKey":"errors","typeLabel":"object[] | null"},"data":{"oneOf":[{"type":"object","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":400,"timestamp":"2026-07-31T14:05:12.431Z","path":"/external/tags/add","method":"POST","message":"Error de validación","errors":[{}],"data":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"218e5def-37dd-49a7-a5d3-d351c20c3ca3":{"description":"Falta el header `x-api-key` (`Api Key is required`), o está presente pero no corresponde a ningún comercio (`Api key is invalid`).","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","example":401,"uniqueKey":"statusCode","typeLabel":"integer"},"timestamp":{"type":"string","format":"date-time","example":"2026-07-31T14:05:12.431Z","uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"path":{"type":"string","example":"/external/tags/add","uniqueKey":"path","typeLabel":"string"},"method":{"type":"string","example":"POST","uniqueKey":"method","typeLabel":"string"},"message":{"type":"string","example":"Api key is invalid","uniqueKey":"message","typeLabel":"string"},"errors":{"oneOf":[{"type":"array","items":{"type":"object","uniqueKey":"errors.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object"},"uniqueKey":"errors.oneOf.1","typeLabel":"null"}],"uniqueKey":"errors","typeLabel":"object[] | null"},"data":{"oneOf":[{"type":"object","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":401,"timestamp":"2026-07-31T14:05:12.431Z","path":"/external/tags/add","method":"POST","message":"Api key is invalid","errors":[{}],"data":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"cf30a16e-b200-4dea-b9ae-df43d38960f3":{"description":"No existe un canje con ese código en este comercio.","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","example":404,"uniqueKey":"statusCode","typeLabel":"integer"},"timestamp":{"type":"string","format":"date-time","example":"2026-07-31T14:05:12.431Z","uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"path":{"type":"string","example":"/external/tags/add","uniqueKey":"path","typeLabel":"string"},"method":{"type":"string","example":"POST","uniqueKey":"method","typeLabel":"string"},"message":{"type":"string","example":"Canje no encontrado","uniqueKey":"message","typeLabel":"string"},"errors":{"oneOf":[{"type":"array","items":{"type":"object","uniqueKey":"errors.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object"},"uniqueKey":"errors.oneOf.1","typeLabel":"null"}],"uniqueKey":"errors","typeLabel":"object[] | null"},"data":{"oneOf":[{"type":"object","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":404,"timestamp":"2026-07-31T14:05:12.431Z","path":"/external/tags/add","method":"POST","message":"Canje no encontrado","errors":[{}],"data":{}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"1efc4e15-a9b6-4362-8c11-b2d79d9b4a9e":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"API key del comercio. Se genera desde el panel de Tienda de Puntos, en Configuración → Integraciones.","scopes":[]}}},"servers":{"b3a69718-a9fe-4116-a340-620ea57d373e":{"url":"https://api.tiendadepuntos.com","description":"Producción"},"b1c4d4f7-1090-47b8-b751-e9830f418b25":{"url":"https://api-qa.tiendadepuntos.com","description":"QA"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"API key del comercio. Se genera desde el panel de Tienda de Puntos, en Configuración → Integraciones.","scopes":[]},"schema":{"title":"x-api-key","type":"string","description":"API key del comercio. Se genera desde el panel de Tienda de Puntos, en Configuración → Integraciones.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"x-api-key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"tiendadepuntos","siteName":"Tienda de Puntos","title":"Consultar un canje por código - Tienda de Puntos","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-04T04:06:03.977Z","originalFileLocation":"api-reference/endpoints/canjes/consultar-un-canje-por-codigo.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=\"light\"}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=\"Devuelve el detalle del canje —producto y cliente— sin entregarlo. Sirve para que el operador confirme qué tiene que dar antes de llamar a POST /external/purchase/redeem/{code}. Atención: este endpoint devuelve el canje directamente, sin el envelope { success, status, message, data }.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Tienda de Puntos\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tiendadepuntos/ZKpZ9fYtIWUbQCtI/_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/tiendadepuntos/ZKpZ9fYtIWUbQCtI/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tiendadepuntos/ZKpZ9fYtIWUbQCtI/_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/tiendadepuntos/ZKpZ9fYtIWUbQCtI/_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/tiendadepuntos/ZKpZ9fYtIWUbQCtI/_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/tiendadepuntos/ZKpZ9fYtIWUbQCtI/_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/tiendadepuntos/ZKpZ9fYtIWUbQCtI/_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/tiendadepuntos/ZKpZ9fYtIWUbQCtI/_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/tiendadepuntos/ZKpZ9fYtIWUbQCtI/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Consultar un canje por código - Tienda de Puntos\">\u003cmeta data-mint-head property=\"og:description\" content=\"Devuelve el detalle del canje —producto y cliente— sin entregarlo. Sirve para que el operador confirme qué tiene que dar antes de llamar a POST /external/purchase/redeem/{code}. Atención: este endpoint devuelve el canje directamente, sin el envelope { success, status, message, data }.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Tienda de Puntos\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.tiendadepuntos.com/api-reference/endpoints/canjes/consultar-un-canje-por-codigo\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tiendadepuntos.mintlify.site/_mintlify/api/og/v2?division=Canjes\u0026amp;title=Consultar+un+canje+por+c%C3%B3digo\u0026amp;description=Devuelve+el+detalle+del+canje+%E2%80%94producto+y+cliente%E2%80%94+sin+entregarlo.+Sirve+para+que+el+operador+confirme+qu%C3%A9+tiene+que+dar+antes+de+llamar+a+%60POST+%2Fexternal%2Fpurch\u0026amp;theme=39cc81ab97eb342751d1dec0\u0026amp;signature=4fa06be14ce5ad067b75a98819f5bf20c41a4754c06cdec2a796090a0c78cda0\">\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=\"Consultar un canje por código - Tienda de Puntos\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Devuelve el detalle del canje —producto y cliente— sin entregarlo. Sirve para que el operador confirme qué tiene que dar antes de llamar a POST /external/purchase/redeem/{code}. Atención: este endpoint devuelve el canje directamente, sin el envelope { success, status, message, data }.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tiendadepuntos.mintlify.site/_mintlify/api/og/v2?division=Canjes\u0026amp;title=Consultar+un+canje+por+c%C3%B3digo\u0026amp;description=Devuelve+el+detalle+del+canje+%E2%80%94producto+y+cliente%E2%80%94+sin+entregarlo.+Sirve+para+que+el+operador+confirme+qu%C3%A9+tiene+que+dar+antes+de+llamar+a+%60POST+%2Fexternal%2Fpurch\u0026amp;theme=39cc81ab97eb342751d1dec0\u0026amp;signature=4fa06be14ce5ad067b75a98819f5bf20c41a4754c06cdec2a796090a0c78cda0\">\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/tiendadepuntos/ZKpZ9fYtIWUbQCtI/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Tienda de Puntos\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5b53f0\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.tiendadepuntos.com/api-reference/endpoints/canjes/consultar-un-canje-por-codigo\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoints/canjes/consultar-un-canje-por-codigo.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.tiendadepuntos.com/#organization\",\"name\":\"Tienda de Puntos\",\"url\":\"https://developers.tiendadepuntos.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tiendadepuntos/WnSIFgAFSkI7bdnr/logo/light.png?fit=max\u0026auto=format\u0026n=WnSIFgAFSkI7bdnr\u0026q=85\u0026s=8187339b0bc9e96cfb1fede6be7db42f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.tiendadepuntos.com#website\",\"name\":\"Tienda de Puntos\",\"url\":\"https://developers.tiendadepuntos.com\",\"publisher\":{\"@id\":\"https://developers.tiendadepuntos.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/canjes/consultar-un-canje-por-codigo#webpage\",\"url\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/canjes/consultar-un-canje-por-codigo\",\"name\":\"Consultar un canje por código\",\"description\":\"Devuelve el detalle del canje —producto y cliente— sin entregarlo. Sirve para que el operador confirme qué tiene que dar antes de llamar a POST /external/purchase/redeem/{code}. Atención: este endpoint devuelve el canje directamente, sin el envelope { success, status, message, data }.\",\"dateModified\":\"2026-10-04T04:06:03.977Z\",\"isPartOf\":{\"@id\":\"https://developers.tiendadepuntos.com#website\"},\"breadcrumb\":{\"@id\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/canjes/consultar-un-canje-por-codigo#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/canjes/consultar-un-canje-por-codigo#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API · Endpoints\",\"item\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/operadores/listar-operadores\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Canjes\",\"item\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/canjes/listar-canjes\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Consultar un canje por código\",\"item\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/canjes/consultar-un-canje-por-codigo\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/canjes/consultar-un-canje-por-codigo#apireference\",\"headline\":\"Consultar un canje por código\",\"name\":\"Consultar un canje por código\",\"description\":\"Devuelve el detalle del canje —producto y cliente— sin entregarlo. Sirve para que el operador confirme qué tiene que dar antes de llamar a POST /external/purchase/redeem/{code}. Atención: este endpoint devuelve el canje directamente, sin el envelope { success, status, message, data }.\",\"url\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/canjes/consultar-un-canje-por-codigo\",\"mainEntityOfPage\":{\"@id\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/canjes/consultar-un-canje-por-codigo#webpage\"},\"dateModified\":\"2026-10-04T04:06:03.977Z\",\"publisher\":{\"@id\":\"https://developers.tiendadepuntos.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.tiendadepuntos.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Tienda de Puntos\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Tienda de Puntos\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/endpoints/canjes/consultar-un-canje-por-codigo.md","siteName":"Tienda de Puntos","nav":{"global":null,"tabs":[{"tab":"Ayuda","pages":[{"title":"Ayuda","href":""}]},{"tab":"Documentación","groups":[{"group":"Guías del panel","pages":[{"title":"Documentación","href":"/documentacion"},{"title":"Primeros pasos","href":"/primeros-pasos"},{"title":"Pantallas principales","href":"/pantallas-principales"}]},{"group":"API · Empezar","pages":[{"title":"Introducción a la API","href":"/api-reference/introduccion"},{"title":"Autenticación","href":"/api-reference/autenticacion"},{"title":"Integrar tu punto de venta","href":"/api-reference/quickstart"},{"title":"Administrar el programa","href":"/api-reference/administracion"},{"title":"Errores y límites","href":"/api-reference/errores"}]},{"group":"API · Endpoints","pages":[{"group":"Operadores","pages":[{"title":"Listar operadores","deprecated":null,"version":null,"sidebarTitle":"Listar operadores","openapi":"/api-reference/openapi.json get /external/operators","href":"/api-reference/endpoints/operadores/listar-operadores"},{"title":"Crear un operador","deprecated":null,"version":null,"sidebarTitle":"Crear un operador","openapi":"/api-reference/openapi.json post /external/operators","href":"/api-reference/endpoints/operadores/crear-un-operador"},{"title":"Obtener un operador","deprecated":null,"version":null,"sidebarTitle":"Obtener un operador","openapi":"/api-reference/openapi.json get /external/operators/{id}","href":"/api-reference/endpoints/operadores/obtener-un-operador"},{"title":"Actualizar un operador","deprecated":null,"version":null,"sidebarTitle":"Actualizar un operador","openapi":"/api-reference/openapi.json put /external/operators/{id}","href":"/api-reference/endpoints/operadores/actualizar-un-operador"},{"title":"Eliminar un operador","deprecated":null,"version":null,"sidebarTitle":"Eliminar un operador","openapi":"/api-reference/openapi.json delete /external/operators/{id}","href":"/api-reference/endpoints/operadores/eliminar-un-operador"}]},{"group":"Clientes","pages":[{"title":"Listar clientes","deprecated":null,"version":null,"sidebarTitle":"Listar clientes","openapi":"/api-reference/openapi.json get /external/clients","href":"/api-reference/endpoints/clientes/listar-clientes"},{"title":"Crear un cliente","deprecated":null,"version":null,"sidebarTitle":"Crear un cliente","openapi":"/api-reference/openapi.json post /external/clients","href":"/api-reference/endpoints/clientes/crear-un-cliente"},{"title":"Buscar un cliente por email o documento","deprecated":null,"version":null,"sidebarTitle":"Buscar un cliente por email o documento","openapi":"/api-reference/openapi.json get /external/clients/search","href":"/api-reference/endpoints/clientes/buscar-un-cliente-por-email-o-documento"},{"title":"Actualizar un cliente","deprecated":null,"version":null,"sidebarTitle":"Actualizar un cliente","openapi":"/api-reference/openapi.json put /external/clients/{id}","href":"/api-reference/endpoints/clientes/actualizar-un-cliente"},{"title":"Eliminar un cliente","deprecated":null,"version":null,"sidebarTitle":"Eliminar un cliente","openapi":"/api-reference/openapi.json delete /external/clients/{id}","href":"/api-reference/endpoints/clientes/eliminar-un-cliente"},{"title":"Cambiar el estado de un cliente","deprecated":null,"version":null,"sidebarTitle":"Cambiar el estado de un cliente","openapi":"/api-reference/openapi.json put /external/clients/{id}/status","href":"/api-reference/endpoints/clientes/cambiar-el-estado-de-un-cliente"}]},{"group":"Sucursales","pages":[{"title":"Listar sucursales","deprecated":null,"version":null,"sidebarTitle":"Listar sucursales","openapi":"/api-reference/openapi.json get /external/branch","href":"/api-reference/endpoints/sucursales/listar-sucursales"},{"title":"Obtener una sucursal","deprecated":null,"version":null,"sidebarTitle":"Obtener una sucursal","openapi":"/api-reference/openapi.json get /external/branch/{id}","href":"/api-reference/endpoints/sucursales/obtener-una-sucursal"}]},{"group":"Premios","pages":[{"title":"Listar premios","deprecated":null,"version":null,"sidebarTitle":"Listar premios","openapi":"/api-reference/openapi.json get /external/products","href":"/api-reference/endpoints/premios/listar-premios"},{"title":"Crear un premio","deprecated":null,"version":null,"sidebarTitle":"Crear un premio","openapi":"/api-reference/openapi.json post /external/products","href":"/api-reference/endpoints/premios/crear-un-premio"},{"title":"Obtener un premio","deprecated":null,"version":null,"sidebarTitle":"Obtener un premio","openapi":"/api-reference/openapi.json get /external/products/{id}","href":"/api-reference/endpoints/premios/obtener-un-premio"},{"title":"Actualizar un premio","deprecated":null,"version":null,"sidebarTitle":"Actualizar un premio","openapi":"/api-reference/openapi.json put /external/products/{id}","href":"/api-reference/endpoints/premios/actualizar-un-premio"},{"title":"Eliminar un premio","deprecated":null,"version":null,"sidebarTitle":"Eliminar un premio","openapi":"/api-reference/openapi.json delete /external/products/{id}","href":"/api-reference/endpoints/premios/eliminar-un-premio"}]},{"group":"Niveles","pages":[{"title":"Listar niveles","deprecated":null,"version":null,"sidebarTitle":"Listar niveles","openapi":"/api-reference/openapi.json get /external/levels","href":"/api-reference/endpoints/niveles/listar-niveles"},{"title":"Crear un nivel","deprecated":null,"version":null,"sidebarTitle":"Crear un nivel","openapi":"/api-reference/openapi.json post /external/levels","href":"/api-reference/endpoints/niveles/crear-un-nivel"},{"title":"Obtener un nivel","deprecated":null,"version":null,"sidebarTitle":"Obtener un nivel","openapi":"/api-reference/openapi.json get /external/levels/{id}","href":"/api-reference/endpoints/niveles/obtener-un-nivel"},{"title":"Actualizar un nivel","deprecated":null,"version":null,"sidebarTitle":"Actualizar un nivel","openapi":"/api-reference/openapi.json put /external/levels/{id}","href":"/api-reference/endpoints/niveles/actualizar-un-nivel"},{"title":"Eliminar un nivel","deprecated":null,"version":null,"sidebarTitle":"Eliminar un nivel","openapi":"/api-reference/openapi.json delete /external/levels/{id}","href":"/api-reference/endpoints/niveles/eliminar-un-nivel"}]},{"group":"Puntos","pages":[{"title":"Crear una oferta de puntos (QR o email)","deprecated":null,"version":null,"sidebarTitle":"Crear una oferta de puntos (QR o email)","openapi":"/api-reference/openapi.json post /external/tags","href":"/api-reference/endpoints/puntos/crear-una-oferta-de-puntos-qr-o-email"},{"title":"Actualizar el monto de una oferta QR","deprecated":null,"version":null,"sidebarTitle":"Actualizar el monto de una oferta QR","openapi":"/api-reference/openapi.json put /external/tags/{id}","href":"/api-reference/endpoints/puntos/actualizar-el-monto-de-una-oferta-qr"},{"title":"Sumar puntos a un cliente por una compra","deprecated":null,"version":null,"sidebarTitle":"Sumar puntos a un cliente por una compra","openapi":"/api-reference/openapi.json post /external/tags/add","href":"/api-reference/endpoints/puntos/sumar-puntos-a-un-cliente-por-una-compra"},{"title":"Simular una suma de puntos","deprecated":null,"version":null,"sidebarTitle":"Simular una suma de puntos","openapi":"/api-reference/openapi.json post /external/tags/add/preview","href":"/api-reference/endpoints/puntos/simular-una-suma-de-puntos"},{"title":"Cancelar una suma de puntos","deprecated":null,"version":null,"sidebarTitle":"Cancelar una suma de puntos","openapi":"/api-reference/openapi.json put /external/tags/cancel/{externalId}","href":"/api-reference/endpoints/puntos/cancelar-una-suma-de-puntos"}]},{"group":"Códigos de validación","pages":[{"title":"Listar QRs con código de validación","deprecated":null,"version":null,"sidebarTitle":"Listar QRs con código de validación","openapi":"/api-reference/openapi.json get /external/validation-code/qrs","href":"/api-reference/endpoints/codigos-de-validacion/listar-qrs-con-codigo-de-validacion"},{"title":"Obtener el código vigente de un QR","deprecated":null,"version":null,"sidebarTitle":"Obtener el código vigente de un QR","openapi":"/api-reference/openapi.json get /external/validation-code/{qrId}/current","href":"/api-reference/endpoints/codigos-de-validacion/obtener-el-codigo-vigente-de-un-qr"},{"title":"Validar el código ingresado por el cliente","deprecated":null,"version":null,"sidebarTitle":"Validar el código ingresado por el cliente","openapi":"/api-reference/openapi.json post /external/validation-code/{qrId}/validate","href":"/api-reference/endpoints/codigos-de-validacion/validar-el-codigo-ingresado-por-el-cliente"}]},{"group":"Ítems de puntos","pages":[{"title":"Listar ítems de puntos","deprecated":null,"version":null,"sidebarTitle":"Listar ítems de puntos","openapi":"/api-reference/openapi.json get /external/point-items","href":"/api-reference/endpoints/items-de-puntos/listar-items-de-puntos"},{"title":"Crear un ítem de puntos","deprecated":null,"version":null,"sidebarTitle":"Crear un ítem de puntos","openapi":"/api-reference/openapi.json post /external/point-items","href":"/api-reference/endpoints/items-de-puntos/crear-un-item-de-puntos"},{"title":"Obtener un ítem de puntos","deprecated":null,"version":null,"sidebarTitle":"Obtener un ítem de puntos","openapi":"/api-reference/openapi.json get /external/point-items/{id}","href":"/api-reference/endpoints/items-de-puntos/obtener-un-item-de-puntos"},{"title":"Actualizar un ítem de puntos","deprecated":null,"version":null,"sidebarTitle":"Actualizar un ítem de puntos","openapi":"/api-reference/openapi.json put /external/point-items/{id}","href":"/api-reference/endpoints/items-de-puntos/actualizar-un-item-de-puntos"},{"title":"Eliminar un ítem de puntos","deprecated":null,"version":null,"sidebarTitle":"Eliminar un ítem de puntos","openapi":"/api-reference/openapi.json delete /external/point-items/{id}","href":"/api-reference/endpoints/items-de-puntos/eliminar-un-item-de-puntos"}]},{"group":"Canjes","pages":[{"title":"Listar canjes","deprecated":null,"version":null,"sidebarTitle":"Listar canjes","openapi":"/api-reference/openapi.json get /external/purchase","href":"/api-reference/endpoints/canjes/listar-canjes"},{"title":"Entregar un canje","description":"Marca el canje como entregado. Es el paso que se ejecuta en el mostrador cuando el cliente presenta su código y se le da el producto.\n\nAntes de llamar acá, usá `GET /external/purchase/code/{code}` para mostrarle al operador qué producto tiene que entregar.","deprecated":null,"version":null,"sidebarTitle":"Entregar un canje","openapi":"/api-reference/openapi.json post /external/purchase/redeem/{code}","href":"/api-reference/endpoints/canjes/entregar-un-canje"},{"title":"Consultar un canje por código","deprecated":null,"version":null,"sidebarTitle":"Consultar un canje por código","openapi":"/api-reference/openapi.json get /external/purchase/code/{code}","href":"/api-reference/endpoints/canjes/consultar-un-canje-por-codigo"},{"title":"Canjear un premio","description":"Descuenta los puntos al cliente y genera un canje pendiente de entrega, con su código.\n\nEl canje **no queda entregado**: para eso, después llamá a `POST /external/purchase/redeem/{code}` con el `code` que devuelve esta llamada. La API pública no puede registrar un canje como entregado en un solo paso, porque esa operación exige un operador identificado.\n\nValidaciones que pueden fallar con 409: puntos insuficientes, premio deshabilitado, sin stock, nivel del cliente insuficiente o tope de canjes alcanzado.","deprecated":null,"version":null,"sidebarTitle":"Canjear un premio","openapi":"/api-reference/openapi.json post /external/exchange/product","href":"/api-reference/endpoints/canjes/canjear-un-premio"},{"title":"Canjear puntos por dinero","deprecated":null,"version":null,"sidebarTitle":"Canjear puntos por dinero","openapi":"/api-reference/openapi.json post /external/exchange/money","href":"/api-reference/endpoints/canjes/canjear-puntos-por-dinero"}]}]}]},{"tab":"Integraciones","pages":[{"title":"Integraciones","href":"/integraciones"}]},{"tab":"Blog","href":"https://www.tiendadepuntos.com/blog"}]},"basePath":"","title":"Consultar un canje por código - Tienda de Puntos","buildId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","deploymentId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CDiBsYGW.js","utils-KF9rPlmF.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C26urKTX.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BdjmJAC1.js","snippetPresets-3IpDBjt3.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-D4x_2vvo.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BIWdc5Pa.js","shallow-LQqfiMNd.js","getApiPlaygroundDisplay-DryzlOZG.js","CodeSnippet-tcJujU4r.js","CodeSnippets-BHp0nVLL.js","Page-1CZdsdAn.js","getPastedJson-DU-1ayUv.js","icon-CZK2hPr4.js","MethodPill-DOaqmTFC.js","DuplicateIcon-B5-nUxxl.js","createIcon-CDP_U77G.js","DynamicMarkdown-GHvayGOn.js","SectionHeading-BYvpkmUD.js","axios-vUo_bRtp.js","Markdown-uxhlayGT.js","clsx-B35qUV0p.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BvrGG8gU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CAf0yVYe.js"]}