Reemplaza los datos de un premio. No es un patch: mandá siempre el premio completo.
Las ofertas se reconcilian por nivel: la oferta que ya cubría un levelId conserva su productOfferId, y las ofertas de niveles que no vengan en offers se eliminan. Lo mismo con categoryIds: las categorías que no vengan se desasocian.
Las opciones que la API pública no expone (mensaje post canje, restricción temporal, tope mensual de canjes, cupones de integración) se conservan como estaban.
PUT
/
external
/
products
/
{id}
Actualizar un premio
curl --request PUT \ --url https://api.tiendadepuntos.com/external/products/{id} \ --header 'Content-Type: application/json' \ --header 'x-api-key: <api-key>' \ --data '{ "name": "Café gratis", "shortDescription": "Café a elección", "offers": [ { "points": 500, "levelId": 3, "productOfferId": 4412 } ], "description": "Un café de especialidad a elección.", "termsAndConditions": "Válido de lunes a viernes.", "image": "https://mi-cdn.com/premios/cafe.png", "isEnabled": true, "categoryIds": [ 7 ], "maxPurchases": 1, "expirationTermInDays": 30}'
{"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/premios/actualizar-un-premio","slug":"/api-reference/endpoints/premios/actualizar-un-premio","pageMetadata":{"title":"Actualizar un premio","description":"Reemplaza los datos de un premio. **No es un patch**: mandá siempre el premio completo.\n\nLas ofertas se reconcilian por nivel: la oferta que ya cubría un `levelId` conserva su `productOfferId`, y las ofertas de niveles que no vengan en `offers` se eliminan. Lo mismo con `categoryIds`: las categorías que no vengan se desasocian.\n\nLas opciones que la API pública no expone (mensaje post canje, restricción temporal, tope mensual de canjes, cupones de integración) se conservan como estaban.","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","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: [\"Reemplaza los datos de un premio. \", _jsx(_components.strong, {\n children: \"No es un patch\"\n }), \": mandá siempre el premio completo.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Las ofertas se reconcilian por nivel: la oferta que ya cubría un \", _jsx(_components.code, {\n children: \"levelId\"\n }), \" conserva su \", _jsx(_components.code, {\n children: \"productOfferId\"\n }), \", y las ofertas de niveles que no vengan en \", _jsx(_components.code, {\n children: \"offers\"\n }), \" se eliminan. Lo mismo con \", _jsx(_components.code, {\n children: \"categoryIds\"\n }), \": las categorías que no vengan se desasocian.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Las opciones que la API pública no expone (mensaje post canje, restricción temporal, tope mensual de canjes, cupones de integración) se conservan como estaban.\"\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":"Actualizar un premio","description":"Reemplaza los datos de un premio. **No es un patch**: mandá siempre el premio completo.\n\nLas ofertas se reconcilian por nivel: la oferta que ya cubría un `levelId` conserva su `productOfferId`, y las ofertas de niveles que no vengan en `offers` se eliminan. Lo mismo con `categoryIds`: las categorías que no vengan se desasocian.\n\nLas opciones que la API pública no expone (mensaje post canje, restricción temporal, tope mensual de canjes, cupones de integración) se conservan como estaban.","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","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Reemplaza los datos de un premio. **No es un patch**: mandá siempre el premio completo.\n\nLas ofertas se reconcilian por nivel: la oferta que ya cubría un `levelId` conserva su `productOfferId`, y las ofertas de niveles que no vengan en `offers` se eliminan. Lo mismo con `categoryIds`: las categorías que no vengan se desasocian.\n\nLas opciones que la API pública no expone (mensaje post canje, restricción temporal, tope mensual de canjes, cupones de integración) se conservan como estaban.","operationId":"ExternalProductCatalogController_update","parameters":["f5a54722-e4dd-461c-a51e-e1b3f807d082"],"requestBody":"fe002453-b147-410e-8761-e93524d306c3","responses":{"200":"c2bc8540-dabc-4042-9d94-902bd0e2103c","400":"7da76193-46d3-4b74-b539-bddb2d9e3c42","401":"96179cee-786f-4e50-9b86-ac82472dafc8","404":"7076cba9-59f3-4ff5-9339-c170473d9709"},"security":["0a550da5-59b7-4dc0-a478-a2c8468d499c"],"summary":"Actualizar un premio","tags":["Premios"],"x-mint":{"href":"/api-reference/endpoints/premios/actualizar-un-premio","metadata":{"title":"Actualizar un premio","sidebarTitle":"Actualizar un premio"}},"method":"put","type":"path","servers":["b3a69718-a9fe-4116-a340-620ea57d373e","b1c4d4f7-1090-47b8-b751-e9830f418b25"],"path":"/external/products/{id}","baseUrlOptions":["https://api.tiendadepuntos.com","https://api-qa.tiendadepuntos.com"],"title":"Actualizar un premio","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"f5a54722-e4dd-461c-a51e-e1b3f807d082":{"name":"id","required":true,"in":"path","description":"ID del premio en Tienda de Puntos.","schema":{"type":"integer","example":771,"isRequired":true,"description":"ID del premio en Tienda de Puntos.","uniqueKey":"","typeLabel":"integer"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Nombre del premio.","example":"Café gratis","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"shortDescription":{"type":"string","description":"Descripción corta. Es la que se ve en el listado de premios de la app.","example":"Café a elección","isRequired":true,"uniqueKey":"shortDescription","typeLabel":"string"},"offers":{"description":"Precio en puntos por nivel. Las ofertas de niveles que no vengan en el array se eliminan.","type":"array","items":{"type":"object","properties":{"points":{"type":"number","description":"Puntos que cuesta el premio para ese nivel. `0` lo convierte en premio gratis.","example":500,"isRequired":true,"uniqueKey":"offers.items.[INDEX].points","typeLabel":"number"},"levelId":{"oneOf":[{"type":"number","description":"Nivel al que aplica este precio. Los IDs salen de `GET /external/levels`. Omitilo (o mandá `null`) para que el precio aplique a los clientes sin nivel.","example":3,"uniqueKey":"offers.items.[INDEX].levelId.oneOf.0","typeLabel":"number"},{"type":"null","description":"Nivel al que aplica este precio. Los IDs salen de `GET /external/levels`. Omitilo (o mandá `null`) para que el precio aplique a los clientes sin nivel.","example":3,"uniqueKey":"offers.items.[INDEX].levelId.oneOf.1","typeLabel":"null"}],"uniqueKey":"offers.items.[INDEX].levelId","typeLabel":"number | null"},"productOfferId":{"type":"number","description":"ID de una oferta existente, para conservarla tal cual. Si se omite, la oferta se reconcilia por `levelId`: se reutiliza el id de la oferta que ya cubría ese nivel.","example":4412,"uniqueKey":"offers.items.[INDEX].productOfferId","typeLabel":"number"}},"required":["points"],"uniqueKey":"offers.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"offers","typeLabel":"object[]"},"description":{"type":"string","description":"Descripción larga del premio.","example":"Un café de especialidad a elección.","uniqueKey":"description","typeLabel":"string"},"termsAndConditions":{"type":"string","description":"Términos y condiciones del canje.","example":"Válido de lunes a viernes.","uniqueKey":"termsAndConditions","typeLabel":"string"},"image":{"type":"string","description":"URL pública de la imagen del premio. Tienda de Puntos no descarga la imagen: guarda la URL tal cual. Si se omite, el premio queda sin imagen.","example":"https://mi-cdn.com/premios/cafe.png","uniqueKey":"image","typeLabel":"string"},"isEnabled":{"type":"boolean","description":"Si es `false`, el premio no aparece en el catálogo ni se puede canjear. Si el stock arranca en `0`, el premio queda deshabilitado aunque mandes `true`.","example":true,"default":true,"uniqueKey":"isEnabled","typeLabel":"boolean"},"categoryIds":{"description":"IDs de las categorías de premios del comercio a las que pertenece.","example":[7],"type":"array","items":{"type":"number","uniqueKey":"categoryIds.items.[INDEX]","typeLabel":"number"},"uniqueKey":"categoryIds","typeLabel":"number[]"},"stock":{"type":"object","description":"Control de stock del premio. Si se omite, el premio queda sin control de stock.","required":["controlled"],"properties":{"controlled":{"type":"boolean","description":"Si es `false`, el premio no lleva control de stock (canjes ilimitados) y se ignora `available`.","example":true,"isRequired":true,"uniqueKey":"stock.controlled","typeLabel":"boolean"},"available":{"type":"number","description":"Unidades disponibles. Al llegar a `0`, Tienda de Puntos deshabilita el premio automáticamente.","example":12,"default":0,"uniqueKey":"stock.available","typeLabel":"number"}},"uniqueKey":"stock","typeLabel":"object"},"maxPurchases":{"oneOf":[{"type":"number","description":"Máximo de canjes por cliente a lo largo de la vida del premio. Omitilo (o mandá `null`) para no poner tope.","example":1,"uniqueKey":"maxPurchases.oneOf.0","typeLabel":"number"},{"type":"null","description":"Máximo de canjes por cliente a lo largo de la vida del premio. Omitilo (o mandá `null`) para no poner tope.","example":1,"uniqueKey":"maxPurchases.oneOf.1","typeLabel":"null"}],"uniqueKey":"maxPurchases","typeLabel":"number | null"},"expirationTermInDays":{"oneOf":[{"type":"number","description":"Días que tiene el cliente para usar el cupón de canje. Omitilo para que el canje no venza.","example":30,"uniqueKey":"expirationTermInDays.oneOf.0","typeLabel":"number"},{"type":"null","description":"Días que tiene el cliente para usar el cupón de canje. Omitilo para que el canje no venza.","example":30,"uniqueKey":"expirationTermInDays.oneOf.1","typeLabel":"null"}],"uniqueKey":"expirationTermInDays","typeLabel":"number | null"}},"required":["name","shortDescription","offers"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"Café gratis","shortDescription":"Café a elección","offers":[{"points":500,"levelId":3,"productOfferId":4412}],"description":"Un café de especialidad a elección.","termsAndConditions":"Válido de lunes a viernes.","image":"https://mi-cdn.com/premios/cafe.png","isEnabled":true,"categoryIds":[7],"maxPurchases":1,"expirationTermInDays":30}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"c2bc8540-dabc-4042-9d94-902bd0e2103c":{"description":"Premio actualizado.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","example":true,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"status":{"type":"integer","example":200,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"message":{"type":"string","example":"Request was successful","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"data":{"type":"object","properties":{"id":{"type":"number","description":"ID del premio.","example":771,"isRequired":true,"uniqueKey":"data.id","typeLabel":"number"},"name":{"type":"string","description":"Nombre del premio.","example":"Café gratis","isRequired":true,"uniqueKey":"data.name","typeLabel":"string"},"description":{"oneOf":[{"type":"string","description":"Descripción larga.","example":"Un café de especialidad a elección.","isRequired":true,"uniqueKey":"data.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Descripción larga.","example":"Un café de especialidad a elección.","isRequired":true,"uniqueKey":"data.description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.description","typeLabel":"string | null"},"shortDescription":{"oneOf":[{"type":"string","description":"Descripción corta.","example":"Café a elección","isRequired":true,"uniqueKey":"data.shortDescription.oneOf.0","typeLabel":"string"},{"type":"null","description":"Descripción corta.","example":"Café a elección","isRequired":true,"uniqueKey":"data.shortDescription.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.shortDescription","typeLabel":"string | null"},"image":{"oneOf":[{"type":"string","description":"URL de la imagen principal.","example":"https://tdp-products.s3.amazonaws.com/771.png","isRequired":true,"uniqueKey":"data.image.oneOf.0","typeLabel":"string"},{"type":"null","description":"URL de la imagen principal.","example":"https://tdp-products.s3.amazonaws.com/771.png","isRequired":true,"uniqueKey":"data.image.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.image","typeLabel":"string | null"},"isEnabled":{"type":"boolean","description":"Si está deshabilitado, no se puede canjear desde la API.","example":true,"isRequired":true,"uniqueKey":"data.isEnabled","typeLabel":"boolean"},"stock":{"type":"object","properties":{"controlled":{"type":"boolean","description":"Indica si el comercio lleva control de stock sobre este premio.","example":true,"isRequired":true,"uniqueKey":"data.stock.controlled","typeLabel":"boolean"},"available":{"type":"number","description":"Unidades disponibles. Solo tiene sentido cuando `controlled` es `true`.","example":12,"isRequired":true,"uniqueKey":"data.stock.available","typeLabel":"number"}},"required":["controlled","available"],"isRequired":true,"uniqueKey":"data.stock","typeLabel":"object"},"offers":{"description":"Precio en puntos según el nivel del cliente. El `productOfferId` que se usa para canjear se obtiene de acá.","type":"array","items":{"type":"object","properties":{"productOfferId":{"type":"number","description":"ID de la oferta. Es el `productOfferId` que consume `POST /external/exchange/product`.","example":4412,"isRequired":true,"uniqueKey":"data.offers.items.[INDEX].productOfferId","typeLabel":"number"},"points":{"type":"number","description":"Puntos que cuesta el premio para este nivel.","example":500,"isRequired":true,"uniqueKey":"data.offers.items.[INDEX].points","typeLabel":"number"},"levelId":{"oneOf":[{"type":"number","description":"Nivel al que aplica el precio. `null` si aplica a todos.","example":3,"isRequired":true,"uniqueKey":"data.offers.items.[INDEX].levelId.oneOf.0","typeLabel":"number"},{"type":"null","description":"Nivel al que aplica el precio. `null` si aplica a todos.","example":3,"isRequired":true,"uniqueKey":"data.offers.items.[INDEX].levelId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offers.items.[INDEX].levelId","typeLabel":"number | null"},"levelName":{"oneOf":[{"type":"string","description":"Nombre del nivel.","example":"Nivel 2","isRequired":true,"uniqueKey":"data.offers.items.[INDEX].levelName.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nombre del nivel.","example":"Nivel 2","isRequired":true,"uniqueKey":"data.offers.items.[INDEX].levelName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offers.items.[INDEX].levelName","typeLabel":"string | null"}},"required":["productOfferId","points","levelId","levelName"],"uniqueKey":"data.offers.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offers","typeLabel":"object[]"},"categories":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number","example":7,"isRequired":true,"uniqueKey":"data.categories.items.[INDEX].id","typeLabel":"number"},"name":{"type":"string","example":"Cafetería","isRequired":true,"uniqueKey":"data.categories.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"uniqueKey":"data.categories.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.categories","typeLabel":"object[]"},"createdAt":{"format":"date-time","type":"string","example":"2026-02-14T12:30:00.000Z","isRequired":true,"uniqueKey":"data.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"format":"date-time","type":"string","example":"2026-06-01T09:15:00.000Z","isRequired":true,"uniqueKey":"data.updatedAt","typeLabel":"string\u003cdate-time>"},"maxPurchases":{"oneOf":[{"type":"number","description":"Máximo de canjes por cliente. `null` si no hay tope.","example":null,"uniqueKey":"data.maxPurchases.oneOf.0","typeLabel":"number"},{"type":"null","description":"Máximo de canjes por cliente. `null` si no hay tope.","example":null,"uniqueKey":"data.maxPurchases.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.maxPurchases","typeLabel":"number | null"}},"required":["id","name","description","shortDescription","image","isEnabled","stock","offers","categories","createdAt","updatedAt"],"uniqueKey":"data","typeLabel":"object"}},"required":["success","status","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":true,"status":200,"message":"Request was successful","data":{"id":771,"name":"Café gratis","description":"Un café de especialidad a elección.","shortDescription":"Café a elección","image":"https://tdp-products.s3.amazonaws.com/771.png","isEnabled":true,"stock":{"controlled":true,"available":12},"offers":[{"productOfferId":4412,"points":500,"levelId":3,"levelName":"Nivel 2"}],"categories":[{"id":7,"name":"Cafetería"}],"createdAt":"2026-02-14T12:30:00.000Z","updatedAt":"2026-06-01T09:15:00.000Z","maxPurchases":null}}}},"exampleType":"generated"}},"exampleType":"generated"},"7da76193-46d3-4b74-b539-bddb2d9e3c42":{"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"},"96179cee-786f-4e50-9b86-ac82472dafc8":{"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"},"7076cba9-59f3-4ff5-9339-c170473d9709":{"description":"La key es válida y el recurso pedido no existe.","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":"Client not found","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":"Client not found","errors":[{}],"data":{}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"0a550da5-59b7-4dc0-a478-a2c8468d499c":{"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":"Actualizar un premio - Tienda de Puntos","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-04T04:06:03.758Z","originalFileLocation":"api-reference/endpoints/premios/actualizar-un-premio.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=\"Reemplaza los datos de un premio. No es un patch: mandá siempre el premio completo. Las ofertas se reconcilian por nivel: la oferta que ya cubría un levelId conserva su productOfferId, y las ofertas de niveles que no vengan en offers se eliminan. Lo mismo con categoryIds: las categorías que no vengan se desasocian. Las opciones que la API pública no expone (mensaje post canje, restricción temporal, tope mensual de canjes, cupones de integración) se conservan como estaban.\">\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=\"Actualizar un premio - Tienda de Puntos\">\u003cmeta data-mint-head property=\"og:description\" content=\"Reemplaza los datos de un premio. No es un patch: mandá siempre el premio completo. Las ofertas se reconcilian por nivel: la oferta que ya cubría un levelId conserva su productOfferId, y las ofertas de niveles que no vengan en offers se eliminan. Lo mismo con categoryIds: las categorías que no vengan se desasocian. Las opciones que la API pública no expone (mensaje post canje, restricción temporal, tope mensual de canjes, cupones de integración) se conservan como estaban.\">\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/premios/actualizar-un-premio\">\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=Premios\u0026amp;title=Actualizar+un+premio\u0026amp;description=Reemplaza+los+datos+de+un+premio.+**No+es+un+patch**%3A+mand%C3%A1+siempre+el+premio+completo.%0A%0ALas+ofertas+se+reconcilian+por+nivel%3A+la+oferta+que+ya+cubr%C3%ADa+un+%60level\u0026amp;theme=39cc81ab97eb342751d1dec0\u0026amp;signature=e3886d460cc289050c11a4474a21e61676c637c70ff22e49bb5a00fae15785ee\">\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=\"Actualizar un premio - Tienda de Puntos\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Reemplaza los datos de un premio. No es un patch: mandá siempre el premio completo. Las ofertas se reconcilian por nivel: la oferta que ya cubría un levelId conserva su productOfferId, y las ofertas de niveles que no vengan en offers se eliminan. Lo mismo con categoryIds: las categorías que no vengan se desasocian. Las opciones que la API pública no expone (mensaje post canje, restricción temporal, tope mensual de canjes, cupones de integración) se conservan como estaban.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tiendadepuntos.mintlify.site/_mintlify/api/og/v2?division=Premios\u0026amp;title=Actualizar+un+premio\u0026amp;description=Reemplaza+los+datos+de+un+premio.+**No+es+un+patch**%3A+mand%C3%A1+siempre+el+premio+completo.%0A%0ALas+ofertas+se+reconcilian+por+nivel%3A+la+oferta+que+ya+cubr%C3%ADa+un+%60level\u0026amp;theme=39cc81ab97eb342751d1dec0\u0026amp;signature=e3886d460cc289050c11a4474a21e61676c637c70ff22e49bb5a00fae15785ee\">\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/premios/actualizar-un-premio\">\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/premios/actualizar-un-premio.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/premios/actualizar-un-premio#webpage\",\"url\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/premios/actualizar-un-premio\",\"name\":\"Actualizar un premio\",\"description\":\"Reemplaza los datos de un premio. No es un patch: mandá siempre el premio completo. Las ofertas se reconcilian por nivel: la oferta que ya cubría un levelId conserva su productOfferId, y las ofertas de niveles que no vengan en offers se eliminan. Lo mismo con categoryIds: las categorías que no vengan se desasocian. Las opciones que la API pública no expone (mensaje post canje, restricción temporal, tope mensual de canjes, cupones de integración) se conservan como estaban.\",\"dateModified\":\"2026-10-04T04:06:03.758Z\",\"isPartOf\":{\"@id\":\"https://developers.tiendadepuntos.com#website\"},\"breadcrumb\":{\"@id\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/premios/actualizar-un-premio#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/premios/actualizar-un-premio#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\":\"Premios\",\"item\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/premios/listar-premios\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Actualizar un premio\",\"item\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/premios/actualizar-un-premio\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/premios/actualizar-un-premio#apireference\",\"headline\":\"Actualizar un premio\",\"name\":\"Actualizar un premio\",\"description\":\"Reemplaza los datos de un premio. No es un patch: mandá siempre el premio completo. Las ofertas se reconcilian por nivel: la oferta que ya cubría un levelId conserva su productOfferId, y las ofertas de niveles que no vengan en offers se eliminan. Lo mismo con categoryIds: las categorías que no vengan se desasocian. Las opciones que la API pública no expone (mensaje post canje, restricción temporal, tope mensual de canjes, cupones de integración) se conservan como estaban.\",\"url\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/premios/actualizar-un-premio\",\"mainEntityOfPage\":{\"@id\":\"https://developers.tiendadepuntos.com/api-reference/endpoints/premios/actualizar-un-premio#webpage\"},\"dateModified\":\"2026-10-04T04:06:03.758Z\",\"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/premios/actualizar-un-premio.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","description":"Devuelve un premio del comercio por su `id`, con sus ofertas por nivel y sus categorías. Si el premio no existe, o pertenece a otro comercio, responde 404.","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","description":"Elimina un premio del catálogo junto con sus ofertas. Los canjes ya realizados no se tocan.","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","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","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":"Actualizar un premio - 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"]}