{"componentChunkName":"component---src-templates-docs-js","path":"/whatsapp/messaging/read_and_typing_indicators","result":{"data":{"site":{"siteMetadata":{"title":"broadcaster","docsLocation":"https://github.com","docsLocationType":"github","editable":false}},"mdx":{"fields":{"id":"3a8fd7d9-fb8d-5e6a-a688-d0197b699627","title":"Read and typing indicators","slug":"/whatsapp/messaging/read_and_typing_indicators"},"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\": \"Read and typing indicators\",\n  \"order\": 6\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(\"p\", null, \"The read and typing indicators service marks received messages as read and shows the \\\"typing\\u2026\\\" indicator in a conversation.\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Integration summary\")), mdx(\"ul\", {\n    parentName: \"blockquote\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Endpoint:\"), \" \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"POST https://{{url}}/whatsapp-bsp-api-endpoint-ws/services/v1/messaging/status\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Token:\"), \" messaging token, in the \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"Authorization: Bearer {{wa-msg-api-token}}\"), \" header (\", mdx(\"a\", {\n    href: \"/whatsapp/authentication_token\"\n  }, \"how to generate it\"), \")\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Response:\"), \" see the Response section on this page\"))), mdx(\"p\", null, \"The read and typing indicators service lets you:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Mark a received message as read, using the \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"message.id\"), \" value received in the webhook (see \", mdx(\"a\", {\n    href: \"/whatsapp/receive_notifications\"\n  }, \"Receiving notifications\"), \"). Earlier messages are also marked as read.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Show the \\\"typing...\\\" indicator in the conversation, so the user knows their message is being handled.\")), mdx(\"section\", {\n    \"id\": \"markasread\"\n  }, mdx(\"h2\", {\n    parentName: \"section\"\n  }, \"Mark as read\")), mdx(\"section\", {\n    \"id\": \"markasread--request\"\n  }, mdx(\"h3\", {\n    parentName: \"section\"\n  }, \"Request\"), 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  }, \"https://{{url}}/whatsapp-bsp-api-endpoint-ws/services/v1/messaging/status\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Method\"), 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  }, \"Type\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"application/json\"))))), mdx(\"section\", {\n    \"id\": \"markasread--headers\"\n  }, mdx(\"h3\", {\n    parentName: \"section\"\n  }, \"Headers\"), 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  }, \"Name\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Description\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Type\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Requirements\"))), 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\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"String\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Required\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Authorization\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Messaging token in the format \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"Bearer {token}\"), \" (with one space). See \", mdx(\"a\", {\n    href: \"/whatsapp/authentication_token\"\n  }, \"Generate authentication token\"), \".\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"String\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Required\")), 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  }, \"application/json\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"String\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Optional\"))))), mdx(\"section\", {\n    \"id\": \"markasread--body\"\n  }, mdx(\"h3\", {\n    parentName: \"section\"\n  }, \"Body\"), mdx(\"p\", {\n    parentName: \"section\"\n  }, \"Fields for \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Mark as read\"), \":\"), 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  }, \"Name\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Description\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Type\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Requirements\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"from\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Business phone number (including country code) that sends the request.\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"String\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Required.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"messageId\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"ID of the message to mark as read. Earlier messages are also marked as read.\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"String\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"ul\", null, mdx(\"li\", null, \"Required.\"), mdx(\"li\", null, \"The message must have been received within the last 30 days.\")))), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"typingIndicator\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Whether to show the \\\"typing...\\\" indicator. The indicator is shown for 25 seconds after the request is sent, and you can use it as many times as you need. Any value other than \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"true\"), \"/\", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"false\"), \" is rejected with code 1009 \\\"Parameter value is not valid\\\".\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"String\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"ul\", null, mdx(\"li\", null, \"Optional.\"), mdx(\"li\", null, \"Default: false.\"))))))), mdx(\"section\", {\n    \"id\": \"markasread--example\"\n  }, mdx(\"h3\", {\n    parentName: \"section\"\n  }, \"Example\"), mdx(\"p\", {\n    parentName: \"section\"\n  }, \"Complete \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Mark as read\"), \" example (HTTP request and JSON body):\")), mdx(\"section\", {\n    \"id\": \"markasread--example--markasreadwithtypingindicator\"\n  }, mdx(\"h4\", {\n    parentName: \"section\"\n  }, \"Mark as read with typing indicator\"), mdx(\"pre\", {\n    parentName: \"section\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"curl -X POST 'https://{{url}}/whatsapp-bsp-api-endpoint-ws/services/v1/messaging/status' \\\\\\n-H 'Accept: application/json' \\\\\\n-H 'Authorization: Bearer {{wa-msg-api-token}}' \\\\\\n-H 'Content-Type: application/json' \\\\\\n-d '{\\n    \\\"from\\\": \\\"5215500000001\\\",\\n    \\\"messageId\\\": \\\"wamid.HBgTTVguM\\u2026TVEODhERDAwMDYxMTdEQ0MA\\\",\\n    \\\"typingIndicator\\\": true\\n}'\\n\")), mdx(\"p\", {\n    parentName: \"section\"\n  }, \"Body:\"), mdx(\"pre\", {\n    parentName: \"section\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-json\"\n  }, \"{\\n    \\\"from\\\": \\\"5215500000001\\\",\\n    \\\"messageId\\\": \\\"wamid.HBgTTVguM\\u2026TVEODhERDAwMDYxMTdEQ0MA\\\",\\n    \\\"typingIndicator\\\": true\\n}\\n\"))), mdx(\"section\", {\n    \"id\": \"markasread--response\"\n  }, mdx(\"h3\", {\n    parentName: \"section\"\n  }, \"Response\"), mdx(\"p\", {\n    parentName: \"section\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Mark as read\"), \" response:\"), 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  }, \"Name\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Description\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Type\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"success\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Indicates that the request was processed successfully.\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Boolean\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"code\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Response code if an error occurs. For more details, see \", mdx(\"a\", {\n    href: \"/whatsapp/error_codes\"\n  }, \"Error codes\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Number\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"detail\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Description of the response code received.\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"String\"))))), mdx(\"section\", {\n    \"id\": \"markasread--response--successresponseexample\"\n  }, mdx(\"h4\", {\n    parentName: \"section\"\n  }, \"Success response example\"), mdx(\"pre\", {\n    parentName: \"section\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-json\"\n  }, \"{\\n    \\\"success\\\": true\\n}\\n\"))), mdx(\"section\", {\n    \"id\": \"markasread--response--errorresponseexample\"\n  }, mdx(\"h4\", {\n    parentName: \"section\"\n  }, \"Error response example\"), mdx(\"pre\", {\n    parentName: \"section\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-json\"\n  }, \"{\\n    \\\"code\\\": 3010,\\n    \\\"detail\\\": \\\"Invalid From Phone number\\\"\\n}\\n\"))));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#mark-as-read","title":"Mark as read","items":[{"url":"#request","title":"Request"},{"url":"#headers","title":"Headers"},{"url":"#body","title":"Body"},{"url":"#example","title":"Example","items":[{"url":"#mark-as-read-with-typing-indicator","title":"Mark as read with typing indicator"}]},{"url":"#response","title":"Response","items":[{"url":"#success-response-example","title":"Success response example"},{"url":"#error-response-example","title":"Error response example"}]}]}]},"timeToRead":1,"parent":{"__typename":"File","relativePath":"whatsapp/messaging/read_and_typing_indicators.md","fields":{"gitLogLatestAuthorName":"Irais Aguirre","gitLogLatestAuthorEmail":"irais.aguirre@conceptomovil.com","gitLogLatestDate":"6 hours 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":"3a8fd7d9-fb8d-5e6a-a688-d0197b699627"}},"staticQueryHashes":["12478684","12478684","2882937274","2882937274","353167761","353167761"]}