{"componentChunkName":"component---src-templates-article-template-tsx","path":"/co/en/card-present-payments/kushki-one/authentication","result":{"data":{"article":{"title":"Autenticación y Cifrado de Requests","subtitle":null,"fullWidth":null,"hero":null,"heroTextColor":null,"heroImg":null,"content":[{"body":{"childMdx":{"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {};\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\nvar Aside = makeShortcode(\"Aside\");\nvar NextStep = makeShortcode(\"NextStep\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Aside, {\n    type: \"warning\",\n    mdxType: \"Aside\"\n  }, mdx(\"p\", null, \"This mechanism applies \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"exclusively to semi-integrated mode\"), \". If your integration uses the native SDK or a local network topology without encryption enabled, refer to the \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/kushki-one/kushki-one-getting-started#communication-security\"\n  }, \"Communication Security\"), \" section.\")), mdx(Aside, {\n    title: \"\\uD83D\\uDEA7 Early Release \\u2014 Beta\",\n    type: \"danger\",\n    mdxType: \"Aside\"\n  }, mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"This product is in early access\"), \". Parameters, response structures, and behaviors may change without notice. \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Do not\"), \" use this version in production without coordinating with the Kushki integrations team first.\")), mdx(\"p\", null, \"When \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"encrypted_http_communication\"), \" is enabled on your terminal, all requests to Kushki ONE Connect must be \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"signed and encrypted\"), \". The original payload never travels in plain text.\"), mdx(\"p\", null, \"The Kushki team activates this setting during onboarding. Confirm with your technical contact whether it applies to your integration before implementing this flow.\"), mdx(\"h2\", {\n    \"id\": \"required-variables\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#required-variables\",\n    \"aria-label\": \"required variables permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Required variables\"), mdx(\"p\", null, \"Make sure you have these four variables available in your client:\"), mdx(\"table\", null, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Variable\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Description\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"businessCode\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Private key that authenticates your merchant account\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"terminalSerial\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Serial number of the SmartPOS terminal\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"timestamp\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Unix timestamp in seconds (UTC)\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"requestData\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Original request payload\")))), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"general-flow\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#general-flow\",\n    \"aria-label\": \"general flow permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"General flow\"), mdx(\"p\", null, \"Each request goes through two \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"independent\"), \" processes that start from the same \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"requestData\"), \". One produces the signature and the other produces the encrypted payload. Both are sent together in the final request.\"), mdx(\"p\", null, mdx(\"span\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"maxWidth\": \"1200px\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\"\n    }\n  }, \"\\n        \", mdx(\"span\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"45.294117647058826%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAASCAMAAAAewWyUAAACrFBMVEX////c3eHP0dbR09jQ0tfh4uX4+fleaYMAAEQAAE8ANWc5TnQyS3I/VHdEVngALmQAAEB5gJT5+fpsdYwAAFUAG10nQ21IWXo/U3ZBVHZJWXomQWwAAFKCiZvr7O7j5Ofk5ejd3uLg4uXk5eft7vD+/v/9/f7+/v78/P38/f76+/z9/v/9/v709vrr7/b6+/34+fv5+vz8/f39/f34+fr+//7u+fXu+PXw+fbs+PT4/Pvx9//w9//w9v7x+P/r8/zt9P30+f/s//rn//no//nn/vjo//rk/Pfn/vnr/vn+///7/f/s9f/u9//m7vjZ4u3f6fTk7ffa4+7b5O/a5O/c5fDY4e3o8fvu9v/u9f/8//7i//je//jg//nX9/HO7enM7OjL6ufV9fDf//jh//j7//7f6fbY5PPb5vXj7fnc5/Xa5fTd6Pbn8Pvt9v/f//nX+vLJ9OrM9evV+vLv9v7u9f7u9f3z+P/s/vrl/vfk/ff//f/u7/Dq6+3r6+3r7O3i5Ofm6Orq6u309Pbx/fjq+/Ts+/Xs/PXm+PHl9/Hw/Pf09fZga4UAJGANNWYbO2hLWnpSYH1MXHtPXnw8T3IPNmYLNWYACVqcoa6G7cgA5rAN57MS57MU57ME3a0A3a4O57N67MT7//3z8/REVHYAAFAAAFgAElw8VX1KYIU/V39LYIVKYIYsSHQAAEeOlKP9//5268MA5asA5q8A460A4KwA464A1aYA1KYA4awA5axl6r/6/v319fZlb4gAMmUnQGsoQmwrTX0rUIMqTH0qTX8sUYMsSXYpQWsmQGudoq6J7ckA5rEm57Qp4rIs3K8t47Mt37Eu3rAr47IA5rJ87MXv8PHs7e/p6uzk5unl5+rl5+nk5eny/fjq+vTk9vDo+fPr+/T//v///P9av9x6AAABaUlEQVQYGY3Bu2oUUQCA4f/fPbMTdDeEBGMQvIKIl4AvYKNdLOwtooVInkCQaCFYCFaW2ohPYGVItpFAtJEUEsVbZ2VYNIZc1I07x5mJkVlB8Pv4X9JHRSAS61tUSVXDHd3UFaoCVU13dFNXqApUfTmgoPaSmNBHCkflPcfEN+RO+Jrc8chbTgGvyElhXHx52u9AzGiuQxPQzd0WngMCJ4c0xrpmmZnJU+CsmtWlF/gZG85AAA7ZB7hoAWMNtxoKBEq7Bt3WGe1QGl5vKbG2PPJ5gFwdaPBt48jS4TRJkhern8afwdL5d53V5YNJCIsbnbXNtQ9UTfC36Wn+kNwNH3FZzXjIFW8CtxXRjEhMrgECdy3duW5pCiYuqKhZJHRTJyEAY5buqT8YELjqb73Q66UKBGCfFQtngAe3LCF2UxeBGnBu7NLewujInieDX+eBmeG59lB7bna21Wq1W48nAfmnj8D9qf1s+wWAKGJvk1PpoQAAAABJRU5ErkJggg==')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }, \"\\n          \", mdx(\"picture\", {\n    parentName: \"span\"\n  }, \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"https://images.ctfassets.net/mmjbm94f6iyd/4HjxvS7zL3bwQHWkfdsWKN/e8633b9335d3a2d599289acdf5bf1751/kushki-one-en-flujo-firma-cifrado.png?w=340&fm=webp 340w\", \"https://images.ctfassets.net/mmjbm94f6iyd/4HjxvS7zL3bwQHWkfdsWKN/e8633b9335d3a2d599289acdf5bf1751/kushki-one-en-flujo-firma-cifrado.png?w=680&fm=webp 680w\", \"https://images.ctfassets.net/mmjbm94f6iyd/4HjxvS7zL3bwQHWkfdsWKN/e8633b9335d3a2d599289acdf5bf1751/kushki-one-en-flujo-firma-cifrado.png?w=1360&fm=webp 1360w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"type\": \"image/webp\"\n  }), \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"https://images.ctfassets.net/mmjbm94f6iyd/4HjxvS7zL3bwQHWkfdsWKN/e8633b9335d3a2d599289acdf5bf1751/kushki-one-en-flujo-firma-cifrado.png?w=340 340w\", \"https://images.ctfassets.net/mmjbm94f6iyd/4HjxvS7zL3bwQHWkfdsWKN/e8633b9335d3a2d599289acdf5bf1751/kushki-one-en-flujo-firma-cifrado.png?w=680 680w\", \"https://images.ctfassets.net/mmjbm94f6iyd/4HjxvS7zL3bwQHWkfdsWKN/e8633b9335d3a2d599289acdf5bf1751/kushki-one-en-flujo-firma-cifrado.png?w=1360 1360w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\"\n  }), \"\\n          \", mdx(\"img\", {\n    parentName: \"picture\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\",\n      \"boxShadow\": \"inset 0px 0px 0px 400px transparent\"\n    },\n    \"alt\": \"Flujo general EN\",\n    \"title\": \"\",\n    \"src\": \"https://images.ctfassets.net/mmjbm94f6iyd/4HjxvS7zL3bwQHWkfdsWKN/e8633b9335d3a2d599289acdf5bf1751/kushki-one-en-flujo-firma-cifrado.png\",\n    \"loading\": \"lazy\"\n  }), \"\\n        \"), \"\\n        \"), \"\\n      \")), mdx(Aside, {\n    type: \"warning\",\n    mdxType: \"Aside\"\n  }, mdx(\"p\", null, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"dataWithKey\"), \" \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"is never encrypted or sent\"), \". It is only used internally to generate the signature. Including the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"key\"), \" field in the encrypted payload will cause an authentication error.\")), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"key-derivation-chain\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#key-derivation-chain\",\n    \"aria-label\": \"key derivation chain permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Key derivation chain\"), mdx(\"p\", null, \"Before implementing the steps, review how your inputs relate to the final keys. The three input variables (\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"businessCode\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"terminalSerial\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"timestamp\"), \") produce exactly two outputs: \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"aesKey\"), \" for encryption and \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"encodedKeyTimestamp\"), \" for signing.\"), mdx(\"p\", null, mdx(\"span\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"maxWidth\": \"1200px\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\"\n    }\n  }, \"\\n        \", mdx(\"span\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"71.32352941176471%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAdCAIAAABXK7kkAAAFIElEQVRIx61XS4xURRQ951a9ft09PdAzfDR+AIGN3wTRxKgxujJxoXsXLtwbN+zcmrjQRBIXLDQmbNxo4sKlUUGNIRJAE8S/8YcgCjP0fN6v6l4X7/VMdw+Mg1i7flV1z73n3E81zQzXsUJUVXVOnMg1XfQAjp88/cuvfyTeg4CBBEAzrUK86469u3fd+sGRY3leiBMCURtXVSPJRx7av23r7ITRLMuPfHI8ywsnAg6/GtQMsEceum/LbN8DeOud9w++9BpmHt67byaoDaJubfvv3j8LfHTojUMz/c1PPP4q8Af279s+3ZpybHu5mIULH38DnD35xdtrgecvD554/CDwE7Dr5sd2THmJwI/H/sbCt8DiiVPvbJnt08xOnPrq19/OJYkXYVSDQYSqWoV45+17du+65cOjn+d57pwDENWcEEBUheHhB+/dMtufAM7z4uinx7OsECdCVlF9zVZUoLnCCY2jwXHMigKC/22FaN6x0RjAIFOYeTEDWskQmgjRijL2On7VPULY7Asn7erw2PAICGRFaCVeBKrgcMMDKAOCCYn6VlWuGirLEKJGQmS43SQKAHjBdLr6sYpYKFAfrKoAmBnMLKq2U3EiBgixqQ3WwGqNoTheWWa2nJdVCC7xCd1EcGaIOhmuGkCYIS/KEFU1qhpJEZemAkM0mIEEzUwNS4UBIAygGxG5dpkkYGuBvWPqx4DzyhqmWZeciZBErZQZnKC+4hupTGFGKslOkozFoUYaDCMqA2RWBFNRZc187Wzbg8RqwjrI2kSojdSH1MCRjFibMovF+DWiKIMIE+9Gy4JELwU32LmumJ9jNaAoI0Z7oka7dHnRe7d50/SouxrRSeA3UH+rEdcc1j9riVYsro0YQIhRSBlv0QR66VWZuwLwQhbNDNYkYcs7cUwTtx4NITon3AjIOsBBQcBdnaIyoIxjWpZVFKF3Mqpx6rGut2s0/ldV8oBKRzg0DBYz532v27bxtnVtwLam1U2sxDWZ3yxBr9smKSMVLtwo6ojGyzGaWazaadIZbQrriQw44D9KvKJxBHhlwr8vLs7FzFFGc5dkXlZOJBnXGEA0vcH3drb6G9P4KhRF2KGFM68W58FhdATKiIUcIg3LUylabki4wcLLndsOzN6/IeB1lgCgYGVIlBGVgR5k0+0CAEPLjY8uXBcwgb4koPcraUSQcG2XA17ogbaapyNdBDJYBjcl/lo6lwEwEVo9GACSqjYXs1xDq3681FwaSORl5Z1450JQhRkgJAkjpn3aY2tDEecVAKQJ6yhjNABVCFGtjaTLVtf51QRWACik8iJOXG4hRAPgnThHJ81AsnVTnma2uLg0WMqdiHc0sxq8qmJZhXaaTMzmJPEz/c11W6+bupldmrusUWscs2YqFmWVpolfaeZkvTvV7Xa7bQ/g9cPvHnjz6N1bOvW9qHbr9ukbt21KEn/hr/mfzw1ECNCAPxfLpx7Y/cqLz3U77ZVeMz8/ePb5V77+fb7Xctv63a0z3cS7xLusqGp3RRCC/nR2bqmIZ84vH37hqWeeftID+PPCvJ78+kv0AQfcCITT96R7dhSC7PtzyziRAQZcAiogOznT1hgnxtR77/2CwQUgAWbw6C0ziSNsEC0sFex1OtTl5Ryf/QxUwN8X5x5rqD7zzQ/nzv9VP5spraaBGgxGNi8X0wowVZ3uTe3fd+foNKyq6viJ00VRUggQ9MOCMMBABzNYBCIMMcadO27au2cnr/O/039e/wDVc6917yefNgAAAABJRU5ErkJggg==')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }, \"\\n          \", mdx(\"picture\", {\n    parentName: \"span\"\n  }, \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"https://images.ctfassets.net/mmjbm94f6iyd/1iKF4V2FwoErVYF1dZ1nbW/35ffb1a5f78c9d7ff0bae30fa721c833/kushki-one-en-cadena-derivacion.png?w=340&fm=webp 340w\", \"https://images.ctfassets.net/mmjbm94f6iyd/1iKF4V2FwoErVYF1dZ1nbW/35ffb1a5f78c9d7ff0bae30fa721c833/kushki-one-en-cadena-derivacion.png?w=680&fm=webp 680w\", \"https://images.ctfassets.net/mmjbm94f6iyd/1iKF4V2FwoErVYF1dZ1nbW/35ffb1a5f78c9d7ff0bae30fa721c833/kushki-one-en-cadena-derivacion.png?w=1360&fm=webp 1360w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"type\": \"image/webp\"\n  }), \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"https://images.ctfassets.net/mmjbm94f6iyd/1iKF4V2FwoErVYF1dZ1nbW/35ffb1a5f78c9d7ff0bae30fa721c833/kushki-one-en-cadena-derivacion.png?w=340 340w\", \"https://images.ctfassets.net/mmjbm94f6iyd/1iKF4V2FwoErVYF1dZ1nbW/35ffb1a5f78c9d7ff0bae30fa721c833/kushki-one-en-cadena-derivacion.png?w=680 680w\", \"https://images.ctfassets.net/mmjbm94f6iyd/1iKF4V2FwoErVYF1dZ1nbW/35ffb1a5f78c9d7ff0bae30fa721c833/kushki-one-en-cadena-derivacion.png?w=1360 1360w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\"\n  }), \"\\n          \", mdx(\"img\", {\n    parentName: \"picture\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\",\n      \"boxShadow\": \"inset 0px 0px 0px 400px transparent\"\n    },\n    \"alt\": \"cadena de derivación EN\",\n    \"title\": \"\",\n    \"src\": \"https://images.ctfassets.net/mmjbm94f6iyd/1iKF4V2FwoErVYF1dZ1nbW/35ffb1a5f78c9d7ff0bae30fa721c833/kushki-one-en-cadena-derivacion.png\",\n    \"loading\": \"lazy\"\n  }), \"\\n        \"), \"\\n        \"), \"\\n      \")), mdx(\"p\", null, \"The \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"password\"), \" is the central value in this chain. It changes every minute because it depends on \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"formattedDate\"), \", which causes any signed request to expire automatically.\"), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"step-1--generate-the-timestamp\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#step-1--generate-the-timestamp\",\n    \"aria-label\": \"step 1  generate the timestamp permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Step 1 \\u2014 Generate the timestamp\"), mdx(\"p\", null, \"Store this value in a variable at the start of the flow. You will reuse it in steps 3, 4, and 6.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-js\"\n  }, \"const timestamp = Math.floor(Date.now() / 1000);\\n// Example: 1710000000\\n\")), mdx(Aside, {\n    type: \"tip\",\n    mdxType: \"Aside\"\n  }, mdx(\"p\", null, \"Never call \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Date.now()\"), \" more than once per request. A \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"timestamp\"), \" that differs between the signature, the encryption, and the header is the most silent cause of \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"UNAUTHORIZED\"), \" errors.\")), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"step-2--generate-formatteddate-utc\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#step-2--generate-formatteddate-utc\",\n    \"aria-label\": \"step 2  generate formatteddate utc permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Step 2 \\u2014 Generate \", mdx(\"inlineCode\", {\n    parentName: \"h2\"\n  }, \"formattedDate\"), \" (UTC)\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-js\"\n  }, \"function unixTimestampToFormattedDate(unixTimestamp) {\\n  const date = new Date(unixTimestamp * 1000);\\n  const pad = (n) => String(n).padStart(2, '0');\\n  return [\\n    date.getUTCFullYear(),\\n    pad(date.getUTCMonth() + 1),\\n    pad(date.getUTCDate()),\\n    pad(date.getUTCHours()),\\n    pad(date.getUTCMinutes())\\n  ].join(':');\\n}\\n// Example output: \\\"2026:03:24:21:55\\\"\\n\")), mdx(Aside, {\n    type: \"warning\",\n    mdxType: \"Aside\"\n  }, mdx(\"p\", null, \"Always calculate \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"formattedDate\"), \" in \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"UTC\"), \", not in local time. A timezone offset is one of the most common causes of signature errors.\")), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"step-3--generate-the-temporary-password\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#step-3--generate-the-temporary-password\",\n    \"aria-label\": \"step 3  generate the temporary password permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Step 3 \\u2014 Generate the temporary \", mdx(\"inlineCode\", {\n    parentName: \"h2\"\n  }, \"password\")), mdx(\"p\", null, \"This value changes every minute because it depends on \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"formattedDate\"), \".\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-js\"\n  }, \"const token    = businessCode + terminalSerial;\\nconst base     = token + formattedDate;\\nconst key      = base.padEnd(32, '0');\\nconst password = MD5(key); // 32-character hexadecimal string\\n\")), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"step-4--build-datawithkey-for-signing-only\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#step-4--build-datawithkey-for-signing-only\",\n    \"aria-label\": \"step 4  build datawithkey for signing only permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Step 4 \\u2014 Build \", mdx(\"inlineCode\", {\n    parentName: \"h2\"\n  }, \"dataWithKey\"), \" (for signing only)\"), mdx(\"p\", null, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"dataWithKey\"), \" is a copy of \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"requestData\"), \" with the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"key\"), \" field added. \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"It is not encrypted or sent.\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-js\"\n  }, \"const encodedKeyTimestamp = Base64(password + timestamp);\\n\\nconst dataWithKey = {\\n  ...requestData,\\n  key: encodedKeyTimestamp\\n};\\n\")), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"step-5--generate-the-signature-authorization\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#step-5--generate-the-signature-authorization\",\n    \"aria-label\": \"step 5  generate the signature authorization permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Step 5 \\u2014 Generate the signature (\", mdx(\"inlineCode\", {\n    parentName: \"h2\"\n  }, \"Authorization\"), \")\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-js\"\n  }, \"const json     = JSON.stringify(dataWithKey);\\nconst dataJson = Base64(json);\\nconst hash     = SHA512(dataJson); // hex string\\n\")), mdx(\"p\", null, \"Resulting headers:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"Authorization: Basic <hash>\\ntimestamp: <timestamp>\\n\")), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"step-6--encrypt-the-payload-aes-256-cbc\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#step-6--encrypt-the-payload-aes-256-cbc\",\n    \"aria-label\": \"step 6  encrypt the payload aes 256 cbc permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Step 6 \\u2014 Encrypt the payload (\", mdx(\"inlineCode\", {\n    parentName: \"h2\"\n  }, \"AES-256-CBC\"), \")\"), mdx(\"p\", null, \"Only \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"requestData\"), \" is encrypted (without \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"key\"), \").\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-js\"\n  }, \"const aesKey = (timestamp + \\\"___\\\" + password).substring(0, 32);\\n\\nconst iv        = randomBytes(16);                                  // PKCS7 padding\\nconst encrypted = AES_CBC(JSON.stringify(requestData), aesKey, iv);\\n\\nconst data = iv.hex + ':' + encrypted.hex;\\n// Example: \\\"a3f1...b2c4:9e0d...7f21\\\"\\n\")), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"step-7--assemble-the-final-request\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#step-7--assemble-the-final-request\",\n    \"aria-label\": \"step 7  assemble the final request permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Step 7 \\u2014 Assemble the final request\"), mdx(\"p\", null, \"The request structure varies depending on the HTTP method. In both cases the headers are the same; what changes is how the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"data\"), \" field is delivered.\"), mdx(\"p\", null, mdx(\"span\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"maxWidth\": \"1200px\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\"\n    }\n  }, \"\\n        \", mdx(\"span\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"40.88235294117647%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAQCAIAAADrtar6AAADsklEQVQYGZ3BTYuVZRzH8e//uq77Pg8z6oyMzgghTtIDkYvAoCAwWlbSqkXbegu9hQh6BUGbaBkVRhC1s02UlqtATGU0UZlxZjxnzpyn++H/65xxRjMqpc/HJI3HxWhchGBMCCH+gZkxJVy+b3YmhACUVTUYDEMIPEzCAONv3L3dbmUpJeCTT7/68LMfjs63hA7MNp9YPFAUVac3PHxwX1l7rzdstxtyv7HarWrVruud0ecfvXfqlZPAN9+effeDL5491Apm7JBI0Y4emXf3m2vdspIZ97jr4vrg4/ffeuft1xNwZ6N768f1W8szSPmh5mvBeoPi8p3+iXFdSxvd4Uwrr6v6/KW7lKISt3u9Xp8dnW6ve27152MHiCBw4dAMr2Zpqz++cKVDIYxdlbi5tbG5BZikm7fXOlt9m6KRZ2YGAgOMKTFlTAncfX5u/8G5/cDa+uadza5hQCPPYgwgxC5jl5gQuPvsTHvx0EGTVFZ1rz/ATFIIYabVzFIcF/VwXDbyVNZu0G5mIRgTQkwomgGVq9cfuLuZIbXbrUaWysr7w6KRp6p2iXYzi9HYIQGKZglwiQnJIMUgqapql0QYFXIRAz7FPRIhWIwGeO1IBkgxRoOqql0SYVTKHTPca8nYYxBTTOxxCTBsQmBGiqFyBbMQTJKZMSExZewJIbgLFMOUJMOyFGvJzIKBGXvErsSE0I4Y4mA4wmjkmYtRqRhNUl0JrJUzZcZfWLCYUhQxhtp9VJSNPIvBWhEDDITYJQEKGGCSispr9xBCikFggIEQGFMC4wFJSCkGYH3j7pdnvi6LMqWkCZRiNDMmJB7m8hji6TffWDy8YJI2O93LV1eyFPMs41EkjykdX15u5Blw7fqN5WPPwTYPSVDxLy79fuXpp44nYGXl2ksnX+CxPf/iqbPfn2nkc4AFWzzx8qot7GuW/blNb0bKmrJmrgVG7bY5sIvrmDlidYuUhxCABJgx9czpMDvr4xWOZGSJoqZ25tsIyprtERfWKJzR1UaWGbsMbNzhj9u+2GjfrUmBWrhobONionCyhFFLQzKaEWMicd+1FZ/LGW+znUiRosZFs4uEw6jGIRoYxn2CreGI0Up/fQkLCIwpB2MqQDAmJOiz3ZSYSIC7mBj/xipTHf7baDRmj6TBjTXo07/K45EcSMCTy8s/nfvFdrBHorM1aOQxBHMpxDCwsllFIEtZiJm7QrCFhYXzv37n7mbGo0gys6WlJcAk8S8ExgMCY1dZeQwWgvF//QkPpxn0RtHbgAAAAABJRU5ErkJggg==')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }, \"\\n          \", mdx(\"picture\", {\n    parentName: \"span\"\n  }, \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"https://images.ctfassets.net/mmjbm94f6iyd/4iHedADDxF3QdMIcQMgzwq/12adc5f3b6f8c7cb26d92c804be81d93/kushki-one-en-anatomia-request.png?w=340&fm=webp 340w\", \"https://images.ctfassets.net/mmjbm94f6iyd/4iHedADDxF3QdMIcQMgzwq/12adc5f3b6f8c7cb26d92c804be81d93/kushki-one-en-anatomia-request.png?w=680&fm=webp 680w\", \"https://images.ctfassets.net/mmjbm94f6iyd/4iHedADDxF3QdMIcQMgzwq/12adc5f3b6f8c7cb26d92c804be81d93/kushki-one-en-anatomia-request.png?w=1360&fm=webp 1360w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"type\": \"image/webp\"\n  }), \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"https://images.ctfassets.net/mmjbm94f6iyd/4iHedADDxF3QdMIcQMgzwq/12adc5f3b6f8c7cb26d92c804be81d93/kushki-one-en-anatomia-request.png?w=340 340w\", \"https://images.ctfassets.net/mmjbm94f6iyd/4iHedADDxF3QdMIcQMgzwq/12adc5f3b6f8c7cb26d92c804be81d93/kushki-one-en-anatomia-request.png?w=680 680w\", \"https://images.ctfassets.net/mmjbm94f6iyd/4iHedADDxF3QdMIcQMgzwq/12adc5f3b6f8c7cb26d92c804be81d93/kushki-one-en-anatomia-request.png?w=1360 1360w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\"\n  }), \"\\n          \", mdx(\"img\", {\n    parentName: \"picture\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\",\n      \"boxShadow\": \"inset 0px 0px 0px 400px transparent\"\n    },\n    \"alt\": \"anatomía del request EN\",\n    \"title\": \"\",\n    \"src\": \"https://images.ctfassets.net/mmjbm94f6iyd/4iHedADDxF3QdMIcQMgzwq/12adc5f3b6f8c7cb26d92c804be81d93/kushki-one-en-anatomia-request.png\",\n    \"loading\": \"lazy\"\n  }), \"\\n        \"), \"\\n        \"), \"\\n      \")), mdx(\"h3\", {\n    \"id\": \"post--patch--put\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#post--patch--put\",\n    \"aria-label\": \"post  patch  put permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"POST \\xB7 PATCH \\xB7 PUT\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Headers\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"Authorization: Basic <hash>\\ntimestamp:     <timestamp>\\nContent-Type:  application/json\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Body\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-json\"\n  }, \"{\\n  \\\"data\\\": \\\"<iv_hex>:<ciphertext_hex>\\\"\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"get\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#get\",\n    \"aria-label\": \"get permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"GET\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Headers\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"Authorization: Basic <hash>\\ntimestamp:     <timestamp>\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Query param\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"GET /endpoint?data=<iv_hex>:<ciphertext_hex>\\n\")), mdx(\"p\", null, \"Remove all other query params from the original request before sending it.\"), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"authentication-errors\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#authentication-errors\",\n    \"aria-label\": \"authentication errors permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Authentication errors\"), mdx(\"p\", null, \"If the signature is invalid, you will receive:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-json\"\n  }, \"{\\n  \\\"type\\\": \\\"AUTH\\\",\\n  \\\"code\\\": \\\"UNAUTHORIZED\\\",\\n  \\\"message\\\": \\\"Authorization signature is invalid\\\"\\n}\\n\")), mdx(\"p\", null, \"The three most common causes each have a direct fix. Use this decision tree to identify which one applies to your case:\"), mdx(\"p\", null, mdx(\"span\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"maxWidth\": \"1200px\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\"\n    }\n  }, \"\\n        \", mdx(\"span\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"61.76470588235294%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAZCAIAAADMuvsyAAADbklEQVQYGZ3BO45dRRQF0L3PqVu338+fBgmZT4SFBA4RARESDAICcgIiJkHIPAiYABNAYJEYWQzAIRaN3e9zb92qs+lusJGM/Pxer0VJuJY/Hv+Zc755Y4lrSTjAz/cf/PLrw65LZpRAguST821ym896SbgiYZrqp598dO/9u3iVhAP8dP+3b77+Fnj7s88/zG5TbSezPOtc0sNHZ6vsqfP1pjz48Xfg0fc/fHfv/bt4lYQDvPfuO19+9cVink/6DCAizBgBEndeW5kRgKSPP7iz2ZW33nwDB6AkHKC1RhJXCIAYxupuXTIJz0lydxwg4UKZ8A/iX8J/SHTJ3fFMAFNDQWaDDNlBHC1pLHyyjojNdgAJIKQuebQwt/lJL7KedNZ1yv3UcPZ0u9kVdwPQWtTWCJzeWq3mOTvccKAECYDRok4RQXNFlAkk3XqQimjm8jRNKkFYCo2qVULukru1iIANFRdmhgNRtWq9I9RqjZAZdQEwGo1mJjMu5yBxZWoYq6aGEEgakR05IRmOQkm4lqFERTPTPGUcL+FaBDTB6L0T15JwjNpiM0yloooSIiK5GSI7VovejVEKQrYbAbQWkkjiiiSSbiaCN5YJB1uPODsf15udGyWRaC1Sl6ZSa8TprRu3l71HxFBm4yTFerMrUzUjQUER6nO3WsxohtYoCYcJYTfW7VhrMIRQGE0SFNm5nHezPhHQVHX2ZFhvaEZSEbhAEogQiX6xsNOblITjTQ3DhEDkxFkiXtAahJci4J5wLZ1DUasiuQEJL3DHqyRIGEZcIv5PghG5AwkSQEi1YawozYwuEQnJQOIoSePE822Z6nY3uhtJM0ao1irh5mpO95ITu065347t8dk5aTRGawJIGg2K12+vZtlyIg5jhCBEKaglxlGltGGIcWSrmEqbKkLss5/02115er5tIZBu5skVMponbxFnf52PpeJgVGvaDmpNACSQuEJAEs0sOeYzPBOB0lAaagBQMvYJncOIo1ASrmUsrarBtUg9jkdJeDkBj9tYKeI5krhQWyNoxgsAJOGKgF489R57JewVii0jzIlLwzBsdwNAd4sWADz5NE0kl8tF7joAAlrELclIvFzCXiQ9oGgASPTJ02IGgKQkgiBal8zoRkYTLrlAI/aiJOwVkiBcIok9JAACQNJA7PU3wcAKREZXyl0AAAAASUVORK5CYII=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }, \"\\n          \", mdx(\"picture\", {\n    parentName: \"span\"\n  }, \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"https://images.ctfassets.net/mmjbm94f6iyd/4eSSO7Zj8SpMljHzftN9Xe/f21031b7e7385520ace4aa43f268fcdb/kushki-one-en-diagnostico-errores.png?w=340&fm=webp 340w\", \"https://images.ctfassets.net/mmjbm94f6iyd/4eSSO7Zj8SpMljHzftN9Xe/f21031b7e7385520ace4aa43f268fcdb/kushki-one-en-diagnostico-errores.png?w=680&fm=webp 680w\", \"https://images.ctfassets.net/mmjbm94f6iyd/4eSSO7Zj8SpMljHzftN9Xe/f21031b7e7385520ace4aa43f268fcdb/kushki-one-en-diagnostico-errores.png?w=1360&fm=webp 1360w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"type\": \"image/webp\"\n  }), \"\\n          \", mdx(\"source\", {\n    parentName: \"picture\",\n    \"srcSet\": [\"https://images.ctfassets.net/mmjbm94f6iyd/4eSSO7Zj8SpMljHzftN9Xe/f21031b7e7385520ace4aa43f268fcdb/kushki-one-en-diagnostico-errores.png?w=340 340w\", \"https://images.ctfassets.net/mmjbm94f6iyd/4eSSO7Zj8SpMljHzftN9Xe/f21031b7e7385520ace4aa43f268fcdb/kushki-one-en-diagnostico-errores.png?w=680 680w\", \"https://images.ctfassets.net/mmjbm94f6iyd/4eSSO7Zj8SpMljHzftN9Xe/f21031b7e7385520ace4aa43f268fcdb/kushki-one-en-diagnostico-errores.png?w=1360 1360w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\"\n  }), \"\\n          \", mdx(\"img\", {\n    parentName: \"picture\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\",\n      \"boxShadow\": \"inset 0px 0px 0px 400px transparent\"\n    },\n    \"alt\": \"diagnostico de errores EN\",\n    \"title\": \"\",\n    \"src\": \"https://images.ctfassets.net/mmjbm94f6iyd/4eSSO7Zj8SpMljHzftN9Xe/f21031b7e7385520ace4aa43f268fcdb/kushki-one-en-diagnostico-errores.png\",\n    \"loading\": \"lazy\"\n  }), \"\\n        \"), \"\\n        \"), \"\\n      \")), mdx(Aside, {\n    type: \"tip\",\n    mdxType: \"Aside\"\n  }, mdx(\"p\", null, \"Store the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"timestamp\"), \" in a variable at the start of the flow and reuse it across all three steps. Never call \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Date.now()\"), \" more than once per request.\")), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"postman-reference-script\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#postman-reference-script\",\n    \"aria-label\": \"postman reference script permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Postman reference script\"), mdx(\"p\", null, \"Configure this Pre-request Script at the collection level so the signing and encryption flow runs automatically on every request.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Required variables:\")), mdx(\"table\", null, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Variable\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Value\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"businessCode\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Your merchant private key\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"terminalSerial\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Your terminal serial number\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"encrypted_http_communication\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"true\"), \" to enable the flow\")))), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-js\"\n  }, \"function getCurrentTimestamp() {\\n  return Math.floor(new Date().getTime() / 1000);\\n}\\n\\nfunction unixTimestampToFormattedDate(ts) {\\n  const d = new Date(ts * 1000);\\n  const p = (n) => String(n).padStart(2, '0');\\n  return `${d.getUTCFullYear()}:${p(d.getUTCMonth()+1)}:${p(d.getUTCDate())}:${p(d.getUTCHours())}:${p(d.getUTCMinutes())}`;\\n}\\n\\nfunction generateTokenPassword(token, ts) {\\n  const CryptoJS = require('crypto-js');\\n  const key = (token + unixTimestampToFormattedDate(ts)).padEnd(32, '0');\\n  return CryptoJS.MD5(key).toString();\\n}\\n\\nfunction encryptData(text, ts, terminalSerial) {\\n  const CryptoJS = require('crypto-js');\\n  const password = generateTokenPassword(pm.variables.get(\\\"businessCode\\\") + terminalSerial, ts);\\n  const key      = (ts + \\\"___\\\" + password).substring(0, 32);\\n  const iv       = CryptoJS.lib.WordArray.random(16);\\n  const enc      = CryptoJS.AES.encrypt(text, CryptoJS.enc.Utf8.parse(key), {\\n    iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7\\n  });\\n  return iv.toString(CryptoJS.enc.Hex) + ':' + enc.ciphertext.toString(CryptoJS.enc.Hex);\\n}\\n\\nfunction buildAuthenticationHash(data, ts, terminalSerial) {\\n  const CryptoJS = require('crypto-js');\\n  const password = generateTokenPassword(pm.variables.get(\\\"businessCode\\\") + terminalSerial, ts);\\n  const encodedKeyTimestamp = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(password + ts));\\n  data.key = encodedKeyTimestamp;\\n  const dataJson = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(data)));\\n  return CryptoJS.SHA512(dataJson).toString(CryptoJS.enc.Hex);\\n}\\n\\nfunction executeScript() {\\n  const terminalSerial = pm.variables.get('terminalSerial');\\n  const businessCode   = pm.variables.get('businessCode');\\n  if (!terminalSerial) throw new Error(\\\"terminalSerial is not set\\\");\\n  if (!businessCode)   throw new Error(\\\"businessCode is not set\\\");\\n\\n  const ts = getCurrentTimestamp();\\n  let requestData = {};\\n\\n  try {\\n    if (pm.request.body?.mode === 'raw' && pm.request.body.raw)\\n      requestData = JSON.parse(pm.request.body.raw);\\n  } catch (e) {}\\n\\n  if (pm.request.method === 'GET')\\n    pm.request.url.query.all().forEach((p) => { if (p.key !== 'data') requestData[p.key] = p.value; });\\n\\n  delete requestData.key;\\n\\n  const hash          = buildAuthenticationHash(structuredClone(requestData), ts, terminalSerial);\\n  const encryptedData = encryptData(JSON.stringify(requestData), ts, terminalSerial);\\n\\n  pm.request.headers.add({ key: 'Authorization',  value: `Basic ${hash}` });\\n  pm.request.headers.add({ key: 'timestamp',      value: ts.toString() });\\n  pm.request.headers.upsert({ key: 'Content-Type', value: 'application/json' });\\n\\n  if (pm.request.method === 'GET') {\\n    pm.request.url.query.add({ key: 'data', value: encryptedData });\\n    pm.request.url.query.members.forEach((p) => { if (p.key !== 'data') p.disabled = true; });\\n  } else {\\n    pm.request.body.mode = 'raw';\\n    pm.request.body.raw  = JSON.stringify({ data: encryptedData });\\n  }\\n}\\n\\nconst raw = pm.variables.get('encrypted_http_communication');\\nconst httpEncrypted = raw === true || String(raw).toLowerCase() === 'true' || raw === 1 || raw === '1';\\nif (httpEncrypted) executeScript();\\n\")), mdx(\"hr\", null), mdx(NextStep, {\n    type: \"required\",\n    side: \"right\",\n    link: \"/kushki-one/charge\",\n    title: \"Charge with Kushki ONE\",\n    mdxType: \"NextStep\"\n  }, mdx(\"p\", null, \"  With authentication ready, review the complete semi-integrated charge flow.\")), mdx(NextStep, {\n    type: \"recommended\",\n    side: \"left\",\n    link: \"/kushki-one/error-codes\",\n    title: \"Error codes\",\n    mdxType: \"NextStep\"\n  }, mdx(\"p\", null, \"  Check the full error catalog, including authentication failure codes.\")));\n}\n;\nMDXContent.isMDXComponent = true;","excerpt":"This mechanism applies  exclusively to semi-integrated mode . If your integration uses the native SDK or a local network topology without…","timeToRead":2,"tableOfContents":{"items":[{"url":"#required-variables","title":"Required variables"},{"url":"#general-flow","title":"General flow"},{"url":"#key-derivation-chain","title":"Key derivation chain"},{"url":"#step-1--generate-the-timestamp","title":"Step 1 — Generate the timestamp"},{"url":"#step-2--generate-formatteddate-utc","title":"Step 2 — Generate formattedDate (UTC)"},{"url":"#step-3--generate-the-temporary-password","title":"Step 3 — Generate the temporary password"},{"url":"#step-4--build-datawithkey-for-signing-only","title":"Step 4 — Build dataWithKey (for signing only)"},{"url":"#step-5--generate-the-signature-authorization","title":"Step 5 — Generate the signature (Authorization)"},{"url":"#step-6--encrypt-the-payload-aes-256-cbc","title":"Step 6 — Encrypt the payload (AES-256-CBC)"},{"url":"#step-7--assemble-the-final-request","title":"Step 7 — Assemble the final request","items":[{"url":"#post--patch--put","title":"POST · PATCH · PUT"},{"url":"#get","title":"GET"}]},{"url":"#authentication-errors","title":"Authentication errors"},{"url":"#postman-reference-script","title":"Postman reference script"}]}}},"updatedAt":"April 27, 2026","tabTitle":null}]}},"pageContext":{"country":"co","id":"597e2710-281c-5eeb-aeb2-82a54d3f7826","locale":"en","localeDateFormat":"MMMM DD, YYYY"}},"staticQueryHashes":["1632712422","2408418099","63159454"]}