{"componentChunkName":"component---src-templates-docs-js","path":"/whatsapp/receive_notifications/webhook","result":{"data":{"site":{"siteMetadata":{"title":"broadcaster","docsLocation":"https://github.com","docsLocationType":"github","editable":false}},"mdx":{"fields":{"id":"5aeb42c6-e708-58c9-a7ec-d174bb99fa3e","title":"Webhook","slug":"/whatsapp/receive_notifications/webhook"},"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\": \"Webhook\",\n  \"order\": 1\n};\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(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Resumen para integraci\\xF3n\")), mdx(\"ul\", {\n    parentName: \"blockquote\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Entrega:\"), \" WhatsApp \\u2192 Concepto M\\xF3vil \\u2192 \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"POST\"), \" a la URL de tu webhook (la que compartes con nuestro equipo de Operaciones), con un JSON en el cuerpo.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Formato:\"), \" el objeto \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"value\"), \" de Meta sin \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"metadata\"), \" ni \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"messaging_product\"), \"; las \", mdx(\"a\", {\n    href: \"/whatsapp/receive_notifications/flows\"\n  }, \"notificaciones de Flows\"), \" llegan con el objeto completo (\", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"object\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"entry\"), \").\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Identificar al usuario:\"), \" \", mdx(\"a\", {\n    href: \"/whatsapp/receive_notifications#h-c\\xF3moidentificaralusuario\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"from\"), \"/\", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"recipient_id\"), \" o, si no llega, el BSUID\"), \".\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Respuesta esperada:\"), \" HTTP 200 sin cuerpo; si no, se reintenta con intervalos exponenciales.\"))), mdx(\"p\", null, \"Todas las notificaciones se env\\xEDan a tu webhook con la misma petici\\xF3n HTTP. El cuerpo depende del tipo de notificaci\\xF3n; consulta las p\\xE1ginas de \", mdx(\"a\", {\n    href: \"/whatsapp/receive_notifications\"\n  }, \"Recepci\\xF3n de Notificaciones\"), \".\"), mdx(\"section\", {\n    \"id\": \"webhook\"\n  }, mdx(\"h2\", {\n    parentName: \"section\"\n  }, \"Webhook\")), mdx(\"section\", {\n    \"id\": \"webhook--petición\"\n  }, mdx(\"h3\", {\n    parentName: \"section\"\n  }, \"Petici\\xF3n\"), mdx(\"p\", {\n    parentName: \"section\"\n  }, \"Petici\\xF3n de \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Webhook\"), \":\"), 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  }), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"URL\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Le pedimos que comparta a nuestro equipo de Operaciones la URL de su Webhook.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"M\\xE9todo\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"POST\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Tipo\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"application/json\"))))), mdx(\"section\", {\n    \"id\": \"webhook--encabezados\"\n  }, mdx(\"h3\", {\n    parentName: \"section\"\n  }, \"Encabezados\"), mdx(\"p\", {\n    parentName: \"section\"\n  }, \"Encabezados de \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Webhook\"), \":\"), 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  }, \"Nombre\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Descripci\\xF3n\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Tipo\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Requerimientos\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Content-Type\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"application/json; charset=UTF-8\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"String\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Obligatorio\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Cache-Control\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"no-cache\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"String\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Obligatorio\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Accept\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"*/*\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"String\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Opcional\"))))), mdx(\"section\", {\n    \"id\": \"webhook--respuesta\"\n  }, mdx(\"h3\", {\n    parentName: \"section\"\n  }, \"Respuesta\"), mdx(\"p\", {\n    parentName: \"section\"\n  }, \"Respuesta de \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Webhook\"), \":\"), mdx(\"p\", {\n    parentName: \"section\"\n  }, \"La plataforma esperar\\xE1 como respuesta un c\\xF3digo HTTP 200 sin cuerpo por parte del webhook. Los reintentos solo se realizan ante errores de conexi\\xF3n/timeout o cuando la respuesta tiene uno de los c\\xF3digos HTTP 408, 429, 500, 502, 503 o 504 (n\\xFAmero limitado de intentos con intervalos exponenciales); otros c\\xF3digos de respuesta (p. ej. 400, 401, 404) se descartan y no se vuelven a entregar.\"), mdx(\"blockquote\", {\n    parentName: \"section\"\n  }, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Nota:\"), \" Las notificaciones de \", mdx(\"a\", {\n    href: \"/whatsapp/receive_notifications/flows\"\n  }, \"Flows\"), \" se env\\xEDan al webhook de plataforma configurado para la cuenta (no al webhook por n\\xFAmero), con encabezados distintos (sin \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Cache-Control\"), \", con \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Authorization: Basic \\u2026\"), \" opcional) y sin reintentos ante c\\xF3digos HTTP de error (solo se reintenta ante errores de I/O).\")), mdx(\"br\", null), mdx(\"hr\", {\n    parentName: \"section\"\n  })));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#webhook","title":"Webhook","items":[{"url":"#petición","title":"Petición"},{"url":"#encabezados","title":"Encabezados"},{"url":"#respuesta","title":"Respuesta"}]}]},"timeToRead":1,"parent":{"__typename":"File","relativePath":"whatsapp/receive_notifications/webhook.md","fields":{"gitLogLatestAuthorName":"Irais Aguirre","gitLogLatestAuthorEmail":"irais.aguirre@conceptomovil.com","gitLogLatestDate":"4 days ago"}},"frontmatter":{"metaTitle":null,"showMetadata":null,"editable":null,"showPreviousNext":null,"showToc":null}},"gitBranch":{"name":"20211019-2FACTOR_AUTH"},"gitCommit":{"hash":"9713e1925aeb8cad930f91b6bf05d0b5937b2bb5","date":"2026-11-13 06:39"}},"pageContext":{"id":"5aeb42c6-e708-58c9-a7ec-d174bb99fa3e"}},"staticQueryHashes":["12478684","12478684","2882937274","2882937274","353167761","353167761"]}