{
	"info": {
		"_postman_id": "8bc7370b-d5bd-4910-8a91-82c5217aadf6",
		"name": "Telegram Bot API - Webhook Integration",
		"description": "OpenAPI-спецификация методов управления вебхуком Telegram Bot API (setWebhook, getWebhookInfo, deleteWebhook) и обратного вызова onUpdate.",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
		"_exporter_id": "58013225",
		"_collection_link": "https://flavrinets-4959331.postman.co/workspace/%D0%A4%D0%B5%D0%B4%D0%BE%D1%80-%D0%9B%D0%B0%D0%B2%D1%80%D0%B8%D0%BD%D0%B5%D1%86's-Workspace~0aedb931-77ac-4474-8d68-417f8031ba8a/collection/58013225-8bc7370b-d5bd-4910-8a91-82c5217aadf6?action=share&source=collection_link&creator=58013225"
	},
	"item": [
		{
			"name": "bot{token}",
			"item": [
				{
					"name": "setWebhook",
					"item": [
						{
							"name": "Установка вебхука",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"pm.test(\"Status code is 200\", function () {",
											"    pm.response.to.have.status(200);",
											"});",
											"pm.test(\"Response is JSON\", function () {",
											"    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
											"});",
											"pm.test(\"Response ok is true\", function () {",
											"    var jsonData = pm.response.json();",
											"    pm.expect(jsonData.ok).to.eql(true);",
											"});"
										],
										"type": "text/javascript",
										"packages": {},
										"requests": {}
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept",
										"value": "application/json"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n  \"url\": \"https://your-domain.com/bot-webhook\",\n  \"ip_address\": \"197.0.2.1\",\n  \"max_connections\": 40,\n  \"allowed_updates\": [\n    \"message\",\n    \"callback_query\"\n  ],\n  \"drop_pending_updates\": false,\n  \"secret_token\": \"a1b2c3d4e5f67890123456789abcdef0a1b2c3d4e5f67890123456789abcdef0\"\n}",
									"options": {
										"raw": {
											"headerFamily": "json",
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{baseUrl}}/bot{{token}}/setWebhook",
									"host": [
										"{{baseUrl}}"
									],
									"path": [
										"bot{{token}}",
										"setWebhook"
									]
								}
							},
							"response": [
								{
									"name": "Вебхук успешно установлен",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"url\": \"https://your-domain.com/bot-webhook\",\n  \"ip_address\": \"197.0.2.1\",\n  \"max_connections\": 40,\n  \"allowed_updates\": [\n    \"message\",\n    \"callback_query\"\n  ],\n  \"drop_pending_updates\": false,\n  \"secret_token\": \"a1b2c3d4e5f67890123456789abcdef0a1b2c3d4e5f67890123456789abcdef0\"\n}",
											"options": {
												"raw": {
													"headerFamily": "json",
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/setWebhook",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"setWebhook"
											]
										}
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"result\": true,\n  \"ok\": false,\n  \"description\": \"string\"\n}"
								},
								{
									"name": "Некорректный запрос (неверный формат параметров или недопустимый URL вебхука)",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"url\": \"https://your-domain.com/bot-webhook\",\n  \"ip_address\": \"197.0.2.1\",\n  \"max_connections\": 40,\n  \"allowed_updates\": [\n    \"message\",\n    \"callback_query\"\n  ],\n  \"drop_pending_updates\": false,\n  \"secret_token\": \"a1b2c3d4e5f67890123456789abcdef0a1b2c3d4e5f67890123456789abcdef0\"\n}",
											"options": {
												"raw": {
													"headerFamily": "json",
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/setWebhook",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"setWebhook"
											]
										}
									},
									"status": "Bad Request",
									"code": 400,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"ok\": false,\n  \"error_code\": 400,\n  \"description\": \"Bad Request: HTTPS url must be provided for webhook\"\n}"
								},
								{
									"name": "Не авторизован (неверный токен бота)",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"url\": \"https://your-domain.com/bot-webhook\",\n  \"ip_address\": \"197.0.2.1\",\n  \"max_connections\": 40,\n  \"allowed_updates\": [\n    \"message\",\n    \"callback_query\"\n  ],\n  \"drop_pending_updates\": false,\n  \"secret_token\": \"a1b2c3d4e5f67890123456789abcdef0a1b2c3d4e5f67890123456789abcdef0\"\n}",
											"options": {
												"raw": {
													"headerFamily": "json",
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/setWebhook",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"setWebhook"
											]
										}
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"ok\": false,\n  \"error_code\": 401,\n  \"description\": \"Unauthorized\"\n}"
								},
								{
									"name": "Бот не найден (несуществующий токен)",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"url\": \"https://your-domain.com/bot-webhook\",\n  \"ip_address\": \"197.0.2.1\",\n  \"max_connections\": 40,\n  \"allowed_updates\": [\n    \"message\",\n    \"callback_query\"\n  ],\n  \"drop_pending_updates\": false,\n  \"secret_token\": \"a1b2c3d4e5f67890123456789abcdef0a1b2c3d4e5f67890123456789abcdef0\"\n}",
											"options": {
												"raw": {
													"headerFamily": "json",
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/setWebhook",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"setWebhook"
											]
										}
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"ok\": false,\n  \"error_code\": 404,\n  \"description\": \"Not Found\"\n}"
								},
								{
									"name": "Превышен лимит запросов (Too Many Requests)",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"url\": \"https://your-domain.com/bot-webhook\",\n  \"ip_address\": \"197.0.2.1\",\n  \"max_connections\": 40,\n  \"allowed_updates\": [\n    \"message\",\n    \"callback_query\"\n  ],\n  \"drop_pending_updates\": false,\n  \"secret_token\": \"a1b2c3d4e5f67890123456789abcdef0a1b2c3d4e5f67890123456789abcdef0\"\n}",
											"options": {
												"raw": {
													"headerFamily": "json",
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/setWebhook",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"setWebhook"
											]
										}
									},
									"status": "Too Many Requests",
									"code": 429,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"ok\": false,\n  \"error_code\": 429,\n  \"description\": \"Too Many Requests: retry after 30\",\n  \"parameters\": {\n    \"retry_after\": 30\n  }\n}"
								},
								{
									"name": "Непредвиденная ошибка",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"url\": \"https://your-domain.com/bot-webhook\",\n  \"ip_address\": \"197.0.2.1\",\n  \"max_connections\": 40,\n  \"allowed_updates\": [\n    \"message\",\n    \"callback_query\"\n  ],\n  \"drop_pending_updates\": false,\n  \"secret_token\": \"a1b2c3d4e5f67890123456789abcdef0a1b2c3d4e5f67890123456789abcdef0\"\n}",
											"options": {
												"raw": {
													"headerFamily": "json",
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/setWebhook",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"setWebhook"
											]
										}
									},
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"ok\": false,\n  \"error_code\": 795,\n  \"description\": \"string\",\n  \"parameters\": {\n    \"retry_after\": 7808,\n    \"migrate_to_chat_id\": 9635\n  }\n}"
								}
							]
						}
					]
				},
				{
					"name": "deleteWebhook",
					"item": [
						{
							"name": "Удаление вебхука",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"pm.test(\"Status code is 200\", function () {",
											"    pm.response.to.have.status(200);",
											"});",
											"pm.test(\"Поле ok равно true\", function () {",
											"    var jsonData = pm.response.json();",
											"    pm.expect(jsonData.ok).to.eql(true);",
											"});"
										],
										"type": "text/javascript",
										"packages": {},
										"requests": {}
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									}
								],
								"url": {
									"raw": "{{baseUrl}}/bot{{token}}/deleteWebhook?drop_pending_updates=false",
									"host": [
										"{{baseUrl}}"
									],
									"path": [
										"bot{{token}}",
										"deleteWebhook"
									],
									"query": [
										{
											"key": "drop_pending_updates",
											"value": "false",
											"description": "Если передано значение true, сбрасывает все накопившиеся обновления"
										}
									]
								}
							},
							"response": [
								{
									"name": "Вебхук успешно удалён",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/deleteWebhook?drop_pending_updates=false",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"deleteWebhook"
											],
											"query": [
												{
													"key": "drop_pending_updates",
													"value": "false",
													"description": "Если передано значение true, сбрасывает все накопившиеся обновления"
												}
											]
										}
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"result\": true,\n  \"ok\": false,\n  \"description\": \"string\"\n}"
								},
								{
									"name": "Некорректный запрос",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/deleteWebhook?drop_pending_updates=false",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"deleteWebhook"
											],
											"query": [
												{
													"key": "drop_pending_updates",
													"value": "false",
													"description": "Если передано значение true, сбрасывает все накопившиеся обновления"
												}
											]
										}
									},
									"status": "Bad Request",
									"code": 400,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"ok\": false,\n  \"error_code\": 400,\n  \"description\": \"Bad Request: query parameter error\"\n}"
								},
								{
									"name": "Не авторизован (неверный токен бота)",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/deleteWebhook?drop_pending_updates=false",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"deleteWebhook"
											],
											"query": [
												{
													"key": "drop_pending_updates",
													"value": "false",
													"description": "Если передано значение true, сбрасывает все накопившиеся обновления"
												}
											]
										}
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"ok\": false,\n  \"error_code\": 401,\n  \"description\": \"Unauthorized\"\n}"
								},
								{
									"name": "Бот не найден (несуществующий токен)",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/deleteWebhook?drop_pending_updates=false",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"deleteWebhook"
											],
											"query": [
												{
													"key": "drop_pending_updates",
													"value": "false",
													"description": "Если передано значение true, сбрасывает все накопившиеся обновления"
												}
											]
										}
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"ok\": false,\n  \"error_code\": 404,\n  \"description\": \"Not Found\"\n}"
								},
								{
									"name": "Превышен лимит запросов (Too Many Requests)",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/deleteWebhook?drop_pending_updates=false",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"deleteWebhook"
											],
											"query": [
												{
													"key": "drop_pending_updates",
													"value": "false",
													"description": "Если передано значение true, сбрасывает все накопившиеся обновления"
												}
											]
										}
									},
									"status": "Too Many Requests",
									"code": 429,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"ok\": false,\n  \"error_code\": 429,\n  \"description\": \"Too Many Requests: retry after 30\",\n  \"parameters\": {\n    \"retry_after\": 30\n  }\n}"
								},
								{
									"name": "Непредвиденная ошибка",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/deleteWebhook?drop_pending_updates=false",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"deleteWebhook"
											],
											"query": [
												{
													"key": "drop_pending_updates",
													"value": "false",
													"description": "Если передано значение true, сбрасывает все накопившиеся обновления"
												}
											]
										}
									},
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"ok\": false,\n  \"error_code\": 795,\n  \"description\": \"string\",\n  \"parameters\": {\n    \"retry_after\": 7808,\n    \"migrate_to_chat_id\": 9635\n  }\n}"
								}
							]
						}
					]
				},
				{
					"name": "getWebhookInfo",
					"item": [
						{
							"name": "Получение статуса вебхука",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									}
								],
								"url": {
									"raw": "{{baseUrl}}/bot{{token}}/getWebhookInfo",
									"host": [
										"{{baseUrl}}"
									],
									"path": [
										"bot{{token}}",
										"getWebhookInfo"
									]
								}
							},
							"response": [
								{
									"name": "Информация о текущем состоянии вебхука",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/getWebhookInfo",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"getWebhookInfo"
											]
										}
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"result\": {\n    \"url\": \"string\",\n    \"has_custom_certificate\": false,\n    \"pending_update_count\": 0,\n    \"ip_address\": \"197.0.2.1\",\n    \"last_error_date\": 7145,\n    \"last_error_message\": \"string\",\n    \"last_synchronization_error_date\": 0,\n    \"max_connections\": 40,\n    \"allowed_updates\": [\n      \"message\",\n      \"callback_query\"\n    ]\n  },\n  \"ok\": true\n}"
								},
								{
									"name": "Некорректный запрос",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/getWebhookInfo",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"getWebhookInfo"
											]
										}
									},
									"status": "Bad Request",
									"code": 400,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"ok\": false,\n  \"error_code\": 400,\n  \"description\": \"Bad Request\"\n}"
								},
								{
									"name": "Не авторизован (неверный токен бота)",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/getWebhookInfo",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"getWebhookInfo"
											]
										}
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"ok\": false,\n  \"error_code\": 401,\n  \"description\": \"Unauthorized\"\n}"
								},
								{
									"name": "Бот не найден (несуществующий токен)",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/getWebhookInfo",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"getWebhookInfo"
											]
										}
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"ok\": false,\n  \"error_code\": 404,\n  \"description\": \"Not Found\"\n}"
								},
								{
									"name": "Превышен лимит запросов (Too Many Requests)",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/getWebhookInfo",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"getWebhookInfo"
											]
										}
									},
									"status": "Too Many Requests",
									"code": 429,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"ok\": false,\n  \"error_code\": 429,\n  \"description\": \"Too Many Requests: retry after 30\",\n  \"parameters\": {\n    \"retry_after\": 30\n  }\n}"
								},
								{
									"name": "Непредвиденная ошибка",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											}
										],
										"url": {
											"raw": "{{baseUrl}}/bot{{token}}/getWebhookInfo",
											"host": [
												"{{baseUrl}}"
											],
											"path": [
												"bot{{token}}",
												"getWebhookInfo"
											]
										}
									},
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"ok\": false,\n  \"error_code\": 795,\n  \"description\": \"string\",\n  \"parameters\": {\n    \"retry_after\": 7808,\n    \"migrate_to_chat_id\": 9635\n  }\n}"
								}
							]
						}
					]
				}
			]
		}
	],
	"variable": [
		{
			"key": "baseUrl",
			"value": "https://api.telegram.org"
		},
		{
			"key": "token",
			"value": "string"
		}
	]
}