@funnelchat-hq/sdk 0.3.0 → 0.3.1

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/dist/index.d.cts CHANGED
@@ -81,7 +81,7 @@ declare class PagePromise<T> implements PromiseLike<Page<T>>, AsyncIterable<T> {
81
81
 
82
82
  /**
83
83
  * GENERATED FILE — do not edit. Run `npm run generate`.
84
- * Source: spec/funnelchat.json (sha256 0f451feaba59418f…) + spec/pending.json.
84
+ * Source: spec/funnelchat.json (sha256 8228ea7369daed06…) + spec/pending.json.
85
85
  */
86
86
  interface paths {
87
87
  "/api/v1/broadcasts": {
@@ -1620,6 +1620,8 @@ interface paths {
1620
1620
  /**
1621
1621
  * Enviar un mensaje
1622
1622
  * @description **Permiso requerido:** **Contactos y conversaciones → Enviar**
1623
+ *
1624
+ * Indica a quién envías con `phone`: el teléfono con código de país, por ejemplo `5491122334455`. No hace falta crear el contacto antes: si ese teléfono todavía no es un contacto de tu cuenta, se crea en el workspace de tu clave, igual que con `POST /contacts/update-or-create` y con el mismo permiso, que **Enviar** ya incluye. La respuesta trae su id en `message.contact_id`, el mismo que llevan los avisos `message.status_changed`. Si el teléfono no es válido, o ya es un contacto de otro workspace de tu cuenta, la respuesta es la misma que daría `POST /contacts/update-or-create`: 422, o 404 sin datos de ese contacto. Con un número oficial de WhatsApp (API Cloud) también puedes indicar `whatsapp_id`, el BSUID que envía Meta (por ejemplo `US.13491208655302741918`), en lugar de `phone`; usado así con un número conectado por QR, responde 422. En un número oficial, el primer mensaje a un contacto nuevo tiene que ser una plantilla: un mensaje libre solo sale dentro de las 24 horas desde que el contacto te escribió. Si ya tienes el `contact_id`, puedes seguir enviándolo: si junto con él mandas `phone` o `whatsapp_id`, tienen que ser de ese mismo contacto (si no, 422 `recipient_mismatch`). En `send-template`, `phone` o `whatsapp_id` va siempre, con o sin `contact_id`.
1623
1625
  */
1624
1626
  post: operations["message.sendMessage"];
1625
1627
  delete?: never;
@@ -1732,6 +1734,8 @@ interface paths {
1732
1734
  /**
1733
1735
  * Enviar una plantilla
1734
1736
  * @description **Permiso requerido:** **Contactos y conversaciones → Enviar**
1737
+ *
1738
+ * Indica a quién envías con `phone`: el teléfono con código de país, por ejemplo `5491122334455`. No hace falta crear el contacto antes: si ese teléfono todavía no es un contacto de tu cuenta, se crea en el workspace de tu clave, igual que con `POST /contacts/update-or-create` y con el mismo permiso, que **Enviar** ya incluye. La respuesta trae su id en `message.contact_id`, el mismo que llevan los avisos `message.status_changed`. Si el teléfono no es válido, o ya es un contacto de otro workspace de tu cuenta, la respuesta es la misma que daría `POST /contacts/update-or-create`: 422, o 404 sin datos de ese contacto. Con un número oficial de WhatsApp (API Cloud) también puedes indicar `whatsapp_id`, el BSUID que envía Meta (por ejemplo `US.13491208655302741918`), en lugar de `phone`; usado así con un número conectado por QR, responde 422. En un número oficial, el primer mensaje a un contacto nuevo tiene que ser una plantilla: un mensaje libre solo sale dentro de las 24 horas desde que el contacto te escribió. Si ya tienes el `contact_id`, puedes seguir enviándolo: si junto con él mandas `phone` o `whatsapp_id`, tienen que ser de ese mismo contacto (si no, 422 `recipient_mismatch`). En `send-template`, `phone` o `whatsapp_id` va siempre, con o sin `contact_id`.
1735
1739
  */
1736
1740
  post: operations["messageTemplate.send"];
1737
1741
  delete?: never;
@@ -2528,7 +2532,13 @@ interface paths {
2528
2532
  */
2529
2533
  get: operations["group.index"];
2530
2534
  put?: never;
2531
- post?: never;
2535
+ /**
2536
+ * Crea un grupo
2537
+ * @description **Permiso requerido:** **Grupos y campañas → Administrar grupos**
2538
+ *
2539
+ * **Nota:** Asíncrona: responde 202 con `action_id`; consulta el resultado en `GET /groups/actions/{action}`. Hasta 20 participantes iniciales, sin contar al propio número. Con un número QR la descripción se pone justo después de crear el grupo, y las creaciones respetan la espera entre creaciones del número. El resultado trae el grupo y su link de invitación. Con un número oficial, `join_approval_required: true` crea el grupo pidiendo aprobación para entrar (no se puede cambiar después); con un número QR responde `422 provider_unsupported`.
2540
+ */
2541
+ post: operations["apiGroupAction.create"];
2532
2542
  delete?: never;
2533
2543
  options?: never;
2534
2544
  head?: never;
@@ -2679,10 +2689,12 @@ interface paths {
2679
2689
  get: operations["group.messages"];
2680
2690
  put?: never;
2681
2691
  /**
2682
- * Send a message to a group
2683
- * @description Sends a text or one file to the group now, from one of your numbers. Asynchronous: it answers `202` with `action_id`; the result arrives in `GET /api/v1/groups/actions/{action}` (`result.message.uid` is the id of the message in WhatsApp) and in the events `group_action.completed` and `group_action.failed`. A QR number goes out at the pace of the scheduled messages; an official number checks the 24-hour window and its quality first. It needs **Groups and campaigns → Send**. Rejections: `404 device_not_found`, `404 group_not_found`, `422 unsupported_group_type`, `422 device_not_connected`, `422 device_not_group_admin` (a QR number that is not admin), `422 device_not_group_number` (an official group of another number), `422 provider_unsupported`, `422 window_closed`, `422 number_restricted`, `422 unsupported_type` and `429 too_many_pending_actions`.
2692
+ * Mandar un mensaje a un grupo
2693
+ * @description **Permiso requerido:** **Grupos y campañas → Enviar**
2694
+ *
2695
+ * **Nota:** Asíncrona: responde 202 con `action_id`; consulta el resultado en `GET /groups/actions/{action}` (`result.message.uid` es el id del mensaje en WhatsApp). `type`: `text`, `image`, `video`, `audio` o `document`. Con un número QR sale al ritmo de los mensajes programados de velocidad Low, que el integrador no puede cambiar. Con un número oficial se verifican, antes de aceptar, la ventana de servicio de 24 horas y la calidad del número. No tiene tope de volumen del plan.
2684
2696
  */
2685
- post: operations["pendingGroups.sendMessage"];
2697
+ post: operations["apiGroupAction.sendMessage"];
2686
2698
  delete?: never;
2687
2699
  options?: never;
2688
2700
  head?: never;
@@ -2711,6 +2723,312 @@ interface paths {
2711
2723
  patch?: never;
2712
2724
  trace?: never;
2713
2725
  };
2726
+ "/api/v1/groups/actions/{action}": {
2727
+ parameters: {
2728
+ query?: never;
2729
+ header?: never;
2730
+ path?: never;
2731
+ cookie?: never;
2732
+ };
2733
+ /**
2734
+ * Ver cómo salió una acción de grupo
2735
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2736
+ */
2737
+ get: operations["apiGroupAction.show"];
2738
+ put?: never;
2739
+ post?: never;
2740
+ delete?: never;
2741
+ options?: never;
2742
+ head?: never;
2743
+ patch?: never;
2744
+ trace?: never;
2745
+ };
2746
+ "/api/v1/groups/{group}/participants": {
2747
+ parameters: {
2748
+ query?: never;
2749
+ header?: never;
2750
+ path?: never;
2751
+ cookie?: never;
2752
+ };
2753
+ get?: never;
2754
+ put?: never;
2755
+ /**
2756
+ * Suma participantes al grupo
2757
+ * @description **Permiso requerido:** **Grupos y campañas → Administrar grupos**
2758
+ *
2759
+ * **Nota:** Asíncrona: responde 202 con `action_id`; consulta el resultado en `GET /groups/actions/{action}`. Hasta 20 teléfonos por pedido. Con un número QR cada teléfono se agrega por separado, uno tras otro, al ritmo de las campañas. El resultado informa cada persona como `added` o `failed`.
2760
+ */
2761
+ post: operations["apiGroupAction.addParticipants"];
2762
+ delete?: never;
2763
+ options?: never;
2764
+ head?: never;
2765
+ patch?: never;
2766
+ trace?: never;
2767
+ };
2768
+ "/api/v1/groups/{group}/participants/remove": {
2769
+ parameters: {
2770
+ query?: never;
2771
+ header?: never;
2772
+ path?: never;
2773
+ cookie?: never;
2774
+ };
2775
+ get?: never;
2776
+ put?: never;
2777
+ /**
2778
+ * Saca participantes del grupo
2779
+ * @description **Permiso requerido:** **Grupos y campañas → Administrar grupos**
2780
+ *
2781
+ * **Nota:** Asíncrona: responde 202 con `action_id`; consulta el resultado en `GET /groups/actions/{action}`. Hasta 20 teléfonos por pedido, sacados en una sola operación de WhatsApp. No admite el teléfono del propio número que ejecuta.
2782
+ */
2783
+ post: operations["apiGroupAction.removeParticipants"];
2784
+ delete?: never;
2785
+ options?: never;
2786
+ head?: never;
2787
+ patch?: never;
2788
+ trace?: never;
2789
+ };
2790
+ "/api/v1/groups/{group}/admins": {
2791
+ parameters: {
2792
+ query?: never;
2793
+ header?: never;
2794
+ path?: never;
2795
+ cookie?: never;
2796
+ };
2797
+ get?: never;
2798
+ put?: never;
2799
+ /**
2800
+ * Promueve teléfonos a administrador
2801
+ * @description **Permiso requerido:** **Grupos y campañas → Administrar grupos**
2802
+ *
2803
+ * **Nota:** Asíncrona: responde 202 con `action_id`; consulta el resultado en `GET /groups/actions/{action}`. Hasta 20 teléfonos por pedido, en una sola operación de WhatsApp. Un teléfono que no está en el grupo se agrega primero. Solo con números QR. Se ejecuta al ritmo de las campañas del número.
2804
+ */
2805
+ post: operations["apiGroupAction.promoteAdmins"];
2806
+ delete?: never;
2807
+ options?: never;
2808
+ head?: never;
2809
+ patch?: never;
2810
+ trace?: never;
2811
+ };
2812
+ "/api/v1/groups/{group}/admins/remove": {
2813
+ parameters: {
2814
+ query?: never;
2815
+ header?: never;
2816
+ path?: never;
2817
+ cookie?: never;
2818
+ };
2819
+ get?: never;
2820
+ put?: never;
2821
+ /**
2822
+ * Quita el rol de administrador a teléfonos
2823
+ * @description **Permiso requerido:** **Grupos y campañas → Administrar grupos**
2824
+ *
2825
+ * **Nota:** Asíncrona: responde 202 con `action_id`; consulta el resultado en `GET /groups/actions/{action}`. Hasta 20 teléfonos por pedido, en una sola operación de WhatsApp. No admite el teléfono del propio número que ejecuta. Solo con números QR. Se ejecuta al ritmo de las campañas del número.
2826
+ */
2827
+ post: operations["apiGroupAction.demoteAdmins"];
2828
+ delete?: never;
2829
+ options?: never;
2830
+ head?: never;
2831
+ patch?: never;
2832
+ trace?: never;
2833
+ };
2834
+ "/api/v1/groups/{group}/name": {
2835
+ parameters: {
2836
+ query?: never;
2837
+ header?: never;
2838
+ path?: never;
2839
+ cookie?: never;
2840
+ };
2841
+ get?: never;
2842
+ /**
2843
+ * Cambia el nombre del grupo
2844
+ * @description **Permiso requerido:** **Grupos y campañas → Administrar grupos**
2845
+ *
2846
+ * **Nota:** Asíncrona: responde 202 con `action_id`; consulta el resultado en `GET /groups/actions/{action}`. El nombre se envía tal cual, sin numeración de campaña. Hasta 100 caracteres. Se ejecuta al ritmo de las campañas del número.
2847
+ */
2848
+ put: operations["apiGroupAction.updateName"];
2849
+ post?: never;
2850
+ delete?: never;
2851
+ options?: never;
2852
+ head?: never;
2853
+ patch?: never;
2854
+ trace?: never;
2855
+ };
2856
+ "/api/v1/groups/{group}/description": {
2857
+ parameters: {
2858
+ query?: never;
2859
+ header?: never;
2860
+ path?: never;
2861
+ cookie?: never;
2862
+ };
2863
+ get?: never;
2864
+ /**
2865
+ * Cambia la descripción del grupo
2866
+ * @description **Permiso requerido:** **Grupos y campañas → Administrar grupos**
2867
+ *
2868
+ * **Nota:** Asíncrona: responde 202 con `action_id`; consulta el resultado en `GET /groups/actions/{action}`. Hasta 2048 caracteres; una descripción vacía la borra. Se ejecuta al ritmo de las campañas del número.
2869
+ */
2870
+ put: operations["apiGroupAction.updateDescription"];
2871
+ post?: never;
2872
+ delete?: never;
2873
+ options?: never;
2874
+ head?: never;
2875
+ patch?: never;
2876
+ trace?: never;
2877
+ };
2878
+ "/api/v1/groups/{group}/photo": {
2879
+ parameters: {
2880
+ query?: never;
2881
+ header?: never;
2882
+ path?: never;
2883
+ cookie?: never;
2884
+ };
2885
+ get?: never;
2886
+ /**
2887
+ * Cambia la foto del grupo
2888
+ * @description **Permiso requerido:** **Grupos y campañas → Administrar grupos**
2889
+ *
2890
+ * **Nota:** Asíncrona: responde 202 con `action_id`; consulta el resultado en `GET /groups/actions/{action}`. `photo_url` debe ser una URL `https` de una imagen jpg, jpeg o png. Solo con números QR. Se ejecuta al ritmo de las campañas del número.
2891
+ */
2892
+ put: operations["apiGroupAction.updatePhoto"];
2893
+ post?: never;
2894
+ delete?: never;
2895
+ options?: never;
2896
+ head?: never;
2897
+ patch?: never;
2898
+ trace?: never;
2899
+ };
2900
+ "/api/v1/groups/{group}/settings": {
2901
+ parameters: {
2902
+ query?: never;
2903
+ header?: never;
2904
+ path?: never;
2905
+ cookie?: never;
2906
+ };
2907
+ get?: never;
2908
+ /**
2909
+ * Cambia si los miembros pueden escribir
2910
+ * @description **Permiso requerido:** **Grupos y campañas → Administrar grupos**
2911
+ *
2912
+ * **Nota:** Asíncrona: responde 202 con `action_id`; consulta el resultado en `GET /groups/actions/{action}`. `members_can_send_messages`; bloquear la escritura también deja a solo los administradores editando la información del grupo. Solo con números QR. Se ejecuta al ritmo de las campañas del número.
2913
+ */
2914
+ put: operations["apiGroupAction.updateSettings"];
2915
+ post?: never;
2916
+ delete?: never;
2917
+ options?: never;
2918
+ head?: never;
2919
+ patch?: never;
2920
+ trace?: never;
2921
+ };
2922
+ "/api/v1/groups/{group}/invite-link/renew": {
2923
+ parameters: {
2924
+ query?: never;
2925
+ header?: never;
2926
+ path?: never;
2927
+ cookie?: never;
2928
+ };
2929
+ get?: never;
2930
+ put?: never;
2931
+ /**
2932
+ * Renueva el link de invitación del grupo
2933
+ * @description **Permiso requerido:** **Grupos y campañas → Administrar grupos**
2934
+ *
2935
+ * **Nota:** Asíncrona: responde 202 con `action_id`; consulta el resultado en `GET /groups/actions/{action}`. Con un número QR relee el link vigente y NO lo revoca (los proveedores QR de WhatsApp no exponen revocación acá); con un número oficial revoca el link y WhatsApp genera uno nuevo. El resultado trae `invite_link`.
2936
+ */
2937
+ post: operations["apiGroupAction.renewInviteLink"];
2938
+ delete?: never;
2939
+ options?: never;
2940
+ head?: never;
2941
+ patch?: never;
2942
+ trace?: never;
2943
+ };
2944
+ "/api/v1/groups/{group}/invite-link/live": {
2945
+ parameters: {
2946
+ query?: never;
2947
+ header?: never;
2948
+ path?: never;
2949
+ cookie?: never;
2950
+ };
2951
+ /**
2952
+ * Link de invitación vigente del grupo
2953
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2954
+ *
2955
+ * **Nota:** Se lee en vivo del proveedor con el número indicado en `device_id`. Límite: 30 pedidos por minuto.
2956
+ */
2957
+ get: operations["apiGroupAction.inviteLink"];
2958
+ put?: never;
2959
+ post?: never;
2960
+ delete?: never;
2961
+ options?: never;
2962
+ head?: never;
2963
+ patch?: never;
2964
+ trace?: never;
2965
+ };
2966
+ "/api/v1/groups/{group}/join-requests": {
2967
+ parameters: {
2968
+ query?: never;
2969
+ header?: never;
2970
+ path?: never;
2971
+ cookie?: never;
2972
+ };
2973
+ /**
2974
+ * Solicitudes pendientes para unirse al grupo
2975
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2976
+ *
2977
+ * **Nota:** Solo números oficiales con la beta de grupos de la API oficial; un número QR recibe `422 provider_unsupported`. Se lee en vivo del proveedor con el número indicado en `device_id`; devuelve hasta 100 solicitudes, en el orden del proveedor, y omite las que no traen teléfono (no hay BSUID). Límite: 30 pedidos por minuto.
2978
+ */
2979
+ get: operations["apiGroupAction.joinRequests"];
2980
+ put?: never;
2981
+ post?: never;
2982
+ delete?: never;
2983
+ options?: never;
2984
+ head?: never;
2985
+ patch?: never;
2986
+ trace?: never;
2987
+ };
2988
+ "/api/v1/groups/{group}/join-requests/approve": {
2989
+ parameters: {
2990
+ query?: never;
2991
+ header?: never;
2992
+ path?: never;
2993
+ cookie?: never;
2994
+ };
2995
+ get?: never;
2996
+ put?: never;
2997
+ /**
2998
+ * Aprueba solicitudes para unirse al grupo
2999
+ * @description **Permiso requerido:** **Grupos y campañas → Administrar grupos**
3000
+ *
3001
+ * **Nota:** Asíncrona: responde 202 con `action_id`; consulta el resultado en `GET /groups/actions/{action}`. Solo números oficiales con la beta de grupos de la API oficial y con la habilitación de decisiones; si no, `422 provider_unsupported`. Verifica que los teléfonos entren en los lugares libres del grupo (`capacity_full`). El resultado es por persona.
3002
+ */
3003
+ post: operations["apiGroupAction.approveJoinRequests"];
3004
+ delete?: never;
3005
+ options?: never;
3006
+ head?: never;
3007
+ patch?: never;
3008
+ trace?: never;
3009
+ };
3010
+ "/api/v1/groups/{group}/join-requests/reject": {
3011
+ parameters: {
3012
+ query?: never;
3013
+ header?: never;
3014
+ path?: never;
3015
+ cookie?: never;
3016
+ };
3017
+ get?: never;
3018
+ put?: never;
3019
+ /**
3020
+ * Rechaza solicitudes para unirse al grupo
3021
+ * @description **Permiso requerido:** **Grupos y campañas → Administrar grupos**
3022
+ *
3023
+ * **Nota:** Asíncrona: responde 202 con `action_id`; consulta el resultado en `GET /groups/actions/{action}`. Solo números oficiales con la beta de grupos de la API oficial y con la habilitación de decisiones; si no, `422 provider_unsupported`. El resultado es por persona.
3024
+ */
3025
+ post: operations["apiGroupAction.rejectJoinRequests"];
3026
+ delete?: never;
3027
+ options?: never;
3028
+ head?: never;
3029
+ patch?: never;
3030
+ trace?: never;
3031
+ };
2714
3032
  "/api/v1/campaigns/{campaign}/participants": {
2715
3033
  parameters: {
2716
3034
  query?: never;
@@ -5128,36 +5446,16 @@ interface paths {
5128
5446
  patch?: never;
5129
5447
  trace?: never;
5130
5448
  };
5131
- "/api/v1/groups/actions/{action}": {
5449
+ }
5450
+ interface webhooks {
5451
+ "flow.completed": {
5132
5452
  parameters: {
5133
5453
  query?: never;
5134
5454
  header?: never;
5135
5455
  path?: never;
5136
5456
  cookie?: never;
5137
5457
  };
5138
- /**
5139
- * A group action
5140
- * @description Where an action is (`queued`, `running`, `completed` or `failed`) and its `result`. An action of another key's workspace, or that does not exist, is `404 action_not_found`.
5141
- */
5142
- get: operations["pendingGroups.retrieveAction"];
5143
- put?: never;
5144
- post?: never;
5145
- delete?: never;
5146
- options?: never;
5147
- head?: never;
5148
- patch?: never;
5149
- trace?: never;
5150
- };
5151
- }
5152
- interface webhooks {
5153
- "flow.completed": {
5154
- parameters: {
5155
- query?: never;
5156
- header?: never;
5157
- path?: never;
5158
- cookie?: never;
5159
- };
5160
- get?: never;
5458
+ get?: never;
5161
5459
  put?: never;
5162
5460
  /**
5163
5461
  * flow.completed
@@ -8253,6 +8551,65 @@ interface components {
8253
8551
  action: string;
8254
8552
  enabled: boolean;
8255
8553
  };
8554
+ /** ApiGroupActionAcceptedResource */
8555
+ ApiGroupActionAcceptedResource: {
8556
+ action_id: string;
8557
+ /** @constant */
8558
+ status: "queued";
8559
+ };
8560
+ /**
8561
+ * ApiGroupDescriptionRequest
8562
+ * @description Cuerpo de `PUT /groups/{group}/description`: una descripción vacía la borra, salvo con un número oficial,
8563
+ * en el que WhatsApp no permite borrarla. Los campos que no figuran se ignoran.
8564
+ */
8565
+ ApiGroupDescriptionRequest: {
8566
+ device_id: number;
8567
+ description: string | null;
8568
+ };
8569
+ /**
8570
+ * ApiGroupNameRequest
8571
+ * @description Cuerpo de `PUT /groups/{group}/name`: el nombre se envía a WhatsApp tal cual, sin numeración de campaña.
8572
+ * Los campos que no figuran se ignoran.
8573
+ */
8574
+ ApiGroupNameRequest: {
8575
+ device_id: number;
8576
+ name: string;
8577
+ };
8578
+ /**
8579
+ * ApiGroupPhonesRequest
8580
+ * @description Cuerpo de las acciones de grupo que reciben una lista de teléfonos (`device_id` y `phones`).
8581
+ * Los teléfonos se normalizan y se quitan los repetidos antes de contarlos contra el máximo por pedido.
8582
+ * Los campos que no figuran se ignoran.
8583
+ */
8584
+ ApiGroupPhonesRequest: {
8585
+ device_id: number;
8586
+ phones: string[];
8587
+ };
8588
+ /**
8589
+ * ApiGroupPhotoRequest
8590
+ * @description Cuerpo de `PUT /groups/{group}/photo`: una URL `https` de una imagen jpg, jpeg o png.
8591
+ * Los campos que no figuran se ignoran.
8592
+ */
8593
+ ApiGroupPhotoRequest: {
8594
+ device_id: number;
8595
+ photo_url: string;
8596
+ };
8597
+ /**
8598
+ * ApiGroupRenewLinkRequest
8599
+ * @description Cuerpo de la renovación del link de invitación (`device_id`).
8600
+ */
8601
+ ApiGroupRenewLinkRequest: {
8602
+ device_id: number;
8603
+ };
8604
+ /**
8605
+ * ApiGroupSettingsRequest
8606
+ * @description Cuerpo de `PUT /groups/{group}/settings`: el único ajuste es si los miembros pueden enviar mensajes.
8607
+ * Los campos que no figuran se ignoran.
8608
+ */
8609
+ ApiGroupSettingsRequest: {
8610
+ device_id: number;
8611
+ members_can_send_messages: boolean;
8612
+ };
8256
8613
  /** App.Modules.ScheduledMessages.Resources.MessageTemplateResource */
8257
8614
  "App.Modules.ScheduledMessages.Resources.MessageTemplateResource": {
8258
8615
  id: string;
@@ -8483,6 +8840,10 @@ interface components {
8483
8840
  number_brake_lifted_at: string;
8484
8841
  template_name: string;
8485
8842
  template_status: string;
8843
+ quality_risk_accepted: {
8844
+ at: string | null;
8845
+ quality: string | null;
8846
+ };
8486
8847
  } | string;
8487
8848
  number_brake_until: string | null;
8488
8849
  failure_reason: {
@@ -8944,6 +9305,19 @@ interface components {
8944
9305
  created_at: string;
8945
9306
  updated_at: string | "";
8946
9307
  };
9308
+ /**
9309
+ * CreateApiGroupRequest
9310
+ * @description Cuerpo de `POST /groups`: `device_id`, `name`, `description` opcional y `participants` (con un número QR,
9311
+ * de 1 al máximo permitido, teléfonos distintos y nunca el del propio número que crea el grupo).
9312
+ * Los teléfonos se normalizan y se quitan los repetidos antes de contarlos. Los campos que no figuran se ignoran.
9313
+ */
9314
+ CreateApiGroupRequest: {
9315
+ device_id: number;
9316
+ name: string;
9317
+ description?: string | null;
9318
+ join_approval_required?: boolean;
9319
+ participants: string[];
9320
+ };
8947
9321
  /** CustomDomainResource */
8948
9322
  CustomDomainResource: {
8949
9323
  id: number;
@@ -9594,7 +9968,7 @@ interface components {
9594
9968
  * PaymentEventTypeEnum
9595
9969
  * @enum {string}
9596
9970
  */
9597
- PaymentEventTypeEnum: "approved" | "pending" | "rejected" | "cancelled" | "refunded" | "chargeback";
9971
+ PaymentEventTypeEnum: "approved" | "pending" | "rejected" | "cancelled" | "refunded" | "chargeback" | "abandoned_cart";
9598
9972
  /** PaymentProductResource */
9599
9973
  PaymentProductResource: {
9600
9974
  external_product_id: string;
@@ -9745,7 +10119,9 @@ interface components {
9745
10119
  SendDirectMessageRequest: {
9746
10120
  device_id: number;
9747
10121
  text?: string;
9748
- contact_id: number;
10122
+ contact_id?: number | null;
10123
+ phone?: string | null;
10124
+ whatsapp_id?: string | null;
9749
10125
  /** @description Archivo del mensaje: el nombre de un archivo ya subido a tu cuenta o la URL pública de un archivo (te recomendamos `https://`), que WhatsApp o el proveedor descarga; admite hasta 4096 caracteres. Si empieza con `http`, en mayúsculas o minúsculas, tiene que ser una URL `http://` o `https://`; si no, la respuesta es 422. Consulta la sección «Enviar un archivo por URL». */
9750
10126
  file?: string;
9751
10127
  /**
@@ -9761,6 +10137,21 @@ interface components {
9761
10137
  mentions?: number[] | null;
9762
10138
  client_reference?: string | null;
9763
10139
  };
10140
+ /**
10141
+ * SendGroupMessageRequest
10142
+ * @description Cuerpo de `POST /groups/{group}/messages`: un texto o un solo archivo multimedia, que se envía en el momento.
10143
+ * No admite encuestas, eventos, stickers, contactos ni ubicaciones. Los campos que no figuran (por ejemplo,
10144
+ * `shipping_speed`) se ignoran.
10145
+ */
10146
+ SendGroupMessageRequest: {
10147
+ device_id: number;
10148
+ /** @enum {string} */
10149
+ type: "text" | "image" | "video" | "audio" | "document";
10150
+ text?: string;
10151
+ media_url?: string;
10152
+ caption?: string;
10153
+ file_name?: string;
10154
+ };
9764
10155
  /** SendMessageRequest */
9765
10156
  SendMessageRequest: {
9766
10157
  phone?: string;
@@ -10520,28 +10911,6 @@ interface components {
10520
10911
  connection: components["schemas"]["PendingDeviceConnection"];
10521
10912
  external_reference: components["schemas"]["PendingExternalReference"];
10522
10913
  };
10523
- /** @description A text or one file, sent to the group right away. Polls, events, stickers, contacts and locations are not accepted. */
10524
- PendingGroupMessageCreate: {
10525
- /** @description The number of your account that sends it. A QR number must be admin of the group; an official number, the one the group belongs to. */
10526
- device_id: number;
10527
- /** @enum {string} */
10528
- type: "text" | "image" | "video" | "audio" | "document";
10529
- /** @description Only with `type: text`, and required there. */
10530
- text?: string;
10531
- /** @description A public `https` URL that ends in an extension of the type. Required with a file; not with `type: text`. */
10532
- media_url?: string;
10533
- /** @description Image or video only. */
10534
- caption?: string | null;
10535
- /** @description Document only. */
10536
- file_name?: string | null;
10537
- };
10538
- /** @description The action is queued. Follow it with `GET /api/v1/groups/actions/{action}` or with the events `group_action.completed` and `group_action.failed`. */
10539
- PendingGroupActionAccepted: {
10540
- /** Format: uuid */
10541
- action_id: string;
10542
- /** @enum {string} */
10543
- status: "queued";
10544
- };
10545
10914
  PendingGroupParticipantResult: {
10546
10915
  /** @description The phone in digits, without `+`, or a `…@lid`. */
10547
10916
  identity: string;
@@ -10551,6 +10920,13 @@ interface components {
10551
10920
  status: "added" | "invited" | "removed" | "promoted" | "demoted" | "approved" | "rejected" | "failed";
10552
10921
  reason: string | null;
10553
10922
  };
10923
+ PendingDeviceQr: {
10924
+ connected: boolean;
10925
+ /** @description A PNG image as a data URI, or `null` when the number is already connected. */
10926
+ qr_code: string | null;
10927
+ /** @description Seconds after which to ask for it again: 5 with a QR, 3 while the session starts, 0 once connected. WhatsApp changes the code every few seconds and an old one no longer links: show the latest one and have it scanned right away; do not store or forward a QR. */
10928
+ expires_in: number;
10929
+ };
10554
10930
  PendingGroupAction: {
10555
10931
  /** Format: uuid */
10556
10932
  action_id: string;
@@ -10586,13 +10962,6 @@ interface components {
10586
10962
  /** Format: date-time */
10587
10963
  failed_at: string | null;
10588
10964
  };
10589
- PendingDeviceQr: {
10590
- connected: boolean;
10591
- /** @description A PNG image as a data URI, or `null` when the number is already connected. */
10592
- qr_code: string | null;
10593
- /** @description Seconds after which to ask for it again: 5 with a QR, 3 while the session starts, 0 once connected. WhatsApp changes the code every few seconds and an old one no longer links: show the latest one and have it scanned right away; do not store or forward a QR. */
10594
- expires_in: number;
10595
- };
10596
10965
  };
10597
10966
  responses: {
10598
10967
  /** @description Unauthenticated */
@@ -13131,7 +13500,7 @@ interface operations {
13131
13500
  "flow.activeContacts": {
13132
13501
  parameters: {
13133
13502
  query?: {
13134
- payment_event_type?: "approved" | "pending" | "rejected" | "cancelled" | "refunded" | "chargeback";
13503
+ payment_event_type?: "approved" | "pending" | "rejected" | "cancelled" | "refunded" | "chargeback" | "abandoned_cart";
13135
13504
  };
13136
13505
  header?: never;
13137
13506
  path: {
@@ -14409,6 +14778,8 @@ interface operations {
14409
14778
  /** @enum {string} */
14410
14779
  status: "error";
14411
14780
  error: string;
14781
+ } | {
14782
+ message: string;
14412
14783
  };
14413
14784
  };
14414
14785
  };
@@ -14425,7 +14796,7 @@ interface operations {
14425
14796
  };
14426
14797
  } | {
14427
14798
  /** @enum {string} */
14428
- error: "window_closed" | "antiblock_duplicate_content" | "antiblock_unanswered_limit" | "recipient_unsupported";
14799
+ error: "window_closed" | "antiblock_duplicate_content" | "antiblock_unanswered_limit" | "recipient_mismatch" | "recipient_unsupported";
14429
14800
  message: string;
14430
14801
  } | {
14431
14802
  /** @enum {string} */
@@ -14771,11 +15142,12 @@ interface operations {
14771
15142
  };
14772
15143
  cookie?: never;
14773
15144
  };
14774
- requestBody: {
15145
+ requestBody?: {
14775
15146
  content: {
14776
15147
  "application/json": {
14777
- phone: string;
14778
- contact_id: number;
15148
+ contact_id?: number | null;
15149
+ phone?: string | null;
15150
+ whatsapp_id?: string | null;
14779
15151
  template_variables?: {
14780
15152
  body?: (string | null)[];
14781
15153
  };
@@ -16658,6 +17030,33 @@ interface operations {
16658
17030
  422: components["responses"]["CommunitiesValidationException"];
16659
17031
  };
16660
17032
  };
17033
+ "apiGroupAction.create": {
17034
+ parameters: {
17035
+ query?: never;
17036
+ header?: never;
17037
+ path?: never;
17038
+ cookie?: never;
17039
+ };
17040
+ requestBody: {
17041
+ content: {
17042
+ "application/json": components["schemas"]["CreateApiGroupRequest"];
17043
+ };
17044
+ };
17045
+ responses: {
17046
+ /** @description `ApiGroupActionAcceptedResource` */
17047
+ 202: {
17048
+ headers: {
17049
+ [name: string]: unknown;
17050
+ };
17051
+ content: {
17052
+ "application/json": components["schemas"]["ApiGroupActionAcceptedResource"];
17053
+ };
17054
+ };
17055
+ 401: components["responses"]["CommunitiesAuthenticationException"];
17056
+ 403: components["responses"]["CommunitiesAuthorizationException"];
17057
+ 422: components["responses"]["CommunitiesValidationException"];
17058
+ };
17059
+ };
16661
17060
  "group.groups": {
16662
17061
  parameters: {
16663
17062
  query?: {
@@ -16817,315 +17216,721 @@ interface operations {
16817
17216
  [name: string]: unknown;
16818
17217
  };
16819
17218
  content: {
16820
- "application/json": {
16821
- /** @constant */
16822
- error: "Invalid response format from WAPI";
16823
- } | {
16824
- error: string | "An error has occurred";
16825
- } | {
16826
- /** @constant */
16827
- error: "An error has occurred";
16828
- };
17219
+ "application/json": {
17220
+ /** @constant */
17221
+ error: "Invalid response format from WAPI";
17222
+ } | {
17223
+ error: string | "An error has occurred";
17224
+ } | {
17225
+ /** @constant */
17226
+ error: "An error has occurred";
17227
+ };
17228
+ };
17229
+ };
17230
+ 401: components["responses"]["CommunitiesAuthenticationException"];
17231
+ 403: components["responses"]["CommunitiesAuthorizationException"];
17232
+ 404: {
17233
+ headers: {
17234
+ [name: string]: unknown;
17235
+ };
17236
+ content: {
17237
+ "application/json": {
17238
+ /** @constant */
17239
+ error: "Device not found";
17240
+ };
17241
+ };
17242
+ };
17243
+ 422: components["responses"]["CommunitiesValidationException"];
17244
+ };
17245
+ };
17246
+ "groupMetadata.show": {
17247
+ parameters: {
17248
+ query: {
17249
+ device_id: number;
17250
+ group_uid: string;
17251
+ type?: "groups" | "ad-groups" | "channels";
17252
+ };
17253
+ header?: never;
17254
+ path: {
17255
+ /** @description Identificador del grupo o del canal en WhatsApp. */
17256
+ groupUid: string;
17257
+ };
17258
+ cookie?: never;
17259
+ };
17260
+ requestBody?: never;
17261
+ responses: {
17262
+ /**
17263
+ * @description `GroupMetadataResource`
17264
+ *
17265
+ * `ChannelMetadataResource`
17266
+ */
17267
+ 200: {
17268
+ headers: {
17269
+ [name: string]: unknown;
17270
+ };
17271
+ content: {
17272
+ "application/json": components["schemas"]["GroupMetadataResource"] | components["schemas"]["ChannelMetadataResource"];
17273
+ };
17274
+ };
17275
+ 401: components["responses"]["CommunitiesAuthenticationException"];
17276
+ 403: components["responses"]["CommunitiesAuthorizationException"];
17277
+ /** @description El grupo o el canal no existe, o el número no tiene acceso a él. */
17278
+ 404: {
17279
+ headers: {
17280
+ [name: string]: unknown;
17281
+ };
17282
+ content: {
17283
+ "application/json": {
17284
+ /** @constant */
17285
+ message: "Group not found or not accessible.";
17286
+ } | {
17287
+ /** @constant */
17288
+ message: "Device not found or access denied.";
17289
+ };
17290
+ };
17291
+ };
17292
+ 422: components["responses"]["CommunitiesValidationException"];
17293
+ /** @description No se pudo consultar a WhatsApp. Reintenta más tarde. */
17294
+ 502: {
17295
+ headers: {
17296
+ [name: string]: unknown;
17297
+ };
17298
+ content: {
17299
+ "application/json": {
17300
+ /** @constant */
17301
+ message: "Gateway error. Please try again later.";
17302
+ };
17303
+ };
17304
+ };
17305
+ };
17306
+ };
17307
+ "group.show": {
17308
+ parameters: {
17309
+ query?: never;
17310
+ header?: never;
17311
+ path: {
17312
+ /** @description The group uid */
17313
+ group: string;
17314
+ };
17315
+ cookie?: never;
17316
+ };
17317
+ requestBody?: never;
17318
+ responses: {
17319
+ /** @description `GroupResource` */
17320
+ 200: {
17321
+ headers: {
17322
+ [name: string]: unknown;
17323
+ };
17324
+ content: {
17325
+ "application/json": components["schemas"]["GroupResource"];
17326
+ };
17327
+ };
17328
+ 401: components["responses"]["CommunitiesAuthenticationException"];
17329
+ 403: components["responses"]["CommunitiesAuthorizationException"];
17330
+ 404: components["responses"]["CommunitiesModelNotFoundException"];
17331
+ };
17332
+ };
17333
+ "group.actions": {
17334
+ parameters: {
17335
+ query?: {
17336
+ orderBy?: "status" | "created_at" | "updated_at" | "completed_at";
17337
+ orderByMethod?: "asc" | "desc";
17338
+ page?: number;
17339
+ perPage?: number;
17340
+ };
17341
+ header?: never;
17342
+ path: {
17343
+ /** @description The group uid */
17344
+ group: string;
17345
+ };
17346
+ cookie?: never;
17347
+ };
17348
+ requestBody?: never;
17349
+ responses: {
17350
+ /** @description Paginated set of `ActionGroupResource` */
17351
+ 200: {
17352
+ headers: {
17353
+ [name: string]: unknown;
17354
+ };
17355
+ content: {
17356
+ "application/json": {
17357
+ data: components["schemas"]["ActionGroupResource"][];
17358
+ links: {
17359
+ first: string | null;
17360
+ last: string | null;
17361
+ prev: string | null;
17362
+ next: string | null;
17363
+ };
17364
+ meta: {
17365
+ current_page: number;
17366
+ from: number | null;
17367
+ last_page: number;
17368
+ /** @description Generated paginator links. */
17369
+ links: {
17370
+ url: string | null;
17371
+ label: string;
17372
+ active: boolean;
17373
+ }[];
17374
+ /** @description Base path for paginator generated URLs. */
17375
+ path: string | null;
17376
+ /** @description Number of items shown per page. */
17377
+ per_page: number;
17378
+ /** @description Number of the last item in the slice. */
17379
+ to: number | null;
17380
+ /** @description Total number of items being paginated. */
17381
+ total: number;
17382
+ };
17383
+ };
17384
+ };
17385
+ };
17386
+ 401: components["responses"]["CommunitiesAuthenticationException"];
17387
+ 403: components["responses"]["CommunitiesAuthorizationException"];
17388
+ 404: components["responses"]["CommunitiesModelNotFoundException"];
17389
+ 422: components["responses"]["CommunitiesValidationException"];
17390
+ };
17391
+ };
17392
+ "group.messages": {
17393
+ parameters: {
17394
+ query?: never;
17395
+ header?: never;
17396
+ path: {
17397
+ /** @description The group uid */
17398
+ group: string;
17399
+ };
17400
+ cookie?: never;
17401
+ };
17402
+ requestBody?: never;
17403
+ responses: {
17404
+ /** @description Paginated set of `MessageResource` */
17405
+ 200: {
17406
+ headers: {
17407
+ [name: string]: unknown;
17408
+ };
17409
+ content: {
17410
+ "application/json": {
17411
+ data: components["schemas"]["CommunitiesMessageResource"][];
17412
+ links: {
17413
+ first: string | null;
17414
+ last: string | null;
17415
+ prev: string | null;
17416
+ next: string | null;
17417
+ };
17418
+ meta: {
17419
+ current_page: number;
17420
+ from: number | null;
17421
+ last_page: number;
17422
+ /** @description Generated paginator links. */
17423
+ links: {
17424
+ url: string | null;
17425
+ label: string;
17426
+ active: boolean;
17427
+ }[];
17428
+ /** @description Base path for paginator generated URLs. */
17429
+ path: string | null;
17430
+ /** @description Number of items shown per page. */
17431
+ per_page: number;
17432
+ /** @description Number of the last item in the slice. */
17433
+ to: number | null;
17434
+ /** @description Total number of items being paginated. */
17435
+ total: number;
17436
+ };
17437
+ };
17438
+ };
17439
+ };
17440
+ 401: components["responses"]["CommunitiesAuthenticationException"];
17441
+ 403: components["responses"]["CommunitiesAuthorizationException"];
17442
+ 404: components["responses"]["CommunitiesModelNotFoundException"];
17443
+ };
17444
+ };
17445
+ "apiGroupAction.sendMessage": {
17446
+ parameters: {
17447
+ query?: never;
17448
+ header?: never;
17449
+ path: {
17450
+ group: string;
17451
+ };
17452
+ cookie?: never;
17453
+ };
17454
+ requestBody: {
17455
+ content: {
17456
+ "application/json": components["schemas"]["SendGroupMessageRequest"];
17457
+ };
17458
+ };
17459
+ responses: {
17460
+ /** @description `ApiGroupActionAcceptedResource` */
17461
+ 202: {
17462
+ headers: {
17463
+ [name: string]: unknown;
17464
+ };
17465
+ content: {
17466
+ "application/json": components["schemas"]["ApiGroupActionAcceptedResource"];
17467
+ };
17468
+ };
17469
+ 401: components["responses"]["CommunitiesAuthenticationException"];
17470
+ 403: components["responses"]["CommunitiesAuthorizationException"];
17471
+ 422: components["responses"]["CommunitiesValidationException"];
17472
+ };
17473
+ };
17474
+ "group.scheduledMessages": {
17475
+ parameters: {
17476
+ query?: {
17477
+ name?: string;
17478
+ orderBy?: "send_at" | "name" | "status" | "id" | "created_at" | "updated_at";
17479
+ orderByMethod?: "ASC" | "DESC";
17480
+ perPage?: number;
17481
+ };
17482
+ header?: never;
17483
+ path: {
17484
+ /** @description The group uid */
17485
+ group: string;
17486
+ };
17487
+ cookie?: never;
17488
+ };
17489
+ requestBody?: never;
17490
+ responses: {
17491
+ /** @description Paginated set of `ScheduledMessageResource` */
17492
+ 200: {
17493
+ headers: {
17494
+ [name: string]: unknown;
17495
+ };
17496
+ content: {
17497
+ "application/json": {
17498
+ data: components["schemas"]["ScheduledMessageResource"][];
17499
+ links: {
17500
+ first: string | null;
17501
+ last: string | null;
17502
+ prev: string | null;
17503
+ next: string | null;
17504
+ };
17505
+ meta: {
17506
+ current_page: number;
17507
+ from: number | null;
17508
+ last_page: number;
17509
+ /** @description Generated paginator links. */
17510
+ links: {
17511
+ url: string | null;
17512
+ label: string;
17513
+ active: boolean;
17514
+ }[];
17515
+ /** @description Base path for paginator generated URLs. */
17516
+ path: string | null;
17517
+ /** @description Number of items shown per page. */
17518
+ per_page: number;
17519
+ /** @description Number of the last item in the slice. */
17520
+ to: number | null;
17521
+ /** @description Total number of items being paginated. */
17522
+ total: number;
17523
+ };
17524
+ };
17525
+ };
17526
+ };
17527
+ 401: components["responses"]["CommunitiesAuthenticationException"];
17528
+ 403: components["responses"]["CommunitiesAuthorizationException"];
17529
+ 404: components["responses"]["CommunitiesModelNotFoundException"];
17530
+ 422: components["responses"]["CommunitiesValidationException"];
17531
+ };
17532
+ };
17533
+ "apiGroupAction.show": {
17534
+ parameters: {
17535
+ query?: never;
17536
+ header?: never;
17537
+ path: {
17538
+ action: string;
17539
+ };
17540
+ cookie?: never;
17541
+ };
17542
+ requestBody?: never;
17543
+ responses: {
17544
+ /** @description The action. */
17545
+ 200: {
17546
+ headers: {
17547
+ [name: string]: unknown;
17548
+ };
17549
+ content: {
17550
+ "application/json": {
17551
+ data: components["schemas"]["PendingGroupAction"];
17552
+ };
17553
+ };
17554
+ };
17555
+ 401: components["responses"]["CommunitiesAuthenticationException"];
17556
+ 403: components["responses"]["CommunitiesAuthorizationException"];
17557
+ };
17558
+ };
17559
+ "apiGroupAction.addParticipants": {
17560
+ parameters: {
17561
+ query?: never;
17562
+ header?: never;
17563
+ path: {
17564
+ group: string;
17565
+ };
17566
+ cookie?: never;
17567
+ };
17568
+ requestBody: {
17569
+ content: {
17570
+ "application/json": components["schemas"]["ApiGroupPhonesRequest"];
17571
+ };
17572
+ };
17573
+ responses: {
17574
+ /** @description `ApiGroupActionAcceptedResource` */
17575
+ 202: {
17576
+ headers: {
17577
+ [name: string]: unknown;
17578
+ };
17579
+ content: {
17580
+ "application/json": components["schemas"]["ApiGroupActionAcceptedResource"];
17581
+ };
17582
+ };
17583
+ 401: components["responses"]["CommunitiesAuthenticationException"];
17584
+ 403: components["responses"]["CommunitiesAuthorizationException"];
17585
+ 422: components["responses"]["CommunitiesValidationException"];
17586
+ };
17587
+ };
17588
+ "apiGroupAction.removeParticipants": {
17589
+ parameters: {
17590
+ query?: never;
17591
+ header?: never;
17592
+ path: {
17593
+ group: string;
17594
+ };
17595
+ cookie?: never;
17596
+ };
17597
+ requestBody: {
17598
+ content: {
17599
+ "application/json": components["schemas"]["ApiGroupPhonesRequest"];
17600
+ };
17601
+ };
17602
+ responses: {
17603
+ /** @description `ApiGroupActionAcceptedResource` */
17604
+ 202: {
17605
+ headers: {
17606
+ [name: string]: unknown;
17607
+ };
17608
+ content: {
17609
+ "application/json": components["schemas"]["ApiGroupActionAcceptedResource"];
17610
+ };
17611
+ };
17612
+ 401: components["responses"]["CommunitiesAuthenticationException"];
17613
+ 403: components["responses"]["CommunitiesAuthorizationException"];
17614
+ 422: components["responses"]["CommunitiesValidationException"];
17615
+ };
17616
+ };
17617
+ "apiGroupAction.promoteAdmins": {
17618
+ parameters: {
17619
+ query?: never;
17620
+ header?: never;
17621
+ path: {
17622
+ group: string;
17623
+ };
17624
+ cookie?: never;
17625
+ };
17626
+ requestBody: {
17627
+ content: {
17628
+ "application/json": components["schemas"]["ApiGroupPhonesRequest"];
17629
+ };
17630
+ };
17631
+ responses: {
17632
+ /** @description `ApiGroupActionAcceptedResource` */
17633
+ 202: {
17634
+ headers: {
17635
+ [name: string]: unknown;
17636
+ };
17637
+ content: {
17638
+ "application/json": components["schemas"]["ApiGroupActionAcceptedResource"];
17639
+ };
17640
+ };
17641
+ 401: components["responses"]["CommunitiesAuthenticationException"];
17642
+ 403: components["responses"]["CommunitiesAuthorizationException"];
17643
+ 422: components["responses"]["CommunitiesValidationException"];
17644
+ };
17645
+ };
17646
+ "apiGroupAction.demoteAdmins": {
17647
+ parameters: {
17648
+ query?: never;
17649
+ header?: never;
17650
+ path: {
17651
+ group: string;
17652
+ };
17653
+ cookie?: never;
17654
+ };
17655
+ requestBody: {
17656
+ content: {
17657
+ "application/json": components["schemas"]["ApiGroupPhonesRequest"];
17658
+ };
17659
+ };
17660
+ responses: {
17661
+ /** @description `ApiGroupActionAcceptedResource` */
17662
+ 202: {
17663
+ headers: {
17664
+ [name: string]: unknown;
17665
+ };
17666
+ content: {
17667
+ "application/json": components["schemas"]["ApiGroupActionAcceptedResource"];
17668
+ };
17669
+ };
17670
+ 401: components["responses"]["CommunitiesAuthenticationException"];
17671
+ 403: components["responses"]["CommunitiesAuthorizationException"];
17672
+ 422: components["responses"]["CommunitiesValidationException"];
17673
+ };
17674
+ };
17675
+ "apiGroupAction.updateName": {
17676
+ parameters: {
17677
+ query?: never;
17678
+ header?: never;
17679
+ path: {
17680
+ group: string;
17681
+ };
17682
+ cookie?: never;
17683
+ };
17684
+ requestBody: {
17685
+ content: {
17686
+ "application/json": components["schemas"]["ApiGroupNameRequest"];
17687
+ };
17688
+ };
17689
+ responses: {
17690
+ /** @description `ApiGroupActionAcceptedResource` */
17691
+ 202: {
17692
+ headers: {
17693
+ [name: string]: unknown;
17694
+ };
17695
+ content: {
17696
+ "application/json": components["schemas"]["ApiGroupActionAcceptedResource"];
16829
17697
  };
16830
17698
  };
16831
17699
  401: components["responses"]["CommunitiesAuthenticationException"];
16832
17700
  403: components["responses"]["CommunitiesAuthorizationException"];
16833
- 404: {
16834
- headers: {
16835
- [name: string]: unknown;
16836
- };
16837
- content: {
16838
- "application/json": {
16839
- /** @constant */
16840
- error: "Device not found";
16841
- };
16842
- };
16843
- };
16844
17701
  422: components["responses"]["CommunitiesValidationException"];
16845
17702
  };
16846
17703
  };
16847
- "groupMetadata.show": {
17704
+ "apiGroupAction.updateDescription": {
16848
17705
  parameters: {
16849
- query: {
16850
- device_id: number;
16851
- group_uid: string;
16852
- type?: "groups" | "ad-groups" | "channels";
16853
- };
17706
+ query?: never;
16854
17707
  header?: never;
16855
17708
  path: {
16856
- /** @description Identificador del grupo o del canal en WhatsApp. */
16857
- groupUid: string;
17709
+ group: string;
16858
17710
  };
16859
17711
  cookie?: never;
16860
17712
  };
16861
- requestBody?: never;
17713
+ requestBody: {
17714
+ content: {
17715
+ "application/json": components["schemas"]["ApiGroupDescriptionRequest"];
17716
+ };
17717
+ };
16862
17718
  responses: {
16863
- /**
16864
- * @description `GroupMetadataResource`
16865
- *
16866
- * `ChannelMetadataResource`
16867
- */
16868
- 200: {
17719
+ /** @description `ApiGroupActionAcceptedResource` */
17720
+ 202: {
16869
17721
  headers: {
16870
17722
  [name: string]: unknown;
16871
17723
  };
16872
17724
  content: {
16873
- "application/json": components["schemas"]["GroupMetadataResource"] | components["schemas"]["ChannelMetadataResource"];
17725
+ "application/json": components["schemas"]["ApiGroupActionAcceptedResource"];
16874
17726
  };
16875
17727
  };
16876
17728
  401: components["responses"]["CommunitiesAuthenticationException"];
16877
17729
  403: components["responses"]["CommunitiesAuthorizationException"];
16878
- /** @description El grupo o el canal no existe, o el número no tiene acceso a él. */
16879
- 404: {
17730
+ 422: components["responses"]["CommunitiesValidationException"];
17731
+ };
17732
+ };
17733
+ "apiGroupAction.updatePhoto": {
17734
+ parameters: {
17735
+ query?: never;
17736
+ header?: never;
17737
+ path: {
17738
+ group: string;
17739
+ };
17740
+ cookie?: never;
17741
+ };
17742
+ requestBody: {
17743
+ content: {
17744
+ "application/json": components["schemas"]["ApiGroupPhotoRequest"];
17745
+ };
17746
+ };
17747
+ responses: {
17748
+ /** @description `ApiGroupActionAcceptedResource` */
17749
+ 202: {
16880
17750
  headers: {
16881
17751
  [name: string]: unknown;
16882
17752
  };
16883
17753
  content: {
16884
- "application/json": {
16885
- /** @constant */
16886
- message: "Group not found or not accessible.";
16887
- } | {
16888
- /** @constant */
16889
- message: "Device not found or access denied.";
16890
- };
17754
+ "application/json": components["schemas"]["ApiGroupActionAcceptedResource"];
16891
17755
  };
16892
17756
  };
17757
+ 401: components["responses"]["CommunitiesAuthenticationException"];
17758
+ 403: components["responses"]["CommunitiesAuthorizationException"];
16893
17759
  422: components["responses"]["CommunitiesValidationException"];
16894
- /** @description No se pudo consultar a WhatsApp. Reintenta más tarde. */
16895
- 502: {
17760
+ };
17761
+ };
17762
+ "apiGroupAction.updateSettings": {
17763
+ parameters: {
17764
+ query?: never;
17765
+ header?: never;
17766
+ path: {
17767
+ group: string;
17768
+ };
17769
+ cookie?: never;
17770
+ };
17771
+ requestBody: {
17772
+ content: {
17773
+ "application/json": components["schemas"]["ApiGroupSettingsRequest"];
17774
+ };
17775
+ };
17776
+ responses: {
17777
+ /** @description `ApiGroupActionAcceptedResource` */
17778
+ 202: {
16896
17779
  headers: {
16897
17780
  [name: string]: unknown;
16898
17781
  };
16899
17782
  content: {
16900
- "application/json": {
16901
- /** @constant */
16902
- message: "Gateway error. Please try again later.";
16903
- };
17783
+ "application/json": components["schemas"]["ApiGroupActionAcceptedResource"];
16904
17784
  };
16905
17785
  };
17786
+ 401: components["responses"]["CommunitiesAuthenticationException"];
17787
+ 403: components["responses"]["CommunitiesAuthorizationException"];
17788
+ 422: components["responses"]["CommunitiesValidationException"];
16906
17789
  };
16907
17790
  };
16908
- "group.show": {
17791
+ "apiGroupAction.renewInviteLink": {
16909
17792
  parameters: {
16910
17793
  query?: never;
16911
17794
  header?: never;
16912
17795
  path: {
16913
- /** @description The group uid */
16914
17796
  group: string;
16915
17797
  };
16916
17798
  cookie?: never;
16917
17799
  };
16918
- requestBody?: never;
17800
+ requestBody: {
17801
+ content: {
17802
+ "application/json": components["schemas"]["ApiGroupRenewLinkRequest"];
17803
+ };
17804
+ };
16919
17805
  responses: {
16920
- /** @description `GroupResource` */
16921
- 200: {
17806
+ /** @description `ApiGroupActionAcceptedResource` */
17807
+ 202: {
16922
17808
  headers: {
16923
17809
  [name: string]: unknown;
16924
17810
  };
16925
17811
  content: {
16926
- "application/json": components["schemas"]["GroupResource"];
17812
+ "application/json": components["schemas"]["ApiGroupActionAcceptedResource"];
16927
17813
  };
16928
17814
  };
16929
17815
  401: components["responses"]["CommunitiesAuthenticationException"];
16930
17816
  403: components["responses"]["CommunitiesAuthorizationException"];
16931
- 404: components["responses"]["CommunitiesModelNotFoundException"];
17817
+ 422: components["responses"]["CommunitiesValidationException"];
16932
17818
  };
16933
17819
  };
16934
- "group.actions": {
17820
+ "apiGroupAction.inviteLink": {
16935
17821
  parameters: {
16936
- query?: {
16937
- orderBy?: "status" | "created_at" | "updated_at" | "completed_at";
16938
- orderByMethod?: "asc" | "desc";
16939
- page?: number;
16940
- perPage?: number;
17822
+ query: {
17823
+ device_id: number;
16941
17824
  };
16942
17825
  header?: never;
16943
17826
  path: {
16944
- /** @description The group uid */
16945
17827
  group: string;
16946
17828
  };
16947
17829
  cookie?: never;
16948
17830
  };
16949
17831
  requestBody?: never;
16950
17832
  responses: {
16951
- /** @description Paginated set of `ActionGroupResource` */
17833
+ /** @description El link de invitación vigente del grupo. Una lectura exitosa se reutiliza durante unos segundos. */
16952
17834
  200: {
16953
17835
  headers: {
16954
17836
  [name: string]: unknown;
16955
17837
  };
16956
17838
  content: {
16957
17839
  "application/json": {
16958
- data: components["schemas"]["ActionGroupResource"][];
16959
- links: {
16960
- first: string | null;
16961
- last: string | null;
16962
- prev: string | null;
16963
- next: string | null;
16964
- };
16965
- meta: {
16966
- current_page: number;
16967
- from: number | null;
16968
- last_page: number;
16969
- /** @description Generated paginator links. */
16970
- links: {
16971
- url: string | null;
16972
- label: string;
16973
- active: boolean;
16974
- }[];
16975
- /** @description Base path for paginator generated URLs. */
16976
- path: string | null;
16977
- /** @description Number of items shown per page. */
16978
- per_page: number;
16979
- /** @description Number of the last item in the slice. */
16980
- to: number | null;
16981
- /** @description Total number of items being paginated. */
16982
- total: number;
17840
+ data: {
17841
+ invite_link: string;
16983
17842
  };
16984
17843
  };
16985
17844
  };
16986
17845
  };
16987
17846
  401: components["responses"]["CommunitiesAuthenticationException"];
16988
17847
  403: components["responses"]["CommunitiesAuthorizationException"];
16989
- 404: components["responses"]["CommunitiesModelNotFoundException"];
16990
17848
  422: components["responses"]["CommunitiesValidationException"];
16991
17849
  };
16992
17850
  };
16993
- "group.messages": {
17851
+ "apiGroupAction.joinRequests": {
16994
17852
  parameters: {
16995
- query?: never;
17853
+ query: {
17854
+ device_id: number;
17855
+ };
16996
17856
  header?: never;
16997
17857
  path: {
16998
- /** @description The group uid */
16999
17858
  group: string;
17000
17859
  };
17001
17860
  cookie?: never;
17002
17861
  };
17003
17862
  requestBody?: never;
17004
17863
  responses: {
17005
- /** @description Paginated set of `MessageResource` */
17006
17864
  200: {
17007
17865
  headers: {
17008
17866
  [name: string]: unknown;
17009
17867
  };
17010
17868
  content: {
17011
17869
  "application/json": {
17012
- data: components["schemas"]["CommunitiesMessageResource"][];
17013
- links: {
17014
- first: string | null;
17015
- last: string | null;
17016
- prev: string | null;
17017
- next: string | null;
17018
- };
17019
- meta: {
17020
- current_page: number;
17021
- from: number | null;
17022
- last_page: number;
17023
- /** @description Generated paginator links. */
17024
- links: {
17025
- url: string | null;
17026
- label: string;
17027
- active: boolean;
17028
- }[];
17029
- /** @description Base path for paginator generated URLs. */
17030
- path: string | null;
17031
- /** @description Number of items shown per page. */
17032
- per_page: number;
17033
- /** @description Number of the last item in the slice. */
17034
- to: number | null;
17035
- /** @description Total number of items being paginated. */
17036
- total: number;
17037
- };
17870
+ data: unknown[];
17038
17871
  };
17039
17872
  };
17040
17873
  };
17041
17874
  401: components["responses"]["CommunitiesAuthenticationException"];
17042
17875
  403: components["responses"]["CommunitiesAuthorizationException"];
17043
- 404: components["responses"]["CommunitiesModelNotFoundException"];
17876
+ 422: components["responses"]["CommunitiesValidationException"];
17044
17877
  };
17045
17878
  };
17046
- "pendingGroups.sendMessage": {
17879
+ "apiGroupAction.approveJoinRequests": {
17047
17880
  parameters: {
17048
17881
  query?: never;
17049
17882
  header?: never;
17050
17883
  path: {
17051
- /** @description The WhatsApp uid of the group (`…@g.us`), the `uid` of `GET /api/v1/groups`. */
17052
17884
  group: string;
17053
17885
  };
17054
17886
  cookie?: never;
17055
17887
  };
17056
17888
  requestBody: {
17057
17889
  content: {
17058
- "application/json": components["schemas"]["PendingGroupMessageCreate"];
17890
+ "application/json": components["schemas"]["ApiGroupPhonesRequest"];
17059
17891
  };
17060
17892
  };
17061
17893
  responses: {
17062
- /** @description Queued. */
17894
+ /** @description `ApiGroupActionAcceptedResource` */
17063
17895
  202: {
17064
17896
  headers: {
17065
17897
  [name: string]: unknown;
17066
17898
  };
17067
17899
  content: {
17068
- "application/json": components["schemas"]["PendingGroupActionAccepted"];
17900
+ "application/json": components["schemas"]["ApiGroupActionAcceptedResource"];
17069
17901
  };
17070
17902
  };
17903
+ 401: components["responses"]["CommunitiesAuthenticationException"];
17904
+ 403: components["responses"]["CommunitiesAuthorizationException"];
17905
+ 422: components["responses"]["CommunitiesValidationException"];
17071
17906
  };
17072
17907
  };
17073
- "group.scheduledMessages": {
17908
+ "apiGroupAction.rejectJoinRequests": {
17074
17909
  parameters: {
17075
- query?: {
17076
- name?: string;
17077
- orderBy?: "send_at" | "name" | "status" | "id" | "created_at" | "updated_at";
17078
- orderByMethod?: "ASC" | "DESC";
17079
- perPage?: number;
17080
- };
17910
+ query?: never;
17081
17911
  header?: never;
17082
17912
  path: {
17083
- /** @description The group uid */
17084
17913
  group: string;
17085
17914
  };
17086
17915
  cookie?: never;
17087
17916
  };
17088
- requestBody?: never;
17917
+ requestBody: {
17918
+ content: {
17919
+ "application/json": components["schemas"]["ApiGroupPhonesRequest"];
17920
+ };
17921
+ };
17089
17922
  responses: {
17090
- /** @description Paginated set of `ScheduledMessageResource` */
17091
- 200: {
17923
+ /** @description `ApiGroupActionAcceptedResource` */
17924
+ 202: {
17092
17925
  headers: {
17093
17926
  [name: string]: unknown;
17094
17927
  };
17095
17928
  content: {
17096
- "application/json": {
17097
- data: components["schemas"]["ScheduledMessageResource"][];
17098
- links: {
17099
- first: string | null;
17100
- last: string | null;
17101
- prev: string | null;
17102
- next: string | null;
17103
- };
17104
- meta: {
17105
- current_page: number;
17106
- from: number | null;
17107
- last_page: number;
17108
- /** @description Generated paginator links. */
17109
- links: {
17110
- url: string | null;
17111
- label: string;
17112
- active: boolean;
17113
- }[];
17114
- /** @description Base path for paginator generated URLs. */
17115
- path: string | null;
17116
- /** @description Number of items shown per page. */
17117
- per_page: number;
17118
- /** @description Number of the last item in the slice. */
17119
- to: number | null;
17120
- /** @description Total number of items being paginated. */
17121
- total: number;
17122
- };
17123
- };
17929
+ "application/json": components["schemas"]["ApiGroupActionAcceptedResource"];
17124
17930
  };
17125
17931
  };
17126
17932
  401: components["responses"]["CommunitiesAuthenticationException"];
17127
17933
  403: components["responses"]["CommunitiesAuthorizationException"];
17128
- 404: components["responses"]["CommunitiesModelNotFoundException"];
17129
17934
  422: components["responses"]["CommunitiesValidationException"];
17130
17935
  };
17131
17936
  };
@@ -22233,31 +23038,6 @@ interface operations {
22233
23038
  };
22234
23039
  };
22235
23040
  };
22236
- "pendingGroups.retrieveAction": {
22237
- parameters: {
22238
- query?: never;
22239
- header?: never;
22240
- path: {
22241
- /** @description The `action_id` the action returned. */
22242
- action: string;
22243
- };
22244
- cookie?: never;
22245
- };
22246
- requestBody?: never;
22247
- responses: {
22248
- /** @description OK */
22249
- 200: {
22250
- headers: {
22251
- [name: string]: unknown;
22252
- };
22253
- content: {
22254
- "application/json": {
22255
- data: components["schemas"]["PendingGroupAction"];
22256
- };
22257
- };
22258
- };
22259
- };
22260
- };
22261
23041
  "webhook.group_created": {
22262
23042
  parameters: {
22263
23043
  query?: never;
@@ -24523,7 +25303,7 @@ declare class Templates extends Resource {
24523
25303
 
24524
25304
  /**
24525
25305
  * GENERATED FILE — do not edit. Run `npm run generate`.
24526
- * Source: spec/funnelchat.json (sha256 0f451feaba59418f…) + spec/pending.json.
25306
+ * Source: spec/funnelchat.json (sha256 8228ea7369daed06…) + spec/pending.json.
24527
25307
  */
24528
25308
 
24529
25309
  /** One entry of the webhook event catalog. `pending` = taken from spec/pending.json. */
@@ -26202,7 +26982,7 @@ declare class Funnelchat {
26202
26982
  readonly verify: typeof verify;
26203
26983
  readonly constructEvent: typeof constructEvent;
26204
26984
  };
26205
- static readonly VERSION = "0.3.0";
26985
+ static readonly VERSION = "0.3.1";
26206
26986
  readonly baseUrl: string;
26207
26987
  readonly timeoutMs: number;
26208
26988
  readonly maxRetries: number;
@@ -26250,7 +27030,7 @@ declare class Funnelchat {
26250
27030
 
26251
27031
  /**
26252
27032
  * GENERATED FILE — do not edit. Run `npm run generate`.
26253
- * Source: spec/funnelchat.json (sha256 0f451feaba59418f…) + spec/pending.json.
27033
+ * Source: spec/funnelchat.json (sha256 8228ea7369daed06…) + spec/pending.json.
26254
27034
  */
26255
27035
  /** One operation of the public API. `pending` = taken from spec/pending.json, not from the snapshot. */
26256
27036
  interface RouteInfo {
@@ -26263,10 +27043,10 @@ interface RouteInfo {
26263
27043
  readonly summary: string | null;
26264
27044
  readonly pending: boolean;
26265
27045
  }
26266
- /** Every operation of the spec (269), sorted by path. */
27046
+ /** Every operation of the spec (283), sorted by path. */
26267
27047
  declare const routes: readonly RouteInfo[];
26268
27048
 
26269
27049
  /** The SDK version, sent in the `User-Agent`. A test keeps it equal to package.json. */
26270
- declare const VERSION = "0.3.0";
27050
+ declare const VERSION = "0.3.1";
26271
27051
 
26272
27052
  export { ACCESS_ERROR_CODES, APIConnectionError, APIConnectionTimeoutError, APIError, APIPromise, type APIResponse, APIUserAbortError, type AccessErrorCode, type ApiPath, AuthenticationError, BASE_URLS, BadRequestError, type Body, type ClientOptions, ConflictError, DEFAULT_MAX_RETRIES, DEFAULT_TIMEOUT_MS, DEFAULT_TOLERANCE_SECONDS, type Environment, type FieldErrors, Funnelchat, FunnelchatError, GROUP_ACTION_ERROR_CODES, type GroupActionErrorCode, type HttpMethod, IDEMPOTENCY_ERROR_CODES, type IdempotencyErrorCode, type IdempotentRequestOptions, InternalServerError, type KnownErrorCode, type ListItem, NUMBER_ERROR_CODES, NotFoundError, type NumberErrorCode, Page, PagePromise, type PathParams, PermissionDeniedError, type Query, type QueryParams, REQUEST_ID_HEADER, RateLimitError, type RawBody, type RequestBody, type RequestOptions, type ResponseBody, type RouteInfo, SEND_ERROR_CODES, SIGNATURE_HEADER, type SendErrorCode, type SendMessageParams, type TypedRequestOptions, UnprocessableEntityError, UnsupportedMediaTypeError, type UntypedRequestOptions, VERSION, type VerifyOptions, type WebhookEvent, type WebhookEventData, type WebhookEventEnvelope, type WebhookEventInfo, type WebhookEventOf, type WebhookEventType, type webhooks as WebhookSchemas, WebhookVerificationError, type WebhookVerificationFailure, type components, constructEvent, Funnelchat as default, isNumberQuotaError, isSendRuleError, type operations, type paths, routes, verify, webhookEvents };