diff --git a/README.md b/README.md
index 69d96222..44ba5165 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
 [](https://codecov.io/gh/pengrad/java-telegram-bot-api)
 
 Java library for interacting with [Telegram Bot API](https://core.telegram.org/bots/api)
-- Full support of all Bot API 9.0 methods
+- Full support of all Bot API 9.2 methods
 - Telegram [Passport](https://core.telegram.org/passport) and Decryption API
 - Bot [Payments](https://core.telegram.org/bots/payments)
 - [Gaming Platform](https://telegram.org/blog/games)
@@ -13,14 +13,14 @@ Java library for interacting with [Telegram Bot API](https://core.telegram.org/b
 
 Gradle:
 ```groovy
-implementation 'com.github.pengrad:java-telegram-bot-api:9.0.0'
+implementation 'com.github.pengrad:java-telegram-bot-api:9.2.0'
 ```
 Maven:
 ```xml
 
   com.github.pengrad
   java-telegram-bot-api
-  9.0.0
+  9.2.0
 
 ```
 [JAR with all dependencies on release page](https://github.com/pengrad/java-telegram-bot-api/releases)
diff --git a/README_RU.md b/README_RU.md
index fc83a4f6..443936f3 100644
--- a/README_RU.md
+++ b/README_RU.md
@@ -4,7 +4,7 @@
 [](https://codecov.io/gh/pengrad/java-telegram-bot-api)
 
 Java библиотека, созданная для работы с [Telegram Bot API](https://core.telegram.org/bots/api)
-- Полная поддержка всех методов BOT API 9.0
+- Полная поддержка всех методов BOT API 9.2
 - Поддержка Telegram [паспорта](https://core.telegram.org/passport) и дешифровки (Decryption API);
 - Поддержка [платежей](https://core.telegram.org/bots/payments);
 - [Игровая платформа](https://telegram.org/blog/games).
@@ -13,14 +13,14 @@ Java библиотека, созданная для работы с [Telegram B
 
 Gradle:
 ```groovy
-implementation 'com.github.pengrad:java-telegram-bot-api:9.0.0'
+implementation 'com.github.pengrad:java-telegram-bot-api:9.2.0'
 ```
 Maven:
 ```xml
 
   com.github.pengrad
   java-telegram-bot-api
-  9.0.0
+  9.2.0
 
 ```
 Также JAR со всеми зависимостями можно найти [в релизах](https://github.com/pengrad/java-telegram-bot-api/releases).
diff --git a/gradle.properties b/gradle.properties
index eabaeda8..1c9d7cdc 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,5 +1,5 @@
 GROUP=com.github.pengrad
-VERSION_NAME=9.0.0
+VERSION_NAME=9.2.0
 
 POM_DESCRIPTION=Java API for Telegram Bot API
 POM_URL=https://github.com/pengrad/java-telegram-bot-api/
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/Chat.java b/library/src/main/java/com/pengrad/telegrambot/model/Chat.java
index 7f21cb31..dfdf7bdd 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/Chat.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/Chat.java
@@ -31,6 +31,8 @@ public enum Type {
 
     private Boolean is_forum;
 
+    private Boolean is_direct_messages;
+
     public Long id() {
         return id;
     }
@@ -55,6 +57,10 @@ public Boolean isForum() {
         return is_forum != null && is_forum;
     }
 
+    public Boolean isDirectMessages() {
+        return is_direct_messages != null && is_direct_messages;
+    }
+
     public String title() {
         return title;
     }
@@ -69,6 +75,7 @@ public boolean equals(Object o) {
                 Objects.equals(first_name, chat.first_name) &&
                 Objects.equals(last_name, chat.last_name) &&
                 Objects.equals(is_forum, chat.is_forum) &&
+                Objects.equals(is_direct_messages, chat.is_direct_messages) &&
                 Objects.equals(username, chat.username) &&
                 Objects.equals(title, chat.title);
     }
@@ -86,6 +93,7 @@ public String toString() {
                 ", first_name='" + first_name + '\'' +
                 ", last_name='" + last_name + '\'' +
                 ", is_forum=" + is_forum +
+                ", is_direct_messages=" + is_direct_messages +
                 ", username='" + username + '\'' +
                 ", title='" + title + '\'' +                
                 '}';
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/ChatAdministratorRights.java b/library/src/main/java/com/pengrad/telegrambot/model/ChatAdministratorRights.java
index 25fe017b..621e2313 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/ChatAdministratorRights.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/ChatAdministratorRights.java
@@ -26,6 +26,7 @@ public class ChatAdministratorRights implements Serializable {
     private Boolean can_edit_stories;
     private Boolean can_delete_stories;
     private Boolean can_manage_topics;
+    private Boolean can_manage_direct_messages;
 
     public Boolean isAnonymous() {
         return is_anonymous != null && is_anonymous;
@@ -87,6 +88,10 @@ public Boolean canManageTopics() {
         return can_manage_topics != null && can_manage_topics;
     }
 
+    public Boolean canManageDirectMessages() {
+        return can_manage_direct_messages != null && can_manage_direct_messages;
+    }
+
     public ChatAdministratorRights canManageChat(boolean canManageChat) {
         this.can_manage_chat = canManageChat;
         return this;
@@ -157,6 +162,11 @@ public ChatAdministratorRights canManageTopics(boolean canManageTopics) {
         return this;
     }
 
+    public ChatAdministratorRights canManageDirectMessages(boolean can_manage_direct_messages) {
+        this.can_manage_direct_messages = can_manage_direct_messages;
+        return this;
+    }
+
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;
@@ -177,7 +187,8 @@ public boolean equals(Object o) {
                 Objects.equals(can_post_stories, that.can_post_stories) &&
                 Objects.equals(can_edit_stories, that.can_edit_stories) &&
                 Objects.equals(can_delete_stories, that.can_delete_stories) &&
-                Objects.equals(can_manage_topics, that.can_manage_topics);
+                Objects.equals(can_manage_topics, that.can_manage_topics) &&
+                Objects.equals(can_manage_direct_messages, that.can_manage_direct_messages);
     }
 
     @Override
@@ -196,7 +207,8 @@ public int hashCode() {
                 can_post_stories,
                 can_edit_stories,
                 can_delete_stories,
-                can_manage_topics);
+                can_manage_topics,
+                can_manage_direct_messages);
     }
 
     @Override
@@ -217,6 +229,7 @@ public String toString() {
                 ", can_edit_stories=" + can_edit_stories +
                 ", can_delete_stories=" + can_delete_stories +
                 ", can_manage_topics=" + can_manage_topics +
+                ", can_manage_direct_messages=" + can_manage_direct_messages +
                 '}';
     }
 
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/ChatFullInfo.java b/library/src/main/java/com/pengrad/telegrambot/model/ChatFullInfo.java
index bbddf1b4..30e08d85 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/ChatFullInfo.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/ChatFullInfo.java
@@ -34,6 +34,7 @@ public enum Type {
     private String last_name;
 
     private Boolean is_forum;
+    private Boolean is_direct_messages;
     private ChatPhoto photo;
     private String[] active_usernames;
     private Birthdate birthdate;
@@ -41,6 +42,7 @@ public enum Type {
     private BusinessLocation business_location;
     private BusinessOpeningHours business_opening_hours;
     private Chat personal_chat;
+    private Chat parent_chat;
     private ReactionType[] available_reactions;
     private Integer accent_color_id;
     private Integer max_reaction_count;
@@ -98,6 +100,10 @@ public Boolean isForum() {
         return is_forum != null && is_forum;
     }
 
+    public Boolean isDirectMessages() {
+        return is_direct_messages != null && is_direct_messages;
+    }
+
     public String title() {
         return title;
     }
@@ -130,6 +136,10 @@ public Chat personalChat() {
         return personal_chat;
     }
 
+    public Chat parentChat() {
+        return parent_chat;
+    }
+
     public ReactionType[] availableReactions() {
         return available_reactions;
     }
@@ -272,6 +282,7 @@ public boolean equals(Object o) {
                 Objects.equals(first_name, chat.first_name) &&
                 Objects.equals(last_name, chat.last_name) &&
                 Objects.equals(is_forum, chat.is_forum) &&
+                Objects.equals(is_direct_messages, chat.is_direct_messages) &&
                 Objects.equals(username, chat.username) &&
                 Objects.equals(title, chat.title) &&
                 Objects.equals(photo, chat.photo) &&
@@ -281,6 +292,7 @@ public boolean equals(Object o) {
                 Objects.equals(business_location, chat.business_location) &&
                 Objects.equals(business_opening_hours, chat.business_opening_hours) &&
                 Objects.equals(personal_chat, chat.personal_chat) &&
+                Objects.equals(parent_chat, chat.parent_chat) &&
                 Arrays.equals(available_reactions, chat.available_reactions) &&
                 Objects.equals(accent_color_id, chat.accent_color_id) &&
                 Objects.equals(max_reaction_count, chat.max_reaction_count) &&
@@ -327,6 +339,7 @@ public String toString() {
                 ", first_name='" + first_name + '\'' +
                 ", last_name='" + last_name + '\'' +
                 ", is_forum=" + is_forum +
+                ", is_direct_messages=" + is_direct_messages +
                 ", username='" + username + '\'' +
                 ", title='" + title + '\'' +
                 ", photo=" + photo +
@@ -336,6 +349,7 @@ public String toString() {
                 ", business_location=" + business_location +
                 ", business_opening_hours=" + business_opening_hours +
                 ", personal_chat=" + personal_chat +
+                ", parent_chat=" + parent_chat +
                 ", available_reactions=" + Arrays.toString(available_reactions) +
                 ", accent_color_id=" + accent_color_id +
                 ", max_reaction_count=" + max_reaction_count +
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/ChatMember.java b/library/src/main/java/com/pengrad/telegrambot/model/ChatMember.java
index ee39a312..182756c1 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/ChatMember.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/ChatMember.java
@@ -35,6 +35,7 @@ public enum Status {
     private Boolean can_edit_stories;
     private Boolean can_delete_stories;
     private Boolean can_manage_topics;
+    private Boolean can_manage_direct_messages;
     private Boolean is_member;
     private Boolean can_send_messages;
 
@@ -129,6 +130,10 @@ public Boolean canManageTopics() {
         return can_manage_topics != null && can_manage_topics;
     }
 
+    public Boolean canManageDirectMessages() {
+        return can_manage_direct_messages != null && can_manage_direct_messages;
+    }
+
     public Boolean isMember() {
         return is_member != null && is_member;
     }
@@ -198,6 +203,7 @@ public boolean equals(Object o) {
                 Objects.equals(can_edit_stories, that.can_edit_stories) &&
                 Objects.equals(can_delete_stories, that.can_delete_stories) &&
                 Objects.equals(can_manage_topics, that.can_manage_topics) &&
+                Objects.equals(can_manage_direct_messages, that.can_manage_direct_messages) &&
                 Objects.equals(is_member, that.is_member) &&
                 Objects.equals(can_send_messages, that.can_send_messages) &&
                 Objects.equals(can_send_audios, that.can_send_audios) &&
@@ -233,6 +239,7 @@ public int hashCode() {
                 can_edit_stories,
                 can_delete_stories,
                 can_manage_topics,
+                can_manage_direct_messages,
                 is_member,
                 can_send_messages,
                 can_send_audios,
@@ -269,6 +276,7 @@ public String toString() {
                 ", can_edit_stories=" + can_edit_stories +
                 ", can_delete_stories=" + can_delete_stories +
                 ", can_manage_topics=" + can_manage_topics +
+                ", can_manage_direct_messages=" + can_manage_direct_messages +
                 ", is_member=" + is_member +
                 ", can_send_messages=" + can_send_messages +
                 ", can_send_audios=" + can_send_audios +
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/DirectMessagesTopic.kt b/library/src/main/java/com/pengrad/telegrambot/model/DirectMessagesTopic.kt
new file mode 100644
index 00000000..8a5f719b
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/DirectMessagesTopic.kt
@@ -0,0 +1,8 @@
+package com.pengrad.telegrambot.model
+
+@Suppress("unused")
+data class DirectMessagesTopic (
+    @get:JvmName("topicId") val topicId: Int,
+    @get:JvmName("user") val user: User?
+) {
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/ExternalReplyInfo.java b/library/src/main/java/com/pengrad/telegrambot/model/ExternalReplyInfo.java
index a4a8939a..f45150f4 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/ExternalReplyInfo.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/ExternalReplyInfo.java
@@ -1,5 +1,6 @@
 package com.pengrad.telegrambot.model;
 
+import com.pengrad.telegrambot.model.checklist.Checklist;
 import com.pengrad.telegrambot.model.giveaway.Giveaway;
 import com.pengrad.telegrambot.model.giveaway.GiveawayWinners;
 import com.pengrad.telegrambot.model.message.origin.MessageOrigin;
@@ -28,6 +29,7 @@ public class ExternalReplyInfo implements Serializable {
     private VideoNote video_note;
     private Voice voice;
     private Boolean has_media_spoiler;
+    private Checklist checklist;
     private Contact contact;
     private Dice dice;
     private Game game;
@@ -97,6 +99,10 @@ public Boolean hasMediaSpoiler() {
         return has_media_spoiler;
     }
 
+    public Checklist checklist() {
+        return checklist;
+    }
+
     public Contact contact() {
         return contact;
     }
@@ -138,12 +144,12 @@ public boolean equals(Object o) {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
         ExternalReplyInfo that = (ExternalReplyInfo) o;
-        return Objects.equals(origin, that.origin) && Objects.equals(chat, that.chat) && Objects.equals(message_id, that.message_id) && Objects.equals(link_preview_options, that.link_preview_options) && Objects.equals(animation, that.animation) && Objects.equals(audio, that.audio) && Objects.equals(paid_media, that.paid_media) && Objects.equals(document, that.document) && Arrays.equals(photo, that.photo) && Objects.equals(sticker, that.sticker) && Objects.equals(story, that.story) && Objects.equals(video, that.video) && Objects.equals(video_note, that.video_note) && Objects.equals(voice, that.voice) && Objects.equals(has_media_spoiler, that.has_media_spoiler) && Objects.equals(contact, that.contact) && Objects.equals(dice, that.dice) && Objects.equals(game, that.game) && Objects.equals(giveaway, that.giveaway) && Objects.equals(giveaway_winners, that.giveaway_winners) && Objects.equals(invoice, that.invoice) && Objects.equals(location, that.location) && Objects.equals(poll, that.poll) && Objects.equals(venue, that.venue);
+        return Objects.equals(origin, that.origin) && Objects.equals(chat, that.chat) && Objects.equals(message_id, that.message_id) && Objects.equals(link_preview_options, that.link_preview_options) && Objects.equals(animation, that.animation) && Objects.equals(audio, that.audio) && Objects.equals(paid_media, that.paid_media) && Objects.equals(document, that.document) && Arrays.equals(photo, that.photo) && Objects.equals(sticker, that.sticker) && Objects.equals(story, that.story) && Objects.equals(video, that.video) && Objects.equals(video_note, that.video_note) && Objects.equals(voice, that.voice) && Objects.equals(has_media_spoiler, that.has_media_spoiler) && Objects.equals(checklist, that.checklist) && Objects.equals(contact, that.contact) && Objects.equals(dice, that.dice) && Objects.equals(game, that.game) && Objects.equals(giveaway, that.giveaway) && Objects.equals(giveaway_winners, that.giveaway_winners) && Objects.equals(invoice, that.invoice) && Objects.equals(location, that.location) && Objects.equals(poll, that.poll) && Objects.equals(venue, that.venue);
     }
 
     @Override
     public int hashCode() {
-        int result = Objects.hash(origin, chat, message_id, link_preview_options, animation, audio, paid_media, document, sticker, story, video, video_note, voice, has_media_spoiler, contact, dice, game, giveaway, giveaway_winners, invoice, location, poll, venue);
+        int result = Objects.hash(origin, chat, message_id, link_preview_options, animation, audio, paid_media, document, sticker, story, video, video_note, voice, has_media_spoiler, checklist, contact, dice, game, giveaway, giveaway_winners, invoice, location, poll, venue);
         result = 31 * result + Arrays.hashCode(photo);
         return result;
     }
@@ -166,6 +172,7 @@ public String toString() {
                 ", video_note=" + video_note +
                 ", voice=" + voice +
                 ", has_media_spoiler=" + has_media_spoiler +
+                ", checklist=" + checklist +
                 ", contact=" + contact +
                 ", dice=" + dice +
                 ", game=" + game +
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/Message.java b/library/src/main/java/com/pengrad/telegrambot/model/Message.java
index fad61402..7cc7e433 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/Message.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/Message.java
@@ -2,6 +2,9 @@
 
 import com.pengrad.telegrambot.model.chatbackground.ChatBackground;
 import com.pengrad.telegrambot.model.chatboost.ChatBoostAdded;
+import com.pengrad.telegrambot.model.checklist.Checklist;
+import com.pengrad.telegrambot.model.checklist.ChecklistTasksAdded;
+import com.pengrad.telegrambot.model.checklist.ChecklistTasksDone;
 import com.pengrad.telegrambot.model.gift.GiftInfo;
 import com.pengrad.telegrambot.model.gift.unique.UniqueGiftInfo;
 import com.pengrad.telegrambot.model.giveaway.Giveaway;
@@ -12,6 +15,9 @@
 import com.pengrad.telegrambot.model.message.origin.*;
 import com.pengrad.telegrambot.model.paidmedia.PaidMediaInfo;
 import com.pengrad.telegrambot.model.request.InlineKeyboardMarkup;
+import com.pengrad.telegrambot.model.stars.DirectMessagePriceChanged;
+import com.pengrad.telegrambot.model.stars.PaidMessagePriceChanged;
+import com.pengrad.telegrambot.model.suggestedposts.*;
 import com.pengrad.telegrambot.passport.PassportData;
 
 import java.io.Serializable;
@@ -26,6 +32,7 @@ public class Message extends MaybeInaccessibleMessage implements Serializable {
     private final static long serialVersionUID = 0L;
 
     private Integer message_thread_id;
+    private DirectMessagesTopic direct_messages_topic;
     private User from;
     private Chat sender_chat;
     private Integer sender_boost_count;
@@ -38,10 +45,12 @@ public class Message extends MaybeInaccessibleMessage implements Serializable {
     private ExternalReplyInfo external_reply;
     private TextQuote quote;
     private Story reply_to_story;
+    private Integer reply_to_checklist_task_id;
     private User via_bot;
     private Integer edit_date;
     private Boolean has_protected_content;
     private Boolean is_from_offline;
+    private Boolean is_paid_post;
     private Boolean has_media_spoiler;
     private String media_group_id;
     private String author_signature;
@@ -50,6 +59,7 @@ public class Message extends MaybeInaccessibleMessage implements Serializable {
     private MessageEntity[] caption_entities;
     private Boolean show_caption_above_media;
     private LinkPreviewOptions link_preview_options;
+    private SuggestedPostInfo suggested_post_info;
     private String effect_id;
     private Audio audio;
     private PaidMediaInfo paid_media;
@@ -62,6 +72,9 @@ public class Message extends MaybeInaccessibleMessage implements Serializable {
     private Voice voice;
     private VideoNote video_note;
     private String caption;
+    private Checklist checklist;
+    private ChecklistTasksDone checklist_tasks_done;
+    private ChecklistTasksAdded checklist_tasks_added;
     private Contact contact;
     private Location location;
     private Venue venue;
@@ -110,12 +123,22 @@ public class Message extends MaybeInaccessibleMessage implements Serializable {
     private GiftInfo gift;
     private UniqueGiftInfo unique_gift;
     private PaidMessagePriceChanged paid_message_price_changed;
+    private SuggestedPostApproved suggested_post_approved;
+    private SuggestedPostApprovalFailed suggested_post_approval_failed;
+    private SuggestedPostDeclined suggested_post_declined;
+    private SuggestedPostPaid suggested_post_paid;
+    private SuggestedPostRefunded suggested_post_refunded;
+    private DirectMessagePriceChanged direct_message_price_changed;
     private Integer paid_star_count;
 
     public Integer messageThreadId() {
         return message_thread_id;
     }
 
+    public DirectMessagesTopic directMessagesTopic() {
+        return direct_messages_topic;
+    }
+
     public User from() {
         return from;
     }
@@ -164,6 +187,10 @@ public Story replyToStory() {
         return reply_to_story;
     }
 
+    public Integer replyToChecklistTaskId() {
+        return reply_to_checklist_task_id;
+    }
+
     public User viaBot() {
         return via_bot;
     }
@@ -180,6 +207,10 @@ public Boolean isFromOffline() {
         return is_from_offline != null && is_from_offline;
     }
 
+    public Boolean isPaidPost() {
+        return is_paid_post != null && is_paid_post;
+    }
+
     public Boolean hasMediaSpoiler() {
         return has_media_spoiler != null && has_media_spoiler;
     }
@@ -213,6 +244,10 @@ public LinkPreviewOptions linkPreviewOptions() {
         return link_preview_options;
     }
 
+    public SuggestedPostInfo suggestedPostInfo() {
+        return suggested_post_info;
+    }
+
     public String effectId() {
         return effect_id;
     }
@@ -261,6 +296,18 @@ public String caption() {
         return caption;
     }
 
+    public Checklist checklist() {
+        return checklist;
+    }
+
+    public ChecklistTasksDone checklistTasksDone() {
+        return checklist_tasks_done;
+    }
+
+    public ChecklistTasksAdded checklistTasksAdded() {
+        return checklist_tasks_added;
+    }
+
     public Contact contact() {
         return contact;
     }
@@ -453,6 +500,30 @@ public PaidMessagePriceChanged paidMessagePriceChanged() {
         return paid_message_price_changed;
     }
 
+    public SuggestedPostApproved suggestedPostApproved() {
+        return suggested_post_approved;
+    }
+
+    public SuggestedPostApprovalFailed suggestedPostApprovalFailed() {
+        return suggested_post_approval_failed;
+    }
+
+    public SuggestedPostDeclined suggestedPostDeclined() {
+        return suggested_post_declined;
+    }
+
+    public SuggestedPostPaid suggestedPostPaid() {
+        return suggested_post_paid;
+    }
+
+    public SuggestedPostRefunded suggestedPostRefunded() {
+        return suggested_post_refunded;
+    }
+
+    public DirectMessagePriceChanged directMessagePriceChanged() {
+        return direct_message_price_changed;
+    }
+
     public Integer paidStarCount() {
         return paid_star_count;
     }
@@ -485,6 +556,7 @@ public boolean equals(Object o) {
         Message message = (Message) o;
         return Objects.equals(message_id, message.message_id) &&
                 Objects.equals(message_thread_id, message.message_thread_id) &&
+                Objects.equals(direct_messages_topic, message.direct_messages_topic) &&
                 Objects.equals(from, message.from) &&
                 Objects.equals(sender_chat, message.sender_chat) &&
                 Objects.equals(sender_boost_count, message.sender_boost_count) &&
@@ -499,10 +571,12 @@ public boolean equals(Object o) {
                 Objects.equals(external_reply, message.external_reply) &&
                 Objects.equals(quote, message.quote) &&
                 Objects.equals(reply_to_story, message.reply_to_story) &&
+                Objects.equals(reply_to_checklist_task_id, message.reply_to_checklist_task_id) &&
                 Objects.equals(via_bot, message.via_bot) &&
                 Objects.equals(edit_date, message.edit_date) &&
                 Objects.equals(has_protected_content, message.has_protected_content) &&
                 Objects.equals(is_from_offline, message.is_from_offline) &&
+                Objects.equals(is_paid_post, message.is_paid_post) &&
                 Objects.equals(has_media_spoiler, message.has_media_spoiler) &&
                 Objects.equals(media_group_id, message.media_group_id) &&
                 Objects.equals(author_signature, message.author_signature) &&
@@ -511,6 +585,7 @@ public boolean equals(Object o) {
                 Arrays.equals(caption_entities, message.caption_entities) &&
                 Objects.equals(show_caption_above_media, message.show_caption_above_media) &&
                 Objects.equals(link_preview_options, message.link_preview_options) &&
+                Objects.equals(suggested_post_info, message.suggested_post_info) &&
                 Objects.equals(effect_id, message.effect_id) &&
                 Objects.equals(audio, message.audio) &&
                 Objects.equals(paid_media, message.paid_media) &&
@@ -523,6 +598,9 @@ public boolean equals(Object o) {
                 Objects.equals(voice, message.voice) &&
                 Objects.equals(video_note, message.video_note) &&
                 Objects.equals(caption, message.caption) &&
+                Objects.equals(checklist, message.checklist) &&
+                Objects.equals(checklist_tasks_done, message.checklist_tasks_done) &&
+                Objects.equals(checklist_tasks_added, message.checklist_tasks_added) &&
                 Objects.equals(contact, message.contact) &&
                 Objects.equals(location, message.location) &&
                 Objects.equals(venue, message.venue) &&
@@ -571,6 +649,12 @@ public boolean equals(Object o) {
                 Objects.equals(gift, message.gift) &&
                 Objects.equals(unique_gift, message.unique_gift) &&
                 Objects.equals(paid_message_price_changed, message.paid_message_price_changed) &&
+                Objects.equals(suggested_post_approved, message.suggested_post_approved) &&
+                Objects.equals(suggested_post_approval_failed, message.suggested_post_approval_failed) &&
+                Objects.equals(suggested_post_declined, message.suggested_post_declined) &&
+                Objects.equals(suggested_post_paid, message.suggested_post_paid) &&
+                Objects.equals(suggested_post_refunded, message.suggested_post_refunded) &&
+                Objects.equals(direct_message_price_changed, message.direct_message_price_changed) &&
                 Objects.equals(paid_star_count, message.paid_star_count);
     }
 
@@ -584,6 +668,7 @@ public String toString() {
         return "Message{" +
                 "message_id=" + message_id +
                 ", message_thread_id=" + message_thread_id +
+                ", direct_messages_topic=" + direct_messages_topic +
                 ", from=" + from +
                 ", sender_chat=" + sender_chat +
                 ", sender_boost_count=" + sender_boost_count +
@@ -598,10 +683,12 @@ public String toString() {
                 ", external_reply=" + external_reply +
                 ", quote=" + quote +
                 ", reply_to_story=" + reply_to_story +
+                ", reply_to_checklist_task_id=" + reply_to_checklist_task_id +
                 ", via_bot=" + via_bot +
                 ", edit_date=" + edit_date +
                 ", has_protected_content=" + has_protected_content +
                 ", is_from_offline=" + is_from_offline +
+                ", is_paid_post=" + is_paid_post +
                 ", has_media_spoiler=" + has_media_spoiler +
                 ", media_group_id='" + media_group_id + '\'' +
                 ", author_signature='" + author_signature + '\'' +
@@ -610,6 +697,7 @@ public String toString() {
                 ", caption_entities=" + Arrays.toString(caption_entities) +
                 ", show_caption_above_media=" + show_caption_above_media +
                 ", link_preview_options=" + link_preview_options +
+                ", suggested_post_info=" + suggested_post_info +
                 ", effect_id=" + effect_id +
                 ", audio=" + audio +
                 ", paid_media=" + paid_media +
@@ -622,6 +710,9 @@ public String toString() {
                 ", voice=" + voice +
                 ", video_note=" + video_note +
                 ", caption='" + caption + '\'' +
+                ", checklist=" + checklist +
+                ", checklist_tasks_done=" + checklist_tasks_done +
+                ", checklist_tasks_added=" + checklist_tasks_added +
                 ", contact=" + contact +
                 ", location=" + location +
                 ", venue=" + venue +
@@ -670,6 +761,12 @@ public String toString() {
                 ", gift=" + gift +
                 ", unique_gift=" + unique_gift +
                 ", paid_message_price_changed=" + paid_message_price_changed +
+                ", suggested_post_approved=" + suggested_post_approved +
+                ", suggested_post_approval_failed=" + suggested_post_approval_failed +
+                ", suggested_post_declined=" + suggested_post_declined +
+                ", suggested_post_paid=" + suggested_post_paid +
+                ", suggested_post_refunded=" + suggested_post_refunded +
+                ", direct_message_price_changed=" + direct_message_price_changed +
                 ", paid_star_count=" + paid_star_count +
                 '}';
     }
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/Video.kt b/library/src/main/java/com/pengrad/telegrambot/model/Video.kt
index 7c10da58..cc932f59 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/Video.kt
+++ b/library/src/main/java/com/pengrad/telegrambot/model/Video.kt
@@ -21,17 +21,17 @@ data class Video(
 ) {
 
     /**
-     * Backwards compatability for Java code because of Kotlin optimization
+     * Backwards compatibility for Java code because of Kotlin optimization
      */
     fun width() = width as JavaInteger
 
     /**
-     * Backwards compatability for Java code because of Kotlin optimization
+     * Backwards compatibility for Java code because of Kotlin optimization
      */
     fun height() = height as JavaInteger
 
     /**
-     * Backwards compatability for Java code because of Kotlin optimization
+     * Backwards compatibility for Java code because of Kotlin optimization
      */
     fun duration() = duration as JavaInteger
 
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/checklist/Checklist.kt b/library/src/main/java/com/pengrad/telegrambot/model/checklist/Checklist.kt
new file mode 100644
index 00000000..ebb7ac63
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/checklist/Checklist.kt
@@ -0,0 +1,34 @@
+package com.pengrad.telegrambot.model.checklist
+
+import com.pengrad.telegrambot.model.MessageEntity
+
+data class Checklist(
+
+    @get:JvmName("title") val title: String,
+    @get:JvmName("titleEntities") val titleEntities: Array?,
+    @get:JvmName("tasks") val tasks: Array,
+    @get:JvmName("othersCanAddTasks") val othersCanAddTasks: Boolean?,
+    @get:JvmName("othersCanMarkTasksAsDone") val othersCanMarkTasksAsDone: Boolean?
+) {
+
+    override fun equals(other: Any?): Boolean {
+        if (this === other) return true
+        if (other !is Checklist) return false
+
+        return title == other.title &&
+                titleEntities contentEquals other.titleEntities &&
+                tasks contentEquals other.tasks &&
+                othersCanAddTasks == other.othersCanAddTasks &&
+                othersCanMarkTasksAsDone == other.othersCanMarkTasksAsDone
+    }
+
+    override fun hashCode(): Int {
+        var result = title.hashCode()
+        result = 31 * result + (titleEntities?.contentHashCode() ?: 0)
+        result = 31 * result + (tasks?.contentHashCode() ?: 0)
+        result = 31 * result + (othersCanAddTasks?.hashCode() ?: 0)
+        result = 31 * result + (othersCanMarkTasksAsDone?.hashCode() ?: 0)
+        return result
+    }
+
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTask.kt b/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTask.kt
new file mode 100644
index 00000000..184b133e
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTask.kt
@@ -0,0 +1,36 @@
+package com.pengrad.telegrambot.model.checklist
+
+import com.pengrad.telegrambot.model.MessageEntity
+import com.pengrad.telegrambot.model.User
+
+data class ChecklistTask(
+
+    @get:JvmName("id") val id: Int,
+    @get:JvmName("text") val text: String,
+    @get:JvmName("textEntities") val textEntities: Array?,
+    @get:JvmName("completedByUser") val completedByUser: User?,
+    @get:JvmName("completionDate") val completionDate: Int?
+
+) {
+
+    override fun equals(other: Any?): Boolean {
+        if (this === other) return true
+        if (other !is ChecklistTask) return false
+
+        return id == other.id &&
+                text == other.text &&
+                textEntities contentEquals other.textEntities &&
+                completedByUser == other.completedByUser &&
+                completionDate == other.completionDate
+    }
+
+    override fun hashCode(): Int {
+        var result = id.hashCode()
+        result = 31 * result + (text?.hashCode() ?: 0)
+        result = 31 * result + (textEntities?.contentHashCode() ?: 0)
+        result = 31 * result + (completedByUser?.hashCode() ?: 0)
+        result = 31 * result + (completionDate?.hashCode() ?: 0)
+        return result
+    }
+
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTasksAdded.kt b/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTasksAdded.kt
new file mode 100644
index 00000000..dd23b0ac
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTasksAdded.kt
@@ -0,0 +1,24 @@
+package com.pengrad.telegrambot.model.checklist
+
+import com.pengrad.telegrambot.model.Message
+
+data class ChecklistTasksAdded (
+    @get:JvmName("checklistMessage") val checklistMessage: Message?,
+    @get:JvmName("tasks") val tasks: Array?
+){
+
+    override fun equals(other: Any?): Boolean {
+        if (this === other) return true
+        if (other !is ChecklistTasksAdded) return false
+
+        return checklistMessage == other.checklistMessage &&
+                tasks contentEquals other.tasks
+    }
+
+    override fun hashCode(): Int {
+        var result = checklistMessage.hashCode()
+        result = 31 * result + (tasks?.hashCode() ?: 0)
+        return result
+    }
+
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTasksDone.kt b/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTasksDone.kt
new file mode 100644
index 00000000..693b3a20
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTasksDone.kt
@@ -0,0 +1,29 @@
+package com.pengrad.telegrambot.model.checklist
+
+import com.pengrad.telegrambot.model.Message
+
+data class ChecklistTasksDone (
+
+    @get:JvmName("checklistMessage") val checklistMessage: Message?,
+    @get:JvmName("markedAsDoneTaskIds") val markedAsDoneTaskIds: Array?,
+    @get:JvmName("markedAsNotDoneTaskIds") val markedAsNotDoneTaskIds: Array?
+
+){
+
+    override fun equals(other: Any?): Boolean {
+        if (this === other) return true
+        if (other !is ChecklistTasksDone) return false
+
+        return checklistMessage == other.checklistMessage &&
+                markedAsDoneTaskIds contentEquals other.markedAsDoneTaskIds &&
+                markedAsNotDoneTaskIds contentEquals other.markedAsNotDoneTaskIds
+    }
+
+    override fun hashCode(): Int {
+        var result = checklistMessage.hashCode()
+        result = 31 * result + (markedAsDoneTaskIds?.hashCode() ?: 0)
+        result = 31 * result + (markedAsNotDoneTaskIds?.hashCode() ?: 0)
+        return result
+    }
+
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/checklist/InputChecklist.kt b/library/src/main/java/com/pengrad/telegrambot/model/checklist/InputChecklist.kt
new file mode 100644
index 00000000..16867944
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/checklist/InputChecklist.kt
@@ -0,0 +1,40 @@
+package com.pengrad.telegrambot.model.checklist
+
+import com.pengrad.telegrambot.model.MessageEntity
+
+@Suppress("unused")
+class InputChecklist private constructor(
+    @get:JvmName("title") val title: String,
+    @get:JvmName("parseMode") var parseMode: String?,
+    @get:JvmName("titleEntities") var titleEntities: Array?,
+    @get:JvmName("tasks") val tasks: Array,
+    @get:JvmName("othersCanAddTasks") var othersCanAddTasks: Boolean?,
+    @get:JvmName("othersCanMarkTasksAsDone") var othersCanMarkTasksAsDone: Boolean?,
+) {
+
+    constructor(title: String, tasks: Array) : this(
+        title = title,
+        tasks = tasks,
+        parseMode = null,
+        titleEntities = null,
+        othersCanAddTasks = null,
+        othersCanMarkTasksAsDone = null
+    )
+
+    fun parseMode(parseMode: String) = apply {
+        this.parseMode = parseMode
+    }
+
+    fun titleEntities(titleEntities: Array) = apply {
+        this.titleEntities = titleEntities
+    }
+
+    fun othersCanAddTasks(othersCanAddTasks: Boolean) = apply {
+        this.othersCanAddTasks = othersCanAddTasks
+    }
+
+    fun othersCanMarkTasksAsDone(othersCanMarkTasksAsDone: Boolean) = apply {
+        this.othersCanMarkTasksAsDone = othersCanMarkTasksAsDone
+    }
+
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/checklist/InputChecklistTask.kt b/library/src/main/java/com/pengrad/telegrambot/model/checklist/InputChecklistTask.kt
new file mode 100644
index 00000000..31ed3407
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/checklist/InputChecklistTask.kt
@@ -0,0 +1,28 @@
+package com.pengrad.telegrambot.model.checklist
+
+import com.pengrad.telegrambot.model.MessageEntity
+
+@Suppress("unused")
+class InputChecklistTask private constructor (
+    @get:JvmName("id") val id: Int,
+    @get:JvmName("text") val text: String,
+    @get:JvmName("parseMode") var parseMode: String?,
+    @get:JvmName("textEntities") var textEntities: Array?
+){
+
+    constructor(id: Int, text: String) : this(
+        id = id,
+        text = text,
+        parseMode = null,
+        textEntities = null
+    )
+
+    fun parseMode(parseMode: String) = apply {
+        this.parseMode = parseMode
+    }
+
+    fun textEntities(textEntities: Array) = apply {
+        this.textEntities = textEntities
+    }
+
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/gift/Gift.kt b/library/src/main/java/com/pengrad/telegrambot/model/gift/Gift.kt
index 810f7f2e..fe35e2e5 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/gift/Gift.kt
+++ b/library/src/main/java/com/pengrad/telegrambot/model/gift/Gift.kt
@@ -1,5 +1,6 @@
 package com.pengrad.telegrambot.model.gift
 
+import com.pengrad.telegrambot.model.Chat
 import com.pengrad.telegrambot.model.Sticker
 
 data class Gift(
@@ -8,5 +9,6 @@ data class Gift(
     @get:JvmName("starCount") val starCount: Int,
     @get:JvmName("upgradeStarCount") val upgradeStarCount: Int? = null,
     @get:JvmName("totalCount") val totalCount: Int? = null,
-    @get:JvmName("remainingCount") val remainingCount: Int? = null
+    @get:JvmName("remainingCount") val remainingCount: Int? = null,
+    @get:JvmName("publisherChat") val publisherChat: Chat? = null
 )
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/gift/owned/OwnedGiftUnique.kt b/library/src/main/java/com/pengrad/telegrambot/model/gift/owned/OwnedGiftUnique.kt
index 6ed4a04c..74888022 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/gift/owned/OwnedGiftUnique.kt
+++ b/library/src/main/java/com/pengrad/telegrambot/model/gift/owned/OwnedGiftUnique.kt
@@ -11,7 +11,8 @@ class OwnedGiftUnique(
     @get:JvmName("sendDate") var sendDate: Long,
     @get:JvmName("isSaved") var isSaved: Boolean?,
     @get:JvmName("canBeTransferred") var canBeTransferred: Boolean?,
-    @get:JvmName("transferStarCount") var prepaidUpgradeStarCount: Int?
+    @get:JvmName("transferStarCount") var prepaidUpgradeStarCount: Int?,
+    @get:JvmName("nextTransferDate") var nextTransferDate: Long?
 ) : OwnedGift(type = TYPE) {
 
     companion object {
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/gift/unique/UniqueGift.kt b/library/src/main/java/com/pengrad/telegrambot/model/gift/unique/UniqueGift.kt
index 0416a67d..a80c9ebd 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/gift/unique/UniqueGift.kt
+++ b/library/src/main/java/com/pengrad/telegrambot/model/gift/unique/UniqueGift.kt
@@ -1,5 +1,7 @@
 package com.pengrad.telegrambot.model.gift.unique
 
+import com.pengrad.telegrambot.model.Chat
+
 @Suppress("unused")
 data class UniqueGift(
     @get:JvmName("baseName") val baseName: String,
@@ -7,5 +9,6 @@ data class UniqueGift(
     @get:JvmName("number") val number: Int,
     @get:JvmName("model") val model: UniqueGiftModel,
     @get:JvmName("symbol") val symbol: UniqueGiftSymbol,
-    @get:JvmName("backdrop") val backdrop: UniqueGiftBackdrop
+    @get:JvmName("backdrop") val backdrop: UniqueGiftBackdrop,
+    @get:JvmName("publisherChat") val publisherChat: Chat? = null
 )
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/gift/unique/UniqueGiftInfo.kt b/library/src/main/java/com/pengrad/telegrambot/model/gift/unique/UniqueGiftInfo.kt
index f07f49c5..bf60fa6a 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/gift/unique/UniqueGiftInfo.kt
+++ b/library/src/main/java/com/pengrad/telegrambot/model/gift/unique/UniqueGiftInfo.kt
@@ -5,5 +5,7 @@ data class UniqueGiftInfo(
     @get:JvmName("gift")  val gift: UniqueGift,
     @get:JvmName("origin")  val origin: String,
     @get:JvmName("ownedGiftId")  val ownedGiftId: String?,
-    @get:JvmName("transferStarCount")  val transferStarCount: Int?
+    @get:JvmName("transferStarCount")  val transferStarCount: Int?,
+    @get:JvmName("nextTransferDate") var nextTransferDate: Long?,
+    @get:JvmName("lastResaleStarCount")  val lastResaleStarCount: Int?
 )
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/request/ReplyParameters.java b/library/src/main/java/com/pengrad/telegrambot/model/request/ReplyParameters.java
index aa36fad0..691f8139 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/request/ReplyParameters.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/request/ReplyParameters.java
@@ -15,6 +15,7 @@ public class ReplyParameters implements Serializable {
     private String quote_parse_mode;
     private MessageEntity[] quote_entities;
     private Integer quote_position;
+    private Integer checklist_task_id;
 
     public ReplyParameters(Integer messageId) {
         this.message_id = messageId;
@@ -49,4 +50,9 @@ public ReplyParameters quotePosition(Integer quotePosition) {
         this.quote_position = quotePosition;
         return this;
     }
+
+    public ReplyParameters checklistTaskId(Integer checklistTaskId) {
+        this.checklist_task_id = checklistTaskId;
+        return this;
+    }
 }
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/stars/DirectMessagePriceChanged.kt b/library/src/main/java/com/pengrad/telegrambot/model/stars/DirectMessagePriceChanged.kt
new file mode 100644
index 00000000..8119a577
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/DirectMessagePriceChanged.kt
@@ -0,0 +1,7 @@
+package com.pengrad.telegrambot.model.stars
+
+data class DirectMessagePriceChanged (
+    @get:JvmName("areDirectMessagesEnabled") val areDirectMessagesEnabled: Boolean,
+    @get:JvmName("directMessageStarCount") val directMessageStarCount: Int?
+) {
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/PaidMessagePriceChanged.kt b/library/src/main/java/com/pengrad/telegrambot/model/stars/PaidMessagePriceChanged.kt
similarity index 68%
rename from library/src/main/java/com/pengrad/telegrambot/model/PaidMessagePriceChanged.kt
rename to library/src/main/java/com/pengrad/telegrambot/model/stars/PaidMessagePriceChanged.kt
index 6547d2a9..617e4639 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/PaidMessagePriceChanged.kt
+++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/PaidMessagePriceChanged.kt
@@ -1,4 +1,4 @@
-package com.pengrad.telegrambot.model
+package com.pengrad.telegrambot.model.stars
 
 data class PaidMessagePriceChanged(
     @get:JvmName("prizeStarCount") val prizeStarCount: Int
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostApprovalFailed.kt b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostApprovalFailed.kt
new file mode 100644
index 00000000..7799def3
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostApprovalFailed.kt
@@ -0,0 +1,10 @@
+package com.pengrad.telegrambot.model.suggestedposts
+
+import com.pengrad.telegrambot.model.Message
+
+@Suppress("unused")
+data class SuggestedPostApprovalFailed (
+    @get:JvmName("suggestedPostMessage") val suggestedPostMessage: Message?,
+    @get:JvmName("price") val price: SuggestedPostPrice
+){
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostApproved.kt b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostApproved.kt
new file mode 100644
index 00000000..841fa67d
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostApproved.kt
@@ -0,0 +1,11 @@
+package com.pengrad.telegrambot.model.suggestedposts
+
+import com.pengrad.telegrambot.model.Message
+
+@Suppress("unused")
+data class SuggestedPostApproved (
+    @get:JvmName("suggestedPostMessage") val suggestedPostMessage: Message?,
+    @get:JvmName("price") val price: SuggestedPostPrice?,
+    @get:JvmName("sendDate") val sendDate: Long
+){
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostDeclined.kt b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostDeclined.kt
new file mode 100644
index 00000000..2fdc4f88
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostDeclined.kt
@@ -0,0 +1,10 @@
+package com.pengrad.telegrambot.model.suggestedposts
+
+import com.pengrad.telegrambot.model.Message
+
+@Suppress("unused")
+data class SuggestedPostDeclined (
+    @get:JvmName("suggestedPostMessage") val suggestedPostMessage: Message?,
+    @get:JvmName("comment") val comment: String?
+){
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostInfo.kt b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostInfo.kt
new file mode 100644
index 00000000..f4542646
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostInfo.kt
@@ -0,0 +1,9 @@
+package com.pengrad.telegrambot.model.suggestedposts
+
+@Suppress("unused")
+data class SuggestedPostInfo (
+    @get:JvmName("state") val state: String,
+    @get:JvmName("price") val price: SuggestedPostPrice?,
+    @get:JvmName("sendDate") val sendDate: Long?
+){
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostPaid.kt b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostPaid.kt
new file mode 100644
index 00000000..65a9c557
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostPaid.kt
@@ -0,0 +1,13 @@
+package com.pengrad.telegrambot.model.suggestedposts
+
+import com.pengrad.telegrambot.model.Message
+import com.pengrad.telegrambot.model.stars.StarAmount
+
+@Suppress("unused")
+data class SuggestedPostPaid (
+    @get:JvmName("suggestedPostMessage") val suggestedPostMessage: Message?,
+    @get:JvmName("currency") val currency: String,
+    @get:JvmName("amount") val amount: Long?,
+    @get:JvmName("starAmount") val starAmount: StarAmount?
+){
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostParameters.kt b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostParameters.kt
new file mode 100644
index 00000000..6bfd3cf7
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostParameters.kt
@@ -0,0 +1,9 @@
+package com.pengrad.telegrambot.model.suggestedposts
+
+@Suppress("unused")
+data class SuggestedPostParameters (
+    @get:JvmName("price") val price: SuggestedPostPrice?,
+    @get:JvmName("sendDate") val sendDate: Long?
+){
+
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostPrice.kt b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostPrice.kt
new file mode 100644
index 00000000..163416aa
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostPrice.kt
@@ -0,0 +1,8 @@
+package com.pengrad.telegrambot.model.suggestedposts
+
+@Suppress("unused")
+data class SuggestedPostPrice (
+    @get:JvmName("currency") val currency: String,
+    @get:JvmName("amount") val amount: Long
+){
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostRefunded.kt b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostRefunded.kt
new file mode 100644
index 00000000..158739b9
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostRefunded.kt
@@ -0,0 +1,10 @@
+package com.pengrad.telegrambot.model.suggestedposts
+
+import com.pengrad.telegrambot.model.Message
+
+@Suppress("unused")
+data class SuggestedPostRefunded (
+    @get:JvmName("suggestedPostMessage") val suggestedPostMessage: Message?,
+    @get:JvmName("reason") val reason: String
+){
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/AbstractSendRequest.kt b/library/src/main/java/com/pengrad/telegrambot/request/AbstractSendRequest.kt
index d4fa6784..5cb10e15 100644
--- a/library/src/main/java/com/pengrad/telegrambot/request/AbstractSendRequest.kt
+++ b/library/src/main/java/com/pengrad/telegrambot/request/AbstractSendRequest.kt
@@ -2,6 +2,7 @@ package com.pengrad.telegrambot.request
 
 import com.pengrad.telegrambot.model.request.Keyboard
 import com.pengrad.telegrambot.model.request.ReplyParameters
+import com.pengrad.telegrambot.model.suggestedposts.SuggestedPostParameters
 import com.pengrad.telegrambot.response.SendResponse
 import com.pengrad.telegrambot.utility.kotlin.optionalRequestParameter
 
@@ -15,17 +16,21 @@ abstract class AbstractSendRequest>(
 
     var businessConnectionId: String? by optionalRequestParameter()
     var messageThreadId: Int? by optionalRequestParameter()
+    var directMessagesTopicId: Int? by optionalRequestParameter()
     var disableNotification: Boolean? by optionalRequestParameter()
     var protectContent: Boolean? by optionalRequestParameter()
     var allowPaidBroadcast: Boolean? by optionalRequestParameter()
     var messageEffectId: String? by optionalRequestParameter()
     var replyParameters: ReplyParameters? by optionalRequestParameter()
     var replyMarkup: Keyboard? by optionalRequestParameter()
+    var suggestedPostParameters: SuggestedPostParameters? by optionalRequestParameter()
 
     fun businessConnectionId(businessConnectionId: String) = applySelf { this.businessConnectionId = businessConnectionId }
 
     fun messageThreadId(messageThreadId: Int) = applySelf { this.messageThreadId = messageThreadId }
 
+    fun directMessagesTopicId(directMessagesTopicId: Int) = applySelf { this.directMessagesTopicId = directMessagesTopicId }
+
     fun disableNotification(disableNotification: Boolean) = applySelf { this.disableNotification = disableNotification }
 
     fun protectContent(protectContent: Boolean) = applySelf { this.protectContent = protectContent }
@@ -38,4 +43,6 @@ abstract class AbstractSendRequest>(
 
     fun replyMarkup(replyMarkup: Keyboard) = applySelf { this.replyMarkup = replyMarkup }
 
+    fun suggestedPostParameters(suggestedPostParameters: SuggestedPostParameters) = applySelf { this.suggestedPostParameters = suggestedPostParameters }
+
 }
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/CopyMessage.kt b/library/src/main/java/com/pengrad/telegrambot/request/CopyMessage.kt
index 425cc66a..20febfbd 100644
--- a/library/src/main/java/com/pengrad/telegrambot/request/CopyMessage.kt
+++ b/library/src/main/java/com/pengrad/telegrambot/request/CopyMessage.kt
@@ -31,7 +31,7 @@ class CopyMessage private constructor(
     )
 
     /**
-     * Backwards-compatability for Java code
+     * Backwards-compatibility for Java code
      */
     constructor(chatId: JavaLong, fromChatId: JavaLong, messageId: JavaInteger) : this(
         chatId = chatId.toLong(),
@@ -51,7 +51,7 @@ class CopyMessage private constructor(
     )
 
     /**
-     * Backwards-compatability for Java code
+     * Backwards-compatibility for Java code
      */
     constructor(channelUsername: String, fromChatId: JavaLong, messageId: JavaInteger) : this(
         channelUsername = channelUsername,
@@ -71,7 +71,7 @@ class CopyMessage private constructor(
     )
 
     /**
-     * Backwards-compatability for Java code
+     * Backwards-compatibility for Java code
      */
     constructor(chatId: JavaLong, fromChannelUsername: String, messageId: JavaInteger) : this(
         chatId = chatId.toLong(),
@@ -91,7 +91,7 @@ class CopyMessage private constructor(
     )
 
     /**
-     * Backwards-compatability for Java code
+     * Backwards-compatibility for Java code
      */
     constructor(channelUsername: String, fromChannelUsername: String, messageId: JavaInteger) : this(
         channelUsername = channelUsername,
@@ -118,7 +118,7 @@ class CopyMessage private constructor(
     }
 
     /**
-     * Backwards-compatability for Java code
+     * Backwards-compatibility for Java code
      */
     @Suppress("DEPRECATION")
     @Deprecated("Use constructor with chatId and fromChatId or channelUsername and fromChannelUsername instead", ReplaceWith("ForwardMessage(chatId, fromChatId, messageId)"))
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/ForwardMessage.kt b/library/src/main/java/com/pengrad/telegrambot/request/ForwardMessage.kt
index 58c071c7..535f0a34 100644
--- a/library/src/main/java/com/pengrad/telegrambot/request/ForwardMessage.kt
+++ b/library/src/main/java/com/pengrad/telegrambot/request/ForwardMessage.kt
@@ -29,7 +29,7 @@ class ForwardMessage private constructor(
     )
 
     /**
-     * Backwards-compatability for Java code
+     * Backwards-compatibility for Java code
      */
     constructor(chatId: JavaLong, fromChatId: JavaLong, messageId: JavaInteger) : this(
         chatId = chatId.toLong(),
@@ -49,7 +49,7 @@ class ForwardMessage private constructor(
     )
 
     /**
-     * Backwards-compatability for Java code
+     * Backwards-compatibility for Java code
      */
     constructor(channelUsername: String, fromChatId: JavaLong, messageId: JavaInteger) : this(
         channelUsername = channelUsername,
@@ -69,7 +69,7 @@ class ForwardMessage private constructor(
     )
 
     /**
-     * Backwards-compatability for Java code
+     * Backwards-compatibility for Java code
      */
     constructor(chatId: JavaLong, fromChannelUsername: String, messageId: JavaInteger) : this(
         chatId = chatId.toLong(),
@@ -89,7 +89,7 @@ class ForwardMessage private constructor(
     )
 
     /**
-     * Backwards-compatability for Java code
+     * Backwards-compatibility for Java code
      */
     constructor(channelUsername: String, fromChannelUsername: String, messageId: JavaInteger) : this(
         channelUsername = channelUsername,
@@ -116,7 +116,7 @@ class ForwardMessage private constructor(
     }
 
     /**
-     * Backwards-compatability for Java code
+     * Backwards-compatibility for Java code
      */
     @Suppress("DEPRECATION")
     @Deprecated("Use constructor with chatId and fromChatId or channelUsername and fromChannelUsername instead", ReplaceWith("ForwardMessage(chatId, fromChatId, messageId)"))
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/GetMyStarBalance.kt b/library/src/main/java/com/pengrad/telegrambot/request/GetMyStarBalance.kt
new file mode 100644
index 00000000..0895bdbd
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/request/GetMyStarBalance.kt
@@ -0,0 +1,7 @@
+package com.pengrad.telegrambot.request
+
+import com.pengrad.telegrambot.response.GetMyStarBalanceResponse
+
+class GetMyStarBalance : KBaseRequest(
+    GetMyStarBalanceResponse::class
+)
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/PromoteChatMember.java b/library/src/main/java/com/pengrad/telegrambot/request/PromoteChatMember.java
index 027373b5..297e65af 100644
--- a/library/src/main/java/com/pengrad/telegrambot/request/PromoteChatMember.java
+++ b/library/src/main/java/com/pengrad/telegrambot/request/PromoteChatMember.java
@@ -69,6 +69,10 @@ public PromoteChatMember canManageTopics(boolean canManageTopics) {
         return add("can_manage_topics", canManageTopics);
     }
 
+    public PromoteChatMember canManageDirectMessages(boolean canManageDirectMessages) {
+        return add("can_manage_direct_messages", canManageDirectMessages);
+    }
+
     public PromoteChatMember canPromoteMembers(boolean canPromoteMembers) {
         return add("can_promote_members", canPromoteMembers);
     }
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/SendGift.kt b/library/src/main/java/com/pengrad/telegrambot/request/SendGift.kt
index a8e0b14f..ec8cdc91 100644
--- a/library/src/main/java/com/pengrad/telegrambot/request/SendGift.kt
+++ b/library/src/main/java/com/pengrad/telegrambot/request/SendGift.kt
@@ -36,7 +36,7 @@ class SendGift private constructor(
         )
 
         /**
-         * Backwards compatability to constructor with userId
+         * Backwards compatibility to constructor with userId
          */
         @Deprecated("Use constructor(chatId, giftId) instead", ReplaceWith("SendGift(userId, giftId)"))
         operator fun invoke(userId: Long, giftId: String) =
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/business/EditMessageChecklist.kt b/library/src/main/java/com/pengrad/telegrambot/request/business/EditMessageChecklist.kt
new file mode 100644
index 00000000..e90fb94e
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/request/business/EditMessageChecklist.kt
@@ -0,0 +1,36 @@
+package com.pengrad.telegrambot.request.business
+
+import com.pengrad.telegrambot.model.checklist.InputChecklist
+import com.pengrad.telegrambot.model.request.InlineKeyboardMarkup
+import com.pengrad.telegrambot.request.KBaseRequest
+import com.pengrad.telegrambot.response.EditMessageChecklistResponse
+import com.pengrad.telegrambot.utility.kotlin.optionalRequestParameter
+import com.pengrad.telegrambot.utility.kotlin.requestParameter
+
+@Suppress("unused")
+class EditMessageChecklist (
+    businessConnectionId: String,
+    chatId: Long,
+    messageId: Int,
+    checklist: InputChecklist,
+    replyMarkup: InlineKeyboardMarkup?
+
+): KBaseRequest(EditMessageChecklistResponse::class) {
+
+    constructor(businessConnectionId: String, chatId: Long, messageId: Int, checklist: InputChecklist) : this(
+        businessConnectionId = businessConnectionId,
+        chatId = chatId,
+        messageId = messageId,
+        checklist = checklist,
+        replyMarkup = null
+    )
+
+    val businessConnectionId: String by requestParameter(businessConnectionId, customParameterName = "business_connection_id")
+    val chatId: Long by requestParameter(chatId, customParameterName = "chat_id")
+    val messageId: Int by requestParameter(messageId, customParameterName = "message_id")
+    val checklist: InputChecklist by requestParameter(checklist, customParameterName = "checklist")
+
+    var replyMarkup: InlineKeyboardMarkup? by optionalRequestParameter(replyMarkup, customParameterName = "reply_markup")
+    fun replyMarkup(replyMarkup: InlineKeyboardMarkup) = applySelf { this.replyMarkup = replyMarkup }
+
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/business/SendChecklist.kt b/library/src/main/java/com/pengrad/telegrambot/request/business/SendChecklist.kt
new file mode 100644
index 00000000..988b4fac
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/request/business/SendChecklist.kt
@@ -0,0 +1,54 @@
+package com.pengrad.telegrambot.request.business
+
+import com.pengrad.telegrambot.model.checklist.InputChecklist
+import com.pengrad.telegrambot.model.request.InlineKeyboardMarkup
+import com.pengrad.telegrambot.model.request.ReplyParameters
+import com.pengrad.telegrambot.request.KBaseRequest
+import com.pengrad.telegrambot.response.SendChecklistResponse
+import com.pengrad.telegrambot.utility.kotlin.optionalRequestParameter
+import com.pengrad.telegrambot.utility.kotlin.requestParameter
+
+@Suppress("unused")
+class SendChecklist (
+    businessConnectionId: String,
+    chatId: Long,
+    checklist: InputChecklist,
+    disableNotification: Boolean?,
+    protectContent: Boolean?,
+    messageEffectId: String?,
+    replyParameters: ReplyParameters?,
+    replyMarkup: InlineKeyboardMarkup?
+
+): KBaseRequest(SendChecklistResponse::class) {
+
+    constructor(businessConnectionId: String, chatId: Long, checklist: InputChecklist) : this(
+        businessConnectionId = businessConnectionId,
+        chatId = chatId,
+        checklist = checklist,
+        disableNotification = null,
+        protectContent = null,
+        messageEffectId = null,
+        replyParameters = null,
+        replyMarkup = null
+    )
+
+    val businessConnectionId: String by requestParameter(businessConnectionId, customParameterName = "business_connection_id")
+    val chatId: Long by requestParameter(chatId, customParameterName = "chat_id")
+    val checklist: InputChecklist by requestParameter(checklist, customParameterName = "checklist")
+
+    var disableNotification: Boolean? by optionalRequestParameter(disableNotification, customParameterName = "disable_notification")
+    fun disableNotification(disableNotification: Boolean) = applySelf { this.disableNotification = disableNotification }
+
+    var protectContent: Boolean? by optionalRequestParameter(protectContent, customParameterName = "protect_content")
+    fun protectContent(protectContent: Boolean) = applySelf { this.protectContent = protectContent }
+
+    var messageEffectId: String? by optionalRequestParameter(messageEffectId, customParameterName = "message_effect_id")
+    fun messageEffectId(messageEffectId: String) = applySelf { this.messageEffectId = messageEffectId }
+
+    var replyParameters: ReplyParameters? by optionalRequestParameter(replyParameters, customParameterName = "reply_parameters")
+    fun replyParameters(replyParameters: ReplyParameters) = applySelf { this.replyParameters = replyParameters }
+
+    var replyMarkup: InlineKeyboardMarkup? by optionalRequestParameter(replyMarkup, customParameterName = "reply_markup")
+    fun replyMarkup(replyMarkup: InlineKeyboardMarkup) = applySelf { this.replyMarkup = replyMarkup }
+
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/suggestedposts/ApproveSuggestedPost.kt b/library/src/main/java/com/pengrad/telegrambot/request/suggestedposts/ApproveSuggestedPost.kt
new file mode 100644
index 00000000..2dcf68d6
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/request/suggestedposts/ApproveSuggestedPost.kt
@@ -0,0 +1,20 @@
+package com.pengrad.telegrambot.request.suggestedposts
+
+import com.pengrad.telegrambot.request.KBaseRequest
+import com.pengrad.telegrambot.response.BaseResponse
+import com.pengrad.telegrambot.utility.kotlin.optionalRequestParameter
+import com.pengrad.telegrambot.utility.kotlin.requestParameter
+
+class ApproveSuggestedPost (
+    chatId: Long,
+    messageId: Int,
+    sendDate: Long?
+): KBaseRequest(BaseResponse::class) {
+
+    val chatId: Long by requestParameter(chatId)
+    val messageId: Int by requestParameter(messageId)
+
+    var sendDate: Long? by optionalRequestParameter(sendDate)
+
+    fun sendDate(sendDate: Long) = applySelf { this.sendDate = sendDate }
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/suggestedposts/DeclineSuggestedPost.kt b/library/src/main/java/com/pengrad/telegrambot/request/suggestedposts/DeclineSuggestedPost.kt
new file mode 100644
index 00000000..3d79568b
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/request/suggestedposts/DeclineSuggestedPost.kt
@@ -0,0 +1,20 @@
+package com.pengrad.telegrambot.request.suggestedposts
+
+import com.pengrad.telegrambot.request.KBaseRequest
+import com.pengrad.telegrambot.response.BaseResponse
+import com.pengrad.telegrambot.utility.kotlin.optionalRequestParameter
+import com.pengrad.telegrambot.utility.kotlin.requestParameter
+
+class DeclineSuggestedPost (
+    chatId: Long,
+    messageId: Int,
+    comment: String?
+): KBaseRequest(BaseResponse::class) {
+
+    val chatId: Long by requestParameter(chatId)
+    val messageId: Int by requestParameter(messageId)
+
+    var comment: String? by optionalRequestParameter(comment)
+
+    fun comment(comment: String) = applySelf { this.comment = comment }
+}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/response/EditMessageChecklistResponse.kt b/library/src/main/java/com/pengrad/telegrambot/response/EditMessageChecklistResponse.kt
new file mode 100644
index 00000000..3788f032
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/response/EditMessageChecklistResponse.kt
@@ -0,0 +1,6 @@
+package com.pengrad.telegrambot.response
+
+import com.pengrad.telegrambot.model.Message
+
+
+data class EditMessageChecklistResponse (val result: Message) : BaseResponse()
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/response/GetMyStarBalanceResponse.kt b/library/src/main/java/com/pengrad/telegrambot/response/GetMyStarBalanceResponse.kt
new file mode 100644
index 00000000..3a0d715d
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/response/GetMyStarBalanceResponse.kt
@@ -0,0 +1,5 @@
+package com.pengrad.telegrambot.response
+
+import com.pengrad.telegrambot.model.stars.StarAmount
+
+data class GetMyStarBalanceResponse(val result: StarAmount) : BaseResponse()
diff --git a/library/src/main/java/com/pengrad/telegrambot/response/SendChecklistResponse.kt b/library/src/main/java/com/pengrad/telegrambot/response/SendChecklistResponse.kt
new file mode 100644
index 00000000..7f66eb75
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/response/SendChecklistResponse.kt
@@ -0,0 +1,6 @@
+package com.pengrad.telegrambot.response
+
+import com.pengrad.telegrambot.model.Message
+
+
+data class SendChecklistResponse (val result: Message) : BaseResponse()
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 70627d4d..88f091c9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
   4.0.0
   com.github.pengrad
   java-telegram-bot-api
-  9.0.0
+  9.2.0
   JavaTelegramBotApi
   Java API for Telegram Bot API
   https://github.com/pengrad/java-telegram-bot-api/