{"componentChunkName":"component---src-templates-article-template-tsx","path":"/co/apm/bre-b-payments","result":{"data":{"article":{"title":"Acepta pagos con Bre-B","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 CodeTabs = makeShortcode(\"CodeTabs\");\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: \"danger\",\n    title: \"\\uD83D\\uDEA7 Early Release \\u2014 Beta\",\n    mdxType: \"Aside\"\n  }, mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Este producto est\\xE1 en acceso temprano\"), \". Los par\\xE1metros, estructuras de respuesta y comportamientos pueden cambiar sin previo aviso. \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"No\"), \" uses esta versi\\xF3n en producci\\xF3n sin coordinarlo previamente con el equipo de integraciones de Kushki.\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Bre-B\"), \" es uno de los procesadores de APM (m\\xE9todos alternativos de pago) en Colombia: en lugar de pedir los datos bancarios del pagador y redirigirlo a su banco, Kushki genera un c\\xF3digo QR que el usuario escanea desde su aplicaci\\xF3n bancaria para autorizar el pago en tiempo real.\"), mdx(\"p\", null, \"Qu\\xE9 procesadores tiene tu comercio lo responde la consulta de configuraci\\xF3n (\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"GET /transfer/v1/config\"), \") \\u2014 el modelo completo est\\xE1 en \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.kushki.com/co/apm/overview\"\n  }, \"\\xBFC\\xF3mo funcionan los pagos con APM?\"), \". Las integraciones existentes con PSE no cambian: siguen su gu\\xEDa de \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.kushki.com/co/transfer-payments/accept-a-payment\"\n  }, \"transferencias bancarias\"), \".\"), mdx(Aside, {\n    type: \"danger\",\n    title: \"Importante\",\n    mdxType: \"Aside\"\n  }, mdx(\"p\", null, \"Disponible exclusivamente para Colombia con el procesador Bre-B configurado en tu MID. Para habilitarlo, contacta a tu ejecutivo de cuenta.\")), mdx(\"h2\", {\n    \"id\": \"así-es-la-experiencia-de-pago-de-tu-cliente\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#as%C3%AD-es-la-experiencia-de-pago-de-tu-cliente\",\n    \"aria-label\": \"así es la experiencia de pago de tu cliente 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  }))), \"As\\xED es la experiencia de pago de tu cliente\"), mdx(\"p\", null, \"Tu comercio muestra el c\\xF3digo QR en el checkout, el cliente lo escanea desde la app de su banco, revisa el monto y confirma, y el pago se aprueba en tiempo real.\"), 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\": \"60.317460317460316%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAYCAIAAAAH5iiXAAAFjklEQVRIx4VWW29cVxX+1tr7XObisZ3xddzESYAQoFFSCWoJFVWAkHhDlRA89J/wF8orEuJHFMTlARAQRVUVtUItFxUkK9AmcXyrEzue8cyZs/f6+nDG47HjJPvhzNmzz95rrW9969tL+kUgGUIUEQAQCKohAM0IgVNVVTxn8PhxsvWZpcnfangRlGXY2X0MiAjUqUCGZZkkXkViNAhmWlP1eg6APMewjB+AyKlvJpcgx34QAGRQhGjsHhVTjWwUNEASgKqKSDWJZt1e0ainKuODRkZGYJBGHvaKei1xqiQh4lTHp52CgfQQDIry3+s73/hSO4ShiBIkKZB6Lc/zFIT3vgj2n3u711ZnQhiqihm9d2YmkOlWU1S8T+LQPrm3e6UzZXEYjYl3M9NTIjI2nCSJqgpAEekXofr3/bsf/uGP7zl1EIJBIBRf7fnJWz+4dfOGmf394//+5va6igKG8hAAkibgzOxH3/3y6699LUTubG8B5r0PIWxt71iMS0uLaZpatDLE5U6nwtUDEBGz+O7vbv/i578GZpprV1+/2Krnye/vPMT9h8DuwtzMrZs3BPzT+/feebf75rdnZ/NE6AFEcYeF/e3OQS373zdvXQcYY7h6ZbUKZqWzTDJJkmr62f0HIYRqKv0iiCCEePfuB3leVxVVpyqAxBiimUUj49rat0j763v/CNLMUicViUVIkCyG0bP7vTduktjafHTl8qVz+X//wcPZC3OVYV9xleT1a1fnFxYqjxLvTm/YMDOSl1+ZXV7uGGighwIIMIUoZHPzkRnH9Hzp8Mc0Rojx870nIQQzE9Fani7Mt6tVs3j8whh5wIGKtDQH0LWhkdOSm/GZWgUBAvoCwxXR5uba0dgflGYkuN8tstS7idIkSbApKc0+u/9AVBYW532SVIVw5ugB428P17vl8Mez11uaPs8wADjVEErAVEVFSSNNnT+zx4mWMW482i5DaLcv5Glq5ynLfhz8dPNfCIPvTF1spc83LCJOsb5+b//gKYBmvf602+ssLXz12pUzmSsZobK6uiKiPvVDRg8VTKoUAMz5+u2VtT7CxbT1AqhH4+ho0Ov10zT9/PF+v1/Mt2crhI8GZZa4So2PWELR6SwBOLABGFuSEegPyixLKidJepE3m5dOsi0vNNxqNQlOt6a63V6aJOpG9FYRERAk0URKwIwAG0gEUiEtJ3KK3b0n+wfdLE1iNDNrNGrLi3OThs4yrtfr///TjRjj4ydPH2xsxxCrLOSZFxER8V5T7zLvEq/eaeKcd+qciEieetWRE1maggwhlGVZlkGfKbOzERfDYZal3rupZn3v8UG7PXNcbiBZy3wiFmJ0qjFao55naVKheLCXkCeATreaWZaamYoYWcuzlxi+9MrS/Nysd35xoX15daXZbEzepk5FgMQ7771F886NCeXc2ZjyLH25gIzoWpbtC9MQqa48UYUxhHBaE8xCFLDRaJx/5PO1S841XKl5kiTb/cNBKEk2XT7XaEzc/0LiqF9452q15Hlnq0gZYn9QyrglIQjW8nSyLP2ze9t5o7rGzzCiAuLJwfCwV0w1i3otq9QqRqvX0nFMqvLBPx++/cuP2qm8ulhLnX68ebQxiL96++uvfWXq/IiPuyE9A9d4qSzjXz7cufPJ3vWVZi1zZbBo/OjTp99/tf3DtfkqoBjtxrXFP//sDRFxKhDESJJzs43u4d5JGFUjQPLRxkaaelU9pfSCEIJROp0Oya2tzd5RYXbSW4nAjKpo1LPl5Q6Ara1Nr5Kk/ox0xBAHRRg3AlJ1mUbSrCxDldBxW0VQIEmaVLAbGUMYtaMikzlzzldTkmVZns9kn6jKyJl+EcysGJYTXdzIU1GxaCLCif5Qq1SDzrnEn5OpyqfzG+Hjbwh+AfQx+FqCAMFwAAAAAElFTkSuQmCC')\",\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/3gnDT89ItgXrsVXDPjol7u/2a4fc9218efdd22a4265714a3dc6942e/breb.png?w=315&fm=webp 315w\", \"https://images.ctfassets.net/mmjbm94f6iyd/3gnDT89ItgXrsVXDPjol7u/2a4fc9218efdd22a4265714a3dc6942e/breb.png?w=630&fm=webp 630w\", \"https://images.ctfassets.net/mmjbm94f6iyd/3gnDT89ItgXrsVXDPjol7u/2a4fc9218efdd22a4265714a3dc6942e/breb.png?w=1260&fm=webp 1260w\"],\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/3gnDT89ItgXrsVXDPjol7u/2a4fc9218efdd22a4265714a3dc6942e/breb.png?w=315 315w\", \"https://images.ctfassets.net/mmjbm94f6iyd/3gnDT89ItgXrsVXDPjol7u/2a4fc9218efdd22a4265714a3dc6942e/breb.png?w=630 630w\", \"https://images.ctfassets.net/mmjbm94f6iyd/3gnDT89ItgXrsVXDPjol7u/2a4fc9218efdd22a4265714a3dc6942e/breb.png?w=1260 1260w\"],\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\": \"bre-b\",\n    \"title\": \"\",\n    \"src\": \"https://images.ctfassets.net/mmjbm94f6iyd/3gnDT89ItgXrsVXDPjol7u/2a4fc9218efdd22a4265714a3dc6942e/breb.png\",\n    \"loading\": \"lazy\"\n  }), \"\\n        \"), \"\\n        \"), \"\\n      \")), mdx(\"h2\", {\n    \"id\": \"detalles-de-operación\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#detalles-de-operaci%C3%B3n\",\n    \"aria-label\": \"detalles de operación 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  }))), \"Detalles de operaci\\xF3n\"), mdx(\"table\", null, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Par\\xE1metro\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Detalle\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Moneda\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"COP\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Tipo de integraci\\xF3n\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"strong\", {\n    parentName: \"td\"\n  }, \"100% API\"), \" \\u2014 el token se solicita desde tu backend. Kajita y Kushki.js a\\xFAn no soportan este flujo.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Campo adicional requerido\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"El objeto \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"processor\"), \" (\", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"name\"), \" + \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"flowType\"), \") en el cuerpo del token\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Consulta de listado de bancos\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"No requerida para este flujo\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Resultado del init\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"C\\xF3digo QR (base64 PNG) para pago desde app bancaria\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Vigencia del QR\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"10 minutos. Pasado ese tiempo el QR se invalida y debe generarse un nuevo token e init.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Tiempo de procesamiento\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Tiempo real\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Cancelaci\\xF3n\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"PATCH /transfer/v1/cancel/{token}\"), \" \\u2014 disponible mientras la transacci\\xF3n no tenga estado final. Retorna HTTP 204 No Content.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Webhook\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Sin cambios respecto al flujo PSE\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"C\\xF3digos de error\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Ver la secci\\xF3n \", mdx(\"strong\", {\n    parentName: \"td\"\n  }, \"7. Errores de la API\"), \" de esta gu\\xEDa\")))), mdx(\"h2\", {\n    \"id\": \"1-consulta-tus-procesadores\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#1-consulta-tus-procesadores\",\n    \"aria-label\": \"1 consulta tus procesadores 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  }))), \"1. Consulta tus procesadores\"), mdx(\"p\", null, \"Este paso es opcional si Bre-B es tu \\xFAnico procesador, pero recomendado siempre: ser\\xE1 la regla a medida que se habiliten m\\xE1s procesadores y flujos. Antes de tokenizar, llama a \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Consulta la configuraci\\xF3n de Transfer In\"), \" (\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"GET /transfer/v1/config\"), \") con tu credencial p\\xFAblica. La entrada de Bre-B llega con \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"supportedFlows\"), \": copia su \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"name\"), \" y el \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"type\"), \" del flujo en el objeto \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"processor\"), \" del token.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-json\"\n  }, \"{\\n  \\\"processors\\\": [\\n    { \\\"name\\\": \\\"Pse Processor\\\", \\\"currency\\\": \\\"COP\\\" },\\n    {\\n      \\\"name\\\": \\\"Bre-B Credibanco Processor\\\",\\n      \\\"currency\\\": \\\"COP\\\",\\n      \\\"supportedFlows\\\": [\\n        { \\\"type\\\": \\\"QR\\\", \\\"name\\\": \\\"QR Code\\\", \\\"description\\\": \\\"QR code payment\\\" }\\n      ]\\n    }\\n  ]\\n}\\n\")), mdx(\"h2\", {\n    \"id\": \"2-crea-el-token\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#2-crea-el-token\",\n    \"aria-label\": \"2 crea el token 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  }))), \"2. Crea el token\"), mdx(\"p\", null, \"Realiza la petici\\xF3n del token usando el mismo endpoint que el flujo PSE. Para activar el flujo Bre-B, incluye el objeto \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"processor\"), \" con las propiedades \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"name\"), \" y \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"flowType\"), \", copiadas exactamente de la respuesta de la consulta de procesadores. No es necesario consultar el listado de bancos antes de este paso.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Campos requeridos\")), mdx(\"table\", null, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Campo\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Tipo\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Descripci\\xF3n\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"amount.subtotalIva0\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"number\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Monto de la transacci\\xF3n (sin IVA)\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"amount.subtotalIva\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"number\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Monto de la transacci\\xF3n (con IVA). Igual a subtotalIva0 si iva = 0\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"amount.iva\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"number\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Valor del IVA (0 si no aplica)\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"currency\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"string\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Moneda. Debe ser \\u201CCOP\\u201D\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"processor.name\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"string\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"NUEVO campo requerido. Debe ser \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"\\\"Bre-B Credibanco Processor\\\"\"), \", exactamente como lo devuelve la consulta de procesadores \\u2014 sin alias cortos\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"processor.flowType\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"string\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"NUEVO campo requerido. Debe ser \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"\\\"QR\\\"\"), \". No tiene valor por defecto\")))), mdx(\"p\", null, \"El objeto \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"processor\"), \" no admite propiedades adicionales: cualquier otra propiedad produce \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"400\"), \".\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Campos opcionales\")), mdx(\"p\", null, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"callbackUrl\"), \" \\xB7 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"userType\"), \" \\xB7 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"documentType\"), \" \\xB7 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"documentNumber\"), \" \\xB7 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"paymentDescription\"), \" \\xB7 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"email\")), mdx(\"p\", null, \"El campo \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"bankId\"), \" no aplica en este flujo.\"), mdx(\"p\", null, \"Si env\\xEDas \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"userType\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"documentType\"), \" o \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"documentNumber\"), \", aplican las \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"reglas condicionales para COP\"), \" \\u2014 consulta \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.kushki.com/co/apm/overview\"\n  }, \"\\xBFC\\xF3mo funcionan los pagos con APM?\"), \".\"), mdx(CodeTabs, {\n    group: \"backend\",\n    mdxType: \"CodeTabs\"\n  }, mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"var options = {\\n  'method': 'POST',\\n  'url': 'https://api-uat.kushkipagos.com/transfer/v1/tokens',\\n  'headers': { 'Public-Merchant-Id': '', 'Content-Type': 'application/json' },\\n  body: JSON.stringify({\\n    \\\"amount\\\": { \\\"subtotalIva0\\\": 1000, \\\"subtotalIva\\\": 1000, \\\"iva\\\": 0 },\\n    \\\"currency\\\": \\\"COP\\\",\\n    \\\"processor\\\":{\\n        \\\"name\\\":\\\"Bre-B Credibanco Processor\\\",\\n        \\\"flowType\\\":\\\"QR\\\"\\n    }\\n  })\\n};\\nrequest(options, function(error, response) {\\n  var data = JSON.parse(response.body);\\n  console.log('token:', data.token);\\n});\\n\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-python\"\n  }, \"payload = json.dumps({\\n  \\\"amount\\\": { \\\"subtotalIva0\\\": 1000, \\\"subtotalIva\\\": 1000, \\\"iva\\\": 0 },\\n  \\\"currency\\\": \\\"COP\\\",\\n  \\\"processor\\\":{\\n        \\\"name\\\":\\\"Bre-B Credibanco Processor\\\",\\n        \\\"flowType\\\":\\\"QR\\\"\\n    }\\n})\\nheaders = {'Public-Merchant-Id': '', 'Content-Type': 'application/json'}\\nresponse = requests.post('https://api-uat.kushkipagos.com/transfer/v1/tokens',\\n                          headers=headers, data=payload)\\nprint('token:', response.json()['token'])\\n\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-php\"\n  }, \"$body->append(json_encode([\\n  \\\"amount\\\" => [\\\"subtotalIva0\\\" => 1000, \\\"subtotalIva\\\" => 1000, \\\"iva\\\" => 0],\\n  \\\"currency\\\" => \\\"COP\\\",\\n  \\\"processor\\\" => [\\n        \\\"name\\\" => \\\"Bre-B Credibanco Processor\\\",\\n        \\\"flowType\\\" => \\\"QR\\\"\\n    ]\\n]));\\n// POST a /transfer/v1/tokens con Public-Merchant-Id\\necho json_decode($client->getResponse()->getBody(), true)['token'];\\n\"))), mdx(\"h2\", {\n    \"id\": \"3-genera-el-código-qr\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#3-genera-el-c%C3%B3digo-qr\",\n    \"aria-label\": \"3 genera el código qr 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  }))), \"3. Genera el c\\xF3digo QR\"), mdx(\"p\", null, \"Con el token obtenido, inicializa la transacci\\xF3n. Kushki retorna un c\\xF3digo QR en formato base64 que debes mostrar al usuario para que lo escanee desde su aplicaci\\xF3n bancaria.\"), mdx(CodeTabs, {\n    group: \"backend\",\n    mdxType: \"CodeTabs\"\n  }, mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"var options = {\\n  'method': 'POST',\\n  'url': 'https://api-uat.kushkipagos.com/transfer/v1/init',\\n  'headers': { 'Private-Merchant-Id': '', 'Content-Type': 'application/json' },\\n  body: JSON.stringify({\\n    \\\"token\\\": \\\"{{token}}\\\",\\n    \\\"amount\\\": { \\\"subtotalIva\\\": 0, \\\"subtotalIva0\\\": 1000, \\\"iva\\\": 0 },\\n    // \\\"fullResponse\\\": \\\"v2\\\"  // opcional \\u2014 incluye el objeto details en la respuesta\\n  })\\n};\\nrequest(options, function(error, response) {\\n  var data = JSON.parse(response.body);\\n  console.log('qr:', data.qr);\\n  console.log('ref:', data.transactionReference);\\n});\\n\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-python\"\n  }, \"payload = json.dumps({\\n  \\\"token\\\": \\\"{{token}}\\\",\\n  \\\"amount\\\": { \\\"subtotalIva\\\": 0, \\\"subtotalIva0\\\": 1000, \\\"iva\\\": 0 },\\n  # \\\"fullResponse\\\": \\\"v2\\\"  # opcional \\u2014 incluye el objeto details en la respuesta\\n})\\nheaders = {'Private-Merchant-Id': '', 'Content-Type': 'application/json'}\\ndata = requests.post('https://api-uat.kushkipagos.com/transfer/v1/init',\\n                      headers=headers, data=payload).json()\\nprint('qr:', data['qr'])\\n\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-php\"\n  }, \"$body->append(json_encode([\\n  \\\"token\\\" => \\\"{{token}}\\\",\\n  \\\"amount\\\" => [\\\"subtotalIva\\\" => 0, \\\"subtotalIva0\\\" => 1000, \\\"iva\\\" => 0],\\n  // \\\"fullResponse\\\" => \\\"v2\\\"  // opcional\\n]));\\n// POST a /transfer/v1/init con Private-Merchant-Id\\n$data = json_decode($client->getResponse()->getBody(), true);\\necho $data['qr'];\\n\"))), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Ejemplo de respuesta \\u2014 sin fullResponse\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-json\"\n  }, \"{\\n  \\\"qr\\\": \\\"data:image/png;base64,iVBORw0KGgoAAAANS...\\\",\\n  \\\"transactionReference\\\": \\\"f2110170-8eec-4214-b2d0-38970d44f8e1\\\"\\n}\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Ejemplo de respuesta \\u2014 con fullResponse: \\u201Cv2\\u201D\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-json\"\n  }, \"{\\n  \\\"qr\\\": \\\"data:image/png;base64,iVBORw0KGgoAAAANS...\\\",\\n  \\\"transactionReference\\\": \\\"f2110170-8eec-4214-b2d0-38970d44f8e1\\\",\\n  \\\"details\\\": {\\n    \\\"status\\\": \\\"initializedTransaction\\\",\\n    \\\"amount\\\": { \\\"currency\\\": \\\"COP\\\", \\\"iva\\\": 0, \\\"subtotalIva\\\": 1000, \\\"subtotalIva0\\\": 1000 },\\n    \\\"created\\\": 1784125900901,\\n    \\\"description\\\": \\\"-\\\",\\n    \\\"merchantId\\\": \\\"20000000106921087000\\\",\\n    \\\"merchantName\\\": \\\"Mi Comercio Colombia\\\"\\n  }\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"cómo-renderizar-el-campo-qr\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#c%C3%B3mo-renderizar-el-campo-qr\",\n    \"aria-label\": \"cómo renderizar el campo qr 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  }))), \"C\\xF3mo renderizar el campo qr\"), mdx(\"p\", null, \"El campo \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"qr\"), \" contiene una cadena Data URI completa (\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"data:image/png;base64,...\"), \"). Para mostrarlo en web:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-html\"\n  }, \"<img src=\\\"{qr}\\\" alt=\\\"Escanea para pagar\\\" width=\\\"250\\\" />\\n\")), mdx(\"p\", null, \"En apps nativas, decodifica el base64 y renderiza el bitmap con el componente de imagen de tu plataforma.\"), mdx(\"h2\", {\n    \"id\": \"4-muestra-el-qr-al-usuario-y-espera-el-pago\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#4-muestra-el-qr-al-usuario-y-espera-el-pago\",\n    \"aria-label\": \"4 muestra el qr al usuario y espera el pago 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  }))), \"4. Muestra el QR al usuario y espera el pago\"), mdx(\"p\", null, \"El usuario escanea el QR desde su aplicaci\\xF3n bancaria y autoriza el pago. Kushki notifica el resultado de forma as\\xEDncrona.\\nEl QR expira en 10 minutos. Si el usuario no escanea en ese tiempo, deber\\xE1s generar un nuevo token e init.\\nPara monitorear el resultado: configura un webhook (ver paso 6) o consulta Get Status manualmente.\\nMientras el pago est\\xE1 pendiente, puedes cancelar la transacci\\xF3n (ver paso 5).\"), mdx(\"h2\", {\n    \"id\": \"5-cancela-la-transacción-opcional\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#5-cancela-la-transacci%C3%B3n-opcional\",\n    \"aria-label\": \"5 cancela la transacción opcional 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  }))), \"5. Cancela la transacci\\xF3n (opcional)\"), mdx(\"p\", null, \"Si el usuario no puede completar el pago o necesitas invalidar el QR activo, cancela la transacci\\xF3n antes de que alcance un estado final.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Cu\\xE1ndo usar la cancelaci\\xF3n\"), \"\\nUsa este endpoint cuando el usuario ingrese un monto incorrecto, decida no completar el pago, o necesites emitir un nuevo QR antes de que el QR original expire (vigencia de 10 minutos). Solo es posible si la transacci\\xF3n a\\xFAn no tiene un estado final.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Endpoint\"), \"\\n\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"PATCH https://{api-url}/transfer/v1/cancel/{token}\")), mdx(\"p\", null, \"Donde \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"{token}\"), \" es el token obtenido en el paso 2.\"), mdx(Aside, {\n    type: \"info\",\n    title: \"Referencia t\\xE9cnica\",\n    mdxType: \"Aside\"\n  }, mdx(\"p\", null, \"Para mayor detalle sobre el comportamiento de la cancelaci\\xF3n, consulta el documento de mapeo interno:\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.google.com/document/d/1sjtz4S_872jMiudGpTinsK5d50xLpNpLCpJorkTReV4\"\n  }, \"Cancelaci\\xF3n \\u2014 Referencia t\\xE9cnica\"))), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Respuesta exitosa (HTTP 204 No Content)\"), \"\\nLa cancelaci\\xF3n exitosa retorna HTTP 204 sin cuerpo en la respuesta.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Error \\u2014 transacci\\xF3n con estado final (HTTP 400)\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-json\"\n  }, \"{\\n  \\\"code\\\": \\\"T023\\\",\\n  \\\"message\\\": \\\"Transacci\\xF3n posee un estado final.\\\"\\n}\\n\")), mdx(\"h2\", {\n    \"id\": \"6-consulta-el-estado-de-la-transacción\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#6-consulta-el-estado-de-la-transacci%C3%B3n\",\n    \"aria-label\": \"6 consulta el estado de la transacción 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  }))), \"6. Consulta el estado de la transacci\\xF3n\"), mdx(\"p\", null, \"El estado final del pago llega de forma as\\xEDncrona. Puedes recibirlo de dos maneras:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Webhook:\"), \" Kushki notifica autom\\xE1ticamente cuando el pago es aprobado o rechazado. Sin cambios respecto al flujo PSE.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Get Status:\"), \" Consulta manualmente el estado usando el token en el path.\")), mdx(CodeTabs, {\n    group: \"backend\",\n    mdxType: \"CodeTabs\"\n  }, mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"var options = {\\n  'method': 'GET',\\n  'url': 'https://api-uat.kushkipagos.com/transfer/v1/status/{{token}}', // token del paso 2\\n  'headers': { 'Private-Merchant-Id': '' }\\n};\\nrequest(options, function(error, response) {\\n  console.log(response.body);\\n});\\n\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-python\"\n  }, \"token = '{{token}}'  # token obtenido en el paso 2\\nurl = f'https://api-uat.kushkipagos.com/transfer/v1/status/{token}'\\nheaders = {'Private-Merchant-Id': ''}\\nresponse = requests.get(url, headers=headers)\\nprint(response.text)\\n\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-php\"\n  }, \"$token = '{{token}}';  // token del paso 2\\n$request->setRequestUrl(\\\"https://api-uat.kushkipagos.com/transfer/v1/status/{$token}\\\");\\n$request->setRequestMethod('GET');\\n$request->setHeaders(['Private-Merchant-Id' => '']);\\n$client->enqueue($request)->send();\\necho $client->getResponse()->getBody();\\n\"))), mdx(Aside, {\n    type: \"info\",\n    title: \"Sin cambios en el webhook\",\n    mdxType: \"Aside\"\n  }, mdx(\"p\", null, \"La estructura del webhook es id\\xE9ntica al flujo PSE existente.\")), mdx(\"h2\", {\n    \"id\": \"7-errores-de-la-api\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#7-errores-de-la-api\",\n    \"aria-label\": \"7 errores de la api 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  }))), \"7. Errores de la API\"), mdx(\"p\", null, \"Al operar con el flujo multiprocesador puedes recibir errores de la API en la consulta de procesadores, la tokenizaci\\xF3n o al iniciar la transacci\\xF3n. Los campos de la respuesta de error son \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"code\"), \" y \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"message\"), \".\"), mdx(\"table\", null, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Endpoint\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"HTTP\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"C\\xF3digo\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"\\xBFCu\\xE1ndo ocurre?\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"\\xBFQu\\xE9 debe hacer el comercio?\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"GET /transfer/v1/config\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"500\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"E002\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Error al consultar la configuraci\\xF3n del comercio. Mensaje: \\xABHa ocurrido un error inesperado.\\xBB\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Reintenta; si persiste, contacta a soporte.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"POST /transfer/v1/tokens\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"400\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"\\u2014\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"El body no cumple el contrato: campo requerido ausente, valor fuera del enumerado (\", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"processor.name\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"processor.flowType\"), \") o propiedad no permitida dentro de \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"processor\"), \".\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Corrige el body seg\\xFAn la consulta de procesadores y el contrato del flujo elegido.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"POST /transfer/v1/init\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"422\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"E046\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"El token no es compatible con el procesador resuelto.\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Revisa la consulta de procesadores y regenera el token con el procesador correcto.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"POST /transfer/v1/init\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"404\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"E049\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"El comercio no tiene un procesador Bre-B configurado (sin llaves).\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Verifica la configuraci\\xF3n del procesador con Kushki.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Todos\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"401\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"\\u2014\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Credencial p\\xFAblica inv\\xE1lida o ausente.\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Verifica el \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"Public-Merchant-Id\"), \".\")))), mdx(\"p\", null, \"Los errores de las transferencias bancarias con PSE est\\xE1n en \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.kushki.com/co/transfer-payments/error-codes\"\n  }, \"C\\xF3digos de error para transferencias\"), \".\"), mdx(\"h2\", {\n    \"id\": \"8-prueba-tu-integración\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#8-prueba-tu-integraci%C3%B3n\",\n    \"aria-label\": \"8 prueba tu integración 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  }))), \"8. Prueba tu integraci\\xF3n\"), mdx(\"p\", null, \"El ambiente UAT simula escenarios mediante el valor de \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"transaction_amount\"), \", que corresponde a la suma de todos los campos del objeto amount en la petici\\xF3n (\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"subtotalIva0\"), \" + \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"subtotalIva\"), \" + \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"iva\"), \"). Por ejemplo, para activar el escenario \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"10000\"), \" env\\xEDa \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"subtotalIva0: 5000, subtotalIva: 5000, iva: 0\"), \". Si la suma no coincide con ning\\xFAn valor de la tabla, la respuesta es exitosa sin webhook.\"), mdx(Aside, {\n    type: \"danger\",\n    title: \"Solo son simulaciones\",\n    mdxType: \"Aside\"\n  }, mdx(\"p\", null, \"Estos montos son identificadores de escenario en el sandbox. No tienen significado econ\\xF3mico. No los uses en producci\\xF3n.\")), mdx(\"table\", null, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"transaction_amount\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"HTTP status\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Estado\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Webhook\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Nota\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"10000\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"201\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"SUCCESS\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Dispara \\u2192 PAID\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Happy path con webhook\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"9999\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"201\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"SUCCESS\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"No dispara\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"La transacci\\xF3n queda inicializada\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"11000\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"500\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"ERROR\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"No dispara\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"QR-CODE-0001\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"12000\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"201\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"SUCCESS\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Dispara \\u2192 rejected\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Transacci\\xF3n rechazada\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"13000\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"\\u2014\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"TIMEOUT\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"No dispara\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Se deja la transacci\\xF3n inicializada. Reutiliza el DELAY_MS existente.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"99999999\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"400\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"ERROR\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"No dispara\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"QR-CODE-0059 \\u2014 monto fuera de rango\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Cualquier otro\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"201\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"SUCCESS\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"No dispara\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": \"left\"\n  }, \"Respuesta exitosa gen\\xE9rica\")))), mdx(\"h2\", {\n    \"id\": \"9-prepara-tu-certificación\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#9-prepara-tu-certificaci%C3%B3n\",\n    \"aria-label\": \"9 prepara tu certificación 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  }))), \"9. Prepara tu certificaci\\xF3n\"), mdx(\"p\", null, \"Toma en consideraci\\xF3n las siguientes pautas para aprobar la certificaci\\xF3n t\\xE9cnica:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Los c\\xE1lculos de los montos son correctos (\", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"subtotalIva\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"subtotalIva0\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"iva\"), \").\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"El objeto \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"processor\"), \" se env\\xEDa con \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"name: \\\"Bre-B Credibanco Processor\\\"\"), \" y \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"flowType: \\\"QR\\\"\"), \" en la petici\\xF3n del token.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"El c\\xF3digo QR se muestra correctamente al usuario desde el campo \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"qr\"), \" de la respuesta del init.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Se implementa el endpoint de cancelaci\\xF3n para los flujos donde el usuario no completa el pago.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Se muestran mensajes en pantalla de acuerdo con las respuestas de Kushki.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Si se reciben notificaciones por webhook, se responde con HTTP 200.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"El bot\\xF3n de pago se deshabilita despu\\xE9s del primer clic para evitar doble env\\xEDo.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Todas las respuestas de Kushki se guardan y registran (requeridas en caso de soporte).\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"El logo de Kushki es visible. Desc\\xE1rgalo en \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://s3.amazonaws.com/kushki-cdn-production/docs/Logo+Kushki.zip\"\n  }, \"s3.amazonaws.com/kushki-cdn-production/docs/Logo+Kushki.zip\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Se env\\xEDan todos los campos requeridos seg\\xFAn la referencia API.\")), mdx(\"h2\", {\n    \"id\": \"artículos-relacionados\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#art%C3%ADculos-relacionados\",\n    \"aria-label\": \"artículos relacionados 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  }))), \"Art\\xEDculos relacionados\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.kushki.com/co/transfer-payments/accept-a-payment\"\n  }, mdx(\"strong\", {\n    parentName: \"a\"\n  }, \"Acepta pagos con transferencia\")), \"\\nRecibe transferencias bancarias\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.kushki.com/co/notifications/one-time-payments/webhook-transfer-in\"\n  }, mdx(\"strong\", {\n    parentName: \"a\"\n  }, \"Configura tus webhooks\")), \"\\nRecibe notificaciones del estado de tus pagos.\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.google.com/document/d/1sjtz4S_872jMiudGpTinsK5d50xLpNpLCpJorkTReV4\"\n  }, mdx(\"strong\", {\n    parentName: \"a\"\n  }, \"Cancelaci\\xF3n - Referencia t\\xE9cnica\")), \"\\nReferencia t\\xE9cnica\"))));\n}\n;\nMDXContent.isMDXComponent = true;","excerpt":"Este producto está en acceso temprano . Los parámetros, estructuras de respuesta y comportamientos pueden cambiar sin previo aviso.  No…","timeToRead":4,"tableOfContents":{"items":[{"url":"#así-es-la-experiencia-de-pago-de-tu-cliente","title":"Así es la experiencia de pago de tu cliente"},{"url":"#detalles-de-operación","title":"Detalles de operación"},{"url":"#1-consulta-tus-procesadores","title":"1. Consulta tus procesadores"},{"url":"#2-crea-el-token","title":"2. Crea el token"},{"url":"#3-genera-el-código-qr","title":"3. Genera el código QR","items":[{"url":"#cómo-renderizar-el-campo-qr","title":"Cómo renderizar el campo qr"}]},{"url":"#4-muestra-el-qr-al-usuario-y-espera-el-pago","title":"4. Muestra el QR al usuario y espera el pago"},{"url":"#5-cancela-la-transacción-opcional","title":"5. Cancela la transacción (opcional)"},{"url":"#6-consulta-el-estado-de-la-transacción","title":"6. Consulta el estado de la transacción"},{"url":"#7-errores-de-la-api","title":"7. Errores de la API"},{"url":"#8-prueba-tu-integración","title":"8. Prueba tu integración"},{"url":"#9-prepara-tu-certificación","title":"9. Prepara tu certificación"},{"url":"#artículos-relacionados","title":"Artículos relacionados"}]}}},"updatedAt":"16 octubre 2026","tabTitle":null}]}},"pageContext":{"country":"co","id":"543447b0-df2a-59c0-acf3-718dd98a4933","locale":"es","localeDateFormat":"DD MMMM YYYY"}},"staticQueryHashes":["1632712422","2408418099","63159454"]}