<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://whatsgate.org/docs/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>Whatsapp API</title>
        <description></description>
        <link>https://whatsgate.org/docs/</link>
        <lastBuildDate>Tue, 06 Oct 2026 19:08:08 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://whatsgate.org/docs/_media/favicon.ico</url>
            <title>Whatsapp API</title>
            <link>https://whatsgate.org/docs/</link>
        </image>
        <item>
            <title>Offer Agreement - [11. PARTY DETAILS] </title>
            <link>https://whatsgate.org/docs/law/terms-of-use</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;offer-agreement&quot;&gt;Offer Agreement&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Offer Agreement&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;offer-agreement&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;19-49&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;public-offer-to-conclude-an-agreement-for-access-to-the-whatsgate-software&quot;&gt;Public Offer to Conclude an Agreement for Access to the &amp;quot;Whatsgate&amp;quot; Software&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This Agreement is addressed to persons wishing to obtain access to the “Whatsgate” software located on the Internet at &lt;a href=&quot;https://whatsgate.org/&quot; class=&quot;urlextern&quot; title=&quot;https://whatsgate.org/&quot; rel=&quot;ugc nofollow&quot;&gt;https://whatsgate.org/&lt;/a&gt;, hereinafter referred to as the “User”, and is an official and public offer of the party hereinafter referred to as the “Provider”, represented by individual entrepreneur Denis Vyacheslavovich Gorelkin, regarding the use of the “Whatsgate” software package under the following terms:
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Public Offer to Conclude an Agreement for Access to the \&amp;quot;Whatsgate\&amp;quot; Software&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;public-offer-to-conclude-an-agreement-for-access-to-the-whatsgate-software&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;50-570&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;terms-and-definitions&quot;&gt;Terms and Definitions&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
To avoid ambiguity and other misunderstandings in the interpretation of this Agreement, the Parties agreed on the following terms and definitions:
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Provider&lt;/strong&gt; means developer of the “Whatsgate” software.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;“Whatsgate” software&lt;/strong&gt; (also referred to as “Whatsgate Software”) means a set of cloud services including server equipment and software built by the Provider using web technologies, available through a web browser, as well as a local client installed on the User&amp;#039;s computer.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;SaaS (Software as a Service)&lt;/strong&gt; means a model of providing User access to “Whatsgate” software under which the software is not transferred to the User&amp;#039;s ownership, and payment is charged for usage according to the Tariff Plan in Appendix No. 1 to this Agreement.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Billing Period&lt;/strong&gt; means the minimum period for which services are provided. Under this Agreement, the Billing Period is 1 (one) calendar month starting on the first day and ending on the last day of the calendar month.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Tariff Plan&lt;/strong&gt; means the list of services provided by the Provider to the User, their cost, and payment procedure.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;User Account&lt;/strong&gt; means the configurable virtual workspace of the User in the “Whatsgate” software.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Terms and Definitions&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;terms-and-definitions&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;571-1791&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;subject-of-the-agreement&quot;&gt;1. SUBJECT OF THE AGREEMENT&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
1.1 The subject of this Agreement is the Provider&amp;#039;s provision to the User, under the terms and within the scope defined by this Agreement, of services for access to the “Whatsgate” Software located at &lt;a href=&quot;https://whatsgate.org/&quot; class=&quot;urlextern&quot; title=&quot;https://whatsgate.org/&quot; rel=&quot;ugc nofollow&quot;&gt;https://whatsgate.org/&lt;/a&gt;. The Provider is the owner, developer, and holder of exclusive rights to the “Whatsgate” software.
&lt;/p&gt;

&lt;p&gt;
1.2 Access limitations included in the Tariff Plan are set out in Appendix No. 1 to this Agreement.
&lt;/p&gt;

&lt;p&gt;
1.3 The User may use access to the “Whatsgate” software through a web browser at any time.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1. SUBJECT OF THE AGREEMENT&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;subject-of-the-agreement&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1792-2347&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;rights-and-obligations-of-the-parties&quot;&gt;2. RIGHTS AND OBLIGATIONS OF THE PARTIES&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
2.1 The Provider shall:
&lt;/p&gt;

&lt;p&gt;
2.1.1 Provide the User with access to the “Whatsgate” software by registration in the system with assignment of a unique login and password, followed by creation of a separate working account.
&lt;/p&gt;

&lt;p&gt;
2.1.2 Provide the User, free of charge, with informational support on working with the System via email and via records in social networks and the Provider&amp;#039;s blog. Current contacts are available in the Help section of the provided “Whatsgate” software (&lt;a href=&quot;https://whatsgate.org/docs/&quot; class=&quot;urlextern&quot; title=&quot;https://whatsgate.org/docs/&quot; rel=&quot;ugc nofollow&quot;&gt;https://whatsgate.org/docs/&lt;/a&gt;). Extended support in the form of a personal manager, system setup and training, and analyst assistance depends on the selected Tariff Plan (Appendix No. 1).
&lt;/p&gt;

&lt;p&gt;
2.1.3 Independently, timely, and free of charge update the current version of the “Whatsgate” software during the Agreement term.
&lt;/p&gt;

&lt;p&gt;
2.1.4 Ensure 24/7 availability of the “Whatsgate” software with possible technical interruptions totaling no more than 1 (one) hour per week. Respond (take action) to User reports regarding system performance issues within 48 (forty-eight) hours from receipt of such report or claim.
&lt;/p&gt;

&lt;p&gt;
2.1.5 Ensure storage, backup, and archival storage of User data.
&lt;/p&gt;

&lt;p&gt;
2.1.6 If technically possible, timely eliminate possible software failures in “Whatsgate” software based on User requests.
&lt;/p&gt;

&lt;p&gt;
2.1.7 Strictly comply with this Agreement and ensure confidentiality of commercial and technical information received during cooperation with the User, as defined in Section 7 of this Agreement.
&lt;/p&gt;

&lt;p&gt;
2.2 The Provider has the right to:
&lt;/p&gt;

&lt;p&gt;
2.2.1 Suspend or block access to the “Whatsgate” software in case of untimely payment by the User, notifying the User at least 3 (three) business days in advance by email or another method.
&lt;/p&gt;

&lt;p&gt;
2.2.2 Change tariff policy and unilaterally amend it, as well as change service terms for the next Billing Period, notifying the User at least 1 (one) calendar month in advance by email or another method.
&lt;/p&gt;

&lt;p&gt;
2.2.3 Unconditionally suspend or block User access to the “Whatsgate” software if the User uses the system for purposes prohibited by the laws of the Russian Federation or violates third-party rights.
&lt;/p&gt;

&lt;p&gt;
2.3 The User shall:
&lt;/p&gt;

&lt;p&gt;
2.3.1 Pay for access to the “Whatsgate” software according to the selected Tariff Plan, taking into account the provisions of Appendix No. 1 and Clause 3.5 of this Agreement.
&lt;/p&gt;

&lt;p&gt;
2.3.2 Not use the “Whatsgate” software for purposes prohibited by the laws of the Russian Federation and not violate third-party rights under applicable legislation of the Russian Federation.
&lt;/p&gt;

&lt;p&gt;
2.3.3 Strictly comply with this Agreement and ensure confidentiality of commercial and technical information obtained in cooperation with the Provider, as defined in Section 7 of this Agreement.
&lt;/p&gt;

&lt;p&gt;
2.4 The User has the right to:
&lt;/p&gt;

&lt;p&gt;
2.4.1 Use the provided access to the “Whatsgate” software to perform the following actions, including but not limited to other actions provided by the “Whatsgate” software.
&lt;/p&gt;

&lt;p&gt;
2.4.2 Use the provided access to the “Whatsgate” software in accordance with its intended purpose.
&lt;/p&gt;

&lt;p&gt;
2.4.3 Submit requests to the Provider for elimination of failures and errors in operation of the “Whatsgate” software.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2. RIGHTS AND OBLIGATIONS OF THE PARTIES&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;rights-and-obligations-of-the-parties&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;2348-5507&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;payment-procedure&quot;&gt;3. PAYMENT PROCEDURE&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
3.1 The cost of Services is determined according to the Provider&amp;#039;s effective Tariff Plan (Appendix No. 1 to this Agreement).
&lt;/p&gt;

&lt;p&gt;
3.2 Services are provided to the User on a prepaid basis. The User makes an advance payment of 100% (one hundred percent) of the total cost of ordered Services based on an invoice issued by the Provider to the User for payment (“Invoice”), within 5 (five) business days from Invoice issue date. Funds are credited by the Provider to the User Account within 1 (one) business day from receipt of funds to the Provider&amp;#039;s settlement account.
&lt;/p&gt;

&lt;p&gt;
3.3 Delivery and acceptance of services is performed as follows:
&lt;/p&gt;

&lt;p&gt;
3.3.1 Monthly, on the last day of the reporting month and/or upon completion of Services under this Agreement, the Provider prepares a Service Acceptance Act according to the volume of services provided during the reporting period.
&lt;/p&gt;

&lt;p&gt;
3.3.2 Services are considered properly provided by the Provider and accepted by the User in the volume specified in the Act if, within three business days after the end of the reporting period, the Provider has not received reasoned written objections from the User. After this period, User claims regarding deficiencies of Services, including quantity (volume), cost, and quality, are not accepted.
&lt;/p&gt;

&lt;p&gt;
3.4 Signing of documents for Users that are legal entities is performed only via electronic document management (EDM). Original paper copies are delivered only at User request, and delivery cost is paid by the User.
&lt;/p&gt;

&lt;p&gt;
3.5 The cost of services provided under this Agreement is not subject to VAT due to the Provider&amp;#039;s use of the simplified taxation system in accordance with Chapter 26.2 of the Tax Code of the Russian Federation.
&lt;/p&gt;

&lt;p&gt;
3.6 Payment date is the date funds are received to the Provider&amp;#039;s settlement account. Payment is made in Russian rubles.
&lt;/p&gt;

&lt;p&gt;
3.7 In case of early termination of this Agreement at the initiative of either Party, the Provider shall settle accounts with the User within 15 (fifteen) calendar days from receipt of termination notice.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3. PAYMENT PROCEDURE&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;payment-procedure&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;5508-7562&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;term-of-the-agreement&quot;&gt;4. TERM OF THE AGREEMENT&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
4.1 This Agreement is an offer in accordance with Article 435 of the Civil Code of the Russian Federation, therefore the Provider may revoke this Agreement as an offer in accordance with Article 436 of the Civil Code of the Russian Federation. If revoked by the Provider during its term, this Agreement is deemed terminated from the moment of revocation. Revocation is made by publishing relevant information on the Service website.
&lt;/p&gt;

&lt;p&gt;
4.2 If, upon expiration of this Agreement, either Party does not notify the other of refusal to continue, the Agreement is automatically extended on the same terms for 1 (one) calendar month.
&lt;/p&gt;

&lt;p&gt;
4.3 The Agreement is extended under the current tariff plan, or a newly selected tariff plan, provided there are sufficient funds in the User account and no notice of termination or amendments to the Agreement.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4. TERM OF THE AGREEMENT&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;term-of-the-agreement&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;7563-8437&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;termination-of-the-agreement&quot;&gt;5. TERMINATION OF THE AGREEMENT&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
5.1 The Parties may terminate this Agreement early by mutual written agreement.
&lt;/p&gt;

&lt;p&gt;
5.2 If the User breaches this Agreement, the Provider may unilaterally terminate the Agreement, notifying the breaching Party by sending notice to the User&amp;#039;s email. The Provider&amp;#039;s unilateral refusal to perform this Agreement (fully or partially) is allowed in case of material breach by the User. Breach is considered material if:
&lt;/p&gt;

&lt;p&gt;
- the User delays monthly payments specified in Section 3 of this Agreement by more than 30 (thirty) calendar days;
&lt;/p&gt;

&lt;p&gt;
- the User uses granted access rights to the “Whatsgate” software for purposes contrary to the Agreement and/or law.
&lt;/p&gt;

&lt;p&gt;
5.3 The User may terminate the Agreement unilaterally at any time by notifying the Provider 15 (fifteen) calendar days before the intended termination date. Termination notice is sent in electronic form to service@whatsgate.org.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5. TERMINATION OF THE AGREEMENT&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;termination-of-the-agreement&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;8438-9358&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;liability-of-the-parties-limitation-of-liability&quot;&gt;6. LIABILITY OF THE PARTIES. LIMITATION OF LIABILITY&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
6.1 The Parties are liable for non-performance or improper performance of their obligations under this Agreement in accordance with the legislation of the Russian Federation.
&lt;/p&gt;

&lt;p&gt;
6.2 The Parties understand that the “Whatsgate” software is based on software components, and the Provider gives no express or implied warranties that the “Whatsgate” software will meet all User requirements or expectations, or fit User goals and objectives. Access to the “Whatsgate” software is provided under the generally accepted worldwide “AS IS” principle.
&lt;/p&gt;

&lt;p&gt;
6.3 The User uses the “Whatsgate” software at their own risk. The Provider is not responsible for exact correspondence of the “Whatsgate” software to the User&amp;#039;s business processes.
&lt;/p&gt;

&lt;p&gt;
6.4 The Provider is not responsible for any User actions related to use of the “Whatsgate” software.
&lt;/p&gt;

&lt;p&gt;
6.5 The Provider is not liable to the User for damages of any kind incurred due to loss and/or disclosure of User credentials for access to the “Whatsgate” software.
&lt;/p&gt;

&lt;p&gt;
6.6 The Provider ensures basic information security of User data within normal conditions. Basic information security means the state of information protection in which confidentiality, availability, and integrity are ensured.
&lt;/p&gt;

&lt;p&gt;
6.7 The Provider is not liable to the User for delays and service interruptions occurring directly or indirectly due to reasons beyond the Provider&amp;#039;s reasonable control.
&lt;/p&gt;

&lt;p&gt;
6.8 The Provider is not liable for quality of services (in particular data transfer services and mobile network operator services) required for use of the “Whatsgate” software if such services are organized by third parties not engaged by the Provider.
&lt;/p&gt;

&lt;p&gt;
6.9 The User agrees that work with the “Whatsgate” software requires software (web browsers, operating systems, etc.) and equipment (personal computers, mobile phones, tablets, network equipment, etc.) produced and provided by third parties, and the Provider cannot be responsible for their quality.
&lt;/p&gt;

&lt;p&gt;
6.10 The User agrees that no software is error-free.
&lt;/p&gt;

&lt;p&gt;
6.11 In case of data loss caused by User actions, data recovery is performed upon request to the Provider and only if technically possible.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;6. LIABILITY OF THE PARTIES. LIMITATION OF LIABILITY&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;liability-of-the-parties-limitation-of-liability&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;9359-11563&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;confidentiality&quot;&gt;7. CONFIDENTIALITY&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
7.1 The purpose of this section is to protect information disclosed by the Parties to each other during cooperation under this Agreement.
&lt;/p&gt;

&lt;p&gt;
7.2 The Parties agree to treat all information provided to each other within this Agreement or in connection with its purpose, by partners/clients of the Parties, as well as information about this Agreement and proposals made, as Confidential Information (and, to the extent permitted by applicable Russian law, as a trade secret), unless otherwise directly follows from this Agreement and its appendices.
&lt;/p&gt;

&lt;p&gt;
7.3 Each party receiving Confidential Information (“Receiving Party”) from the other party (“Disclosing Party”) shall not disclose Confidential Information to anyone without direct permission of the Disclosing Party and shall take all reasonable measures to protect Confidential Information, including all measures used to protect its own confidential information/trade secrets.
&lt;/p&gt;

&lt;p&gt;
7.4 The Receiving Party shall use disclosed Confidential Information solely for implementation of this Agreement.
&lt;/p&gt;

&lt;p&gt;
7.5 The Receiving Party shall limit access to Confidential Information strictly to its own employees and employees of its contractors directly involved in execution of this Agreement, with whom the Receiving Party has a similar confidentiality agreement.
&lt;/p&gt;

&lt;p&gt;
7.6 Obligations in this section do not apply to:
&lt;/p&gt;

&lt;p&gt;
- information that is or becomes publicly known through no fault of the receiving Party, which must be confirmed by appropriate evidence;
&lt;/p&gt;

&lt;p&gt;
- information received by the Parties from third parties without confidentiality obligations;
&lt;/p&gt;

&lt;p&gt;
- information independently developed by a Party;
&lt;/p&gt;

&lt;p&gt;
- information whose disclosure is required under law or by competent authorities. Such information may be disclosed only to competent authorities in the procedure provided by applicable law.
&lt;/p&gt;

&lt;p&gt;
7.7 Disclosure of confidential information to third parties is not considered a breach if there is written consent of the Party that provided such confidential information.
&lt;/p&gt;

&lt;p&gt;
7.8 For each breach of confidentiality obligations under this Agreement, the Receiving Party shall compensate all and any losses caused by such breach.
&lt;/p&gt;

&lt;p&gt;
7.9 Confidentiality obligations under this Agreement remain valid for 3 (three) years from the date of transfer of Confidential Information.
&lt;/p&gt;

&lt;p&gt;
7.10 The Provider may aggregate, systematize, and analyze information received from the User, including confidential information, for creation of analytical reports and databases, while guaranteeing non-disclosure and protection of confidential information contained in such reports and databases according to this Agreement and applicable legislation of the Russian Federation.
&lt;/p&gt;

&lt;p&gt;
7.11 The Provider may deconfidentialize information received from the User, including by anonymizing User data and other protected information, to create analytical reports and databases that do not contain confidential information.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;7. CONFIDENTIALITY&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;confidentiality&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;11564-14500&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;force-majeure&quot;&gt;8. FORCE MAJEURE&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
8.1 The Parties are not liable for non-performance of obligations under this Agreement if such non-performance is caused by force majeure circumstances.
&lt;/p&gt;

&lt;p&gt;
8.2 Force majeure means extraordinary events arising beyond the will of the Parties, the impact of which they could not prevent (such as natural disasters, fires, accidents, catastrophes, military actions), resulting in inability of a Party to perform obligations under this Agreement.
&lt;/p&gt;

&lt;p&gt;
8.3 A Party affected by force majeure shall take all necessary actions and measures reasonably expected in the situation and immediately notify the other Party of occurrence of force majeure.
&lt;/p&gt;

&lt;p&gt;
8.4 The term for performance of obligations under this Agreement for a Party affected by force majeure is extended for the period of such circumstances and their consequences.
&lt;/p&gt;

&lt;p&gt;
8.5 A Party for which performance has become partially or fully impossible due to force majeure shall notify the other Party within 5 (five) business days about the beginning, progress, change of scale/nature, and termination of force majeure. If untimely notice causes losses to the other Party, such losses shall be compensated by the affected Party within the amount of actually incurred damage.
&lt;/p&gt;

&lt;p&gt;
8.6 The burden of proving force majeure rests on the Party invoking it.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;8. FORCE MAJEURE&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;force-majeure&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;14501-15812&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;dispute-resolution-procedure&quot;&gt;9. DISPUTE RESOLUTION PROCEDURE&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
9.1 In case of disputes under or in connection with this Agreement, the Parties shall take all measures to resolve them through negotiations.
&lt;/p&gt;

&lt;p&gt;
9.2 If the Parties fail to reach agreement, such disputes shall be resolved in court at the Provider&amp;#039;s place of registration (Russian Federation, Tambov) in accordance with applicable legislation of the Russian Federation.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;9. DISPUTE RESOLUTION PROCEDURE&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dispute-resolution-procedure&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;15813-16222&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;additional-terms&quot;&gt;10. ADDITIONAL TERMS&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
10.1 All appendices, amendments, and additions to this Agreement are an integral part of it and have legal force if made in writing and signed by authorized representatives of the Parties.
&lt;/p&gt;

&lt;p&gt;
10.2 The Provider may unilaterally amend service terms by publishing relevant information on the Service website in public access and by amending this Agreement (offer). At the same time, services paid by the User before such amendments are made shall be performed by the Provider without regard to such amendments.
&lt;/p&gt;

&lt;p&gt;
10.3 If address or details of either Party change, such Party shall notify the other Party within 10 (ten) business days.
&lt;/p&gt;

&lt;p&gt;
10.4 All issues not regulated by this Agreement are governed by the legislation of the Russian Federation.
&lt;/p&gt;

&lt;p&gt;
10.5 Any amendments and additions to this Agreement are valid only if made in writing as appendices or supplemental agreements to this Agreement and signed by duly authorized representatives of the Parties.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10. ADDITIONAL TERMS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;additional-terms&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;16223-17200&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;party-details&quot;&gt;11. PARTY DETAILS&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt;E-mail:&lt;/strong&gt; service@whatsgate.org
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;11. PARTY DETAILS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;party-details&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;17201-&amp;quot;} --&gt;</description>
            <author>denis716@undisclosed.example.com (denis716)</author>
        <category>law</category>
            <pubDate>Fri, 25 Sep 2026 21:17:39 +0000</pubDate>
        </item>
        <item>
            <title>api:get-media - removed</title>
            <link>https://whatsgate.org/docs/api/get-media</link>
            <description>

&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_center wrap_round wrap_important plugin_wrap&quot; style=&quot;width: 60%;&quot;&gt;
&lt;p&gt;
This command is deprecated and will be removed over time.
&lt;/p&gt;

&lt;p&gt;
Use the &lt;a href=&quot;https://whatsgate.org/docs/api/get-messagemedia&quot; class=&quot;wikilink1&quot; title=&quot;api:get-messagemedia&quot; data-wiki-id=&quot;api:get-messagemedia&quot;&gt;get-messagemedia&lt;/a&gt; method
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;working-with-media-files-deprecated&quot;&gt;Working with media files (deprecated)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This command lets you retrieve a media file attached to a received message. If a message contains media, the message field “hasMedia” is set to true, and the “mediaKey” field contains the media identifier used by this command.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Working with media files (deprecated)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;working-with-media-files-deprecated&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;180-459&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To request media, send a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://whatsgate.org/api/v1/get-media&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;460-585&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;request-body-object&quot;&gt;Request body object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body must contain:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;,
  &amp;quot;mediaKey&amp;quot;: &amp;quot;TuM9wXQZBmERUCzwnIZe80GwZ5lPDIDsNE+vewnAxho=&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - WhatsApp identifier in the system&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;mediaKey&lt;/strong&gt; - media file identifier&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;586-864&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;,
  &amp;quot;media&amp;quot;: {
    &amp;quot;mimetype&amp;quot;: &amp;quot;image/jpeg&amp;quot;,
    &amp;quot;filename&amp;quot; : &amp;quot;image.jpg&amp;quot;,
    &amp;quot;data&amp;quot;: &amp;quot;&amp;lt;base64_encoded_data&amp;gt;&amp;quot;
  }
}&lt;/pre&gt;

&lt;p&gt;
In the response, the “media” field contains a &lt;a href=&quot;https://whatsgate.org/docs/api/send&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;media file object&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;865-&amp;quot;} --&gt;</description>
            <author>denis716@undisclosed.example.com (denis716)</author>
        <category>api</category>
            <pubDate>Fri, 25 Sep 2026 21:14:59 +0000</pubDate>
        </item>
        <item>
            <title>Changing session name - [Response object] </title>
            <link>https://whatsgate.org/docs/api/set-name</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;changing-session-name&quot;&gt;Changing session name&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
This command changes the &lt;strong&gt;name&lt;/strong&gt; of the specified WhatsApp session.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Changing session name&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;changing-session-name&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;21-127&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To change a session name, send a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://app.whatsgate.org/api/v1/set-name&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;128-264&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;request-body-object&quot;&gt;Request body object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body must contain:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;,
  &amp;quot;name&amp;quot;: &amp;quot;new name&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - WhatsApp identifier in the system&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;name&lt;/strong&gt; - new session name&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;265-494&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;,
  &amp;quot;data&amp;quot;:  {
     &amp;quot;id&amp;quot;: 151,
     &amp;quot;name&amp;quot;: &amp;quot;new name&amp;quot;,
     &amp;quot;unique_id&amp;quot;: &amp;quot;6345454545454&amp;quot;,
     &amp;quot;status&amp;quot;: &amp;quot;READY&amp;quot;,
     &amp;quot;callback&amp;quot;: &amp;quot;https://callback.my/script.handler&amp;quot;,
     &amp;quot;date_add&amp;quot;: &amp;quot;2022-10-11 19:30:14&amp;quot;,
     &amp;quot;status_name&amp;quot;: &amp;quot;Working&amp;quot;,
     &amp;quot;pushname&amp;quot;: &amp;quot;John&amp;quot;,
     &amp;quot;wid&amp;quot;: &amp;quot;19991234567@c.us&amp;quot;,
  }
}&lt;/pre&gt;

&lt;p&gt;
&lt;strong&gt;data&lt;/strong&gt; - session object
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;495-&amp;quot;} --&gt;</description>
            <author>denis716@undisclosed.example.com (denis716)</author>
        <category>api</category>
            <pubDate>Fri, 25 Sep 2026 21:14:09 +0000</pubDate>
        </item>
        <item>
            <title>Getting the session list - [Response object] </title>
            <link>https://whatsgate.org/docs/api/sessions-get</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;getting-the-session-list&quot;&gt;Getting the session list&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
This command is used to get the list of sessions for an account.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Getting the session list&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;getting-the-session-list&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;21-126&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To retrieve the session list, send a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://app.whatsgate.org/api/v1/sessions-get&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;127-271&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;request-body-object&quot;&gt;Request body object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body accepts:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot; : &amp;quot;&amp;quot;,
  &amp;quot;name&amp;quot; : &amp;quot;&amp;quot;,
  &amp;quot;status&amp;quot; : &amp;quot;&amp;quot;,
  &amp;quot;page_cnt&amp;quot; : &amp;quot;&amp;quot;,
  &amp;quot;page&amp;quot; : &amp;quot;&amp;quot;
}&lt;/pre&gt;

&lt;p&gt;
All fields in this object are optional, so an empty object is enough to get the full list of active sessions. Fields &lt;strong&gt;WhatsappID&lt;/strong&gt;, &lt;strong&gt;name&lt;/strong&gt;, and &lt;strong&gt;status&lt;/strong&gt; are filters.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - filter by WhatsApp identifier, exact match; returns one session with the specified identifier.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;name&lt;/strong&gt; - filter by name, partial match.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;status&lt;/strong&gt; - session status filter. Can be one of:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; AUTH - sessions in authorization status.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; READY - sessions in working state.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; ERROR - sessions in error state.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; CLOSED - closed sessions (due to error or end of paid period)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;page_cnt&lt;/strong&gt; - maximum sessions returned per page. Default is 50, maximum is 100.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;page&lt;/strong&gt; - page number. Default is 1&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;272-1149&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;,
  &amp;quot;pages&amp;quot; : 1,
  &amp;quot;elements&amp;quot; : 2,
  &amp;quot;page&amp;quot; : 1,
  &amp;quot;data&amp;quot; : [
     {
        &amp;quot;id&amp;quot;: 151,
        &amp;quot;name&amp;quot;: &amp;quot;My WhatsApp 1&amp;quot;,
        &amp;quot;unique_id&amp;quot;: &amp;quot;6345454545454&amp;quot;,
        &amp;quot;status&amp;quot;: &amp;quot;AUTH&amp;quot;,
        &amp;quot;callback&amp;quot;: &amp;quot;&amp;quot;,
        &amp;quot;date_add&amp;quot;: &amp;quot;2022-10-11 19:30:14&amp;quot;,
        &amp;quot;status_name&amp;quot;: &amp;quot;Authorization&amp;quot;,
        &amp;quot;pushname&amp;quot;: null,
        &amp;quot;wid&amp;quot;: null,
        &amp;quot;qr_link&amp;quot;: &amp;quot;https://app.whatsgate.org/qr/6345454545454&amp;quot;
     },
     {
        &amp;quot;id&amp;quot;: 152,
        &amp;quot;name&amp;quot;: &amp;quot;My WhatsApp 2&amp;quot;,
        &amp;quot;unique_id&amp;quot;: &amp;quot;6345454545455&amp;quot;,
        &amp;quot;status&amp;quot;: &amp;quot;READY&amp;quot;,
        &amp;quot;callback&amp;quot;: &amp;quot;&amp;quot;,
        &amp;quot;date_add&amp;quot;: &amp;quot;2022-10-12 10:35:01&amp;quot;,
        &amp;quot;status_name&amp;quot;: &amp;quot;Working&amp;quot;,
        &amp;quot;pushname&amp;quot;: &amp;quot;John&amp;quot;,
        &amp;quot;wid&amp;quot;: &amp;quot;19991234567@c.us&amp;quot;,
        &amp;quot;qr_link&amp;quot;: &amp;quot;&amp;quot;
     },
  ]
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;result&lt;/strong&gt; - contains “OK” when the request succeeds&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;pages&lt;/strong&gt; - number of pages for the selected filters&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;elements&lt;/strong&gt; - number of elements in the filtered result (number of WhatsApp sessions returned)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;page&lt;/strong&gt; - current page number&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;data&lt;/strong&gt; - contains an array of WhatsApp session objects&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1150-&amp;quot;} --&gt;</description>
            <author>denis716@undisclosed.example.com (denis716)</author>
        <category>api</category>
            <pubDate>Fri, 25 Sep 2026 21:13:27 +0000</pubDate>
        </item>
        <item>
            <title>Deleting a session via API - [Response object] </title>
            <link>https://whatsgate.org/docs/api/session-delete</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;deleting-a-session-via-api&quot;&gt;Deleting a session via API&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Deleting a session means WhatsApp authorization is terminated, all session data is removed from Whatsgate servers, and resources are released (for example, if your plan allows only 1 session, you cannot create a new one until the current session is deleted).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Deleting a session via API&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;deleting-a-session-via-api&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;20-321&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To send this request, issue a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://app.whatsgate.org/api/v1/session-delete&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;322-461&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;request-body-object&quot;&gt;Request body object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body must contain:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - WhatsApp identifier in the system&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;462-637&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;,
  &amp;quot;data&amp;quot;: {
        &amp;quot;id&amp;quot;: 456,
        &amp;quot;name&amp;quot;: &amp;quot;My Whatsapp&amp;quot;,
        &amp;quot;unique_id&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;,
        &amp;quot;status&amp;quot;: &amp;quot;DESTROYING&amp;quot;,
        &amp;quot;callback&amp;quot;: null,
        &amp;quot;date_add&amp;quot;: &amp;quot;2022-10-12 07:10:49&amp;quot;,
        &amp;quot;status_name&amp;quot;: &amp;quot;Deleting&amp;quot;,
        &amp;quot;pushname&amp;quot;: &amp;quot;John&amp;quot;,
        &amp;quot;wid&amp;quot;: &amp;quot;19991234567@c.us&amp;quot;,
    }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;638-&amp;quot;} --&gt;</description>
            <author>denis716@undisclosed.example.com (denis716)</author>
        <category>api</category>
            <pubDate>Fri, 25 Sep 2026 21:12:36 +0000</pubDate>
        </item>
        <item>
            <title>Creating a session via API - [Embedding the QR page] </title>
            <link>https://whatsgate.org/docs/api/session-create</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;creating-a-session-via-api&quot;&gt;Creating a session via API&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
This command opens a WhatsApp session to link it to the service. After opening, you must authorize WhatsApp through the mobile app and QR code. If the session is no longer needed, close it using &lt;a href=&quot;https://whatsgate.org/docs/api/session-delete&quot; class=&quot;wikilink1&quot; title=&quot;api:session-delete&quot; data-wiki-id=&quot;api:session-delete&quot;&gt;session-delete&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Creating a session via API&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;creating-a-session-via-api&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;20-295&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To create a session, send a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://app.whatsgate.org/api/v1/session-create&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;296-433&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;request-body-object-for-qr-authorization&quot;&gt;Request body object for QR authorization&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body must contain:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;name&amp;quot; : &amp;quot;My WhatsApp&amp;quot;,
  &amp;quot;callback&amp;quot; : &amp;quot;https://callback.my/script.handler&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;name&lt;/strong&gt; - WhatsApp name in the system (for easier identification)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;callback&lt;/strong&gt; - &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt; of the &lt;a href=&quot;https://whatsgate.org/docs/api/webhook&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;incoming events&lt;/a&gt; handler (optional, can be set later via &lt;a href=&quot;https://whatsgate.org/docs/api/webhook&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;set-hook&lt;/a&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object for QR authorization&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object-for-qr-authorization&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;434-817&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;request-body-object-for-code-authorization&quot;&gt;Request body object for CODE authorization&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body must contain:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;name&amp;quot; : &amp;quot;My WhatsApp&amp;quot;,
  &amp;quot;callback&amp;quot; : &amp;quot;https://callback.my/script.handler&amp;quot;,
  &amp;quot;auth_type&amp;quot; : &amp;quot;CODE&amp;quot;,
  &amp;quot;number&amp;quot; : &amp;quot;19999999999&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;name&lt;/strong&gt; - WhatsApp name in the system (for easier identification)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;callback&lt;/strong&gt; - &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt; of the &lt;a href=&quot;https://whatsgate.org/docs/api/webhook&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;incoming events&lt;/a&gt; handler (optional, can be set later via &lt;a href=&quot;https://whatsgate.org/docs/api/webhook&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;set-hook&lt;/a&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;auth_type&lt;/strong&gt; - authorization type set to code. In this mode, phone number becomes required.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;number&lt;/strong&gt; - phone number to connect in 7XXXXXXXXXX format&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object for CODE authorization&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object-for-code-authorization&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;818-1415&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;,
  &amp;quot;data&amp;quot; : {
     &amp;quot;id&amp;quot;: 151,
     &amp;quot;name&amp;quot;: &amp;quot;My WhatsApp&amp;quot;,
     &amp;quot;unique_id&amp;quot;: &amp;quot;6345454545454&amp;quot;,
     &amp;quot;status&amp;quot;: &amp;quot;PENDING&amp;quot;,
     &amp;quot;callback&amp;quot;: &amp;quot;https://callback.my/script.handler&amp;quot;,
     &amp;quot;date_add&amp;quot;: &amp;quot;2022-10-11 19:30:14&amp;quot;,
     &amp;quot;qr&amp;quot;: null,
     &amp;quot;status_name&amp;quot;: &amp;quot;Initialization&amp;quot;,
     &amp;quot;pushname&amp;quot;: null,
     &amp;quot;wid&amp;quot;: null,
     &amp;quot;qr_link&amp;quot;: &amp;quot;https://app.whatsgate.org/qr/6345454545454&amp;quot;
  }
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;result&lt;/strong&gt; - contains “OK” when the request succeeds.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;data&lt;/strong&gt; - contains created session object including its unique identifier &lt;strong&gt;unique_id&lt;/strong&gt; and QR authorization link &lt;strong&gt;qr_link&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;qr&lt;/strong&gt; or &lt;strong&gt;code&lt;/strong&gt; depends on selected authorization type. If code authorization is selected, the code is returned in &lt;strong&gt;code&lt;/strong&gt;. Field &lt;strong&gt;qr_link&lt;/strong&gt; points to the authorization code page.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1416-2267&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;qr-authorization-window&quot;&gt;QR authorization window&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The QR authorization window is available at:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://app.whatsgate.org/qr/&amp;lt;unique_id&amp;gt;&lt;/pre&gt;

&lt;p&gt;
For convenience, this link is returned in &lt;strong&gt;qr_link&lt;/strong&gt; when creating a session. The QR code in this window is updated periodically and changes to a success or error image after authorization.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://whatsgate.org/docs/_detail/api/feature-image-success.jpg?id=api%3Asession-create&quot; class=&quot;media&quot; title=&quot;api:feature-image-success.jpg&quot;&gt;&lt;img src=&quot;https://whatsgate.org/docs/_media/api/feature-image-success.jpg?w=100&amp;amp;tok=0a1150&quot; class=&quot;medialeft&quot; align=&quot;left&quot; alt=&quot;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://whatsgate.org/docs/_detail/api/feature-image-error.jpg?id=api%3Asession-create&quot; class=&quot;media&quot; title=&quot;api:feature-image-error.jpg&quot;&gt;&lt;img src=&quot;https://whatsgate.org/docs/_media/api/feature-image-error.jpg?w=100&amp;amp;tok=f63f73&quot; class=&quot;media&quot; alt=&quot;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;QR authorization window&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;qr-authorization-window&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2268-2677&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;embedding-the-qr-page&quot;&gt;Embedding the QR page&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
This page can be embedded into your app via iframe, and parent page can receive messages from it. Embedding example:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;h1&amp;gt;QR test code&amp;lt;/h1&amp;gt;

&amp;lt;iframe src=&amp;quot;https://app.whatsgate.org/qr/6345454545454&amp;quot; width=&amp;quot;310&amp;quot; height=&amp;quot;310&amp;quot; style=&amp;quot;border: none;&amp;quot;&amp;gt;

&amp;lt;/iframe&amp;gt;

&amp;lt;div class=&amp;quot;log&amp;quot; id=&amp;quot;log&amp;quot;&amp;gt;

&amp;lt;/div&amp;gt;

&amp;lt;script&amp;gt;
    window.addEventListener(&amp;quot;message&amp;quot;, function(event) {

        console.log(event);

        if (event.origin !== &amp;#039;https://whatsgate.org&amp;#039;) {
            // something came from an unknown domain; ignore it
            return;
        }

        if(typeof event.data !== &amp;#039;object&amp;#039;) {
            // message must be an object
            return;
        }

        if(!(&amp;#039;module&amp;#039; in event.data) &amp;amp;&amp;amp; event.data.module !== &amp;#039;qr&amp;#039;){
            // object must contain module field with value qr
            return;
        }

        //if we&amp;#039;re here, the message is valid; output it
        console.log( &amp;quot;received: &amp;quot; + event.data.message);
        //append message to parent-page log
        document.getElementById(&amp;#039;log&amp;#039;).append(&amp;quot;received: &amp;quot; + event.data.message, document.createElement(&amp;quot;br&amp;quot;));
    });
&amp;lt;/script&amp;gt;&lt;/pre&gt;

&lt;p&gt;
The message object is in &lt;strong&gt;event.data&lt;/strong&gt; and has this format:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;module&amp;quot; : &amp;quot;qr&amp;quot;,
  &amp;quot;message&amp;quot; : &amp;quot;&amp;lt;message&amp;gt;&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;module&lt;/strong&gt; - always has value qr, to identify relevant messages&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;message&lt;/strong&gt; - can have the following values:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;loading&lt;/strong&gt; - session initialization and QR code loading; sent at page load start&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;qr&lt;/strong&gt; - QR code has been generated and displayed; sent each time code refreshes&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;success&lt;/strong&gt; - device authorized successfully; QR code is hidden&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;error&lt;/strong&gt; - authorization error occurred; try again&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;broken&lt;/strong&gt; - attempt to open a window with non-existing or closed session identifier&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Embedding the QR page&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;embedding-the-qr-page&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2678-&amp;quot;} --&gt;</description>
            <author>denis716@undisclosed.example.com (denis716)</author>
        <category>api</category>
            <pubDate>Fri, 25 Sep 2026 21:12:03 +0000</pubDate>
        </item>
        <item>
            <title>Incoming events processing (events-get) - [Request command] </title>
            <link>https://whatsgate.org/docs/api/events-get</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;incoming-events-processing-events-get&quot;&gt;Incoming events processing (events-get)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
This command is used to request and retrieve a list of incoming events, such as:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; incoming messages (action = message)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; message read/update (action = ack)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; incoming media file (action = media)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; message sent (action = sent) - this event appears only for asynchronous sending&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; error (action = error)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; WhatsApp disconnect and session removal (action = disconnect)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Incoming events processing (events-get)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;incoming-events-processing-events-get&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;22-456&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;request-command&quot;&gt;Request command&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To retrieve the event list, send a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://app.whatsgate.org/api/v1/events-get&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request command&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-command&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;457-597&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;request-body-object&quot;&gt;Request body object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The request body accepts the following object:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot; : &amp;quot;XXXXXXXXXXXXX&amp;quot;,
  &amp;quot;date&amp;quot; : &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;,
  &amp;quot;action&amp;quot; : &amp;quot;message&amp;quot;,
  &amp;quot;page_cnt&amp;quot; : &amp;quot;10&amp;quot;,
  &amp;quot;page&amp;quot; : &amp;quot;1&amp;quot;
}&lt;/pre&gt;

&lt;p&gt;
All fields in this object are &lt;strong&gt;optional&lt;/strong&gt;, meaning an empty object is enough to get the full list of events. Fields &lt;strong&gt;WhatsappID&lt;/strong&gt; and &lt;strong&gt;action&lt;/strong&gt; are filters, and &lt;strong&gt;date&lt;/strong&gt; limits events by date. The date is typically used like this: after reading events, take the date of the last event and pass it in the next request as &lt;strong&gt;date&lt;/strong&gt; to fetch only newer events.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - filter by WhatsApp identifier; uses exact match and returns events for the specified session. If omitted, the system returns events for all sessions, including deleted ones.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;date&lt;/strong&gt; - limits events by the specified date. A common pattern is to reuse the latest received event date in the next request to get fresh events only.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;action&lt;/strong&gt; - event type filter. Can be one of:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; message - incoming message.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; ack - message status update.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; media - incoming media file.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; sent - message sent (only when sending asynchronously)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; error - error&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; disconnect - WhatsApp disconnect and session deletion&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; create - outgoing message&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;page_cnt&lt;/strong&gt; - maximum number of events per response page. Default is 10, maximum is 100.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;page&lt;/strong&gt; - response page number. Default is 1&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Request body object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;request-body-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;598-2013&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;response-object&quot;&gt;Response object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;,
  &amp;quot;pages&amp;quot; : 1,
  &amp;quot;elements&amp;quot; : 2,
  &amp;quot;page&amp;quot; : 1,
  &amp;quot;data&amp;quot; : [
     // 
  ]
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;result&lt;/strong&gt; - contains “OK” when the request succeeds&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;pages&lt;/strong&gt; - number of pages for the given filters&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;elements&lt;/strong&gt; - number of matching elements (event count)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;page&lt;/strong&gt; - current page number&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;data&lt;/strong&gt; - contains an array of &lt;a href=&quot;https://whatsgate.org/docs/api/webhook&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;objects representing events&lt;/a&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Response object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;response-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2014-&amp;quot;} --&gt;</description>
            <author>denis716@undisclosed.example.com (denis716)</author>
        <category>api</category>
            <pubDate>Fri, 25 Sep 2026 21:10:25 +0000</pubDate>
        </item>
        <item>
            <title>Incoming processing (Webhook) - [Message object] </title>
            <link>https://whatsgate.org/docs/api/webhook</link>
            <description>


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;incoming-processing-webhook&quot;&gt;Incoming processing (Webhook)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Webhook is used to process incoming events, asynchronous request responses, and error information. For example, when an incoming message is received in the messenger, a POST request is sent to the configured webhook:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot;:18,
  &amp;quot;whatsapp_id&amp;quot;:&amp;quot;191b80a9238&amp;quot;,
  &amp;quot;event_action&amp;quot;:&amp;quot;message&amp;quot;,
  &amp;quot;event_date&amp;quot;:&amp;quot;2022-09-07 18:29:37&amp;quot;,
  &amp;quot;status_code&amp;quot;:null,
  &amp;quot;event_data&amp;quot;:
  {
    &amp;quot;message&amp;quot;: 
    {
       &amp;quot;_id&amp;quot; : &amp;quot;3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;id&amp;quot;:&amp;quot;false_19999999999@c.us_3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;ack&amp;quot;:1,
       &amp;quot;hasMedia&amp;quot;:false,
       &amp;quot;mediaKey&amp;quot;:&amp;quot;&amp;quot;,
       &amp;quot;body&amp;quot;:&amp;quot;212&amp;quot;,
       &amp;quot;type&amp;quot;:&amp;quot;chat&amp;quot;,
       &amp;quot;timestamp&amp;quot;:1662575377,
       &amp;quot;from&amp;quot;:&amp;quot;19991112233@c.us&amp;quot;,
       &amp;quot;to&amp;quot;:&amp;quot;19999999999@c.us&amp;quot;,
       &amp;quot;isForwarded&amp;quot;:false
    }
  }
}&lt;/pre&gt;

&lt;p&gt;
To confirm successful event receipt, your webhook must return a JSON object containing the incoming event identifier and status OK.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot; : &amp;quot;OK&amp;quot;,
  &amp;quot;id&amp;quot; : 18
}&lt;/pre&gt;

&lt;p&gt;
If the system does not receive a valid response, it retries the request 3 times every 20 seconds.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Incoming processing (Webhook)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;incoming-processing-webhook&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;20-1095&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;webhook-setup&quot;&gt;Webhook setup&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Webhook setup&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;webhook-setup&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1096-1124&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;webhook-setup-in-account-dashboard&quot;&gt;Webhook setup in account dashboard&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To set a Webhook handler &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;, open your account dashboard, choose the linked WhatsApp block, click the 3 dots, then click edit.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://whatsgate.org/docs/_detail/api/hook1.jpg?id=api%3Awebhook&quot; class=&quot;media&quot; title=&quot;api:hook1.jpg&quot;&gt;&lt;img src=&quot;https://whatsgate.org/docs/_media/api/hook1.jpg?w=400&amp;amp;tok=4b6188&quot; class=&quot;media&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
In the opened window, specify the &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt; to your Webhook handler script.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://whatsgate.org/docs/_detail/api/hook2.jpg?id=api%3Awebhook&quot; class=&quot;media&quot; title=&quot;api:hook2.jpg&quot;&gt;&lt;img src=&quot;https://whatsgate.org/docs/_media/api/hook2.jpg?w=400&amp;amp;tok=d1fa27&quot; class=&quot;media&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Click “Save”.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Webhook setup in account dashboard&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;webhook-setup-in-account-dashboard&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1125-1437&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;webhook-setup-via-api&quot;&gt;Webhook setup via API&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To enable or disable WebHook via &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;, use the set-hook method.
Send a POST request to:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://app.whatsgate.org/api/v1/set-hook&lt;/pre&gt;

&lt;p&gt;
Request body:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;WhatsappID&amp;quot;: &amp;quot;YOUR_WHATSAPP_ID&amp;quot;,
  &amp;quot;callback&amp;quot;: &amp;quot;https://callback.my/script.handler&amp;quot;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WhatsappID&lt;/strong&gt; - WhatsApp identifier in the system&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;callback&lt;/strong&gt; - &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt; of &lt;a href=&quot;https://whatsgate.org/docs/api/webhook&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;incoming events&lt;/a&gt; handler&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Successful response object
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;result&amp;quot;: &amp;quot;OK&amp;quot;
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Webhook setup via API&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;webhook-setup-via-api&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1438-1927&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit5&quot; id=&quot;event-types&quot;&gt;Event types&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#ready&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;ready&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#message&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;message&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#sent&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;sent&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#ack&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;ack&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#disconnect&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;disconnect&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#error&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;error&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#create&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;create&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Event types&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;event-types&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1928-2189&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;ready&quot;&gt;Ready&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This event is sent after authorization, when the client is fully ready to send and receive messages. Session status changes from AUTH to READY.
Field event_action contains “ready”.
Field event_data contains authorized account data: number and name.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;pushname&lt;/strong&gt; - client&amp;#039;s name in messenger&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;number&lt;/strong&gt; - authorized phone number&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;id&lt;/strong&gt; - WhatsApp identifier in @c.us format&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot;:19,
  &amp;quot;whatsapp_id&amp;quot; : &amp;quot;191b80a9238&amp;quot;,
  &amp;quot;event_action&amp;quot; : &amp;quot;ready&amp;quot;,
  &amp;quot;event_date&amp;quot; : &amp;quot;2023-01-24 18:29:37&amp;quot;,
  &amp;quot;status_code&amp;quot; : null,
  &amp;quot;event_data&amp;quot; :
  {
    &amp;quot;pushname&amp;quot;: &amp;quot;John&amp;quot;,
    &amp;quot;number&amp;quot; : &amp;quot;19991234567&amp;quot;,
    &amp;quot;id&amp;quot; : &amp;quot;19991234567@c.us&amp;quot;
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Ready&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ready&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2190-2861&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;message&quot;&gt;Message&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This event is sent for any incoming message in a chat or group.
Field event_action contains “message”.
Field event_data contains a &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#message-object&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;message object&lt;/a&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot;:18,
  &amp;quot;whatsapp_id&amp;quot;:&amp;quot;191b80a9238&amp;quot;,
  &amp;quot;event_action&amp;quot;:&amp;quot;message&amp;quot;,
  &amp;quot;event_date&amp;quot;:&amp;quot;2022-09-07 18:29:37&amp;quot;,
  &amp;quot;status_code&amp;quot;:null,
  &amp;quot;event_data&amp;quot;:
  {
    &amp;quot;message&amp;quot;: 
    {
       &amp;quot;_id&amp;quot;:&amp;quot;3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;id&amp;quot;:&amp;quot;false_19999999999@c.us_3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;ack&amp;quot;:1,
       &amp;quot;hasMedia&amp;quot;:false,
       &amp;quot;mediaKey&amp;quot;:&amp;quot;&amp;quot;,
       &amp;quot;body&amp;quot;:&amp;quot;212&amp;quot;,
       &amp;quot;type&amp;quot;:&amp;quot;chat&amp;quot;,
       &amp;quot;timestamp&amp;quot;:1662575377,
       &amp;quot;from&amp;quot;:&amp;quot;19991112233@c.us&amp;quot;,
       &amp;quot;to&amp;quot;:&amp;quot;19999999999@c.us&amp;quot;,
       &amp;quot;isForwarded&amp;quot;:false
    }
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Message&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;message&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2862-3589&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;sent&quot;&gt;Sent&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This event is sent after successful message delivery when an asynchronous send command was used.
&lt;/p&gt;

&lt;p&gt;
Field event_action contains “sent”.
Field event_data contains the delivered &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#message-object&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;message object&lt;/a&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot;:19,
  &amp;quot;whatsapp_id&amp;quot;:&amp;quot;191b80a9238&amp;quot;,
  &amp;quot;event_action&amp;quot;:&amp;quot;sent&amp;quot;,
  &amp;quot;event_date&amp;quot;:&amp;quot;2022-09-07 18:29:37&amp;quot;,
  &amp;quot;status_code&amp;quot;:null,
  &amp;quot;event_data&amp;quot;:
  {
    &amp;quot;message&amp;quot;: 
    {
       &amp;quot;_id&amp;quot;:&amp;quot;3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;id&amp;quot;:&amp;quot;false_19999999999@c.us_3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;ack&amp;quot;:1,
       &amp;quot;hasMedia&amp;quot;:false,
       &amp;quot;mediaKey&amp;quot;:&amp;quot;&amp;quot;,
       &amp;quot;body&amp;quot;:&amp;quot;212&amp;quot;,
       &amp;quot;type&amp;quot;:&amp;quot;chat&amp;quot;,
       &amp;quot;timestamp&amp;quot;:1662575377,
       &amp;quot;from&amp;quot;:&amp;quot;19999999999@c.us&amp;quot;,
       &amp;quot;to&amp;quot;:&amp;quot;19991112233@c.us&amp;quot;,
       &amp;quot;isForwarded&amp;quot;:false
    }
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Sent&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sent&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;3590-4354&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;ack&quot;&gt;Ack&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This event is sent when a message status changes in a chat or group.
Field event_action contains “ack”.
Field event_data contains the &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#message-object&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;message object&lt;/a&gt; whose status changed.
Message status is in message field ack and can be: 1 - sent, 2 - delivered, 3 - read.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot;:19,
  &amp;quot;whatsapp_id&amp;quot;:&amp;quot;191b80a9238&amp;quot;,
  &amp;quot;event_action&amp;quot;:&amp;quot;ack&amp;quot;,
  &amp;quot;event_date&amp;quot;:&amp;quot;2022-09-07 18:29:37&amp;quot;,
  &amp;quot;status_code&amp;quot;:null,
  &amp;quot;event_data&amp;quot;:
  {
    &amp;quot;message&amp;quot;: 
    {
       &amp;quot;_id&amp;quot;:&amp;quot;3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;id&amp;quot;:&amp;quot;false_19999999999@c.us_3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;ack&amp;quot;:1,
       &amp;quot;hasMedia&amp;quot;:false,
       &amp;quot;mediaKey&amp;quot;:&amp;quot;&amp;quot;,
       &amp;quot;body&amp;quot;:&amp;quot;212&amp;quot;,
       &amp;quot;type&amp;quot;:&amp;quot;chat&amp;quot;,
       &amp;quot;timestamp&amp;quot;:1662575377,
       &amp;quot;from&amp;quot;:&amp;quot;19999999999@c.us&amp;quot;,
       &amp;quot;to&amp;quot;:&amp;quot;19991112233@c.us&amp;quot;,
       &amp;quot;isForwarded&amp;quot;:false
    }
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Ack&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ack&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;4355-5184&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;disconnect&quot;&gt;Disconnect&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This event is sent when the client disconnects and closes. This happens when you remove the client from your account dashboard or revoke the link in the WhatsApp mobile app.
Field event_action contains “disconnect”.
Field event_data contains an object with field reason describing the disconnect cause.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot;:19,
  &amp;quot;whatsapp_id&amp;quot;:&amp;quot;191b80a9238&amp;quot;,
  &amp;quot;event_action&amp;quot;:&amp;quot;disconnect&amp;quot;,
  &amp;quot;event_date&amp;quot;:&amp;quot;2022-09-07 18:29:37&amp;quot;,
  &amp;quot;status_code&amp;quot;:null,
  &amp;quot;event_data&amp;quot;:
  {
    &amp;quot;reason&amp;quot;: &amp;quot;Client disconnected&amp;quot;
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Disconnect&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;disconnect&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;5185-5725&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;error&quot;&gt;Error&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This event is sent when any error occurs. For example, when you try to send asynchronously to a number outside your contact list on the Light plan.
Field event_action contains “error”.
Field event_data contains an object describing the error.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot;:19,
  &amp;quot;whatsapp_id&amp;quot;:&amp;quot;191b80a9238&amp;quot;,
  &amp;quot;event_action&amp;quot;:&amp;quot;error&amp;quot;,
  &amp;quot;event_date&amp;quot;:&amp;quot;2022-09-07 18:29:37&amp;quot;,
  &amp;quot;status_code&amp;quot;:null,
  &amp;quot;event_data&amp;quot;:
  {
    &amp;quot;error&amp;quot;:&amp;quot;Specified number not in your contact list&amp;quot;
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Error&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;error&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;5726-6216&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit12&quot; id=&quot;create&quot;&gt;Create&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This event is sent for any outgoing message in a chat or group. It lets you track sent messages via webhook, including messages sent from the mobile client or other linked applications.
&lt;/p&gt;

&lt;p&gt;
Field event_action contains “create”.
&lt;/p&gt;

&lt;p&gt;
Field event_data contains a &lt;a href=&quot;https://whatsgate.org/docs/api/webhook#message-object&quot; class=&quot;wikilink1&quot; title=&quot;api:webhook&quot; data-wiki-id=&quot;api:webhook&quot;&gt;message object&lt;/a&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{
  &amp;quot;id&amp;quot;:18,
  &amp;quot;whatsapp_id&amp;quot;:&amp;quot;191b80a9238&amp;quot;,
  &amp;quot;event_action&amp;quot;:&amp;quot;create&amp;quot;,
  &amp;quot;event_date&amp;quot;:&amp;quot;2022-09-07 18:29:37&amp;quot;,
  &amp;quot;status_code&amp;quot;:null,
  &amp;quot;event_data&amp;quot;:
  {
    &amp;quot;message&amp;quot;: 
    {
       &amp;quot;_id&amp;quot;:&amp;quot;3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;id&amp;quot;:&amp;quot;true_19999999999@c.us_3EB0436AE1E682FF3A37&amp;quot;,
       &amp;quot;ack&amp;quot;:1,
       &amp;quot;hasMedia&amp;quot;:false,
       &amp;quot;mediaKey&amp;quot;:&amp;quot;&amp;quot;,
       &amp;quot;body&amp;quot;:&amp;quot;212&amp;quot;,
       &amp;quot;type&amp;quot;:&amp;quot;chat&amp;quot;,
       &amp;quot;timestamp&amp;quot;:1662575377,
       &amp;quot;from&amp;quot;:&amp;quot;19991112233@c.us&amp;quot;,
       &amp;quot;to&amp;quot;:&amp;quot;19999999999@c.us&amp;quot;,
       &amp;quot;isForwarded&amp;quot;:false
    }
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Create&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;create&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;6217-7064&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;message-object&quot;&gt;Message object&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;{
   &amp;quot;_id&amp;quot;:&amp;quot;3EB0436AE1E682FF3A37&amp;quot;,
   &amp;quot;id&amp;quot;:&amp;quot;false_19999999999@c.us_3EB0436AE1E682FF3A37&amp;quot;,
   &amp;quot;ack&amp;quot;:1,
   &amp;quot;hasMedia&amp;quot;:false,
   &amp;quot;mediaKey&amp;quot;:&amp;quot;&amp;quot;,
   &amp;quot;body&amp;quot;:&amp;quot;212&amp;quot;,
   &amp;quot;type&amp;quot;:&amp;quot;chat&amp;quot;,
   &amp;quot;timestamp&amp;quot;:1662575377,
   &amp;quot;from&amp;quot;:&amp;quot;19999999999@c.us&amp;quot;,
   &amp;quot;to&amp;quot;:&amp;quot;19991112233@c.us&amp;quot;,
   &amp;quot;isForwarded&amp;quot;:false,
   &amp;quot;quoted&amp;quot;: {
       &amp;quot;_id&amp;quot;: &amp;quot;3EB07621A4D08F9F59E0&amp;quot;,
       &amp;quot;from&amp;quot;: &amp;quot;19537226631@c.us&amp;quot;,
       &amp;quot;type&amp;quot;: &amp;quot;chat&amp;quot;,
       &amp;quot;body&amp;quot;: &amp;quot;Hello!&amp;quot;
   }
}&lt;/pre&gt;

&lt;p&gt;
Message object fields:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;_id&lt;/strong&gt; - message identifier in WhatsApp.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;id&lt;/strong&gt; - WhatsApp message identifier that can be passed in the “&lt;a href=&quot;https://whatsgate.org/docs/api/send&quot; class=&quot;wikilink1&quot; title=&quot;api:send&quot; data-wiki-id=&quot;api:send&quot;&gt;quote&lt;/a&gt;” field to mark a message as a reply.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;ack&lt;/strong&gt;  - (int) status flag showing message state: 1 - sent, 2 - delivered, 3 - read&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;hasMedia&lt;/strong&gt; - flag indicating whether message contains a media file&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;mediaKey&lt;/strong&gt; - media file key used in &lt;a href=&quot;https://whatsgate.org/docs/api/get-media&quot; class=&quot;wikilink2&quot; title=&quot;api:get-media&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;api:get-media&quot;&gt;get-media&lt;/a&gt; to fetch media.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;body&lt;/strong&gt; - message text&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;type&lt;/strong&gt; - message type&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;timestamp&lt;/strong&gt; - message date in Unix timestamp format&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;from&lt;/strong&gt; - sender identifier&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;to&lt;/strong&gt; - recipient identifier&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;isForwarded&lt;/strong&gt; - indicates whether the message was forwarded from another chat&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;quoted&lt;/strong&gt; - if this message quotes (replies to) another message, quoted contains the quoted message object.&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt;   &lt;strong&gt;_id&lt;/strong&gt; - quoted message identifier&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt;   &lt;strong&gt;from&lt;/strong&gt; - quoted message author identifier&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt;   &lt;strong&gt;type&lt;/strong&gt; - quoted message type&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt;   &lt;strong&gt;body&lt;/strong&gt; - quoted message text&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Message object&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;message-object&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;7065-8529&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;php-code-for-webhook-request-handling&quot;&gt;PHP code for webhook request handling&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;//buffer output&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/ob_start&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;ob_start&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;a href=&quot;http://www.php.net/var_dump&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;var_dump&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'----------------------'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/date&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;date&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'d.m.Y H:i:s'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'----------------'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;//extract request data&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/file_get_contents&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file_get_contents&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'php://input'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$input_data&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_decode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_decode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;a href=&quot;http://www.php.net/var_dump&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;var_dump&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input_data&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input_data&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'event_action'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'message'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;//@TODO process incoming message&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input_data&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'event_action'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'ack'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;//@TODO process delivery or read status&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input_data&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'event_data'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'message'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'ack'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;//@TODO delivered&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input_data&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'event_data'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'message'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'ack'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;//@TODO read&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;//save log&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$fo&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/fopen&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;fopen&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'webhook.log'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'a'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/fwrite&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;fwrite&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$fo&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;a href=&quot;http://www.php.net/ob_get_clean&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;ob_get_clean&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/fclose&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;fclose&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$fo&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;//build and output response&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$answer_data&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;
    &lt;span class=&quot;st_h&quot;&gt;'id'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input_data&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'id'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;st_h&quot;&gt;'result'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'OK'&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$answer_data&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;PHP code for webhook request handling&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;php-code-for-webhook-request-handling&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:13,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;8530-&amp;quot;} --&gt;</description>
            <author>denis716@undisclosed.example.com (denis716)</author>
        <category>api</category>
            <pubDate>Fri, 25 Sep 2026 21:09:52 +0000</pubDate>
        </item>
    </channel>
</rss>
