@zapyapi/sdk 1.0.0-beta.5 → 1.0.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
  var axios = require('axios');
4
4
 
5
5
  /** SDK version - auto-generated from package.json */
6
- const SDK_VERSION = '1.0.0-beta.5';
6
+ const SDK_VERSION = '1.0.0-beta.7';
7
7
 
8
8
  /**
9
9
  * Custom error classes for @zapyapi/sdk
@@ -1201,7 +1201,7 @@ class InstancesResource extends BaseResource {
1201
1201
  *
1202
1202
  * @example
1203
1203
  * ```typescript
1204
- * import { ZapyClient, WebhookEventType, isMessageEvent } from '@zapyapi/sdk';
1204
+ * import { ZapyClient, ZapyEventTypes, isTextMessage } from '@zapyapi/sdk';
1205
1205
  *
1206
1206
  * const client = new ZapyClient({
1207
1207
  * apiKey: 'your-api-key',
@@ -1311,44 +1311,21 @@ function createClient(options) {
1311
1311
  /**
1312
1312
  * SDK Enums - Type-safe enums for ZapyAPI SDK
1313
1313
  *
1314
- * These enums can be imported and used for type-safe comparisons and
1315
- * webhook event handling.
1316
- *
1317
1314
  * @example
1318
1315
  * ```typescript
1319
- * import { WebhookEventType, InstanceStatus, MessageAckStatus } from '@zapyapi/sdk';
1320
- *
1321
- * // Type-safe event handling
1322
- * if (event.event === WebhookEventType.MESSAGE) {
1323
- * // Handle message event
1324
- * }
1316
+ * import { InstanceStatus, ZapyEventTypes, ZapyMessageType } from '@zapyapi/sdk';
1325
1317
  *
1326
1318
  * // Check instance status
1327
1319
  * if (instance.status === InstanceStatus.CONNECTED) {
1328
1320
  * // Instance is ready
1329
1321
  * }
1322
+ *
1323
+ * // Handle webhook events
1324
+ * if (payload.event === ZapyEventTypes.MESSAGE) {
1325
+ * // Handle message
1326
+ * }
1330
1327
  * ```
1331
1328
  */
1332
- /**
1333
- * Webhook event types sent by ZapyAPI
1334
- * These are the event types you'll receive in webhook payloads
1335
- */
1336
- const WebhookEventType = {
1337
- /** New message received */
1338
- MESSAGE: 'message',
1339
- /** Message delivery status update */
1340
- MESSAGE_STATUS: 'message-status',
1341
- /** QR code generated for authentication */
1342
- QR_CODE: 'qr-code',
1343
- /** New contact discovered */
1344
- CONTACT_CREATED: 'contact-created',
1345
- /** Contact information updated */
1346
- CONTACT_UPDATED: 'contact-updated',
1347
- /** Duplicate contacts merged */
1348
- CONTACT_DEDUPLICATED: 'contact-deduplicated',
1349
- /** Instance status changed (connected, disconnected, etc.) */
1350
- INSTANCE_STATUS: 'instance-status'
1351
- };
1352
1329
  /**
1353
1330
  * Instance status values
1354
1331
  * Represents the current state of a WhatsApp instance
@@ -1373,48 +1350,6 @@ const InstanceStatus = {
1373
1350
  /** Payment pending for this instance */
1374
1351
  PAYMENT_PENDING: 'payment_pending'
1375
1352
  };
1376
- /**
1377
- * Message acknowledgment status
1378
- * Represents the delivery status of a sent message
1379
- */
1380
- const MessageAckStatus = {
1381
- /** Message is pending to be sent */
1382
- PENDING: 'pending',
1383
- /** Message was sent to server */
1384
- SENT: 'sent',
1385
- /** Message was delivered to recipient */
1386
- DELIVERED: 'delivered',
1387
- /** Message was read by recipient */
1388
- READ: 'read',
1389
- /** Audio/video message was played */
1390
- PLAYED: 'played'
1391
- };
1392
- /**
1393
- * Message types for incoming messages
1394
- * Identifies the type of content in a received message
1395
- */
1396
- const MessageType = {
1397
- /** Text message */
1398
- TEXT: 'text',
1399
- /** Image message */
1400
- IMAGE: 'image',
1401
- /** Video message */
1402
- VIDEO: 'video',
1403
- /** Audio message (voice note or file) */
1404
- AUDIO: 'audio',
1405
- /** Document/file message */
1406
- DOCUMENT: 'document',
1407
- /** Sticker message */
1408
- STICKER: 'sticker',
1409
- /** Location message */
1410
- LOCATION: 'location',
1411
- /** Contact card message */
1412
- CONTACT: 'contact',
1413
- /** Poll message */
1414
- POLL: 'poll',
1415
- /** Reaction message */
1416
- REACTION: 'reaction'
1417
- };
1418
1353
  /**
1419
1354
  * Webhook queue item status
1420
1355
  * Used for monitoring webhook delivery status
@@ -1431,49 +1366,6 @@ const WebhookQueueStatus = {
1431
1366
  /** Webhook delivery is paused due to repeated failures */
1432
1367
  PAUSED: 'paused'
1433
1368
  };
1434
- /**
1435
- * Connection status for webhook events
1436
- * Sent in connection.update webhook events
1437
- */
1438
- const ConnectionStatus = {
1439
- /** Instance is connecting */
1440
- CONNECTING: 'connecting',
1441
- /** Instance is connected */
1442
- CONNECTED: 'connected',
1443
- /** Instance disconnected */
1444
- DISCONNECTED: 'disconnected',
1445
- /** Connection error occurred */
1446
- ERROR: 'error'
1447
- };
1448
-
1449
- /**
1450
- * Webhook event type definitions
1451
- * Types for webhook payloads sent by ZapyAPI
1452
- */
1453
- /** Type guard for message events */
1454
- function isMessageEvent(event) {
1455
- return event.event === 'message';
1456
- }
1457
- /** Type guard for message status events */
1458
- function isMessageStatusEvent(event) {
1459
- return event.event === 'message-status';
1460
- }
1461
- /** Type guard for QR code events */
1462
- function isQRCodeEvent(event) {
1463
- return event.event === 'qr-code';
1464
- }
1465
- /** Type guard for contact created events */
1466
- function isContactCreatedEvent(event) {
1467
- return event.event === 'contact-created';
1468
- }
1469
- /** Type guard for contact updated events */
1470
- function isContactUpdatedEvent(event) {
1471
- return event.event === 'contact-updated';
1472
- }
1473
- /** Type guard for contact deduplicated events */
1474
- function isContactDeduplicatedEvent(event) {
1475
- return event.event === 'contact-deduplicated';
1476
- }
1477
1369
 
1478
1370
  /**
1479
1371
  * WhatsApp Message Event Types
@@ -1566,19 +1458,6 @@ function isMediaMessage(message) {
1566
1458
  return [exports.ZapyMessageType.IMAGE, exports.ZapyMessageType.VIDEO, exports.ZapyMessageType.AUDIO, exports.ZapyMessageType.DOCUMENT, exports.ZapyMessageType.STICKER].includes(message.messageType);
1567
1459
  }
1568
1460
 
1569
- exports.WhatsappInstanceStatus = void 0;
1570
- (function (WhatsappInstanceStatus) {
1571
- WhatsappInstanceStatus["STOPPED"] = "stopped";
1572
- WhatsappInstanceStatus["MANUALLY_STOPPED"] = "manually_stopped";
1573
- WhatsappInstanceStatus["CONNECTING"] = "connecting";
1574
- WhatsappInstanceStatus["PENDING_QR_CODE_SCAN"] = "pending_qr_code_scan";
1575
- WhatsappInstanceStatus["CONNECTED"] = "connected";
1576
- WhatsappInstanceStatus["ERROR"] = "error";
1577
- WhatsappInstanceStatus["CREATED"] = "created";
1578
- WhatsappInstanceStatus["QR_TIMEOUT"] = "qr_timeout";
1579
- WhatsappInstanceStatus["PAYMENT_PENDING"] = "payment_pending";
1580
- })(exports.WhatsappInstanceStatus || (exports.WhatsappInstanceStatus = {}));
1581
-
1582
1461
  // Re-export all event types
1583
1462
  /**
1584
1463
  * Event type constants for type-safe event handling
@@ -1770,30 +1649,880 @@ function verifySignatureWithCrypto(crypto, payload, signature, secret) {
1770
1649
  return crypto.timingSafeEqual(Buffer.from(signature, 'utf8'), Buffer.from(expectedSignature, 'utf8'));
1771
1650
  }
1772
1651
 
1652
+ /* eslint-disable */
1653
+ /* tslint:disable */
1654
+ // @ts-nocheck
1655
+ /*
1656
+ * ---------------------------------------------------------------
1657
+ * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##
1658
+ * ## ##
1659
+ * ## AUTHOR: acacode ##
1660
+ * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##
1661
+ * ---------------------------------------------------------------
1662
+ */
1663
+ var ContentType;
1664
+ (function (ContentType) {
1665
+ ContentType["Json"] = "application/json";
1666
+ ContentType["JsonApi"] = "application/vnd.api+json";
1667
+ ContentType["FormData"] = "multipart/form-data";
1668
+ ContentType["UrlEncoded"] = "application/x-www-form-urlencoded";
1669
+ ContentType["Text"] = "text/plain";
1670
+ })(ContentType || (ContentType = {}));
1671
+ class HttpClient {
1672
+ instance;
1673
+ securityData = null;
1674
+ securityWorker;
1675
+ secure;
1676
+ format;
1677
+ constructor({
1678
+ securityWorker,
1679
+ secure,
1680
+ format,
1681
+ ...axiosConfig
1682
+ } = {}) {
1683
+ this.instance = axios.create({
1684
+ ...axiosConfig,
1685
+ baseURL: axiosConfig.baseURL || ""
1686
+ });
1687
+ this.secure = secure;
1688
+ this.format = format;
1689
+ this.securityWorker = securityWorker;
1690
+ }
1691
+ setSecurityData = data => {
1692
+ this.securityData = data;
1693
+ };
1694
+ mergeRequestParams(params1, params2) {
1695
+ const method = params1.method || params2 && params2.method;
1696
+ return {
1697
+ ...this.instance.defaults,
1698
+ ...params1,
1699
+ ...(params2 || {}),
1700
+ headers: {
1701
+ ...(method && this.instance.defaults.headers[method.toLowerCase()] || {}),
1702
+ ...(params1.headers || {}),
1703
+ ...(params2 && params2.headers || {})
1704
+ }
1705
+ };
1706
+ }
1707
+ stringifyFormItem(formItem) {
1708
+ if (typeof formItem === "object" && formItem !== null) {
1709
+ return JSON.stringify(formItem);
1710
+ } else {
1711
+ return `${formItem}`;
1712
+ }
1713
+ }
1714
+ createFormData(input) {
1715
+ if (input instanceof FormData) {
1716
+ return input;
1717
+ }
1718
+ return Object.keys(input || {}).reduce((formData, key) => {
1719
+ const property = input[key];
1720
+ const propertyContent = property instanceof Array ? property : [property];
1721
+ for (const formItem of propertyContent) {
1722
+ const isFileType = formItem instanceof Blob || formItem instanceof File;
1723
+ formData.append(key, isFileType ? formItem : this.stringifyFormItem(formItem));
1724
+ }
1725
+ return formData;
1726
+ }, new FormData());
1727
+ }
1728
+ request = async ({
1729
+ secure,
1730
+ path,
1731
+ type,
1732
+ query,
1733
+ format,
1734
+ body,
1735
+ ...params
1736
+ }) => {
1737
+ const secureParams = (typeof secure === "boolean" ? secure : this.secure) && this.securityWorker && (await this.securityWorker(this.securityData)) || {};
1738
+ const requestParams = this.mergeRequestParams(params, secureParams);
1739
+ const responseFormat = format || this.format || undefined;
1740
+ if (type === ContentType.FormData && body && body !== null && typeof body === "object") {
1741
+ body = this.createFormData(body);
1742
+ }
1743
+ if (type === ContentType.Text && body && body !== null && typeof body !== "string") {
1744
+ body = JSON.stringify(body);
1745
+ }
1746
+ return this.instance.request({
1747
+ ...requestParams,
1748
+ headers: {
1749
+ ...(requestParams.headers || {}),
1750
+ ...(type ? {
1751
+ "Content-Type": type
1752
+ } : {})
1753
+ },
1754
+ params: query,
1755
+ responseType: responseFormat,
1756
+ data: body,
1757
+ url: path
1758
+ });
1759
+ };
1760
+ }
1761
+ /**
1762
+ * @title Zapy API - Gerenciador de Instâncias WhatsApp
1763
+ * @version 1.0.0
1764
+ * @contact Suporte Zapy API <contato@zapyapi.com> (http://app.zapyapi.com/)
1765
+ *
1766
+ *
1767
+ * Formatos de Mensagem
1768
+ * - Números de Telefone: Formato brasileiro (11999999999) ou internacional (5511999999999)
1769
+ * - IDs do WhatsApp: Pessoal (@c.us), Grupos (@g.us), LIDs (@lid)
1770
+ * - Mídia: Arquivos codificados em Base64 ou URLs públicas
1771
+ *
1772
+ * Suporte
1773
+ * Para suporte técnico e documentação, visite nosso site.
1774
+ * https://app.zapyapi.com/
1775
+ *
1776
+ */
1777
+ class Api extends HttpClient {
1778
+ instances = {
1779
+ /**
1780
+ * @description Lista todas as instâncias do WhatsApp
1781
+ *
1782
+ * @tags Instâncias
1783
+ * @name ManagerInstancesControllerListInstances
1784
+ * @summary Listar Instâncias
1785
+ * @request GET:/api/instances
1786
+ * @secure
1787
+ * @response `200` `(ResponsePaginated & {
1788
+ data?: (ListInstancesResponseDto)[],
1789
+ })` Lista paginada de instâncias obtida com sucesso
1790
+ * @response `400` `BadRequestErrorDto` Dados da requisição inválidos
1791
+ * @response `401` `UnauthorizedErrorDto` Não autorizado - API key inválida ou ausente
1792
+ */
1793
+ managerInstancesControllerListInstances: (query, params = {}) => this.request({
1794
+ path: `/api/instances`,
1795
+ method: "GET",
1796
+ query: query,
1797
+ secure: true,
1798
+ format: "json",
1799
+ ...params
1800
+ }),
1801
+ /**
1802
+ * No description
1803
+ *
1804
+ * @tags Instâncias
1805
+ * @name ManagerInstancesControllerCreateInstance
1806
+ * @summary Create a new WhatsApp instance (Partner only - post-paid subscriptions required)
1807
+ * @request POST:/api/instances
1808
+ * @secure
1809
+ * @response `201` `ManagerInstanceResponseDto` Instance created successfully
1810
+ * @response `400` `void` Bad request
1811
+ */
1812
+ managerInstancesControllerCreateInstance: (data, params = {}) => this.request({
1813
+ path: `/api/instances`,
1814
+ method: "POST",
1815
+ body: data,
1816
+ secure: true,
1817
+ type: ContentType.Json,
1818
+ format: "json",
1819
+ ...params
1820
+ }),
1821
+ /**
1822
+ * @description Obtém o código QR para conectar a instância do WhatsApp
1823
+ *
1824
+ * @tags Instâncias
1825
+ * @name ManagerInstancesControllerGetQrCode
1826
+ * @summary Obter Código QR
1827
+ * @request GET:/api/instances/{instanceId}/qr
1828
+ * @secure
1829
+ * @response `200` `QRCodeResponseDto` Código QR obtido com sucesso
1830
+ * @response `403` `ForbiddenErrorDto` Acesso negado - Sem acesso ao recurso
1831
+ * @response `404` `NotFoundErrorDto` Recurso não encontrado
1832
+ */
1833
+ managerInstancesControllerGetQrCode: ({
1834
+ instanceId,
1835
+ ...query
1836
+ }, params = {}) => this.request({
1837
+ path: `/api/instances/${instanceId}/qr`,
1838
+ method: "GET",
1839
+ secure: true,
1840
+ format: "json",
1841
+ ...params
1842
+ }),
1843
+ /**
1844
+ * @description Reinicia uma instância do WhatsApp
1845
+ *
1846
+ * @tags Instâncias
1847
+ * @name ManagerInstancesControllerRestartInstance
1848
+ * @summary Reiniciar Instância do WhatsApp
1849
+ * @request POST:/api/instances/{instanceId}/restart
1850
+ * @secure
1851
+ * @response `200` `EmptyResponseDto` Instância reiniciada com sucesso
1852
+ * @response `400` `BadRequestErrorDto` Dados da requisição inválidos
1853
+ * @response `403` `ForbiddenErrorDto` Acesso negado - Sem acesso ao recurso
1854
+ * @response `404` `NotFoundErrorDto` Recurso não encontrado
1855
+ */
1856
+ managerInstancesControllerRestartInstance: ({
1857
+ instanceId,
1858
+ ...query
1859
+ }, params = {}) => this.request({
1860
+ path: `/api/instances/${instanceId}/restart`,
1861
+ method: "POST",
1862
+ secure: true,
1863
+ format: "json",
1864
+ ...params
1865
+ }),
1866
+ /**
1867
+ * @description Desloga uma instância do WhatsApp
1868
+ *
1869
+ * @tags Instâncias
1870
+ * @name ManagerInstancesControllerLogoutInstance
1871
+ * @summary Deslogar Instância do WhatsApp
1872
+ * @request POST:/api/instances/{instanceId}/logout
1873
+ * @secure
1874
+ * @response `200` `EmptyResponseDto` Instância deslogada com sucesso
1875
+ * @response `400` `BadRequestErrorDto` Dados da requisição inválidos
1876
+ * @response `403` `ForbiddenErrorDto` Acesso negado - Sem acesso ao recurso
1877
+ * @response `404` `NotFoundErrorDto` Recurso não encontrado
1878
+ */
1879
+ managerInstancesControllerLogoutInstance: ({
1880
+ instanceId,
1881
+ ...query
1882
+ }, params = {}) => this.request({
1883
+ path: `/api/instances/${instanceId}/logout`,
1884
+ method: "POST",
1885
+ secure: true,
1886
+ format: "json",
1887
+ ...params
1888
+ }),
1889
+ /**
1890
+ * @description Exclui permanentemente uma instância do WhatsApp. Esta ação é irreversível.
1891
+ *
1892
+ * @tags Instâncias
1893
+ * @name ManagerInstancesControllerDeleteInstance
1894
+ * @summary Excluir Instância do WhatsApp (Somente Parceiros)
1895
+ * @request DELETE:/api/instances/{instanceId}
1896
+ * @secure
1897
+ * @response `204` `void` Instância excluída com sucesso
1898
+ * @response `400` `BadRequestErrorDto` Dados da requisição inválidos
1899
+ * @response `403` `ForbiddenErrorDto` Acesso negado - Sem acesso ao recurso
1900
+ * @response `404` `NotFoundErrorDto` Recurso não encontrado
1901
+ */
1902
+ managerInstancesControllerDeleteInstance: ({
1903
+ instanceId,
1904
+ ...query
1905
+ }, params = {}) => this.request({
1906
+ path: `/api/instances/${instanceId}`,
1907
+ method: "DELETE",
1908
+ secure: true,
1909
+ ...params
1910
+ }),
1911
+ /**
1912
+ * @description Verifica se uma lista de números de telefone está registrada no WhatsApp
1913
+ *
1914
+ * @tags Instâncias
1915
+ * @name ManagerInstancesControllerCheckNumbers
1916
+ * @summary Verificar Números no WhatsApp
1917
+ * @request POST:/api/instances/{instanceId}/check-numbers
1918
+ * @secure
1919
+ * @response `200` `CheckNumbersResponseDto` Números verificados com sucesso
1920
+ * @response `400` `BadRequestErrorDto` Dados da requisição inválidos
1921
+ * @response `403` `ForbiddenErrorDto` Acesso negado - Sem acesso ao recurso
1922
+ * @response `404` `NotFoundErrorDto` Recurso não encontrado
1923
+ */
1924
+ managerInstancesControllerCheckNumbers: ({
1925
+ instanceId,
1926
+ ...query
1927
+ }, data, params = {}) => this.request({
1928
+ path: `/api/instances/${instanceId}/check-numbers`,
1929
+ method: "POST",
1930
+ body: data,
1931
+ secure: true,
1932
+ type: ContentType.Json,
1933
+ format: "json",
1934
+ ...params
1935
+ }),
1936
+ /**
1937
+ * @description Envia um indicador de presença (digitando, gravando, online, etc.) para um contato
1938
+ *
1939
+ * @tags Instâncias
1940
+ * @name ManagerInstancesControllerSendPresence
1941
+ * @summary Enviar Indicador de Presença
1942
+ * @request POST:/api/instances/{instanceId}/presence
1943
+ * @secure
1944
+ * @response `204` `void` Presença enviada com sucesso
1945
+ * @response `400` `BadRequestErrorDto` Dados da requisição inválidos
1946
+ * @response `403` `ForbiddenErrorDto` Acesso negado - Sem acesso ao recurso
1947
+ * @response `404` `NotFoundErrorDto` Recurso não encontrado
1948
+ */
1949
+ managerInstancesControllerSendPresence: ({
1950
+ instanceId,
1951
+ ...query
1952
+ }, data, params = {}) => this.request({
1953
+ path: `/api/instances/${instanceId}/presence`,
1954
+ method: "POST",
1955
+ body: data,
1956
+ secure: true,
1957
+ type: ContentType.Json,
1958
+ ...params
1959
+ }),
1960
+ /**
1961
+ * @description Obtém a URL da foto de perfil de um contato
1962
+ *
1963
+ * @tags Instâncias
1964
+ * @name ManagerInstancesControllerGetProfilePicture
1965
+ * @summary Obter Foto de Perfil
1966
+ * @request GET:/api/instances/{instanceId}/contacts/{phone}/profile-picture
1967
+ * @secure
1968
+ * @response `200` `void` Foto de perfil obtida com sucesso
1969
+ * @response `400` `BadRequestErrorDto` Dados da requisição inválidos
1970
+ * @response `403` `ForbiddenErrorDto` Acesso negado - Sem acesso ao recurso
1971
+ * @response `404` `NotFoundErrorDto` Recurso não encontrado
1972
+ */
1973
+ managerInstancesControllerGetProfilePicture: ({
1974
+ instanceId,
1975
+ phone,
1976
+ ...query
1977
+ }, params = {}) => this.request({
1978
+ path: `/api/instances/${instanceId}/contacts/${phone}/profile-picture`,
1979
+ method: "GET",
1980
+ secure: true,
1981
+ ...params
1982
+ }),
1983
+ /**
1984
+ * @description Bloqueia um contato no WhatsApp
1985
+ *
1986
+ * @tags Instâncias
1987
+ * @name ManagerInstancesControllerBlockContact
1988
+ * @summary Bloquear Contato
1989
+ * @request POST:/api/instances/{instanceId}/contacts/{phone}/block
1990
+ * @secure
1991
+ * @response `204` `void` Contato bloqueado com sucesso
1992
+ * @response `400` `BadRequestErrorDto` Dados da requisição inválidos
1993
+ * @response `403` `ForbiddenErrorDto` Acesso negado - Sem acesso ao recurso
1994
+ * @response `404` `NotFoundErrorDto` Recurso não encontrado
1995
+ */
1996
+ managerInstancesControllerBlockContact: ({
1997
+ instanceId,
1998
+ phone,
1999
+ ...query
2000
+ }, params = {}) => this.request({
2001
+ path: `/api/instances/${instanceId}/contacts/${phone}/block`,
2002
+ method: "POST",
2003
+ secure: true,
2004
+ ...params
2005
+ }),
2006
+ /**
2007
+ * @description Desbloqueia um contato no WhatsApp
2008
+ *
2009
+ * @tags Instâncias
2010
+ * @name ManagerInstancesControllerUnblockContact
2011
+ * @summary Desbloquear Contato
2012
+ * @request DELETE:/api/instances/{instanceId}/contacts/{phone}/block
2013
+ * @secure
2014
+ * @response `204` `void` Contato desbloqueado com sucesso
2015
+ * @response `400` `BadRequestErrorDto` Dados da requisição inválidos
2016
+ * @response `403` `ForbiddenErrorDto` Acesso negado - Sem acesso ao recurso
2017
+ * @response `404` `NotFoundErrorDto` Recurso não encontrado
2018
+ */
2019
+ managerInstancesControllerUnblockContact: ({
2020
+ instanceId,
2021
+ phone,
2022
+ ...query
2023
+ }, params = {}) => this.request({
2024
+ path: `/api/instances/${instanceId}/contacts/${phone}/block`,
2025
+ method: "DELETE",
2026
+ secure: true,
2027
+ ...params
2028
+ }),
2029
+ /**
2030
+ * @description Obtém informações detalhadas sobre um grupo do WhatsApp
2031
+ *
2032
+ * @tags Instâncias
2033
+ * @name ManagerInstancesControllerGetGroupMetadata
2034
+ * @summary Obter Metadados do Grupo
2035
+ * @request GET:/api/instances/{instanceId}/groups/{groupId}
2036
+ * @secure
2037
+ * @response `200` `void` Metadados do grupo obtidos com sucesso
2038
+ * @response `400` `BadRequestErrorDto` Dados da requisição inválidos
2039
+ * @response `403` `ForbiddenErrorDto` Acesso negado - Sem acesso ao recurso
2040
+ * @response `404` `NotFoundErrorDto` Recurso não encontrado
2041
+ */
2042
+ managerInstancesControllerGetGroupMetadata: ({
2043
+ instanceId,
2044
+ groupId,
2045
+ ...query
2046
+ }, params = {}) => this.request({
2047
+ path: `/api/instances/${instanceId}/groups/${groupId}`,
2048
+ method: "GET",
2049
+ secure: true,
2050
+ ...params
2051
+ })
2052
+ };
2053
+ webhooks = {
2054
+ /**
2055
+ * @description Get the webhook configuration for the authenticated user. Returns null if no webhook is configured.
2056
+ *
2057
+ * @tags Webhooks
2058
+ * @name WebhookControllerGetConfig
2059
+ * @summary Get Webhook Configuration
2060
+ * @request GET:/api/webhooks/config
2061
+ * @secure
2062
+ * @response `200` `WebhookConfigResponseDto` Webhook configuration retrieved successfully
2063
+ * @response `401` `UnauthorizedErrorDto` Não autorizado - API key inválida ou ausente
2064
+ */
2065
+ webhookControllerGetConfig: (params = {}) => this.request({
2066
+ path: `/api/webhooks/config`,
2067
+ method: "GET",
2068
+ secure: true,
2069
+ format: "json",
2070
+ ...params
2071
+ }),
2072
+ /**
2073
+ * @description Create or update the webhook configuration for the authenticated user. Only one webhook URL can be configured per user, and all instance events will be sent to this URL.
2074
+ *
2075
+ * @tags Webhooks
2076
+ * @name WebhookControllerUpsertConfig
2077
+ * @summary Configure Webhook
2078
+ * @request PUT:/api/webhooks/config
2079
+ * @secure
2080
+ * @response `200` `WebhookConfigResponseDto` Webhook configuration saved successfully
2081
+ * @response `400` `BadRequestErrorDto` Dados da requisição inválidos
2082
+ * @response `401` `UnauthorizedErrorDto` Não autorizado - API key inválida ou ausente
2083
+ */
2084
+ webhookControllerUpsertConfig: (data, params = {}) => this.request({
2085
+ path: `/api/webhooks/config`,
2086
+ method: "PUT",
2087
+ body: data,
2088
+ secure: true,
2089
+ type: ContentType.Json,
2090
+ format: "json",
2091
+ ...params
2092
+ }),
2093
+ /**
2094
+ * @description Delete the webhook configuration and all queued webhooks for the authenticated user.
2095
+ *
2096
+ * @tags Webhooks
2097
+ * @name WebhookControllerDeleteConfig
2098
+ * @summary Delete Webhook Configuration
2099
+ * @request DELETE:/api/webhooks/config
2100
+ * @secure
2101
+ * @response `204` `void` Webhook configuration deleted successfully
2102
+ * @response `401` `UnauthorizedErrorDto` Não autorizado - API key inválida ou ausente
2103
+ */
2104
+ webhookControllerDeleteConfig: (params = {}) => this.request({
2105
+ path: `/api/webhooks/config`,
2106
+ method: "DELETE",
2107
+ secure: true,
2108
+ ...params
2109
+ }),
2110
+ /**
2111
+ * @description Get the status of the webhook delivery queue, including counts of pending, failed, paused, and delivered webhooks.
2112
+ *
2113
+ * @tags Webhooks
2114
+ * @name WebhookControllerGetQueueStatus
2115
+ * @summary Get Queue Status
2116
+ * @request GET:/api/webhooks/queue/status
2117
+ * @secure
2118
+ * @response `200` `WebhookQueueStatusResponseDto` Queue status retrieved successfully
2119
+ * @response `401` `UnauthorizedErrorDto` Não autorizado - API key inválida ou ausente
2120
+ */
2121
+ webhookControllerGetQueueStatus: (params = {}) => this.request({
2122
+ path: `/api/webhooks/queue/status`,
2123
+ method: "GET",
2124
+ secure: true,
2125
+ format: "json",
2126
+ ...params
2127
+ }),
2128
+ /**
2129
+ * @description Resume all paused and failed webhooks. This will unpause the webhook configuration and reset all paused/failed items to pending.
2130
+ *
2131
+ * @tags Webhooks
2132
+ * @name WebhookControllerResumeAll
2133
+ * @summary Resume Webhooks
2134
+ * @request POST:/api/webhooks/queue/resume
2135
+ * @secure
2136
+ * @response `200` `WebhookResumeResponseDto` Webhooks resumed successfully
2137
+ * @response `401` `UnauthorizedErrorDto` Não autorizado - API key inválida ou ausente
2138
+ */
2139
+ webhookControllerResumeAll: (params = {}) => this.request({
2140
+ path: `/api/webhooks/queue/resume`,
2141
+ method: "POST",
2142
+ secure: true,
2143
+ format: "json",
2144
+ ...params
2145
+ })
2146
+ };
2147
+ message = {
2148
+ /**
2149
+ * @description Envia uma mensagem de texto para um contato ou grupo do WhatsApp
2150
+ *
2151
+ * @tags Mensagens
2152
+ * @name SendMessageControllerSendTextMessage
2153
+ * @summary Enviar Mensagem de Texto
2154
+ * @request POST:/api/message/{instanceId}/text
2155
+ * @secure
2156
+ * @response `201` `CommonSendMessageResponseDto` Mensagem enviada com sucesso
2157
+ * @response `400` `void` Dados da requisição inválidos
2158
+ * @response `404` `void` Instância do WhatsApp não encontrada
2159
+ */
2160
+ sendMessageControllerSendTextMessage: ({
2161
+ instanceId,
2162
+ ...query
2163
+ }, data, params = {}) => this.request({
2164
+ path: `/api/message/${instanceId}/text`,
2165
+ method: "POST",
2166
+ body: data,
2167
+ secure: true,
2168
+ type: ContentType.Json,
2169
+ format: "json",
2170
+ ...params
2171
+ }),
2172
+ /**
2173
+ * @description Envia uma mensagem de imagem para um contato ou grupo do WhatsApp
2174
+ *
2175
+ * @tags Mensagens
2176
+ * @name SendMessageControllerSendImageMessage
2177
+ * @summary Enviar Mensagem de Imagem
2178
+ * @request POST:/api/message/{instanceId}/image
2179
+ * @secure
2180
+ * @response `201` `CommonSendMessageResponseDto` Mensagem de imagem enviada com sucesso
2181
+ * @response `400` `void` Dados da requisição inválidos ou formato de imagem inválido
2182
+ * @response `404` `void` Instância do WhatsApp não encontrada
2183
+ */
2184
+ sendMessageControllerSendImageMessage: ({
2185
+ instanceId,
2186
+ ...query
2187
+ }, data, params = {}) => this.request({
2188
+ path: `/api/message/${instanceId}/image`,
2189
+ method: "POST",
2190
+ body: data,
2191
+ secure: true,
2192
+ type: ContentType.Json,
2193
+ format: "json",
2194
+ ...params
2195
+ }),
2196
+ /**
2197
+ * @description Envia uma mensagem de vídeo para um contato ou grupo do WhatsApp
2198
+ *
2199
+ * @tags Mensagens
2200
+ * @name SendMessageControllerSendVideoMessage
2201
+ * @summary Enviar Mensagem de Vídeo
2202
+ * @request POST:/api/message/{instanceId}/video
2203
+ * @secure
2204
+ * @response `201` `CommonSendMessageResponseDto` Mensagem de vídeo enviada com sucesso
2205
+ * @response `400` `void` Dados da requisição inválidos ou formato de vídeo inválido
2206
+ * @response `404` `void` Instância do WhatsApp não encontrada
2207
+ */
2208
+ sendMessageControllerSendVideoMessage: ({
2209
+ instanceId,
2210
+ ...query
2211
+ }, data, params = {}) => this.request({
2212
+ path: `/api/message/${instanceId}/video`,
2213
+ method: "POST",
2214
+ body: data,
2215
+ secure: true,
2216
+ type: ContentType.Json,
2217
+ format: "json",
2218
+ ...params
2219
+ }),
2220
+ /**
2221
+ * @description Envia uma nota de voz para um contato ou grupo do WhatsApp
2222
+ *
2223
+ * @tags Mensagens
2224
+ * @name SendMessageControllerSendAudioNoteMessage
2225
+ * @summary Enviar Mensagem de Áudio (Nota de Voz)
2226
+ * @request POST:/api/message/{instanceId}/audio-note
2227
+ * @secure
2228
+ * @response `201` `CommonSendMessageResponseDto` Nota de voz enviada com sucesso
2229
+ * @response `400` `void` Dados da requisição inválidos ou formato de áudio inválido
2230
+ * @response `404` `void` Instância do WhatsApp não encontrada
2231
+ */
2232
+ sendMessageControllerSendAudioNoteMessage: ({
2233
+ instanceId,
2234
+ ...query
2235
+ }, data, params = {}) => this.request({
2236
+ path: `/api/message/${instanceId}/audio-note`,
2237
+ method: "POST",
2238
+ body: data,
2239
+ secure: true,
2240
+ type: ContentType.Json,
2241
+ format: "json",
2242
+ ...params
2243
+ }),
2244
+ /**
2245
+ * @description Envia um arquivo de áudio para um contato ou grupo do WhatsApp
2246
+ *
2247
+ * @tags Mensagens
2248
+ * @name SendMessageControllerSendAudioFileMessage
2249
+ * @summary Enviar Arquivo de Áudio
2250
+ * @request POST:/api/message/{instanceId}/audio-file
2251
+ * @secure
2252
+ * @response `201` `CommonSendMessageResponseDto` Arquivo de áudio enviado com sucesso
2253
+ * @response `400` `void` Dados da requisição inválidos ou formato de áudio inválido
2254
+ * @response `404` `void` Instância do WhatsApp não encontrada
2255
+ */
2256
+ sendMessageControllerSendAudioFileMessage: ({
2257
+ instanceId,
2258
+ ...query
2259
+ }, data, params = {}) => this.request({
2260
+ path: `/api/message/${instanceId}/audio-file`,
2261
+ method: "POST",
2262
+ body: data,
2263
+ secure: true,
2264
+ type: ContentType.Json,
2265
+ format: "json",
2266
+ ...params
2267
+ }),
2268
+ /**
2269
+ * @description Envia um arquivo de documento para um contato ou grupo do WhatsApp
2270
+ *
2271
+ * @tags Mensagens
2272
+ * @name SendMessageControllerSendDocumentMessage
2273
+ * @summary Enviar Documento
2274
+ * @request POST:/api/message/{instanceId}/document
2275
+ * @secure
2276
+ * @response `201` `CommonSendMessageResponseDto` Documento enviado com sucesso
2277
+ * @response `400` `void` Dados da requisição inválidos ou formato de documento inválido
2278
+ * @response `404` `void` Instância do WhatsApp não encontrada
2279
+ */
2280
+ sendMessageControllerSendDocumentMessage: ({
2281
+ instanceId,
2282
+ ...query
2283
+ }, data, params = {}) => this.request({
2284
+ path: `/api/message/${instanceId}/document`,
2285
+ method: "POST",
2286
+ body: data,
2287
+ secure: true,
2288
+ type: ContentType.Json,
2289
+ format: "json",
2290
+ ...params
2291
+ }),
2292
+ /**
2293
+ * @description Encaminha uma mensagem existente para outro contato ou grupo do WhatsApp
2294
+ *
2295
+ * @tags Mensagens
2296
+ * @name SendMessageControllerForwardMessage
2297
+ * @summary Encaminhar Mensagem
2298
+ * @request POST:/api/message/{instanceId}/forward
2299
+ * @secure
2300
+ * @response `201` `CommonSendMessageResponseDto` Mensagem encaminhada com sucesso
2301
+ * @response `400` `void` Dados da requisição inválidos ou mensagem não encontrada
2302
+ * @response `404` `void` Instância do WhatsApp não encontrada
2303
+ */
2304
+ sendMessageControllerForwardMessage: ({
2305
+ instanceId,
2306
+ ...query
2307
+ }, data, params = {}) => this.request({
2308
+ path: `/api/message/${instanceId}/forward`,
2309
+ method: "POST",
2310
+ body: data,
2311
+ secure: true,
2312
+ type: ContentType.Json,
2313
+ format: "json",
2314
+ ...params
2315
+ }),
2316
+ /**
2317
+ * @description Edita o conteúdo de uma mensagem de texto existente
2318
+ *
2319
+ * @tags Mensagens
2320
+ * @name SendMessageControllerEditMessage
2321
+ * @summary Editar Mensagem
2322
+ * @request POST:/api/message/{instanceId}/edit
2323
+ * @secure
2324
+ * @response `201` `CommonSendMessageResponseDto` Mensagem editada com sucesso
2325
+ * @response `400` `void` Dados da requisição inválidos ou mensagem não pode ser editada
2326
+ * @response `404` `void` Instância do WhatsApp ou mensagem não encontrada
2327
+ */
2328
+ sendMessageControllerEditMessage: ({
2329
+ instanceId,
2330
+ ...query
2331
+ }, data, params = {}) => this.request({
2332
+ path: `/api/message/${instanceId}/edit`,
2333
+ method: "POST",
2334
+ body: data,
2335
+ secure: true,
2336
+ type: ContentType.Json,
2337
+ format: "json",
2338
+ ...params
2339
+ }),
2340
+ /**
2341
+ * @description Marca uma mensagem como lida (envia confirmação de leitura)
2342
+ *
2343
+ * @tags Mensagens
2344
+ * @name SendMessageControllerReadMessage
2345
+ * @summary Marcar Mensagem como Lida
2346
+ * @request POST:/api/message/{instanceId}/read
2347
+ * @secure
2348
+ * @response `201` `ReadMessageResponseDto` Mensagem marcada como lida com sucesso
2349
+ * @response `400` `void` Dados da requisição inválidos
2350
+ * @response `404` `void` Instância do WhatsApp ou mensagem não encontrada
2351
+ */
2352
+ sendMessageControllerReadMessage: ({
2353
+ instanceId,
2354
+ ...query
2355
+ }, data, params = {}) => this.request({
2356
+ path: `/api/message/${instanceId}/read`,
2357
+ method: "POST",
2358
+ body: data,
2359
+ secure: true,
2360
+ type: ContentType.Json,
2361
+ format: "json",
2362
+ ...params
2363
+ }),
2364
+ /**
2365
+ * @description Envia uma localização geográfica para um contato ou grupo do WhatsApp
2366
+ *
2367
+ * @tags Mensagens
2368
+ * @name SendMessageControllerSendLocationMessage
2369
+ * @summary Enviar Localização
2370
+ * @request POST:/api/message/{instanceId}/location
2371
+ * @secure
2372
+ * @response `201` `CommonSendMessageResponseDto` Localização enviada com sucesso
2373
+ * @response `400` `void` Dados da requisição inválidos
2374
+ * @response `404` `void` Instância do WhatsApp não encontrada
2375
+ */
2376
+ sendMessageControllerSendLocationMessage: ({
2377
+ instanceId,
2378
+ ...query
2379
+ }, data, params = {}) => this.request({
2380
+ path: `/api/message/${instanceId}/location`,
2381
+ method: "POST",
2382
+ body: data,
2383
+ secure: true,
2384
+ type: ContentType.Json,
2385
+ format: "json",
2386
+ ...params
2387
+ }),
2388
+ /**
2389
+ * @description Envia um cartão de contato para um contato ou grupo do WhatsApp
2390
+ *
2391
+ * @tags Mensagens
2392
+ * @name SendMessageControllerSendContactMessage
2393
+ * @summary Enviar Contato
2394
+ * @request POST:/api/message/{instanceId}/contact
2395
+ * @secure
2396
+ * @response `201` `CommonSendMessageResponseDto` Contato enviado com sucesso
2397
+ * @response `400` `void` Dados da requisição inválidos
2398
+ * @response `404` `void` Instância do WhatsApp não encontrada
2399
+ */
2400
+ sendMessageControllerSendContactMessage: ({
2401
+ instanceId,
2402
+ ...query
2403
+ }, data, params = {}) => this.request({
2404
+ path: `/api/message/${instanceId}/contact`,
2405
+ method: "POST",
2406
+ body: data,
2407
+ secure: true,
2408
+ type: ContentType.Json,
2409
+ format: "json",
2410
+ ...params
2411
+ }),
2412
+ /**
2413
+ * @description Envia um sticker para um contato ou grupo do WhatsApp
2414
+ *
2415
+ * @tags Mensagens
2416
+ * @name SendMessageControllerSendStickerMessage
2417
+ * @summary Enviar Sticker
2418
+ * @request POST:/api/message/{instanceId}/sticker
2419
+ * @secure
2420
+ * @response `201` `CommonSendMessageResponseDto` Sticker enviado com sucesso
2421
+ * @response `400` `void` Dados da requisição inválidos ou formato de sticker inválido
2422
+ * @response `404` `void` Instância do WhatsApp não encontrada
2423
+ */
2424
+ sendMessageControllerSendStickerMessage: ({
2425
+ instanceId,
2426
+ ...query
2427
+ }, data, params = {}) => this.request({
2428
+ path: `/api/message/${instanceId}/sticker`,
2429
+ method: "POST",
2430
+ body: data,
2431
+ secure: true,
2432
+ type: ContentType.Json,
2433
+ format: "json",
2434
+ ...params
2435
+ }),
2436
+ /**
2437
+ * @description Adiciona uma reação (emoji) a uma mensagem existente
2438
+ *
2439
+ * @tags Mensagens
2440
+ * @name SendMessageControllerSendReaction
2441
+ * @summary Enviar Reação
2442
+ * @request POST:/api/message/{instanceId}/reaction
2443
+ * @secure
2444
+ * @response `204` `void` Reação enviada com sucesso
2445
+ * @response `400` `void` Dados da requisição inválidos
2446
+ * @response `404` `void` Instância do WhatsApp ou mensagem não encontrada
2447
+ */
2448
+ sendMessageControllerSendReaction: ({
2449
+ instanceId,
2450
+ ...query
2451
+ }, data, params = {}) => this.request({
2452
+ path: `/api/message/${instanceId}/reaction`,
2453
+ method: "POST",
2454
+ body: data,
2455
+ secure: true,
2456
+ type: ContentType.Json,
2457
+ ...params
2458
+ }),
2459
+ /**
2460
+ * @description Exclui uma mensagem para todos no chat
2461
+ *
2462
+ * @tags Mensagens
2463
+ * @name SendMessageControllerDeleteMessage
2464
+ * @summary Excluir Mensagem
2465
+ * @request DELETE:/api/message/{instanceId}/delete
2466
+ * @secure
2467
+ * @response `204` `void` Mensagem excluída com sucesso
2468
+ * @response `400` `void` Dados da requisição inválidos ou mensagem não pode ser excluída
2469
+ * @response `404` `void` Instância do WhatsApp ou mensagem não encontrada
2470
+ */
2471
+ sendMessageControllerDeleteMessage: ({
2472
+ instanceId,
2473
+ ...query
2474
+ }, data, params = {}) => this.request({
2475
+ path: `/api/message/${instanceId}/delete`,
2476
+ method: "DELETE",
2477
+ body: data,
2478
+ secure: true,
2479
+ type: ContentType.Json,
2480
+ ...params
2481
+ }),
2482
+ /**
2483
+ * @description Obtém um link de download para conteúdo de mídia de uma mensagem
2484
+ *
2485
+ * @tags Mensagens
2486
+ * @name SendMessageControllerGetMessageMediaDownloadLink
2487
+ * @summary Obter Link de Download de Mídia
2488
+ * @request GET:/api/message/{instanceId}/media-download-link/{messageId}
2489
+ * @secure
2490
+ * @response `200` `GetMessageMediaDownloadLinkResponseDto` Link de download de mídia obtido com sucesso
2491
+ * @response `400` `void` Formato de ID da mensagem inválido
2492
+ * @response `404` `void` Instância do WhatsApp, mensagem ou mídia não encontrada
2493
+ */
2494
+ sendMessageControllerGetMessageMediaDownloadLink: ({
2495
+ instanceId,
2496
+ messageId,
2497
+ ...query
2498
+ }, params = {}) => this.request({
2499
+ path: `/api/message/${instanceId}/media-download-link/${messageId}`,
2500
+ method: "GET",
2501
+ secure: true,
2502
+ format: "json",
2503
+ ...params
2504
+ })
2505
+ };
2506
+ }
2507
+
1773
2508
  exports.AuthenticationError = AuthenticationError;
1774
- exports.ConnectionStatus = ConnectionStatus;
1775
2509
  exports.InstanceNotFoundError = InstanceNotFoundError;
1776
2510
  exports.InstanceStatus = InstanceStatus;
1777
- exports.MessageAckStatus = MessageAckStatus;
1778
- exports.MessageType = MessageType;
1779
2511
  exports.NetworkError = NetworkError;
1780
2512
  exports.RateLimitError = RateLimitError;
1781
2513
  exports.TimeoutError = TimeoutError;
1782
2514
  exports.ValidationError = ValidationError;
1783
- exports.WebhookEventType = WebhookEventType;
1784
2515
  exports.WebhookQueueStatus = WebhookQueueStatus;
1785
2516
  exports.ZapyApiError = ZapyApiError;
1786
2517
  exports.ZapyClient = ZapyClient;
1787
2518
  exports.ZapyError = ZapyError;
1788
2519
  exports.ZapyEventTypes = ZapyEventTypes;
2520
+ exports.ZapyRestApi = Api;
1789
2521
  exports.createClient = createClient;
1790
2522
  exports.extractPhone = extractPhone;
1791
2523
  exports.isAudioMessage = isAudioMessage;
1792
2524
  exports.isCallMessage = isCallMessage;
1793
- exports.isContactCreatedEvent = isContactCreatedEvent;
1794
- exports.isContactDeduplicatedEvent = isContactDeduplicatedEvent;
1795
2525
  exports.isContactMessage = isContactMessage;
1796
- exports.isContactUpdatedEvent = isContactUpdatedEvent;
1797
2526
  exports.isDeletedMessage = isDeletedMessage;
1798
2527
  exports.isDocumentMessage = isDocumentMessage;
1799
2528
  exports.isEditedMessage = isEditedMessage;
@@ -1802,11 +2531,8 @@ exports.isImageMessage = isImageMessage;
1802
2531
  exports.isLiveLocationMessage = isLiveLocationMessage;
1803
2532
  exports.isLocationMessage = isLocationMessage;
1804
2533
  exports.isMediaMessage = isMediaMessage;
1805
- exports.isMessageEvent = isMessageEvent;
1806
- exports.isMessageStatusEvent = isMessageStatusEvent;
1807
2534
  exports.isPollMessage = isPollMessage;
1808
2535
  exports.isPollVoteMessage = isPollVoteMessage;
1809
- exports.isQRCodeEvent = isQRCodeEvent;
1810
2536
  exports.isReactionMessage = isReactionMessage;
1811
2537
  exports.isStickerMessage = isStickerMessage;
1812
2538
  exports.isTextMessage = isTextMessage;