{"componentChunkName":"component---src-templates-docs-js","path":"/api-externa/sms/api-http","result":{"data":{"site":{"siteMetadata":{"title":"broadcaster","docsLocation":"https://github.com","docsLocationType":"github","editable":false}},"mdx":{"fields":{"id":"8f385b47-0527-5f9b-a6b2-0ab8890386bb","title":"API HTTP","slug":"/api-externa/sms/api-http"},"body":"function _extends() { _extends = Object.assign || 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); }\n\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; }\n\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\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"API HTTP\",\n  \"order\": 2\n};\n\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};\n\nvar Tip = makeShortcode(\"Tip\");\nvar Warning = makeShortcode(\"Warning\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"br\", null), mdx(\"p\", null, \"La \", mdx(\"b\", null, \"API HTTP externa de SMS\"), \" te permite integrar el env\\xEDo de mensajes SMS a tu sistema utilizando un flujo de autenticaci\\xF3n est\\xE1ndar \", mdx(\"b\", null, \"OAuth2 (client_credentials)\"), \" contra Keycloak, seguido de una llamada REST al endpoint de mensajer\\xEDa.\"), mdx(\"br\", null), mdx(\"p\", null, \"Tu sistema siempre realiza dos operaciones: primero obtiene un token temporal con tu llave de API, luego lo usa para enviar el SMS. El token tiene una vigencia de aproximadamente 10 minutos, por lo que puedes reutilizarlo para m\\xFAltiples env\\xEDos.\"), mdx(\"br\", null), mdx(\"section\", null, mdx(\"h3\", {\n    parentName: \"section\"\n  }, \"Flujo general\"), mdx(\"table\", {\n    parentName: \"section\"\n  }, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Paso\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Origen\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Destino\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Acci\\xF3n\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"1\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Tu sistema\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Keycloak\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"POST /token\"), \" (client_id + client_secret)\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"2\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Keycloak\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Tu sistema\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Devuelve \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"access_token\"), \" (v\\xE1lido ~10 min)\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"3\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Tu sistema\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"API de mensajer\\xEDa\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"POST /services/messaging\"), \" (Bearer access_token)\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"4\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"API de mensajer\\xEDa\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Tu sistema\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Devuelve \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"code\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"mailingId\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"result\"))))), mdx(Tip, {\n    mdxType: \"Tip\"\n  }, mdx(\"p\", {\n    parentName: \"section\"\n  }, \"Cachea el token en memoria y solicita uno nuevo cuando est\\xE9 por vencer. No lo solicites de nuevo en cada env\\xEDo \\u2014 ralentiza tu integraci\\xF3n innecesariamente.\")), mdx(Warning, {\n    mdxType: \"Warning\"\n  }, mdx(\"p\", {\n    parentName: \"section\"\n  }, \"Antes de empezar necesitas una llave de API (Client ID + Secret). Si a\\xFAn no la tienes, p\\xEDdesela al administrador de tu cuenta para que la genere desde el portal.\"))));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#flujo-general","title":"Flujo general"}]},"timeToRead":1,"parent":{"__typename":"File","relativePath":"api-externa/sms/api-http.md","fields":{"gitLogLatestAuthorName":"Yered Rios","gitLogLatestAuthorEmail":"yered.rios@conceptomovil.com","gitLogLatestDate":"2 months ago"}},"frontmatter":{"metaTitle":null,"showMetadata":null,"editable":null,"showPreviousNext":null,"showToc":null}},"gitBranch":{"name":"DEV"},"gitCommit":{"hash":"653d4d48e7c023d6d0792f6d3212f540ef8d669e","date":"2026-09-01 04:50"}},"pageContext":{"id":"8f385b47-0527-5f9b-a6b2-0ab8890386bb"}},"staticQueryHashes":["12478684","12478684","2882937274","2882937274","353167761","353167761"]}