Calcula impuestos sobre líneas principales (order.products[].price.totalPrice) y modificadores según reglas fiscales
y guarda la orden en base de datos (upsert por orderId).
El cuerpo puede ser OrderPayload en la raíz o envuelto en un objeto con propiedad payload.
Requisitos: body no vacío; orderId presente en el payload para respuesta 200.
Payload enriquecido: OrderPayload en la raíz, u objeto con propiedad payload anidando OrderPayload.
Option 1
Option 2
Show child attributes
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Docs","colors":{"primary":"#FF2E49","light":"#FF2E49","dark":"#FF2E49"},"favicon":"images/faviconnew.png","logo":{"light":"https://s3.us-east-2.amazonaws.com/admin.artisncore.dev/products/xmart-logo.png","dark":"https://s3.us-east-2.amazonaws.com/admin.artisncore.dev/products/logoxmartblanco.png"},"navbar":{"links":[{"label":"Support","href":"mailto:support@x-mart.io"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.x-mart.io/auth/signin"}},"footer":{"socials":{"website":"https://www.artisn.io/xmart"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Create an account","href":"https://app.x-mart.io/auth/signin","icon":"Key"},{"anchor":"Version","href":"https://docs.x-mart.io/version","icon":"newspaper"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"trade","hasAudioNarration":false,"actualSubdomain":"trade","customDomains":["docs.x-mart.io"],"gitSource":{"type":"github","owner":"xmart-io","repo":"x-mart","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a21e6494c43fec466d79790","collectionId":"12a0dd3e-01d7-41c0-9567-768b2c6fef9a","schemaVersion":"v2"},"entitlements":{},"buildId":"6ae9215fa7789b0d4de99173:success","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Documentation","count":80},{"language":"default","tag":"API-Reference","count":60},{"language":"default","tag":"Admin","count":20},{"language":"default","tag":"Fiscal Engine","count":13},{"language":"default","tag":"Motor Fiscal","count":13},{"language":"default","tag":"Primeros Pasos","count":6},{"language":"default","tag":"Get Started","count":6},{"language":"default","tag":"Order Fulfillment","count":4},{"language":"default","tag":"Stores and Sales Channels","count":4},{"language":"default","tag":"Cambios de estado","count":4}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/fiscal/post-enrich-order","slug":"/api-reference/fiscal/post-enrich-order","pageMetadata":{"title":"Enrich order with taxes","openapi":"api-reference/openapi.json POST /enrich-order","description":"Calcula impuestos sobre líneas principales (`order.products[].price.totalPrice`) y modificadores según reglas fiscales\ny guarda la orden en base de datos (upsert por `orderId`).\nEl cuerpo puede ser `OrderPayload` en la raíz o envuelto en un objeto con propiedad `payload`.\nRequisitos: body no vacío; `orderId` presente en el payload para respuesta 200.\n","href":"/api-reference/fiscal/post-enrich-order"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Calcula impuestos sobre líneas principales (\", _jsx(_components.code, {\n children: \"order.products[].price.totalPrice\"\n }), \") y modificadores según reglas fiscales\\ny guarda la orden en base de datos (upsert por \", _jsx(_components.code, {\n children: \"orderId\"\n }), \").\\nEl cuerpo puede ser \", _jsx(_components.code, {\n children: \"OrderPayload\"\n }), \" en la raíz o envuelto en un objeto con propiedad \", _jsx(_components.code, {\n children: \"payload\"\n }), \".\\nRequisitos: body no vacío; \", _jsx(_components.code, {\n children: \"orderId\"\n }), \" presente en el payload para respuesta 200.\"]\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":"Enrich order with taxes","openapi":"api-reference/openapi.json POST /enrich-order","description":"Calcula impuestos sobre líneas principales (`order.products[].price.totalPrice`) y modificadores según reglas fiscales\ny guarda la orden en base de datos (upsert por `orderId`).\nEl cuerpo puede ser `OrderPayload` en la raíz o envuelto en un objeto con propiedad `payload`.\nRequisitos: body no vacío; `orderId` presente en el payload para respuesta 200.\n","href":"/api-reference/fiscal/post-enrich-order"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Orders"],"summary":"Enriquecer orden con impuestos","description":"Calcula impuestos sobre líneas principales (`order.products[].price.totalPrice`) y modificadores según reglas fiscales\ny guarda la orden en base de datos (upsert por `orderId`).\nEl cuerpo puede ser `OrderPayload` en la raíz o envuelto en un objeto con propiedad `payload`.\nRequisitos: body no vacío; `orderId` presente en el payload para respuesta 200.\n","operationId":"enrichOrder","requestBody":"ad66156c-79ba-4a7b-a545-422188f9d5a6","responses":{"200":"48462747-2d8d-4327-bbce-5ff46ad30705","400":"d4136b60-716d-4452-b116-df53dc1ec8dc","500":"02f8cd6d-dcd0-4067-a9ce-b902778db46e"},"method":"post","type":"path","servers":["88b44c8d-4119-442c-9f3f-2ef147a38bed","508ba195-a5da-4c42-955f-a4e1d9981353","b6cc3f75-0d67-4005-9014-120dd3991dde"],"security":["52b7b3d9-ac60-468f-8a5d-b5cf21ad1ae8"],"path":"/enrich-order","baseUrlOptions":["https://api.artisn.desarrollo-redbrand.com/api","https://api.kfc-group.desarrollo-redbrand.com","https://{apiId}.execute-api.{region}.amazonaws.com/{stage}"],"title":"Enriquecer orden con impuestos","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Raíz flexible: puede incluir `payload` u omitirse (entonces los campos de orden van en la raíz).\nSe permiten propiedades adicionales no listadas.\n","type":"object","additionalProperties":true,"properties":{"payload":{"type":"object","additionalProperties":true,"description":"Datos de la orden (productos, tienda, pagos). `orderId` obligatorio para 200.","properties":{"orderId":{"type":"string","example":"ord-2025-001","uniqueKey":"payload.orderId","typeLabel":"string"},"source":{"type":"string","example":"pos","uniqueKey":"payload.source","typeLabel":"string"},"store":{"type":"object","properties":{"id":{"type":"string","uniqueKey":"payload.store.id","typeLabel":"string"},"code":{"type":"string","uniqueKey":"payload.store.code","typeLabel":"string"},"name":{"type":"string","uniqueKey":"payload.store.name","typeLabel":"string"}},"uniqueKey":"payload.store","typeLabel":"object"},"order":{"type":"object","properties":{"products":{"type":"array","items":{"type":"object","uniqueKey":"payload.order.products.items.[INDEX]","typeLabel":"object"},"uniqueKey":"payload.order.products","typeLabel":"object[]"}},"uniqueKey":"payload.order","typeLabel":"object"},"payments":{"type":"object","uniqueKey":"payload.payments","typeLabel":"object"}},"uniqueKey":"payload","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"simple":{"title":"simple","description":"Una orden, una tienda, un ítem con precio; mismo cuerpo válido para `/enrich-order-forward`.","value":{"payload":{"orderId":"ord-001","store":{"id":"21"},"order":{"products":[{"modifierGroups":[{"selectedModifiers":[{"productId":"sku-001","price":{"totalPrice":{"total":10.5}}}]}]}]}}}},"conPayload":{"title":"conPayload","description":"Orden bajo la propiedad `payload` (compatible con envoltorios upstream).","value":{"payload":{"orderId":"ord-2025-001","source":"pos","store":{"id":"store-br-01","code":"BR01","name":"Tienda Centro"},"order":{"products":[{"productId":"sku-burger-001","modifierGroups":[{"selectedModifiers":[{"productId":"mod-cheese","quantity":1,"price":{"unitPrice":{"currencyCode":"BRL","subtotalWithoutTaxes":2.5}}}]}]}]},"payments":{"totals":[{"currencyCode":"BRL","total":32.9}]}}}},"plano":{"title":"plano","description":"Mismo contrato sin envoltorio `payload` (el handler acepta ambos).","value":{"orderId":"ord-2025-002","source":"kiosk","store":{"id":"store-br-02"},"order":{"products":[{"productId":"sku-drink-010"}]}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"48462747-2d8d-4327-bbce-5ff46ad30705":{"description":"Orden enriquecida y persistida","content":{"application/json":{"schema":{"type":"object","required":["message","orderDbId","orderId","payload"],"properties":{"message":{"type":"string","example":"Orden enriquecida exitosamente.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"orderDbId":{"type":"string","format":"uuid","description":"ID interno en Postgres (tabla de órdenes).","isRequired":true,"uniqueKey":"orderDbId","typeLabel":"string\u003cuuid>"},"orderId":{"type":"string","description":"Identificador de negocio recibido en la petición.","isRequired":true,"uniqueKey":"orderId","typeLabel":"string"},"payload":{"oneOf":[{"type":"object","description":"Payload enriquecido: OrderPayload en la raíz, u objeto con propiedad `payload` anidando OrderPayload.","properties":{"orderId":{"type":"string","example":"ord-2025-001","uniqueKey":"payload.oneOf.0.orderId","typeLabel":"string"},"source":{"type":"string","example":"pos","uniqueKey":"payload.oneOf.0.source","typeLabel":"string"},"store":{"type":"object","properties":{"id":{"type":"string","uniqueKey":"payload.oneOf.0.store.id","typeLabel":"string"},"code":{"type":"string","uniqueKey":"payload.oneOf.0.store.code","typeLabel":"string"},"name":{"type":"string","uniqueKey":"payload.oneOf.0.store.name","typeLabel":"string"}},"uniqueKey":"payload.oneOf.0.store","typeLabel":"object"},"order":{"type":"object","properties":{"products":{"type":"array","items":{"type":"object","uniqueKey":"payload.oneOf.0.order.products.items.[INDEX]","typeLabel":"object"},"uniqueKey":"payload.oneOf.0.order.products","typeLabel":"object[]"}},"uniqueKey":"payload.oneOf.0.order","typeLabel":"object"},"payments":{"type":"object","uniqueKey":"payload.oneOf.0.payments","typeLabel":"object"}},"additionalProperties":true,"isRequired":true,"uniqueKey":"payload.oneOf.0","typeLabel":"object"},{"type":"object","description":"Payload enriquecido: OrderPayload en la raíz, u objeto con propiedad `payload` anidando OrderPayload.","required":["payload"],"properties":{"payload":{"type":"object","additionalProperties":true,"description":"Datos de la orden (productos, tienda, pagos). `orderId` obligatorio para 200.","properties":{"orderId":{"type":"string","example":"ord-2025-001","uniqueKey":"payload.oneOf.1.payload.orderId","typeLabel":"string"},"source":{"type":"string","example":"pos","uniqueKey":"payload.oneOf.1.payload.source","typeLabel":"string"},"store":{"type":"object","properties":{"id":{"type":"string","uniqueKey":"payload.oneOf.1.payload.store.id","typeLabel":"string"},"code":{"type":"string","uniqueKey":"payload.oneOf.1.payload.store.code","typeLabel":"string"},"name":{"type":"string","uniqueKey":"payload.oneOf.1.payload.store.name","typeLabel":"string"}},"uniqueKey":"payload.oneOf.1.payload.store","typeLabel":"object"},"order":{"type":"object","properties":{"products":{"type":"array","items":{"type":"object","uniqueKey":"payload.oneOf.1.payload.order.products.items.[INDEX]","typeLabel":"object"},"uniqueKey":"payload.oneOf.1.payload.order.products","typeLabel":"object[]"}},"uniqueKey":"payload.oneOf.1.payload.order","typeLabel":"object"},"payments":{"type":"object","uniqueKey":"payload.oneOf.1.payload.payments","typeLabel":"object"}},"isRequired":true,"uniqueKey":"payload.oneOf.1.payload","typeLabel":"object"}},"isRequired":true,"uniqueKey":"payload.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"payload","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"ok":{"title":"ok","value":{"message":"Orden enriquecida exitosamente.","orderDbId":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","orderId":"ord-2025-001","payload":{"orderId":"ord-2025-001","source":"pos","store":{"id":"store-br-01"},"order":{"products":[]}}}}},"exampleType":"examples"}},"exampleType":"examples"},"d4136b60-716d-4452-b116-df53dc1ec8dc":{"description":"Body ausente, validación (p. ej. sin orderId), o datos fiscales incompletos:\nsin NCM/catálogo para un `productId`, sin regla en la matriz de la tienda para el NCM, o sin bloque `price.totalPrice` (null/undefined). Importes 0 en `totalPrice` no son error.\n","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","description":"Detalle encadenado en errores 500 o 502.","uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Presente en 400 por datos fiscales: FISCAL_PRODUCTO_SIN_NCM, FISCAL_MATRIZ_SIN_NCM, FISCAL_PRECIO_AUSENTE (solo si falta el bloque `totalPrice`, no por importes en 0).\n","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"sinBody":{"title":"sinBody","value":{"message":"Body requerido."}},"sinOrderId":{"title":"sinOrderId","value":{"message":"No se encontro orderId en el payload."}},"fiscalProducto":{"title":"fiscalProducto","value":{"message":"No se encontró categoría fiscal (NCM) para el producto con productId=\"sku-123\".","code":"FISCAL_PRODUCTO_SIN_NCM"}},"fiscalMatriz":{"title":"fiscalMatriz","value":{"message":"No hay regla fiscal en la matriz de la tienda (store_id=21) para NCM=\"21069090\" (producto productId=\"sku-123\").","code":"FISCAL_MATRIZ_SIN_NCM"}},"fiscalPrecio":{"title":"fiscalPrecio","value":{"message":"Falta el bloque price.totalPrice para el producto productId=\"sku-123\".","code":"FISCAL_PRECIO_AUSENTE"}}},"exampleType":"examples"}},"exampleType":"examples"},"02f8cd6d-dcd0-4067-a9ce-b902778db46e":{"description":"Error al enriquecer o al persistir","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","description":"Detalle encadenado en errores 500 o 502.","uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Presente en 400 por datos fiscales: FISCAL_PRODUCTO_SIN_NCM, FISCAL_MATRIZ_SIN_NCM, FISCAL_PRECIO_AUSENTE (solo si falta el bloque `totalPrice`, no por importes en 0).\n","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"error":{"title":"error","value":{"message":"No se pudo enriquecer la orden.","error":"Error: ..."}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"52b7b3d9-ac60-468f-8a5d-b5cf21ad1ae8":{"bearerAuth":{"type":"http","scheme":"bearer","scopes":[]}}},"servers":{"88b44c8d-4119-442c-9f3f-2ef147a38bed":{"url":"https://api.artisn.desarrollo-redbrand.com/api"},"508ba195-a5da-4c42-955f-a4e1d9981353":{"url":"https://api.kfc-group.desarrollo-redbrand.com"},"b6cc3f75-0d67-4005-9014-120dd3991dde":{"url":"https://{apiId}.execute-api.{region}.amazonaws.com/{stage}","description":"API Gateway (PRIVATE; invocación típica vía VPC endpoint).","variables":{"apiId":{"default":"{api-id}","description":"ID del API REST desplegado."},"region":{"default":"us-east-1"},"stage":{"default":"dev","description":"Mismo valor que parámetro EnvironmentName del stack."}}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"trade","siteName":"Docs","title":"Enrich order with taxes - Docs","navMaps":{"firstHrefInVersion":{"English":{"href":"/api-reference/fiscal/post-enrich-order","matchLevel":0},"Español":{"href":"/espanol/api-reference/fiscal/post-enrich-order","matchLevel":1}},"firstHrefInLanguage":{}},"lastModified":"2026-03-26T19:30:49.171Z","originalFileLocation":"api-reference/fiscal/post-enrich-order.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Calcula impuestos sobre líneas principales (order.products[].price.totalPrice) y modificadores según reglas fiscales y guarda la orden en base de datos (upsert por orderId). El cuerpo puede ser OrderPayload en la raíz o envuelto en un objeto con propiedad payload. Requisitos: body no vacío; orderId presente en el payload para respuesta 200.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/trade/XdhoalqB5nCheMBg/_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/trade/XdhoalqB5nCheMBg/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/trade/XdhoalqB5nCheMBg/_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/trade/XdhoalqB5nCheMBg/_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/trade/XdhoalqB5nCheMBg/_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/trade/XdhoalqB5nCheMBg/_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/trade/XdhoalqB5nCheMBg/_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/trade/XdhoalqB5nCheMBg/_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/trade/XdhoalqB5nCheMBg/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Enrich order with taxes - Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Calcula impuestos sobre líneas principales (order.products[].price.totalPrice) y modificadores según reglas fiscales y guarda la orden en base de datos (upsert por orderId). El cuerpo puede ser OrderPayload en la raíz o envuelto en un objeto con propiedad payload. Requisitos: body no vacío; orderId presente en el payload para respuesta 200.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.x-mart.io/api-reference/fiscal/post-enrich-order\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://trade.mintlify.site/_mintlify/api/og/v2?division=Orders\u0026amp;title=Enrich+order+with+taxes\u0026amp;description=Calcula+impuestos+sobre+l%C3%ADneas+principales+%28%60order.products%5B%5D.price.totalPrice%60%29+y+modificadores+seg%C3%BAn+reglas+fiscales%0Ay+guarda+la+orden+en+base+de+datos+%28upser\u0026amp;theme=ac2561b2347515189b2505f1\u0026amp;signature=ea7079610f0de82cfd62a43706a385eff22b3b49ec1124bba5e93ad1a6e8beb5\">\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=\"Enrich order with taxes - Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Calcula impuestos sobre líneas principales (order.products[].price.totalPrice) y modificadores según reglas fiscales y guarda la orden en base de datos (upsert por orderId). El cuerpo puede ser OrderPayload en la raíz o envuelto en un objeto con propiedad payload. Requisitos: body no vacío; orderId presente en el payload para respuesta 200.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://trade.mintlify.site/_mintlify/api/og/v2?division=Orders\u0026amp;title=Enrich+order+with+taxes\u0026amp;description=Calcula+impuestos+sobre+l%C3%ADneas+principales+%28%60order.products%5B%5D.price.totalPrice%60%29+y+modificadores+seg%C3%BAn+reglas+fiscales%0Ay+guarda+la+orden+en+base+de+datos+%28upser\u0026amp;theme=ac2561b2347515189b2505f1\u0026amp;signature=ea7079610f0de82cfd62a43706a385eff22b3b49ec1124bba5e93ad1a6e8beb5\">\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/trade/XdhoalqB5nCheMBg/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF2E49\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.x-mart.io/api-reference/fiscal/post-enrich-order\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/fiscal/post-enrich-order.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.x-mart.io/#organization\",\"name\":\"Docs\",\"url\":\"https://docs.x-mart.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://s3.us-east-2.amazonaws.com/admin.artisncore.dev/products/xmart-logo.png\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.x-mart.io#website\",\"name\":\"Docs\",\"url\":\"https://docs.x-mart.io\",\"publisher\":{\"@id\":\"https://docs.x-mart.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.x-mart.io/api-reference/fiscal/post-enrich-order#webpage\",\"url\":\"https://docs.x-mart.io/api-reference/fiscal/post-enrich-order\",\"name\":\"Enrich order with taxes\",\"description\":\"Calcula impuestos sobre líneas principales (order.products[].price.totalPrice) y modificadores según reglas fiscales y guarda la orden en base de datos (upsert por orderId). El cuerpo puede ser OrderPayload en la raíz o envuelto en un objeto con propiedad payload. Requisitos: body no vacío; orderId presente en el payload para respuesta 200.\",\"dateModified\":\"2026-03-26T19:30:49.171Z\",\"isPartOf\":{\"@id\":\"https://docs.x-mart.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.x-mart.io/api-reference/fiscal/post-enrich-order#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.x-mart.io/api-reference/fiscal/post-enrich-order#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API-Reference\",\"item\":\"https://docs.x-mart.io/ingles/api-reference/authentication/login/post\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Enrich order with taxes\",\"item\":\"https://docs.x-mart.io/api-reference/fiscal/post-enrich-order\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.x-mart.io/api-reference/fiscal/post-enrich-order#apireference\",\"headline\":\"Enrich order with taxes\",\"name\":\"Enrich order with taxes\",\"description\":\"Calcula impuestos sobre líneas principales (order.products[].price.totalPrice) y modificadores según reglas fiscales y guarda la orden en base de datos (upsert por orderId). El cuerpo puede ser OrderPayload en la raíz o envuelto en un objeto con propiedad payload. Requisitos: body no vacío; orderId presente en el payload para respuesta 200.\",\"url\":\"https://docs.x-mart.io/api-reference/fiscal/post-enrich-order\",\"mainEntityOfPage\":{\"@id\":\"https://docs.x-mart.io/api-reference/fiscal/post-enrich-order#webpage\"},\"dateModified\":\"2026-03-26T19:30:49.171Z\",\"publisher\":{\"@id\":\"https://docs.x-mart.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.x-mart.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Docs","nav":{"global":{"anchors":[{"anchor":"Create an account","href":"https://app.x-mart.io/auth/signin","icon":"Key"},{"anchor":"Version","href":"https://docs.x-mart.io/version","icon":"newspaper"}]},"versions":[{"version":"English","anchors":[{"anchor":"Documentation","icon":"book-open","groups":[{"group":"Get Started","pages":[{"title":"Introduction","href":"/ingles/introduction"},{"title":"Our API","href":"/ingles/Our API"},{"title":"Quickstart","href":"/ingles/quickstart"},{"group":"Concepts","pages":[{"title":"Stores","icon":"store","href":"/ingles/Concepts/Stores"},{"title":"List","icon":"list","href":"/ingles/Concepts/list"},{"title":"Channels","icon":"Globe","href":"/ingles/Concepts/Channels"}]}]},{"group":"Guides","pages":[{"title":"Authentication","icon":"gear","href":"/ingles/essentials/auth"},{"title":"Store Integration Guide","icon":"store","href":"/ingles/essentials/stores integration Guide"},{"title":"Menu integration Guide","icon":"text-size","href":"/ingles/essentials/menu integration Guide"},{"title":"Order integration Guide","icon":"Link","href":"/ingles/essentials/Order integration Guide"}]},{"group":"API-Reference","pages":[{"group":"Auth","pages":[{"title":"Get Token","openapi":"POST /authentication/login","href":"/ingles/api-reference/authentication/login/post"}]},{"group":"Stores and Sales Channels","pages":[{"title":"Get stores by brand","openapi":"GET /v3/stores","href":"/api-reference/v3/stores/get"},{"title":"Create Stores and Sales Channels","openapi":"POST /v3/channels-stores","href":"/api-reference/v3/channels-stores/post"},{"title":"Get store by id","openapi":"GET /v3/stores/{storeId}","href":"/api-reference/v3/stores/getId"},{"title":"Change store status","openapi":"PUT /v3/stores/{storeId}","href":"/api-reference/v3/stores/put"}]},{"group":"Lists","pages":[{"title":"Get Synchronization Report","openapi":"GET /v3/lists/sync-summary/lists","href":"/api-reference/v3/lists/get"},{"title":"This endpoint allows registering or editing a list in the system","openapi":"PUT /v3/lists/{listId}","href":"/api-reference/v3/lists/put"}]},{"group":"Products","pages":[{"title":"This endpoint allows adding a list to the system","openapi":"POST /api/v3/products","href":"/api-reference/v3/products/post"},{"title":"This endpoint allows updating product information","openapi":"PUT /api/v3/products/{vendorId}","href":"/api-reference/v3/products/put"},{"title":"This endpoint allows registering or editing a list in the system","openapi":"PUT /api/v3/products/{update}","href":"/api-reference/v3/products/putpro"}]},{"group":"Injection Web Services","pages":[{"title":"New Order Webhook","openapi":"POST /domain-cliente/webhook/new-order","href":"/api-reference/injection/postorder"},{"title":"Get Order","openapi":"GET /order/{orderId}","href":"/api-reference/injection/get"}]},{"group":"Order Fulfillment","pages":[{"title":"Registers tracking information for a specific order","openapi":"POST /api/order/tracking","href":"/api-reference/fulfillment/posttrack"},{"title":"Orders - Status Change","openapi":"POST /api/order/status","href":"/api-reference/fulfillment/poststatus"},{"title":"Pickup Orders - Dispatched","openapi":"POST /api/order/dispatched","href":"/api-reference/fulfillment/postdispatched"},{"title":"Orders - Transfer","openapi":"PUT /api/order/transfer","href":"/api-reference/fulfillment/puttransfer"}]},{"group":"Switch Transactional","pages":[{"title":"Orders - Payment Information","openapi":"GET /api/order/infoPayments","description":"Oauth authentication with client credentials","href":"/api-reference/fulfillment/getpay"}]},{"group":"Fiscal Engine","pages":[{"group":"Orders","pages":[{"title":"Enrich order with taxes","openapi":"api-reference/openapi.json POST /enrich-order","href":"/api-reference/fiscal/post-enrich-order"},{"title":"Enrich, persist, and notify via webhook","openapi":"api-reference/openapi.json POST /enrich-order-forward","description":"Mismo cuerpo que `POST /enrich-order`. Tras enriquecer y persistir, envía un POST JSON al webhook\n(`ORDER_WEBHOOK_URL`) con **únicamente el payload enriquecido** (misma forma que el campo `payload`\nde la respuesta 200 de `/enrich-order`).\nLa respuesta HTTP de **esta** API solo indica si el flujo y el webhook respondieron bien; no devuelve la orden.\n","href":"/api-reference/fiscal/post-enrich-order-forward"},{"title":"List persisted orders (paginated)","openapi":"api-reference/openapi.json GET /admin/orders","href":"/api-reference/fiscal/get-admin-orders"}]},{"group":"Admin","pages":[{"title":"List fiscal_groups","openapi":"api-reference/openapi.json GET /admin/fiscal-groups","href":"/api-reference/fiscal/get-admin-fiscal-groups"},{"title":"Create fiscal_group","openapi":"api-reference/openapi.json POST /admin/fiscal-groups","href":"/api-reference/fiscal/post-admin-fiscal-groups"},{"title":"Get fiscal_group by UUID","openapi":"api-reference/openapi.json GET /admin/fiscal-groups/{id}","href":"/api-reference/fiscal/get-admin-fiscal-groups-id"},{"title":"Update fiscal_group (partial)","openapi":"api-reference/openapi.json PUT /admin/fiscal-groups/{id}","href":"/api-reference/fiscal/put-admin-fiscal-groups-id"},{"title":"Delete fiscal_group","openapi":"api-reference/openapi.json DELETE /admin/fiscal-groups/{id}","href":"/api-reference/fiscal/delete-admin-fiscal-groups-id"},{"title":"List product_fiscal_category","openapi":"api-reference/openapi.json GET /admin/product-fiscal-categories","href":"/api-reference/fiscal/get-admin-product-fiscal-categories"},{"title":"Create product fiscal category","openapi":"api-reference/openapi.json POST /admin/product-fiscal-categories","href":"/api-reference/fiscal/post-admin-product-fiscal-categories"},{"title":"Get by productId (text)","openapi":"api-reference/openapi.json GET /admin/product-fiscal-categories/{productId}","href":"/api-reference/fiscal/get-admin-product-fiscal-categories-productid"},{"title":"Update category (productId cannot be sent in body)","openapi":"api-reference/openapi.json PUT /admin/product-fiscal-categories/{productId}","href":"/api-reference/fiscal/put-admin-product-fiscal-categories-productid"},{"title":"Delete category by productId","openapi":"api-reference/openapi.json DELETE /admin/product-fiscal-categories/{productId}","href":"/api-reference/fiscal/delete-admin-product-fiscal-categories-productid"}]}]}]}]}]},{"version":"Español","pages":[{"title":"Español","href":"/espanol/api-reference/fiscal/post-enrich-order"}]}]},"basePath":"","title":"Enrich order with taxes - Docs","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-i2a3QZ8E.js","utils-ChLwp8m0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DRktVTDc.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CA2pEs4T.js","snippetPresets-ClQ6XrKD.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Ct_Lv36y.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Cn2PYw9e.js","shallow-rkyymjXQ.js","getApiPlaygroundDisplay-BB9vkXtE.js","CodeSnippet-Bm5RU7m1.js","CodeSnippets-BgU9Deuz.js","Page-BUDYNlhG.js","getPastedJson-BD-6NNum.js","icon-8Z6tud2e.js","MethodPill-Tuzr4g3V.js","DuplicateIcon-0ceWFYhN.js","createIcon-FBXow_ST.js","DynamicMarkdown-CD8713Yy.js","SectionHeading-7zgzQbH-.js","axios-vUo_bRtp.js","Markdown-D7Ofw1oz.js","clsx-eKJ4rcii.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CwjSCXIK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-9EK5IAXV.js"]}