@funnelchat-hq/sdk 0.2.1 → 0.2.2

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
@@ -93,7 +93,7 @@ interface paths {
93
93
  };
94
94
  /**
95
95
  * Listar difusiones
96
- * @description **Permiso requerido:** `conversations:read`
96
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
97
97
  */
98
98
  get: operations["broadcast.index"];
99
99
  put?: never;
@@ -115,7 +115,7 @@ interface paths {
115
115
  put?: never;
116
116
  /**
117
117
  * Buscar contactos para una difusión
118
- * @description **Permiso requerido:** `conversations:write`
118
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
119
119
  */
120
120
  post: operations["broadcast.contacts"];
121
121
  delete?: never;
@@ -135,7 +135,7 @@ interface paths {
135
135
  put?: never;
136
136
  /**
137
137
  * Contar contactos para una difusión
138
- * @description **Permiso requerido:** `conversations:write`
138
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
139
139
  */
140
140
  post: operations["broadcast.contactsCount"];
141
141
  delete?: never;
@@ -153,7 +153,7 @@ interface paths {
153
153
  };
154
154
  /**
155
155
  * Ver los tramos de costo
156
- * @description **Permiso requerido:** `conversations:read`
156
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
157
157
  */
158
158
  get: operations["broadcast.costTiers"];
159
159
  put?: never;
@@ -175,7 +175,7 @@ interface paths {
175
175
  put?: never;
176
176
  /**
177
177
  * Mover difusiones a una carpeta
178
- * @description **Permiso requerido:** `conversations:write`
178
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
179
179
  */
180
180
  post: operations["broadcast.moveToFolder"];
181
181
  delete?: never;
@@ -193,14 +193,14 @@ interface paths {
193
193
  };
194
194
  /**
195
195
  * Ver una difusión
196
- * @description **Permiso requerido:** `conversations:read`
196
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
197
197
  */
198
198
  get: operations["broadcast.show"];
199
199
  put?: never;
200
200
  post?: never;
201
201
  /**
202
202
  * Eliminar una difusión
203
- * @description **Permiso requerido:** `conversations:write`
203
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
204
204
  */
205
205
  delete: operations["broadcast.destroy"];
206
206
  options?: never;
@@ -217,7 +217,7 @@ interface paths {
217
217
  };
218
218
  /**
219
219
  * Ver las estadísticas de una difusión
220
- * @description **Permiso requerido:** `conversations:read`
220
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
221
221
  */
222
222
  get: operations["broadcast.statistics"];
223
223
  put?: never;
@@ -237,7 +237,7 @@ interface paths {
237
237
  };
238
238
  /**
239
239
  * Ver el costo de una difusión
240
- * @description **Permiso requerido:** `conversations:read`
240
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
241
241
  */
242
242
  get: operations["broadcast.cost"];
243
243
  put?: never;
@@ -257,7 +257,7 @@ interface paths {
257
257
  };
258
258
  /**
259
259
  * Listar los contactos de una difusión
260
- * @description **Permiso requerido:** `conversations:read`
260
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
261
261
  */
262
262
  get: operations["broadcast.broadcastContacts"];
263
263
  put?: never;
@@ -279,7 +279,7 @@ interface paths {
279
279
  put?: never;
280
280
  /**
281
281
  * Cancelar una difusión
282
- * @description **Permiso requerido:** `conversations:write`
282
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
283
283
  */
284
284
  post: operations["broadcast.cancel"];
285
285
  delete?: never;
@@ -297,7 +297,7 @@ interface paths {
297
297
  };
298
298
  /**
299
299
  * Listar los mensajes de una difusión
300
- * @description **Permiso requerido:** `conversations:read`
300
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
301
301
  */
302
302
  get: operations["broadcast.broadcastMessages"];
303
303
  put?: never;
@@ -317,13 +317,13 @@ interface paths {
317
317
  };
318
318
  /**
319
319
  * Listar carpetas de difusiones
320
- * @description **Permiso requerido:** `conversations:read`
320
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
321
321
  */
322
322
  get: operations["broadcastFolder.index"];
323
323
  put?: never;
324
324
  /**
325
325
  * Crear una carpeta de difusiones
326
- * @description **Permiso requerido:** `conversations:write`
326
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
327
327
  */
328
328
  post: operations["broadcastFolder.store"];
329
329
  delete?: never;
@@ -342,13 +342,13 @@ interface paths {
342
342
  get?: never;
343
343
  /**
344
344
  * Actualizar una carpeta de difusiones
345
- * @description **Permiso requerido:** `conversations:write`
345
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
346
346
  */
347
347
  put: operations["broadcastFolder.update"];
348
348
  post?: never;
349
349
  /**
350
350
  * Eliminar una carpeta de difusiones
351
- * @description **Permiso requerido:** `conversations:write`
351
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
352
352
  */
353
353
  delete: operations["broadcastFolder.destroy"];
354
354
  options?: never;
@@ -365,13 +365,13 @@ interface paths {
365
365
  };
366
366
  /**
367
367
  * Listar contactos
368
- * @description **Permiso requerido:** `conversations:read`
368
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
369
369
  */
370
370
  get: operations["contact.index"];
371
371
  put?: never;
372
372
  /**
373
373
  * Crear un contacto
374
- * @description **Permiso requerido:** `conversations:write`
374
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
375
375
  */
376
376
  post: operations["contact.store"];
377
377
  delete?: never;
@@ -391,7 +391,7 @@ interface paths {
391
391
  put?: never;
392
392
  /**
393
393
  * Crear o actualizar un contacto
394
- * @description **Permiso requerido:** `conversations:write`
394
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
395
395
  */
396
396
  post: operations["contact.updateOrCreate"];
397
397
  delete?: never;
@@ -411,7 +411,7 @@ interface paths {
411
411
  put?: never;
412
412
  /**
413
413
  * Asignar un campo personalizado a contactos
414
- * @description **Permiso requerido:** `conversations:write`
414
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
415
415
  */
416
416
  post: operations["contact.attachCustomField"];
417
417
  delete?: never;
@@ -431,7 +431,7 @@ interface paths {
431
431
  put?: never;
432
432
  /**
433
433
  * Quitar un campo personalizado de contactos
434
- * @description **Permiso requerido:** `conversations:write`
434
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
435
435
  */
436
436
  post: operations["contact.detachCustomField"];
437
437
  delete?: never;
@@ -449,12 +449,12 @@ interface paths {
449
449
  };
450
450
  /**
451
451
  * Ver un contacto
452
- * @description **Permiso requerido:** `conversations:read`
452
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
453
453
  */
454
454
  get: operations["contact.show"];
455
455
  /**
456
456
  * Actualizar un contacto
457
- * @description **Permiso requerido:** `conversations:write`
457
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
458
458
  */
459
459
  put: operations["contact.update"];
460
460
  post?: never;
@@ -473,7 +473,7 @@ interface paths {
473
473
  };
474
474
  /**
475
475
  * Listar las etiquetas de un contacto
476
- * @description **Permiso requerido:** `conversations:read`
476
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
477
477
  */
478
478
  get: operations["contact.tags"];
479
479
  put?: never;
@@ -493,7 +493,7 @@ interface paths {
493
493
  };
494
494
  /**
495
495
  * Listar los campos personalizados de un contacto
496
- * @description **Permiso requerido:** `conversations:read`
496
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
497
497
  */
498
498
  get: operations["contact.customFields"];
499
499
  put?: never;
@@ -513,7 +513,7 @@ interface paths {
513
513
  };
514
514
  /**
515
515
  * Ver la ventana de 24 horas de un contacto
516
- * @description **Permiso requerido:** `conversations:read`
516
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
517
517
  */
518
518
  get: operations["contact.metaWindow"];
519
519
  put?: never;
@@ -533,7 +533,7 @@ interface paths {
533
533
  };
534
534
  /**
535
535
  * Listar los contactos de un número
536
- * @description **Permiso requerido:** `conversations:read`
536
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
537
537
  */
538
538
  get: operations["contact.contactsByDevice"];
539
539
  put?: never;
@@ -555,7 +555,7 @@ interface paths {
555
555
  put?: never;
556
556
  /**
557
557
  * Eliminar contactos
558
- * @description **Permiso requerido:** `conversations:write`
558
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
559
559
  */
560
560
  post: operations["contact.destroy"];
561
561
  delete?: never;
@@ -575,7 +575,7 @@ interface paths {
575
575
  put?: never;
576
576
  /**
577
577
  * Pausar un contacto
578
- * @description **Permiso requerido:** `conversations:write`
578
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
579
579
  */
580
580
  post: operations["contactAutomation.pause"];
581
581
  delete?: never;
@@ -593,7 +593,7 @@ interface paths {
593
593
  };
594
594
  /**
595
595
  * Listar los flujos de un contacto
596
- * @description **Permiso requerido:** `conversations:read`
596
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
597
597
  */
598
598
  get: operations["contactAutomation.flows"];
599
599
  put?: never;
@@ -615,9 +615,9 @@ interface paths {
615
615
  put?: never;
616
616
  /**
617
617
  * Enviar una tarjeta de contacto
618
- * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso `conversations:send` y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
618
+ * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso **Contactos y conversaciones → Enviar** y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
619
619
  *
620
- * **Permiso requerido:** `conversations:send`
620
+ * **Permiso requerido:** **Contactos y conversaciones → Enviar**
621
621
  */
622
622
  post: operations["contactCard.store"];
623
623
  delete?: never;
@@ -635,7 +635,7 @@ interface paths {
635
635
  };
636
636
  /**
637
637
  * Ver el lead score de un contacto
638
- * @description **Permiso requerido:** `conversations:read`
638
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
639
639
  */
640
640
  get: operations["contactLeadScore.show"];
641
641
  put?: never;
@@ -655,13 +655,13 @@ interface paths {
655
655
  };
656
656
  /**
657
657
  * Listar las notas de un contacto
658
- * @description **Permiso requerido:** `conversations:read`
658
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
659
659
  */
660
660
  get: operations["contactNote.index"];
661
661
  put?: never;
662
662
  /**
663
663
  * Agregar una nota a un contacto
664
- * @description **Permiso requerido:** `conversations:write`
664
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
665
665
  */
666
666
  post: operations["contactNote.store"];
667
667
  delete?: never;
@@ -682,7 +682,7 @@ interface paths {
682
682
  post?: never;
683
683
  /**
684
684
  * Eliminar una nota
685
- * @description **Permiso requerido:** `conversations:write`
685
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
686
686
  */
687
687
  delete: operations["contactNote.destroy"];
688
688
  options?: never;
@@ -699,7 +699,7 @@ interface paths {
699
699
  };
700
700
  /**
701
701
  * Listar conversaciones
702
- * @description **Permiso requerido:** `conversations:read`
702
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
703
703
  */
704
704
  get: operations["conversation.index"];
705
705
  put?: never;
@@ -719,7 +719,7 @@ interface paths {
719
719
  };
720
720
  /**
721
721
  * Contar conversaciones sin leer
722
- * @description **Permiso requerido:** `conversations:read`
722
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
723
723
  */
724
724
  get: operations["conversation.countUnread"];
725
725
  put?: never;
@@ -739,7 +739,7 @@ interface paths {
739
739
  };
740
740
  /**
741
741
  * Contar conversaciones abiertas
742
- * @description **Permiso requerido:** `conversations:read`
742
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
743
743
  */
744
744
  get: operations["conversation.countOpen"];
745
745
  put?: never;
@@ -759,7 +759,7 @@ interface paths {
759
759
  };
760
760
  /**
761
761
  * Contar conversaciones cerradas
762
- * @description **Permiso requerido:** `conversations:read`
762
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
763
763
  */
764
764
  get: operations["conversation.countClosed"];
765
765
  put?: never;
@@ -779,7 +779,7 @@ interface paths {
779
779
  };
780
780
  /**
781
781
  * Contar todas las conversaciones
782
- * @description **Permiso requerido:** `conversations:read`
782
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
783
783
  */
784
784
  get: operations["conversation.countAll"];
785
785
  put?: never;
@@ -801,7 +801,7 @@ interface paths {
801
801
  put?: never;
802
802
  /**
803
803
  * Marcar todas como leídas
804
- * @description **Permiso requerido:** `conversations:write`
804
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
805
805
  */
806
806
  post: operations["conversation.markAllAsRead"];
807
807
  delete?: never;
@@ -821,7 +821,7 @@ interface paths {
821
821
  put?: never;
822
822
  /**
823
823
  * Marcar todas como no leídas
824
- * @description **Permiso requerido:** `conversations:write`
824
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
825
825
  */
826
826
  post: operations["conversation.markAllAsUnread"];
827
827
  delete?: never;
@@ -840,7 +840,7 @@ interface paths {
840
840
  get?: never;
841
841
  /**
842
842
  * Actualizar la conversación de un contacto
843
- * @description **Permiso requerido:** `conversations:write`
843
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
844
844
  */
845
845
  put: operations["conversation.update"];
846
846
  post?: never;
@@ -861,9 +861,9 @@ interface paths {
861
861
  put?: never;
862
862
  /**
863
863
  * Enviar un mensaje a un contacto
864
- * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso `conversations:send` y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
864
+ * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso **Contactos y conversaciones → Enviar** y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
865
865
  *
866
- * **Permiso requerido:** `conversations:send`
866
+ * **Permiso requerido:** **Contactos y conversaciones → Enviar**
867
867
  */
868
868
  post: operations["conversation.sendMessage"];
869
869
  delete?: never;
@@ -881,7 +881,7 @@ interface paths {
881
881
  };
882
882
  /**
883
883
  * Listar los mensajes de un contacto
884
- * @description **Permiso requerido:** `conversations:read`
884
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
885
885
  */
886
886
  get: operations["conversation.getLatestMessages"];
887
887
  put?: never;
@@ -901,13 +901,13 @@ interface paths {
901
901
  };
902
902
  /**
903
903
  * Listar campos personalizados
904
- * @description **Permiso requerido:** `conversations:read`
904
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
905
905
  */
906
906
  get: operations["customField.index"];
907
907
  put?: never;
908
908
  /**
909
909
  * Crear un campo personalizado
910
- * @description **Permiso requerido:** `conversations:write`
910
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
911
911
  */
912
912
  post: operations["customField.store"];
913
913
  delete?: never;
@@ -927,7 +927,7 @@ interface paths {
927
927
  put?: never;
928
928
  /**
929
929
  * Eliminar campos personalizados
930
- * @description **Permiso requerido:** `conversations:write`
930
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
931
931
  */
932
932
  post: operations["customField.destroy"];
933
933
  delete?: never;
@@ -945,12 +945,12 @@ interface paths {
945
945
  };
946
946
  /**
947
947
  * Ver un campo personalizado
948
- * @description **Permiso requerido:** `conversations:read`
948
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
949
949
  */
950
950
  get: operations["customField.show"];
951
951
  /**
952
952
  * Actualizar un campo personalizado
953
- * @description **Permiso requerido:** `conversations:write`
953
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
954
954
  */
955
955
  put: operations["customField.update"];
956
956
  post?: never;
@@ -969,7 +969,7 @@ interface paths {
969
969
  };
970
970
  /**
971
971
  * Listar los flujos en curso de un contacto
972
- * @description **Permiso requerido:** `conversations:read`
972
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
973
973
  */
974
974
  get: operations["flow.contactFlowHistory"];
975
975
  put?: never;
@@ -990,7 +990,7 @@ interface paths {
990
990
  get?: never;
991
991
  /**
992
992
  * Cancelar un flujo en curso
993
- * @description **Permiso requerido:** `conversations:write`
993
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
994
994
  */
995
995
  put: operations["flow.cancelContactFlow"];
996
996
  post?: never;
@@ -1009,7 +1009,7 @@ interface paths {
1009
1009
  };
1010
1010
  /**
1011
1011
  * Listar flujos
1012
- * @description **Permiso requerido:** `conversations:read`
1012
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1013
1013
  */
1014
1014
  get: operations["flow.index"];
1015
1015
  put?: never;
@@ -1029,7 +1029,7 @@ interface paths {
1029
1029
  };
1030
1030
  /**
1031
1031
  * Ver un flujo
1032
- * @description **Permiso requerido:** `conversations:read`
1032
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1033
1033
  */
1034
1034
  get: operations["flow.show"];
1035
1035
  put?: never;
@@ -1049,7 +1049,7 @@ interface paths {
1049
1049
  };
1050
1050
  /**
1051
1051
  * Listar los nodos de un flujo
1052
- * @description **Permiso requerido:** `conversations:read`
1052
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1053
1053
  */
1054
1054
  get: operations["flow.nodes"];
1055
1055
  put?: never;
@@ -1069,7 +1069,7 @@ interface paths {
1069
1069
  };
1070
1070
  /**
1071
1071
  * Contar los contactos activos de un flujo
1072
- * @description **Permiso requerido:** `conversations:read`
1072
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1073
1073
  */
1074
1074
  get: operations["flow.activeContacts"];
1075
1075
  put?: never;
@@ -1089,7 +1089,7 @@ interface paths {
1089
1089
  };
1090
1090
  /**
1091
1091
  * Listar los contactos activos de un flujo
1092
- * @description **Permiso requerido:** `conversations:read`
1092
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1093
1093
  */
1094
1094
  get: operations["flow.activeContactsList"];
1095
1095
  put?: never;
@@ -1109,7 +1109,7 @@ interface paths {
1109
1109
  };
1110
1110
  /**
1111
1111
  * Listar los contactos de un flujo
1112
- * @description **Permiso requerido:** `conversations:read`
1112
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1113
1113
  */
1114
1114
  get: operations["flow.flowContactsList"];
1115
1115
  put?: never;
@@ -1129,13 +1129,13 @@ interface paths {
1129
1129
  };
1130
1130
  /**
1131
1131
  * Listar carpetas
1132
- * @description **Permiso requerido:** `conversations:read`
1132
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1133
1133
  */
1134
1134
  get: operations["folder.index"];
1135
1135
  put?: never;
1136
1136
  /**
1137
1137
  * Crear una carpeta
1138
- * @description **Permiso requerido:** `conversations:write`
1138
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1139
1139
  */
1140
1140
  post: operations["folder.store"];
1141
1141
  delete?: never;
@@ -1153,18 +1153,18 @@ interface paths {
1153
1153
  };
1154
1154
  /**
1155
1155
  * Ver una carpeta
1156
- * @description **Permiso requerido:** `conversations:read`
1156
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1157
1157
  */
1158
1158
  get: operations["folder.show"];
1159
1159
  /**
1160
1160
  * Actualizar una carpeta
1161
- * @description **Permiso requerido:** `conversations:write`
1161
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1162
1162
  */
1163
1163
  put: operations["folder.update"];
1164
1164
  post?: never;
1165
1165
  /**
1166
1166
  * Eliminar una carpeta
1167
- * @description **Permiso requerido:** `conversations:write`
1167
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1168
1168
  */
1169
1169
  delete: operations["folder.destroy"];
1170
1170
  options?: never;
@@ -1183,9 +1183,9 @@ interface paths {
1183
1183
  put?: never;
1184
1184
  /**
1185
1185
  * Reenviar un mensaje
1186
- * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso `conversations:send` y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
1186
+ * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso **Contactos y conversaciones → Enviar** y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
1187
1187
  *
1188
- * **Permiso requerido:** `conversations:send`
1188
+ * **Permiso requerido:** **Contactos y conversaciones → Enviar**
1189
1189
  */
1190
1190
  post: operations["forwardMessage.store"];
1191
1191
  delete?: never;
@@ -1205,9 +1205,9 @@ interface paths {
1205
1205
  put?: never;
1206
1206
  /**
1207
1207
  * Enviar una encuesta
1208
- * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso `conversations:send` y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
1208
+ * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso **Contactos y conversaciones → Enviar** y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
1209
1209
  *
1210
- * **Permiso requerido:** `conversations:send`
1210
+ * **Permiso requerido:** **Contactos y conversaciones → Enviar**
1211
1211
  */
1212
1212
  post: operations["interactiveMessage.storePoll"];
1213
1213
  delete?: never;
@@ -1227,9 +1227,9 @@ interface paths {
1227
1227
  put?: never;
1228
1228
  /**
1229
1229
  * Enviar una invitación a un evento
1230
- * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso `conversations:send` y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
1230
+ * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso **Contactos y conversaciones → Enviar** y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
1231
1231
  *
1232
- * **Permiso requerido:** `conversations:send`
1232
+ * **Permiso requerido:** **Contactos y conversaciones → Enviar**
1233
1233
  */
1234
1234
  post: operations["interactiveMessage.storeEvent"];
1235
1235
  delete?: never;
@@ -1247,13 +1247,13 @@ interface paths {
1247
1247
  };
1248
1248
  /**
1249
1249
  * Listar tableros
1250
- * @description **Permiso requerido:** `conversations:read`
1250
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1251
1251
  */
1252
1252
  get: operations["kanbanSetting.index"];
1253
1253
  put?: never;
1254
1254
  /**
1255
1255
  * Crear un tablero
1256
- * @description **Permiso requerido:** `conversations:write`
1256
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1257
1257
  */
1258
1258
  post: operations["kanbanSetting.store"];
1259
1259
  delete?: never;
@@ -1271,18 +1271,18 @@ interface paths {
1271
1271
  };
1272
1272
  /**
1273
1273
  * Ver un tablero
1274
- * @description **Permiso requerido:** `conversations:read`
1274
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1275
1275
  */
1276
1276
  get: operations["kanbanSetting.show"];
1277
1277
  /**
1278
1278
  * Actualizar un tablero
1279
- * @description **Permiso requerido:** `conversations:write`
1279
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1280
1280
  */
1281
1281
  put: operations["kanbanSetting.update"];
1282
1282
  post?: never;
1283
1283
  /**
1284
1284
  * Eliminar un tablero
1285
- * @description **Permiso requerido:** `conversations:write`
1285
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1286
1286
  */
1287
1287
  delete: operations["kanbanSetting.destroy"];
1288
1288
  options?: never;
@@ -1299,7 +1299,7 @@ interface paths {
1299
1299
  };
1300
1300
  /**
1301
1301
  * Ver los miembros de un tablero
1302
- * @description **Permiso requerido:** `conversations:read`
1302
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1303
1303
  */
1304
1304
  get: operations["kanbanSetting.members"];
1305
1305
  put?: never;
@@ -1319,7 +1319,7 @@ interface paths {
1319
1319
  };
1320
1320
  /**
1321
1321
  * Ver las etapas de un contacto en los tableros
1322
- * @description **Permiso requerido:** `conversations:read`
1322
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1323
1323
  */
1324
1324
  get: operations["kanbanStage.contactStages"];
1325
1325
  put?: never;
@@ -1341,7 +1341,7 @@ interface paths {
1341
1341
  put?: never;
1342
1342
  /**
1343
1343
  * Mover un contacto de etapa
1344
- * @description **Permiso requerido:** `conversations:write`
1344
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1345
1345
  */
1346
1346
  post: operations["kanbanStage.moveContact"];
1347
1347
  delete?: never;
@@ -1361,7 +1361,7 @@ interface paths {
1361
1361
  put?: never;
1362
1362
  /**
1363
1363
  * Mover contactos de etapa en bloque
1364
- * @description **Permiso requerido:** `conversations:write`
1364
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1365
1365
  */
1366
1366
  post: operations["kanbanStage.bulkMove"];
1367
1367
  delete?: never;
@@ -1381,7 +1381,7 @@ interface paths {
1381
1381
  put?: never;
1382
1382
  /**
1383
1383
  * Sacar un contacto del tablero
1384
- * @description **Permiso requerido:** `conversations:write`
1384
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1385
1385
  */
1386
1386
  post: operations["kanbanStage.removeContact"];
1387
1387
  delete?: never;
@@ -1401,7 +1401,7 @@ interface paths {
1401
1401
  put?: never;
1402
1402
  /**
1403
1403
  * Sacar contactos del tablero en bloque
1404
- * @description **Permiso requerido:** `conversations:write`
1404
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1405
1405
  */
1406
1406
  post: operations["kanbanStage.bulkRemove"];
1407
1407
  delete?: never;
@@ -1421,7 +1421,7 @@ interface paths {
1421
1421
  put?: never;
1422
1422
  /**
1423
1423
  * Crear una etapa
1424
- * @description **Permiso requerido:** `conversations:write`
1424
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1425
1425
  */
1426
1426
  post: operations["kanbanStage.store"];
1427
1427
  delete?: never;
@@ -1441,7 +1441,7 @@ interface paths {
1441
1441
  put?: never;
1442
1442
  /**
1443
1443
  * Reordenar las etapas
1444
- * @description **Permiso requerido:** `conversations:write`
1444
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1445
1445
  */
1446
1446
  post: operations["kanbanStage.reorder"];
1447
1447
  delete?: never;
@@ -1460,13 +1460,13 @@ interface paths {
1460
1460
  get?: never;
1461
1461
  /**
1462
1462
  * Actualizar una etapa
1463
- * @description **Permiso requerido:** `conversations:write`
1463
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1464
1464
  */
1465
1465
  put: operations["kanbanStage.update"];
1466
1466
  post?: never;
1467
1467
  /**
1468
1468
  * Eliminar una etapa
1469
- * @description **Permiso requerido:** `conversations:write`
1469
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1470
1470
  */
1471
1471
  delete: operations["kanbanStage.destroy"];
1472
1472
  options?: never;
@@ -1483,7 +1483,7 @@ interface paths {
1483
1483
  };
1484
1484
  /**
1485
1485
  * Listar los contactos de una etapa
1486
- * @description **Permiso requerido:** `conversations:read`
1486
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1487
1487
  */
1488
1488
  get: operations["kanbanStage.contacts"];
1489
1489
  put?: never;
@@ -1503,7 +1503,7 @@ interface paths {
1503
1503
  };
1504
1504
  /**
1505
1505
  * Ver la distribución del lead score
1506
- * @description **Permiso requerido:** `conversations:read`
1506
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1507
1507
  */
1508
1508
  get: operations["leadScoreDistribution.show"];
1509
1509
  put?: never;
@@ -1525,7 +1525,7 @@ interface paths {
1525
1525
  put?: never;
1526
1526
  /**
1527
1527
  * Registrar un evento de lead score
1528
- * @description **Permiso requerido:** `conversations:write`
1528
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1529
1529
  */
1530
1530
  post: operations["leadScoreEventIngest.ingest"];
1531
1531
  delete?: never;
@@ -1543,12 +1543,12 @@ interface paths {
1543
1543
  };
1544
1544
  /**
1545
1545
  * Ver la configuración del lead score
1546
- * @description **Permiso requerido:** `conversations:read`
1546
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1547
1547
  */
1548
1548
  get: operations["leadScoreSettings.show"];
1549
1549
  /**
1550
1550
  * Actualizar la configuración del lead score
1551
- * @description **Permiso requerido:** `conversations:write`
1551
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1552
1552
  */
1553
1553
  put: operations["leadScoreSettings.update"];
1554
1554
  post?: never;
@@ -1569,7 +1569,7 @@ interface paths {
1569
1569
  put?: never;
1570
1570
  /**
1571
1571
  * Ajustar el lead score de un contacto
1572
- * @description **Permiso requerido:** `conversations:write`
1572
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1573
1573
  */
1574
1574
  post: operations["leadScoreSettings.adjust"];
1575
1575
  delete?: never;
@@ -1587,7 +1587,7 @@ interface paths {
1587
1587
  };
1588
1588
  /**
1589
1589
  * Ver el consumo de MACs
1590
- * @description **Permiso requerido:** `conversations:read`
1590
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1591
1591
  */
1592
1592
  get: operations["mac.status"];
1593
1593
  put?: never;
@@ -1607,7 +1607,7 @@ interface paths {
1607
1607
  };
1608
1608
  /**
1609
1609
  * Listar los contactos que cuentan como MAC
1610
- * @description **Permiso requerido:** `conversations:read`
1610
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1611
1611
  */
1612
1612
  get: operations["mac.contacts"];
1613
1613
  put?: never;
@@ -1627,7 +1627,7 @@ interface paths {
1627
1627
  };
1628
1628
  /**
1629
1629
  * Ver el historial de MACs
1630
- * @description **Permiso requerido:** `conversations:read`
1630
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1631
1631
  */
1632
1632
  get: operations["mac.contactsHistory"];
1633
1633
  put?: never;
@@ -1649,9 +1649,9 @@ interface paths {
1649
1649
  put?: never;
1650
1650
  /**
1651
1651
  * Enviar un mensaje
1652
- * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso `conversations:send` y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
1652
+ * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso **Contactos y conversaciones → Enviar** y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
1653
1653
  *
1654
- * **Permiso requerido:** `conversations:send`
1654
+ * **Permiso requerido:** **Contactos y conversaciones → Enviar**
1655
1655
  */
1656
1656
  post: operations["message.sendMessage"];
1657
1657
  delete?: never;
@@ -1670,17 +1670,17 @@ interface paths {
1670
1670
  get?: never;
1671
1671
  /**
1672
1672
  * Reaccionar a un mensaje
1673
- * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso `conversations:send` y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
1673
+ * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso **Contactos y conversaciones → Enviar** y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
1674
1674
  *
1675
- * **Permiso requerido:** `conversations:send`
1675
+ * **Permiso requerido:** **Contactos y conversaciones → Enviar**
1676
1676
  */
1677
1677
  put: operations["messageReaction.update"];
1678
1678
  post?: never;
1679
1679
  /**
1680
1680
  * Quitar una reacción
1681
- * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso `conversations:send` y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
1681
+ * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso **Contactos y conversaciones → Enviar** y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
1682
1682
  *
1683
- * **Permiso requerido:** `conversations:send`
1683
+ * **Permiso requerido:** **Contactos y conversaciones → Enviar**
1684
1684
  */
1685
1685
  delete: operations["messageReaction.destroy"];
1686
1686
  options?: never;
@@ -1697,13 +1697,13 @@ interface paths {
1697
1697
  };
1698
1698
  /**
1699
1699
  * Listar plantillas
1700
- * @description **Permiso requerido:** `conversations:read`
1700
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1701
1701
  */
1702
1702
  get: operations["messageTemplate.templates"];
1703
1703
  put?: never;
1704
1704
  /**
1705
1705
  * Crear una plantilla
1706
- * @description **Permiso requerido:** `conversations:write`
1706
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1707
1707
  */
1708
1708
  post: operations["messageTemplate.store"];
1709
1709
  delete?: never;
@@ -1721,12 +1721,12 @@ interface paths {
1721
1721
  };
1722
1722
  /**
1723
1723
  * Ver una plantilla
1724
- * @description **Permiso requerido:** `conversations:read`
1724
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1725
1725
  */
1726
1726
  get: operations["messageTemplate.template"];
1727
1727
  /**
1728
1728
  * Actualizar una plantilla
1729
- * @description **Permiso requerido:** `conversations:write`
1729
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1730
1730
  */
1731
1731
  put: operations["messageTemplate.update"];
1732
1732
  post?: never;
@@ -1745,7 +1745,7 @@ interface paths {
1745
1745
  };
1746
1746
  /**
1747
1747
  * Ver los botones de respuesta rápida de una plantilla
1748
- * @description **Permiso requerido:** `conversations:read`
1748
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1749
1749
  */
1750
1750
  get: operations["messageTemplate.quickReplyButtons"];
1751
1751
  put?: never;
@@ -1767,9 +1767,9 @@ interface paths {
1767
1767
  put?: never;
1768
1768
  /**
1769
1769
  * Enviar una plantilla
1770
- * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso `conversations:send` y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
1770
+ * @description > **Nota del portal (v0):** El envío con clave se abre con el permiso **Contactos y conversaciones → Enviar** y las reglas de WhatsApp (ventana de 24 horas y frenos contra spam): está en camino. Hasta que se habilite, esta ruta responde `403 route_not_available` a cualquier clave. (Q19; cierra D21)
1771
1771
  *
1772
- * **Permiso requerido:** `conversations:send`
1772
+ * **Permiso requerido:** **Contactos y conversaciones → Enviar**
1773
1773
  */
1774
1774
  post: operations["messageTemplate.send"];
1775
1775
  delete?: never;
@@ -1790,7 +1790,7 @@ interface paths {
1790
1790
  post?: never;
1791
1791
  /**
1792
1792
  * Eliminar una plantilla de un número
1793
- * @description **Permiso requerido:** `conversations:write`
1793
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1794
1794
  */
1795
1795
  delete: operations["messageTemplate.delete"];
1796
1796
  options?: never;
@@ -1807,7 +1807,7 @@ interface paths {
1807
1807
  };
1808
1808
  /**
1809
1809
  * Listar los productos de una plataforma de pagos
1810
- * @description **Permiso requerido:** `conversations:read`
1810
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1811
1811
  */
1812
1812
  get: operations["paymentProduct.index"];
1813
1813
  put?: never;
@@ -1827,13 +1827,13 @@ interface paths {
1827
1827
  };
1828
1828
  /**
1829
1829
  * Listar respuestas rápidas
1830
- * @description **Permiso requerido:** `conversations:read`
1830
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1831
1831
  */
1832
1832
  get: operations["quickReply.index"];
1833
1833
  put?: never;
1834
1834
  /**
1835
1835
  * Crear una respuesta rápida
1836
- * @description **Permiso requerido:** `conversations:write`
1836
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1837
1837
  */
1838
1838
  post: operations["quickReply.store"];
1839
1839
  delete?: never;
@@ -1851,18 +1851,18 @@ interface paths {
1851
1851
  };
1852
1852
  /**
1853
1853
  * Ver una respuesta rápida
1854
- * @description **Permiso requerido:** `conversations:read`
1854
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1855
1855
  */
1856
1856
  get: operations["quickReply.show"];
1857
1857
  /**
1858
1858
  * Actualizar una respuesta rápida
1859
- * @description **Permiso requerido:** `conversations:write`
1859
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1860
1860
  */
1861
1861
  put: operations["quickReply.update"];
1862
1862
  post?: never;
1863
1863
  /**
1864
1864
  * Eliminar una respuesta rápida
1865
- * @description **Permiso requerido:** `conversations:write`
1865
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1866
1866
  */
1867
1867
  delete: operations["quickReply.destroy"];
1868
1868
  options?: never;
@@ -1879,7 +1879,7 @@ interface paths {
1879
1879
  };
1880
1880
  /**
1881
1881
  * Ver las métricas de ventas
1882
- * @description **Permiso requerido:** `conversations:read`
1882
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1883
1883
  */
1884
1884
  get: operations["salesDashboard.metrics"];
1885
1885
  put?: never;
@@ -1899,7 +1899,7 @@ interface paths {
1899
1899
  };
1900
1900
  /**
1901
1901
  * Ver el embudo de ventas
1902
- * @description **Permiso requerido:** `conversations:read`
1902
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1903
1903
  */
1904
1904
  get: operations["salesDashboard.funnel"];
1905
1905
  put?: never;
@@ -1919,7 +1919,7 @@ interface paths {
1919
1919
  };
1920
1920
  /**
1921
1921
  * Ver las ventas por plataforma
1922
- * @description **Permiso requerido:** `conversations:read`
1922
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1923
1923
  */
1924
1924
  get: operations["salesDashboard.byPlatform"];
1925
1925
  put?: never;
@@ -1939,7 +1939,7 @@ interface paths {
1939
1939
  };
1940
1940
  /**
1941
1941
  * Listar ventas
1942
- * @description **Permiso requerido:** `conversations:read`
1942
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1943
1943
  */
1944
1944
  get: operations["salesDashboard.index"];
1945
1945
  put?: never;
@@ -1959,13 +1959,13 @@ interface paths {
1959
1959
  };
1960
1960
  /**
1961
1961
  * Listar etiquetas
1962
- * @description **Permiso requerido:** `conversations:read`
1962
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1963
1963
  */
1964
1964
  get: operations["tag.index"];
1965
1965
  put?: never;
1966
1966
  /**
1967
1967
  * Crear una etiqueta
1968
- * @description **Permiso requerido:** `conversations:write`
1968
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1969
1969
  */
1970
1970
  post: operations["tag.store"];
1971
1971
  delete?: never;
@@ -1983,12 +1983,12 @@ interface paths {
1983
1983
  };
1984
1984
  /**
1985
1985
  * Ver una etiqueta
1986
- * @description **Permiso requerido:** `conversations:read`
1986
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
1987
1987
  */
1988
1988
  get: operations["tag.show"];
1989
1989
  /**
1990
1990
  * Actualizar una etiqueta
1991
- * @description **Permiso requerido:** `conversations:write`
1991
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
1992
1992
  */
1993
1993
  put: operations["tag.update"];
1994
1994
  post?: never;
@@ -2007,7 +2007,7 @@ interface paths {
2007
2007
  };
2008
2008
  /**
2009
2009
  * Listar los contactos con una etiqueta
2010
- * @description **Permiso requerido:** `conversations:read`
2010
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
2011
2011
  */
2012
2012
  get: operations["tag.contacts"];
2013
2013
  put?: never;
@@ -2029,7 +2029,7 @@ interface paths {
2029
2029
  put?: never;
2030
2030
  /**
2031
2031
  * Eliminar etiquetas
2032
- * @description **Permiso requerido:** `conversations:write`
2032
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
2033
2033
  */
2034
2034
  post: operations["tag.destroy"];
2035
2035
  delete?: never;
@@ -2047,13 +2047,13 @@ interface paths {
2047
2047
  };
2048
2048
  /**
2049
2049
  * Listar tickets
2050
- * @description **Permiso requerido:** `conversations:read`
2050
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
2051
2051
  */
2052
2052
  get: operations["ticket.index"];
2053
2053
  put?: never;
2054
2054
  /**
2055
2055
  * Crear un ticket
2056
- * @description **Permiso requerido:** `conversations:write`
2056
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
2057
2057
  */
2058
2058
  post: operations["ticket.store"];
2059
2059
  delete?: never;
@@ -2071,12 +2071,12 @@ interface paths {
2071
2071
  };
2072
2072
  /**
2073
2073
  * Ver un ticket
2074
- * @description **Permiso requerido:** `conversations:read`
2074
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
2075
2075
  */
2076
2076
  get: operations["ticket.show"];
2077
2077
  /**
2078
2078
  * Actualizar un ticket
2079
- * @description **Permiso requerido:** `conversations:write`
2079
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
2080
2080
  */
2081
2081
  put: operations["ticket.update"];
2082
2082
  post?: never;
@@ -2097,7 +2097,7 @@ interface paths {
2097
2097
  put?: never;
2098
2098
  /**
2099
2099
  * Asignar tickets
2100
- * @description **Permiso requerido:** `conversations:write`
2100
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
2101
2101
  */
2102
2102
  post: operations["ticket.assignTicketToUser"];
2103
2103
  delete?: never;
@@ -2117,7 +2117,7 @@ interface paths {
2117
2117
  put?: never;
2118
2118
  /**
2119
2119
  * Cerrar un ticket
2120
- * @description **Permiso requerido:** `conversations:write`
2120
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
2121
2121
  */
2122
2122
  post: operations["ticket.closeTicket"];
2123
2123
  delete?: never;
@@ -2137,7 +2137,7 @@ interface paths {
2137
2137
  put?: never;
2138
2138
  /**
2139
2139
  * Reabrir un ticket
2140
- * @description **Permiso requerido:** `conversations:write`
2140
+ * @description **Permiso requerido:** **Contactos y conversaciones → Editar**
2141
2141
  */
2142
2142
  post: operations["ticket.reOpenTicket"];
2143
2143
  delete?: never;
@@ -2155,7 +2155,7 @@ interface paths {
2155
2155
  };
2156
2156
  /**
2157
2157
  * Ver un agente
2158
- * @description **Permiso requerido:** `conversations:read`
2158
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
2159
2159
  */
2160
2160
  get: operations["user.show"];
2161
2161
  put?: never;
@@ -2175,7 +2175,7 @@ interface paths {
2175
2175
  };
2176
2176
  /**
2177
2177
  * Listar agentes
2178
- * @description **Permiso requerido:** `conversations:read`
2178
+ * @description **Permiso requerido:** **Contactos y conversaciones → Ver**
2179
2179
  */
2180
2180
  get: operations["user.index"];
2181
2181
  put?: never;
@@ -2195,7 +2195,7 @@ interface paths {
2195
2195
  };
2196
2196
  /**
2197
2197
  * Listar campañas
2198
- * @description **Permiso requerido:** `communities:read` (Leer)
2198
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2199
2199
  *
2200
2200
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `perPage` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`). Orden: `orderBy` acepta `created_at`, `id`, `name`, `updated_at`; dirección `orderByMethod`: `asc` o `desc`. Otro valor responde `422`.
2201
2201
  */
@@ -2217,7 +2217,7 @@ interface paths {
2217
2217
  };
2218
2218
  /**
2219
2219
  * Ver una campaña
2220
- * @description **Permiso requerido:** `communities:read` (Leer)
2220
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2221
2221
  */
2222
2222
  get: operations["campaign.show"];
2223
2223
  put?: never;
@@ -2237,7 +2237,7 @@ interface paths {
2237
2237
  };
2238
2238
  /**
2239
2239
  * Ver las condicionales de una campaña
2240
- * @description **Permiso requerido:** `communities:read` (Leer)
2240
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2241
2241
  */
2242
2242
  get: operations["campaignConditional.index"];
2243
2243
  put?: never;
@@ -2257,7 +2257,7 @@ interface paths {
2257
2257
  };
2258
2258
  /**
2259
2259
  * Listar los grupos que se pueden sumar a una campaña
2260
- * @description **Permiso requerido:** `communities:read` (Leer)
2260
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2261
2261
  *
2262
2262
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `pageSize` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`).
2263
2263
  */
@@ -2279,7 +2279,7 @@ interface paths {
2279
2279
  };
2280
2280
  /**
2281
2281
  * Listar los grupos de una campaña
2282
- * @description **Permiso requerido:** `communities:read` (Leer)
2282
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2283
2283
  *
2284
2284
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `perPage` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`). Orden: `orderBy` acepta `id`, `name`, `created_at`, `updated_at`; dirección `orderByMethod`: `asc` o `desc`. Otro valor responde `422`.
2285
2285
  */
@@ -2301,7 +2301,7 @@ interface paths {
2301
2301
  };
2302
2302
  /**
2303
2303
  * Listar los pipelines de una campaña
2304
- * @description **Permiso requerido:** `communities:read` (Leer)
2304
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2305
2305
  *
2306
2306
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `per_page` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`). Orden: `orderBy` acepta `id`, `name`, `group_index`, `created_at`, `updated_at`; dirección `orderByMethod`: `asc` o `desc`. Otro valor responde `422`.
2307
2307
  */
@@ -2323,7 +2323,7 @@ interface paths {
2323
2323
  };
2324
2324
  /**
2325
2325
  * Ver un pipeline
2326
- * @description **Permiso requerido:** `communities:read` (Leer)
2326
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2327
2327
  */
2328
2328
  get: operations["campaign.showPipeline"];
2329
2329
  put?: never;
@@ -2343,7 +2343,7 @@ interface paths {
2343
2343
  };
2344
2344
  /**
2345
2345
  * Ver la configuración de los planes de operación
2346
- * @description **Permiso requerido:** `communities:read` (Leer)
2346
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2347
2347
  */
2348
2348
  get: operations["operationPlan.config"];
2349
2349
  put?: never;
@@ -2363,7 +2363,7 @@ interface paths {
2363
2363
  };
2364
2364
  /**
2365
2365
  * Listar los planes de operación de una campaña
2366
- * @description **Permiso requerido:** `communities:read` (Leer)
2366
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2367
2367
  *
2368
2368
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `per_page` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`).
2369
2369
  */
@@ -2385,7 +2385,7 @@ interface paths {
2385
2385
  };
2386
2386
  /**
2387
2387
  * Ver un plan de operación
2388
- * @description **Permiso requerido:** `communities:read` (Leer)
2388
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2389
2389
  */
2390
2390
  get: operations["operationPlan.show"];
2391
2391
  put?: never;
@@ -2405,7 +2405,7 @@ interface paths {
2405
2405
  };
2406
2406
  /**
2407
2407
  * Listar las acciones de sesión de una campaña
2408
- * @description **Permiso requerido:** `communities:read` (Leer)
2408
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2409
2409
  *
2410
2410
  * **Con API key:** página fija de 15 elementos; se recorre con `page`.
2411
2411
  */
@@ -2427,7 +2427,7 @@ interface paths {
2427
2427
  };
2428
2428
  /**
2429
2429
  * Listar los grupos alcanzados por una acción
2430
- * @description **Permiso requerido:** `communities:read` (Leer)
2430
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2431
2431
  *
2432
2432
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `perPage` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`). Orden: `orderBy` acepta `name`, `status`, `created_at`, `updated_at`; dirección `orderByMethod`: `asc` o `desc`. Otro valor responde `422`.
2433
2433
  */
@@ -2449,7 +2449,7 @@ interface paths {
2449
2449
  };
2450
2450
  /**
2451
2451
  * Listar grupos
2452
- * @description **Permiso requerido:** `communities:read` (Leer)
2452
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2453
2453
  *
2454
2454
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `perPage` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`). Orden: `orderBy` acepta `created_at`, `id`, `name`, `updated_at`; dirección `orderByMethod`: `asc` o `desc`. Otro valor responde `422`.
2455
2455
  */
@@ -2471,7 +2471,7 @@ interface paths {
2471
2471
  };
2472
2472
  /**
2473
2473
  * Listar los grupos que administra un número
2474
- * @description **Permiso requerido:** `communities:read` (Leer)
2474
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2475
2475
  *
2476
2476
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `pageSize` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`).
2477
2477
  */
@@ -2493,7 +2493,7 @@ interface paths {
2493
2493
  };
2494
2494
  /**
2495
2495
  * Listar los grupos de anuncios de un número
2496
- * @description **Permiso requerido:** `communities:read` (Leer)
2496
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2497
2497
  *
2498
2498
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `pageSize` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`).
2499
2499
  */
@@ -2515,7 +2515,7 @@ interface paths {
2515
2515
  };
2516
2516
  /**
2517
2517
  * Listar los canales de un número
2518
- * @description **Permiso requerido:** `communities:read` (Leer)
2518
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2519
2519
  *
2520
2520
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `pageSize` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`).
2521
2521
  */
@@ -2537,7 +2537,7 @@ interface paths {
2537
2537
  };
2538
2538
  /**
2539
2539
  * Ver los datos actuales de un grupo en WhatsApp
2540
- * @description **Permiso requerido:** `communities:read` (Leer)
2540
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2541
2541
  */
2542
2542
  get: operations["groupMetadata.show"];
2543
2543
  put?: never;
@@ -2557,7 +2557,7 @@ interface paths {
2557
2557
  };
2558
2558
  /**
2559
2559
  * Ver un grupo
2560
- * @description **Permiso requerido:** `communities:read` (Leer)
2560
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2561
2561
  */
2562
2562
  get: operations["group.show"];
2563
2563
  put?: never;
@@ -2577,7 +2577,7 @@ interface paths {
2577
2577
  };
2578
2578
  /**
2579
2579
  * Listar las acciones de sesión sobre un grupo
2580
- * @description **Permiso requerido:** `communities:read` (Leer)
2580
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2581
2581
  *
2582
2582
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `perPage` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`). Orden: `orderBy` acepta `status`, `created_at`, `updated_at`, `completed_at`; dirección `orderByMethod`: `asc` o `desc`. Otro valor responde `422`.
2583
2583
  */
@@ -2599,7 +2599,7 @@ interface paths {
2599
2599
  };
2600
2600
  /**
2601
2601
  * Listar los mensajes enviados a un grupo
2602
- * @description **Permiso requerido:** `communities:read` (Leer)
2602
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2603
2603
  *
2604
2604
  * **Con API key:** página fija de 3 elementos; se recorre con `page`.
2605
2605
  */
@@ -2621,7 +2621,7 @@ interface paths {
2621
2621
  };
2622
2622
  /**
2623
2623
  * Listar los envíos programados que incluyen un grupo
2624
- * @description **Permiso requerido:** `communities:read` (Leer)
2624
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2625
2625
  *
2626
2626
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `perPage` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`). Orden: `orderBy` acepta `id`, `name`, `created_at`, `updated_at`; dirección `orderByMethod`: `asc` o `desc`. Otro valor responde `422`.
2627
2627
  */
@@ -2643,7 +2643,7 @@ interface paths {
2643
2643
  };
2644
2644
  /**
2645
2645
  * Listar los participantes de una campaña
2646
- * @description **Permiso requerido:** `communities:read` (Leer)
2646
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2647
2647
  *
2648
2648
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `perPage` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`). Orden: `orderBy` acepta `updated_at`, `id`, `created_at`; dirección `orderByMethod`: `asc` o `desc`. Otro valor responde `422`.
2649
2649
  */
@@ -2665,7 +2665,7 @@ interface paths {
2665
2665
  };
2666
2666
  /**
2667
2667
  * Listar los participantes con su grupo actual
2668
- * @description **Permiso requerido:** `communities:read` (Leer)
2668
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2669
2669
  *
2670
2670
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `perPage` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`). Orden: `orderBy` acepta `joined_at`, `left_at`; dirección `orderByMethod`: `asc` o `desc`. Otro valor responde `422`.
2671
2671
  */
@@ -2687,7 +2687,7 @@ interface paths {
2687
2687
  };
2688
2688
  /**
2689
2689
  * Listar entradas y salidas de una campaña
2690
- * @description **Permiso requerido:** `communities:read` (Leer)
2690
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2691
2691
  *
2692
2692
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `perPage` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`).
2693
2693
  */
@@ -2709,7 +2709,7 @@ interface paths {
2709
2709
  };
2710
2710
  /**
2711
2711
  * Listar los participantes de un grupo
2712
- * @description **Permiso requerido:** `communities:read` (Leer)
2712
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2713
2713
  *
2714
2714
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `perPage` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`). Orden: `orderBy` acepta `created_at`, `id`, `updated_at`; dirección `orderDirection`: `asc` o `desc`. Otro valor responde `422`.
2715
2715
  */
@@ -2731,7 +2731,7 @@ interface paths {
2731
2731
  };
2732
2732
  /**
2733
2733
  * Listar entradas y salidas de un grupo
2734
- * @description **Permiso requerido:** `communities:read` (Leer)
2734
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2735
2735
  *
2736
2736
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `perPage` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`).
2737
2737
  */
@@ -2753,7 +2753,7 @@ interface paths {
2753
2753
  };
2754
2754
  /**
2755
2755
  * Listar envíos programados
2756
- * @description **Permiso requerido:** `communities:read` (Leer)
2756
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2757
2757
  *
2758
2758
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `perPage` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`). Orden: `orderBy` acepta `created_at`, `id`, `name`, `updated_at`; dirección `orderByMethod`: `asc` o `desc`. Otro valor responde `422`.
2759
2759
  */
@@ -2775,7 +2775,7 @@ interface paths {
2775
2775
  };
2776
2776
  /**
2777
2777
  * Ver un envío programado
2778
- * @description **Permiso requerido:** `communities:read` (Leer)
2778
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2779
2779
  */
2780
2780
  get: operations["scheduledMessage.show"];
2781
2781
  put?: never;
@@ -2795,7 +2795,7 @@ interface paths {
2795
2795
  };
2796
2796
  /**
2797
2797
  * Listar los grupos destino de un envío
2798
- * @description **Permiso requerido:** `communities:read` (Leer)
2798
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2799
2799
  *
2800
2800
  * **Con API key:** página fija de 3 elementos; se recorre con `page`. Orden: `orderBy` acepta `created_at`, `id`, `name`; dirección `orderByMethod`: `asc` o `desc`. Otro valor responde `422`.
2801
2801
  */
@@ -2817,7 +2817,7 @@ interface paths {
2817
2817
  };
2818
2818
  /**
2819
2819
  * Ver el resultado por grupo de un envío
2820
- * @description **Permiso requerido:** `communities:read` (Leer)
2820
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2821
2821
  *
2822
2822
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `perPage` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`). Orden: `orderBy` acepta `group_message_template.id`, `group_message_template.status`, `groups.name`, `group_message_template.created_at`; dirección `orderByMethod`: `asc` o `desc`. Otro valor responde `422`.
2823
2823
  */
@@ -2839,7 +2839,7 @@ interface paths {
2839
2839
  };
2840
2840
  /**
2841
2841
  * Ver las tasas de lectura y reproducción de un envío
2842
- * @description **Permiso requerido:** `communities:read` (Leer)
2842
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2843
2843
  */
2844
2844
  get: operations["scheduledMessage.readedAndPlayedRates"];
2845
2845
  put?: never;
@@ -2859,7 +2859,7 @@ interface paths {
2859
2859
  };
2860
2860
  /**
2861
2861
  * Listar las ocurrencias de un envío recurrente
2862
- * @description **Permiso requerido:** `communities:read` (Leer)
2862
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2863
2863
  *
2864
2864
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `perPage` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`).
2865
2865
  */
@@ -2881,7 +2881,7 @@ interface paths {
2881
2881
  };
2882
2882
  /**
2883
2883
  * Listar las carpetas de envíos
2884
- * @description **Permiso requerido:** `communities:read` (Leer)
2884
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2885
2885
  */
2886
2886
  get: operations["scheduledMessageFolder.index"];
2887
2887
  put?: never;
@@ -2901,7 +2901,7 @@ interface paths {
2901
2901
  };
2902
2902
  /**
2903
2903
  * Listar las respuestas a un envío
2904
- * @description **Permiso requerido:** `communities:read` (Leer)
2904
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2905
2905
  *
2906
2906
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `perPage` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`).
2907
2907
  */
@@ -2923,7 +2923,7 @@ interface paths {
2923
2923
  };
2924
2924
  /**
2925
2925
  * Listar las etiquetas que se aplican a quien responde
2926
- * @description **Permiso requerido:** `communities:read` (Leer)
2926
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2927
2927
  */
2928
2928
  get: operations["scheduledMessage.responseTags"];
2929
2929
  put?: never;
@@ -2943,7 +2943,7 @@ interface paths {
2943
2943
  };
2944
2944
  /**
2945
2945
  * Ver participantes por período
2946
- * @description **Permiso requerido:** `communities:read` (Leer)
2946
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2947
2947
  *
2948
2948
  * **Con API key:** `start_date` y `end_date` son obligatorios, con formato `AAAA-MM-DD`, y el rango entre los dos, ambos incluidos, admite como máximo 366 días (un año completo, bisiesto incluido). Si falta una de las dos fechas, si una es inválida, si `end_date` es anterior a `start_date` o si el rango es mayor, responde `422`.
2949
2949
  */
@@ -2965,7 +2965,7 @@ interface paths {
2965
2965
  };
2966
2966
  /**
2967
2967
  * Ver participantes activos
2968
- * @description **Permiso requerido:** `communities:read` (Leer)
2968
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2969
2969
  *
2970
2970
  * **Con API key:** `start_date` y `end_date` son obligatorios, con formato `AAAA-MM-DD`, y el rango entre los dos, ambos incluidos, admite como máximo 366 días (un año completo, bisiesto incluido). Si falta una de las dos fechas, si una es inválida, si `end_date` es anterior a `start_date` o si el rango es mayor, responde `422`.
2971
2971
  */
@@ -2987,7 +2987,7 @@ interface paths {
2987
2987
  };
2988
2988
  /**
2989
2989
  * Ver grupos por estado
2990
- * @description **Permiso requerido:** `communities:read` (Leer)
2990
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
2991
2991
  *
2992
2992
  * **Con API key:** `start_date` y `end_date` son obligatorios, con formato `AAAA-MM-DD`, y el rango entre los dos, ambos incluidos, admite como máximo 366 días (un año completo, bisiesto incluido). Si falta una de las dos fechas, si una es inválida, si `end_date` es anterior a `start_date` o si el rango es mayor, responde `422`.
2993
2993
  */
@@ -3009,7 +3009,7 @@ interface paths {
3009
3009
  };
3010
3010
  /**
3011
3011
  * Ver clics en links
3012
- * @description **Permiso requerido:** `communities:read` (Leer)
3012
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
3013
3013
  *
3014
3014
  * **Con API key:** `start_date` y `end_date` son obligatorios, con formato `AAAA-MM-DD`, y el rango entre los dos, ambos incluidos, admite como máximo 366 días (un año completo, bisiesto incluido). Si falta una de las dos fechas, si una es inválida, si `end_date` es anterior a `start_date` o si el rango es mayor, responde `422`.
3015
3015
  */
@@ -3031,7 +3031,7 @@ interface paths {
3031
3031
  };
3032
3032
  /**
3033
3033
  * Listar registros de clics
3034
- * @description **Permiso requerido:** `communities:read` (Leer)
3034
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
3035
3035
  *
3036
3036
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `per_page` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`).
3037
3037
  */
@@ -3053,7 +3053,7 @@ interface paths {
3053
3053
  };
3054
3054
  /**
3055
3055
  * Ver métricas por país
3056
- * @description **Permiso requerido:** `communities:read` (Leer)
3056
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
3057
3057
  */
3058
3058
  get: operations["stats.countryMetrics"];
3059
3059
  put?: never;
@@ -3073,7 +3073,7 @@ interface paths {
3073
3073
  };
3074
3074
  /**
3075
3075
  * Listar países presentes
3076
- * @description **Permiso requerido:** `communities:read` (Leer)
3076
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
3077
3077
  */
3078
3078
  get: operations["stats.countryList"];
3079
3079
  put?: never;
@@ -3093,7 +3093,7 @@ interface paths {
3093
3093
  };
3094
3094
  /**
3095
3095
  * Listar los webhooks de una campaña
3096
- * @description **Permiso requerido:** `communities:read` (Leer)
3096
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
3097
3097
  *
3098
3098
  * **Nota:** Webhooks legados de campaña, con otro formato; no reciben los eventos de plataforma (ver `/webhooks`).
3099
3099
  */
@@ -3115,7 +3115,7 @@ interface paths {
3115
3115
  };
3116
3116
  /**
3117
3117
  * Listar las entregas de los webhooks de una campaña
3118
- * @description **Permiso requerido:** `communities:read` (Leer)
3118
+ * @description **Permiso requerido:** **Grupos y campañas → Ver**
3119
3119
  *
3120
3120
  * **Con API key:** la respuesta siempre viene paginada. Tamaño de página: `per_page` (por defecto 25, máximo 100; un valor mayor, menor que 1 o no entero responde `422`).
3121
3121
  */
@@ -3137,7 +3137,7 @@ interface paths {
3137
3137
  };
3138
3138
  /**
3139
3139
  * Ver mi cuenta
3140
- * @description **Lectura** · requiere el permiso `accounts:read`.
3140
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
3141
3141
  */
3142
3142
  get: {
3143
3143
  parameters: {
@@ -3183,7 +3183,7 @@ interface paths {
3183
3183
  * searchable by `name`. Degrades to 503 when the `groups` connection is
3184
3184
  * unavailable instead of leaking a 500 / stack trace
3185
3185
  *
3186
- * **Lectura** · requiere el permiso `accounts:read`.
3186
+ * **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
3187
3187
  *
3188
3188
  * **Listado** · `perPage` de 1 a 100 (por defecto 25); también `per_page` · orden fijo: id ascendente · no acepta parámetros de orden.
3189
3189
  */
@@ -3205,7 +3205,7 @@ interface paths {
3205
3205
  };
3206
3206
  /**
3207
3207
  * Ver el catálogo de alertas
3208
- * @description **Lectura** · requiere el permiso `accounts:read`.
3208
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
3209
3209
  *
3210
3210
  * Stripe-only alerts (concepts/events that only exist for accounts billed
3211
3211
  * through Stripe, e.g. subscription reactivation, dormant period ending)
@@ -3233,7 +3233,7 @@ interface paths {
3233
3233
  * @description Return the daily report configuration for the authenticated owner.
3234
3234
  * Returns a default structure if no record exists yet
3235
3235
  *
3236
- * **Lectura** · requiere el permiso `accounts:read`.
3236
+ * **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
3237
3237
  */
3238
3238
  get: operations["alertDailyReport.show"];
3239
3239
  /**
@@ -3241,7 +3241,7 @@ interface paths {
3241
3241
  * @description Upsert the daily report configuration for the authenticated owner.
3242
3242
  * Ensures exactly one row per owner (unique(owner_id))
3243
3243
  *
3244
- * **Escritura** · requiere el permiso `accounts:write`.
3244
+ * **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
3245
3245
  *
3246
3246
  * When `all_campaigns` is false, the submitted `campaign_ids` are pruned
3247
3247
  * to only those that still resolve to a visible campaign (owner + agents
@@ -3270,7 +3270,7 @@ interface paths {
3270
3270
  * Seed lazy: if the owner has no destinations and has a phone number,
3271
3271
  * create an unverified phone destination from it
3272
3272
  *
3273
- * **Lectura** · requiere el permiso `accounts:read`.
3273
+ * **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
3274
3274
  *
3275
3275
  * **Listado** · `perPage` de 1 a 100 (por defecto 25) · orden fijo: id ascendente · no acepta parámetros de orden.
3276
3276
  */
@@ -3278,7 +3278,7 @@ interface paths {
3278
3278
  put?: never;
3279
3279
  /**
3280
3280
  * Crear un destino de alertas
3281
- * @description **Escritura** · requiere el permiso `accounts:write`.
3281
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
3282
3282
  *
3283
3283
  * Enforces, para `webhook`:
3284
3284
  * - tope de {@see self::WEBHOOK_DESTINATION_LIMIT} destinos por cuenta;
@@ -3313,7 +3313,7 @@ interface paths {
3313
3313
  post?: never;
3314
3314
  /**
3315
3315
  * Eliminar un destino de alertas
3316
- * @description **Escritura** · requiere el permiso `accounts:write`.
3316
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
3317
3317
  *
3318
3318
  * Returns 404 for both non-existent and other-owner destinations to prevent
3319
3319
  * resource-existence enumeration by unauthenticated/unauthorized callers.
@@ -3323,7 +3323,7 @@ interface paths {
3323
3323
  head?: never;
3324
3324
  /**
3325
3325
  * Actualizar un destino de alertas
3326
- * @description **Escritura** · requiere el permiso `accounts:write`.
3326
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
3327
3327
  *
3328
3328
  * La URL de un `phone` sigue siendo de solo lectura post-creacion (se
3329
3329
  * verifica por OTP contra ese numero; cambiarlo seria crear otro destino).
@@ -3352,7 +3352,7 @@ interface paths {
3352
3352
  put?: never;
3353
3353
  /**
3354
3354
  * Enviar un código de verificación
3355
- * @description **Escritura** · requiere el permiso `accounts:write`.
3355
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
3356
3356
  *
3357
3357
  * HTTP 202: OTP dispatched.
3358
3358
  * HTTP 422: destination is not a phone or is already verified.
@@ -3376,7 +3376,7 @@ interface paths {
3376
3376
  put?: never;
3377
3377
  /**
3378
3378
  * Verificar el código
3379
- * @description **Escritura** · requiere el permiso `accounts:write`.
3379
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
3380
3380
  *
3381
3381
  * HTTP 200: verified — returns updated destination resource.
3382
3382
  * HTTP 422: destination not a phone, already verified, or wrong/expired code.
@@ -3400,7 +3400,7 @@ interface paths {
3400
3400
  * @description Return the quiet hours configuration for the authenticated owner.
3401
3401
  * Returns an empty/default structure if no record exists yet
3402
3402
  *
3403
- * **Lectura** · requiere el permiso `accounts:read`.
3403
+ * **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
3404
3404
  */
3405
3405
  get: operations["alertQuietHour.show"];
3406
3406
  /**
@@ -3408,7 +3408,7 @@ interface paths {
3408
3408
  * @description Upsert the quiet hours configuration for the authenticated owner.
3409
3409
  * Ensures exactly one row per owner (unique(owner_id))
3410
3410
  *
3411
- * **Escritura** · requiere el permiso `accounts:write`.
3411
+ * **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
3412
3412
  */
3413
3413
  put: operations["alertQuietHour.update"];
3414
3414
  post?: never;
@@ -3428,7 +3428,7 @@ interface paths {
3428
3428
  get?: never;
3429
3429
  /**
3430
3430
  * Activar o desactivar una alerta
3431
- * @description **Escritura** · requiere el permiso `accounts:write`.
3431
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
3432
3432
  *
3433
3433
  * - Validates that the module/action pair exists in AlertCatalog.
3434
3434
  * - Validates that the destination is verified (verified_at not null).
@@ -3455,7 +3455,7 @@ interface paths {
3455
3455
  put?: never;
3456
3456
  /**
3457
3457
  * Probar un destino webhook
3458
- * @description **Escritura** · requiere el permiso `accounts:write`.
3458
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
3459
3459
  *
3460
3460
  * - Owner-scoped: returns 404 for both non-existent and other-owner destinations
3461
3461
  * to prevent resource-existence enumeration.
@@ -3480,7 +3480,7 @@ interface paths {
3480
3480
  put?: never;
3481
3481
  /**
3482
3482
  * Configurar el dataset de Conversions API
3483
- * @description **Escritura** · requiere el permiso `accounts:write`.
3483
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
3484
3484
  *
3485
3485
  * Idempotently create or recover the Meta Conversions API dataset for the
3486
3486
  * device's WABA and persist it in `waba_capi_datasets`.
@@ -3504,7 +3504,7 @@ interface paths {
3504
3504
  };
3505
3505
  /**
3506
3506
  * Probar la conexión con Conversions API
3507
- * @description **Lectura** · requiere el permiso `accounts:read`.
3507
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
3508
3508
  *
3509
3509
  * "Probar conexión": verifies the device token has the
3510
3510
  * `whatsapp_business_manage_events` scope (`GET /debug_token`) and that the
@@ -3536,7 +3536,7 @@ interface paths {
3536
3536
  };
3537
3537
  /**
3538
3538
  * Listar los datasets de Conversions API
3539
- * @description **Lectura** · requiere el permiso `accounts:read`.
3539
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
3540
3540
  *
3541
3541
  * **Listado** · `perPage` de 1 a 100 (por defecto 25) · orden fijo: id ascendente · no acepta parámetros de orden.
3542
3542
  *
@@ -3572,7 +3572,7 @@ interface paths {
3572
3572
  };
3573
3573
  /**
3574
3574
  * Listar dominios propios
3575
- * @description **Lectura** · requiere el permiso `accounts:read`.
3575
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
3576
3576
  *
3577
3577
  * **Listado** · `perPage` de 1 a 100 (por defecto 25) · orden fijo: id ascendente · no acepta parámetros de orden.
3578
3578
  */
@@ -3580,7 +3580,7 @@ interface paths {
3580
3580
  put?: never;
3581
3581
  /**
3582
3582
  * Registrar un dominio propio
3583
- * @description **Escritura** · requiere el permiso `accounts:write`.
3583
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
3584
3584
  *
3585
3585
  * `StoreCustomDomainRequest` already sanitized `hostname` and validated
3586
3586
  * shape + uniqueness (422, no Cloudflare call) before this method runs.
@@ -3637,7 +3637,7 @@ interface paths {
3637
3637
  * and persist the resolved canonical status ("verify now", design.md
3638
3638
  * D4/D6/D10)
3639
3639
  *
3640
- * **Escritura** · requiere el permiso `accounts:write`.
3640
+ * **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
3641
3641
  *
3642
3642
  * Scoped to the authenticated admin: a domain id belonging to another
3643
3643
  * account resolves to a `ModelNotFoundException`, which the app's global
@@ -3693,7 +3693,7 @@ interface paths {
3693
3693
  * @description Switch a domain's SSL Domain Control Validation (DCV) method between
3694
3694
  * `HTTP` (default) and `TXT` (fallback, design.md D11)
3695
3695
  *
3696
- * **Escritura** · requiere el permiso `accounts:write`.
3696
+ * **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
3697
3697
  *
3698
3698
  * This is the escape hatch for domains whose CNAME does not yet route to
3699
3699
  * Cloudflare: HTTP DCV cannot complete without traffic reaching the
@@ -3737,7 +3737,7 @@ interface paths {
3737
3737
  * @description Unregister a custom domain: delete it from Cloudflare, then hard-delete
3738
3738
  * the local row (design.md D6)
3739
3739
  *
3740
- * **Escritura** · requiere el permiso `accounts:operate`.
3740
+ * **Escritura** · requiere el permiso **Números de WhatsApp → Crear, conectar y borrar**.
3741
3741
  *
3742
3742
  * > ⚠️ **Operación irreversible.** No hay papelera ni deshacer: resetear o limpiar un número mata su sesión de WhatsApp (hay que volver a escanear el código), purgar la cola descarta los mensajes encolados sin dejar registro de lo descartado, y los borrados eliminan el recurso.
3743
3743
  *
@@ -3774,7 +3774,7 @@ interface paths {
3774
3774
  };
3775
3775
  /**
3776
3776
  * Listar números
3777
- * @description **Lectura** · requiere el permiso `accounts:read`.
3777
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
3778
3778
  *
3779
3779
  * **Listado** · `perPage` de 1 a 100 (por defecto 25) · orden fijo: id ascendente · no acepta parámetros de orden.
3780
3780
  */
@@ -3800,7 +3800,7 @@ interface paths {
3800
3800
  };
3801
3801
  /**
3802
3802
  * Ver el perfil de WhatsApp de un número
3803
- * @description **Lectura** · requiere el permiso `accounts:read`.
3803
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
3804
3804
  */
3805
3805
  get: operations["device.me"];
3806
3806
  put?: never;
@@ -3820,7 +3820,7 @@ interface paths {
3820
3820
  };
3821
3821
  /**
3822
3822
  * Verificar si un teléfono tiene WhatsApp
3823
- * @description **Lectura** · requiere el permiso `accounts:read`.
3823
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
3824
3824
  */
3825
3825
  get: operations["device.checkPhone"];
3826
3826
  put?: never;
@@ -3840,18 +3840,18 @@ interface paths {
3840
3840
  };
3841
3841
  /**
3842
3842
  * Ver un número
3843
- * @description **Lectura** · requiere el permiso `accounts:read`.
3843
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
3844
3844
  */
3845
3845
  get: operations["device.show"];
3846
3846
  /**
3847
3847
  * Actualizar un número
3848
- * @description **Escritura** · requiere el permiso `accounts:write`.
3848
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
3849
3849
  */
3850
3850
  put: operations["device.update"];
3851
3851
  post?: never;
3852
3852
  /**
3853
3853
  * Eliminar un número
3854
- * @description **Escritura** · requiere el permiso `accounts:operate`.
3854
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Crear, conectar y borrar**.
3855
3855
  *
3856
3856
  * > ⚠️ **Operación irreversible.** No hay papelera ni deshacer: resetear o limpiar un número mata su sesión de WhatsApp (hay que volver a escanear el código), purgar la cola descarta los mensajes encolados sin dejar registro de lo descartado, y los borrados eliminan el recurso.
3857
3857
  */
@@ -3871,7 +3871,7 @@ interface paths {
3871
3871
  get?: never;
3872
3872
  /**
3873
3873
  * Reiniciar la sesión de un número
3874
- * @description **Escritura** · requiere el permiso `accounts:operate`.
3874
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Crear, conectar y borrar**.
3875
3875
  *
3876
3876
  * > ⚠️ **Operación irreversible.** No hay papelera ni deshacer: resetear o limpiar un número mata su sesión de WhatsApp (hay que volver a escanear el código), purgar la cola descarta los mensajes encolados sin dejar registro de lo descartado, y los borrados eliminan el recurso.
3877
3877
  */
@@ -3893,7 +3893,7 @@ interface paths {
3893
3893
  get?: never;
3894
3894
  /**
3895
3895
  * Configurar el webhook de mensajes recibidos
3896
- * @description **Escritura** · requiere el permiso `accounts:write`.
3896
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
3897
3897
  */
3898
3898
  put: operations["device.updateWebhookReceived"];
3899
3899
  post?: never;
@@ -3913,7 +3913,7 @@ interface paths {
3913
3913
  get?: never;
3914
3914
  /**
3915
3915
  * Configurar el webhook de recibidos y entregas
3916
- * @description **Escritura** · requiere el permiso `accounts:write`.
3916
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
3917
3917
  */
3918
3918
  put: operations["device.updateWebhookReceivedAndDelivery"];
3919
3919
  post?: never;
@@ -3934,7 +3934,7 @@ interface paths {
3934
3934
  put?: never;
3935
3935
  /**
3936
3936
  * Limpiar un número
3937
- * @description **Escritura** · requiere el permiso `accounts:operate`.
3937
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Crear, conectar y borrar**.
3938
3938
  *
3939
3939
  * > ⚠️ **Operación irreversible.** No hay papelera ni deshacer: resetear o limpiar un número mata su sesión de WhatsApp (hay que volver a escanear el código), purgar la cola descarta los mensajes encolados sin dejar registro de lo descartado, y los borrados eliminan el recurso.
3940
3940
  */
@@ -3954,7 +3954,7 @@ interface paths {
3954
3954
  };
3955
3955
  /**
3956
3956
  * Listar los chats de un número
3957
- * @description **Lectura** · requiere el permiso `accounts:read`.
3957
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
3958
3958
  *
3959
3959
  * **Listado** · `perPage` de 1 a 100 (por defecto 25); también `pageSize` · orden fijo: el que devuelve el proveedor · no acepta parámetros de orden.
3960
3960
  */
@@ -3976,7 +3976,7 @@ interface paths {
3976
3976
  };
3977
3977
  /**
3978
3978
  * Ver qué teléfonos tienen conversación abierta
3979
- * @description **Lectura** · requiere el permiso `accounts:read`.
3979
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
3980
3980
  *
3981
3981
  * **Con API key** · Con una clave de API, `phones` admite como máximo 100 teléfonos por llamada. Más responde `422`.
3982
3982
  */
@@ -3998,7 +3998,7 @@ interface paths {
3998
3998
  };
3999
3999
  /**
4000
4000
  * Ver la cola de mensajes
4001
- * @description **Lectura** · requiere el permiso `accounts:read`.
4001
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
4002
4002
  *
4003
4003
  * **Listado** · `perPage` de 1 a 100 (por defecto 25); también `pageSize` · orden fijo: el que devuelve el proveedor · no acepta parámetros de orden.
4004
4004
  */
@@ -4007,7 +4007,7 @@ interface paths {
4007
4007
  post?: never;
4008
4008
  /**
4009
4009
  * Eliminar mensajes de la cola
4010
- * @description **Escritura** · requiere el permiso `accounts:write`.
4010
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
4011
4011
  */
4012
4012
  delete: operations["device.deleteMessageQueue"];
4013
4013
  options?: never;
@@ -4024,7 +4024,7 @@ interface paths {
4024
4024
  };
4025
4025
  /**
4026
4026
  * Contar los mensajes en la cola
4027
- * @description **Lectura** · requiere el permiso `accounts:read`.
4027
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
4028
4028
  */
4029
4029
  get: operations["device.getQueueCount"];
4030
4030
  put?: never;
@@ -4047,7 +4047,7 @@ interface paths {
4047
4047
  post?: never;
4048
4048
  /**
4049
4049
  * Vaciar la cola de mensajes
4050
- * @description **Escritura** · requiere el permiso `accounts:operate`.
4050
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Crear, conectar y borrar**.
4051
4051
  *
4052
4052
  * > ⚠️ **Operación irreversible.** No hay papelera ni deshacer: resetear o limpiar un número mata su sesión de WhatsApp (hay que volver a escanear el código), purgar la cola descarta los mensajes encolados sin dejar registro de lo descartado, y los borrados eliminan el recurso.
4053
4053
  */
@@ -4066,7 +4066,7 @@ interface paths {
4066
4066
  };
4067
4067
  /**
4068
4068
  * Ver el estado de conexión
4069
- * @description **Lectura** · requiere el permiso `accounts:read`.
4069
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
4070
4070
  */
4071
4071
  get: operations["device.status"];
4072
4072
  put?: never;
@@ -4091,7 +4091,7 @@ interface paths {
4091
4091
  * @description Request a short-lived extension token for transferring a WhatsApp Web session
4092
4092
  * to this device instance via the Z-API Conector Chrome extension
4093
4093
  *
4094
- * **Escritura** · requiere el permiso `accounts:write`.
4094
+ * **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
4095
4095
  *
4096
4096
  * Only available for ZApi and ZApiLite providers. Returns a one-time code with
4097
4097
  * an expiry timestamp. The frontend uses this code to authenticate the extension
@@ -4113,7 +4113,7 @@ interface paths {
4113
4113
  };
4114
4114
  /**
4115
4115
  * Ver el historial de conexión
4116
- * @description **Lectura** · requiere el permiso `accounts:read`.
4116
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
4117
4117
  *
4118
4118
  * **Listado** · `perPage` de 1 a 100 (por defecto 25) · orden fijo: created_at descendente · no acepta parámetros de orden.
4119
4119
  */
@@ -4135,13 +4135,13 @@ interface paths {
4135
4135
  };
4136
4136
  /**
4137
4137
  * Ver la encuesta de desconexión
4138
- * @description **Lectura** · requiere el permiso `accounts:read`.
4138
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
4139
4139
  */
4140
4140
  get: operations["deviceDisconnectSurvey.show"];
4141
4141
  put?: never;
4142
4142
  /**
4143
4143
  * Responder la encuesta de desconexión
4144
- * @description **Escritura** · requiere el permiso `accounts:write`.
4144
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
4145
4145
  */
4146
4146
  post: operations["deviceDisconnectSurvey.store"];
4147
4147
  delete?: never;
@@ -4163,7 +4163,7 @@ interface paths {
4163
4163
  * newest-first, keyset-paginated. Returns a `summary` only on the first
4164
4164
  * page (no `cursor`)
4165
4165
  *
4166
- * **Lectura** · requiere el permiso `accounts:read`.
4166
+ * **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
4167
4167
  *
4168
4168
  * **Listado** · `perPage` de 1 a 100 (por defecto 25); también `limit` · orden fijo: más reciente primero · no acepta parámetros de orden.
4169
4169
  */
@@ -4188,7 +4188,7 @@ interface paths {
4188
4188
  * @description `GET /devices/{device}/health` — serves `currentSnapshot()`
4189
4189
  * normalized through `DeviceHealthDetailResource`. NEVER calls Meta
4190
4190
  *
4191
- * **Lectura** · requiere el permiso `accounts:read`.
4191
+ * **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
4192
4192
  */
4193
4193
  get: operations["deviceHealth.show"];
4194
4194
  put?: never;
@@ -4215,7 +4215,7 @@ interface paths {
4215
4215
  * call, subject to D7's 60s cooldown and per-device `Cache::lock`) and
4216
4216
  * returns the SAME shape as `show()`, plus `refresh_outcome`
4217
4217
  *
4218
- * **Escritura** · requiere el permiso `accounts:write`.
4218
+ * **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
4219
4219
  *
4220
4220
  * `refresh_outcome` (security-auditor finding — Increment 4 plan
4221
4221
  * review, "the endpoint must tell the truth about what happened"):
@@ -4263,7 +4263,7 @@ interface paths {
4263
4263
  * newest-first, keyset-paginated. Returns a `summary` only on the first
4264
4264
  * page (no `cursor`)
4265
4265
  *
4266
- * **Lectura** · requiere el permiso `accounts:read`.
4266
+ * **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
4267
4267
  *
4268
4268
  * **Listado** · `perPage` de 1 a 100 (por defecto 25); también `limit` · orden fijo: más reciente primero · no acepta parámetros de orden.
4269
4269
  */
@@ -4288,7 +4288,7 @@ interface paths {
4288
4288
  * @description Return the device's health signal: the last 5 non-send requests plus a
4289
4289
  * verdict (`healthy`/`review`/`attention`)
4290
4290
  *
4291
- * **Lectura** · requiere el permiso `accounts:read`.
4291
+ * **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
4292
4292
  */
4293
4293
  get: operations["deviceLogs.health"];
4294
4294
  put?: never;
@@ -4308,7 +4308,7 @@ interface paths {
4308
4308
  };
4309
4309
  /**
4310
4310
  * Ver el nombre de usuario
4311
- * @description **Lectura** · requiere el permiso `accounts:read`.
4311
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
4312
4312
  *
4313
4313
  * Fetch the current reserved username from Meta and return it along with the locally stored value.
4314
4314
  */
@@ -4316,7 +4316,7 @@ interface paths {
4316
4316
  put?: never;
4317
4317
  /**
4318
4318
  * Configurar el nombre de usuario
4319
- * @description **Escritura** · requiere el permiso `accounts:write`.
4319
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
4320
4320
  *
4321
4321
  * Reserve a username via Meta API and persist it locally.
4322
4322
  */
@@ -4336,7 +4336,7 @@ interface paths {
4336
4336
  };
4337
4337
  /**
4338
4338
  * Sugerir nombres de usuario
4339
- * @description **Lectura** · requiere el permiso `accounts:read`.
4339
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
4340
4340
  *
4341
4341
  * Fetch username suggestions from Meta API.
4342
4342
  */
@@ -4358,7 +4358,7 @@ interface paths {
4358
4358
  };
4359
4359
  /**
4360
4360
  * Listar entregas de un webhook
4361
- * @description **Lectura** · requiere el permiso `accounts:read`.
4361
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
4362
4362
  *
4363
4363
  * **Listado** · `perPage` de 1 a 100 (por defecto 25); también `per_page` · orden fijo: attempted_at descendente, después id descendente · no acepta parámetros de orden.
4364
4364
  */
@@ -4380,7 +4380,7 @@ interface paths {
4380
4380
  };
4381
4381
  /**
4382
4382
  * Listar webhooks
4383
- * @description **Lectura** · requiere el permiso `accounts:read`.
4383
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
4384
4384
  *
4385
4385
  * **Listado** · `perPage` de 1 a 100 (por defecto 25) · orden fijo: id ascendente · no acepta parámetros de orden.
4386
4386
  */
@@ -4388,7 +4388,7 @@ interface paths {
4388
4388
  put?: never;
4389
4389
  /**
4390
4390
  * Crear un webhook
4391
- * @description **Escritura** · requiere el permiso `accounts:write`.
4391
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
4392
4392
  */
4393
4393
  post: operations["webhookEndpoint.store"];
4394
4394
  delete?: never;
@@ -4406,7 +4406,7 @@ interface paths {
4406
4406
  };
4407
4407
  /**
4408
4408
  * Ver un webhook
4409
- * @description **Lectura** · requiere el permiso `accounts:read`.
4409
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
4410
4410
  */
4411
4411
  get: operations["webhookEndpoint.show"];
4412
4412
  put?: never;
@@ -4416,14 +4416,14 @@ interface paths {
4416
4416
  * @description Da de baja el endpoint. Las suscripciones y el historial de entregas caen
4417
4417
  * con él por `ON DELETE CASCADE`
4418
4418
  *
4419
- * **Escritura** · requiere el permiso `accounts:write`.
4419
+ * **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
4420
4420
  */
4421
4421
  delete: operations["webhookEndpoint.destroy"];
4422
4422
  options?: never;
4423
4423
  head?: never;
4424
4424
  /**
4425
4425
  * Actualizar un webhook
4426
- * @description **Escritura** · requiere el permiso `accounts:write`.
4426
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
4427
4427
  *
4428
4428
  * El `SsrfGuard` corre TAMBIÉN acá y no sólo en el alta: si corriera sólo en
4429
4429
  * el alta, editar sería la puerta de atrás para dejar persistida una URL que
@@ -4442,7 +4442,7 @@ interface paths {
4442
4442
  get?: never;
4443
4443
  /**
4444
4444
  * Elegir los eventos de un webhook
4445
- * @description **Escritura** · requiere el permiso `accounts:write`.
4445
+ * @description **Escritura** · requiere el permiso **Números de WhatsApp → Editar**.
4446
4446
  */
4447
4447
  put: operations["webhookEndpointEvent.update"];
4448
4448
  post?: never;
@@ -4461,7 +4461,7 @@ interface paths {
4461
4461
  };
4462
4462
  /**
4463
4463
  * Listar tipos de evento
4464
- * @description **Lectura** · requiere el permiso `accounts:read`.
4464
+ * @description **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
4465
4465
  */
4466
4466
  get: operations["webhookEventCatalog.index"];
4467
4467
  put?: never;
@@ -4484,7 +4484,7 @@ interface paths {
4484
4484
  * @description Returns the full `WhatsappCostSummaryResource` for the requested
4485
4485
  * (or current, when omitted) calendar month — `?month=YYYY-MM`
4486
4486
  *
4487
- * **Lectura** · requiere el permiso `accounts:read`.
4487
+ * **Lectura** · requiere el permiso **Números de WhatsApp → Ver**.
4488
4488
  */
4489
4489
  get: operations["whatsappCost.index"];
4490
4490
  put?: never;
@@ -4900,7 +4900,7 @@ interface paths {
4900
4900
  };
4901
4901
  /**
4902
4902
  * The QR code to connect a number
4903
- * @description Creates the WhatsApp instance when needed. Only for QR numbers: an official one answers `422 provider_unsupported`. Scanning the QR gives control of a WhatsApp, so it needs **WhatsApp numbers → Create, connect and delete** (`accounts:operate`). Every call brings the code of that moment: ask again every `expires_in` seconds (5 with a QR) and replace the image with the latest one; the answer carries `Cache-Control: no-store`.
4903
+ * @description Creates the WhatsApp instance when needed. Only for QR numbers: an official one answers `422 provider_unsupported`. Scanning the QR gives control of a WhatsApp, so it needs **WhatsApp numbers → Create, connect and delete**. Every call brings the code of that moment: ask again every `expires_in` seconds (5 with a QR) and replace the image with the latest one; the answer carries `Cache-Control: no-store`.
4904
4904
  */
4905
4905
  get: operations["pendingDevice.qr"];
4906
4906
  put?: never;
@@ -9594,7 +9594,7 @@ interface components {
9594
9594
  /** @description `https`, public and without user or password. */
9595
9595
  url: string;
9596
9596
  description?: string | null;
9597
- /** @description Types of the catalog (`GET /api/v1/webhooks/events`). The key needs the **View** permission of the area of each type in the panel (`{area}:read`), such as **WhatsApp numbers → View** (`accounts:read`). */
9597
+ /** @description Types of the catalog (`GET /api/v1/webhooks/events`). The key needs the **View** permission of the area of each type in the panel, such as **WhatsApp numbers → View**. */
9598
9598
  events: string[];
9599
9599
  filters?: components["schemas"]["PendingWebhookSubscriptionFilters"] | null;
9600
9600
  };
@@ -21058,7 +21058,7 @@ interface RequestOptions {
21058
21058
  maxRetries?: number;
21059
21059
  /**
21060
21060
  * Allows automatic retries of a non-idempotent send for this request: a `POST` that needs
21061
- * **Contacts and conversations → Send** (`conversations:send`). Off by default: a retried send
21061
+ * **Contacts and conversations → Send**. Off by default: a retried send
21062
21062
  * can deliver the same message twice.
21063
21063
  */
21064
21064
  retrySend?: boolean;
@@ -21134,8 +21134,8 @@ type LinkId = PathParams<'/api/v1/connect-links/{link}', 'GET'>['link'];
21134
21134
  * `device_id` the link reconnects that number instead, without taking a new slot. The Meta sign-up
21135
21135
  * is not available in production yet: `type: 'meta'` answers `503 meta_connect_disabled` until it is.
21136
21136
  *
21137
- * Reading needs **WhatsApp numbers → View** (`accounts:read`); creating and revoking,
21138
- * **WhatsApp numbers → Create, connect and delete** (`accounts:operate`). The result arrives three
21137
+ * Reading needs **WhatsApp numbers → View**; creating and revoking,
21138
+ * **WhatsApp numbers → Create, connect and delete**. The result arrives three
21139
21139
  * ways: the `device.connected` webhook (with `connect_link_id` and `external_reference`), the
21140
21140
  * `return_url`, or `get`. The other `device.*` events carry the link that last connected the number.
21141
21141
  *
@@ -21588,8 +21588,8 @@ declare class Devices extends Resource {
21588
21588
  /**
21589
21589
  * `POST /api/v1/devices`: creates a number that connects by QR code (`connection: 'qr'`), with
21590
21590
  * `connected: false`. Then show its QR with `qr`, or send your customer a connect link
21591
- * (`connectLinks.create`). Needs **WhatsApp numbers → Create, connect and delete**
21592
- * (`accounts:operate`). It takes a slot of the plan, with the panel's
21591
+ * (`connectLinks.create`). Needs **WhatsApp numbers → Create, connect and delete**.
21592
+ * It takes a slot of the plan, with the panel's
21593
21593
  * rejections: `403 numbers_not_included`, `403 number_limit_reached`, `422 qr_requires_coexistence`
21594
21594
  * and `422 method_already_present` (`same_number_as` adds QR to a number in coexistence instead).
21595
21595
  * An account has at most one QR number waiting to be scanned: another one is `409
@@ -21651,8 +21651,8 @@ declare class Devices extends Resource {
21651
21651
  /**
21652
21652
  * `DELETE /api/v1/devices/{device}`: deletes the number and frees its slot of the plan. An
21653
21653
  * official number stops receiving through Funnelchat but stays registered with Meta; a QR one
21654
- * logs out. Irreversible; needs **WhatsApp numbers → Create, connect and delete**
21655
- * (`accounts:operate`). Sends `device.deleted`.
21654
+ * logs out. Irreversible; needs **WhatsApp numbers → Create, connect and delete**.
21655
+ * Sends `device.deleted`.
21656
21656
  */
21657
21657
  delete(device: DeviceId$3, options?: RequestOptions): APIPromise<Record<string, unknown>>;
21658
21658
  /** `PUT /api/v1/devices/{device}`: also changes `external_reference`. */
@@ -21706,7 +21706,7 @@ declare class Devices extends Resource {
21706
21706
  * 0 once connected) and have it scanned right away: WhatsApp changes the code every few seconds and
21707
21707
  * an old one no longer links, so show the latest and never store or forward a QR. Only for QR
21708
21708
  * numbers (an official one is `422 provider_unsupported`); needs
21709
- * **WhatsApp numbers → Create, connect and delete** (`accounts:operate`), since scanning it gives
21709
+ * **WhatsApp numbers → Create, connect and delete**, since scanning it gives
21710
21710
  * control of a WhatsApp. A number that cannot connect now
21711
21711
  * answers `409` (`trial_number_blocked`, `number_suspended_by_plan`, `device_inactive`…).
21712
21712
  */
@@ -21749,8 +21749,8 @@ type RunId = PathParams<'/api/v1/forms/families/{familyId}/responses/{runId}', '
21749
21749
  type DeviceId$2 = PathParams<'/api/v1/forms/{id}/numbers/{deviceId}', 'DELETE'>['deviceId'];
21750
21750
  /**
21751
21751
  * WhatsApp forms (conversations area): build them, publish them on your numbers and read the
21752
- * answers. Reading needs **Contacts and conversations → View** (`conversations:read`); the rest,
21753
- * **Contacts and conversations → Edit** (`conversations:write`).
21752
+ * answers. Reading needs **Contacts and conversations → View**; the rest,
21753
+ * **Contacts and conversations → Edit**.
21754
21754
  *
21755
21755
  * Two ids: `id` is one version of a form; `family_id` is the form itself (every version). You send
21756
21756
  * a form by its `family_id` with `messages.sendForm`, and `whatsapp_form.completed` brings it as
@@ -21907,7 +21907,7 @@ declare class Forms extends Resource {
21907
21907
  type GroupId = PathParams<'/api/v1/groups/{group}', 'GET'>['group'];
21908
21908
  type GroupUid = PathParams<'/api/v1/groups/{groupUid}/metadata', 'GET'>['groupUid'];
21909
21909
  type DeviceId$1 = PathParams<'/api/v1/devices/{device}/groups', 'GET'>['device'];
21910
- /** WhatsApp groups (communities area): read them, their participants, events and messages. Permission: **Groups and campaigns → View** (`communities:read`). */
21910
+ /** WhatsApp groups (communities area): read them, their participants, events and messages. Permission: **Groups and campaigns → View**. */
21911
21911
  declare class Groups extends Resource {
21912
21912
  /** `GET /api/v1/groups`, paginated. */
21913
21913
  list(query?: Query<'/api/v1/groups'>, options?: RequestOptions): PagePromise<{
@@ -22114,7 +22114,7 @@ type SendMessageParams = Omit<SendMessageBody, 'contact_id'> & {
22114
22114
  * delivered. The rest arrives by `message.status_changed` (with the same `id` as `message_id`) or
22115
22115
  * with {@link Messages.get}.
22116
22116
  *
22117
- * Sending with an API key needs **Contacts and conversations → Send** (`conversations:send`) and
22117
+ * Sending with an API key needs **Contacts and conversations → Send** and
22118
22118
  * is subject to the WhatsApp rules: `422 window_closed`, `422 antiblock_*`, `422 recipient_*`,
22119
22119
  * `422 provider_unsupported`, `429 rate_limited` (with `retryAfter`) and `429 mac_lockout_24h`. A
22120
22120
  * rejected send stores nothing (see `SEND_ERROR_CODES`). Sends are never retried automatically
@@ -23713,12 +23713,12 @@ type SubscriptionId = PathParams<'/api/v1/webhooks/{id}', 'GET'>['id'];
23713
23713
  /**
23714
23714
  * Webhook subscriptions (accounts area) and the verification of deliveries.
23715
23715
  *
23716
- * Reading needs **Notifications (webhooks) → View** (`webhooks:read`) and the rest
23717
- * **Notifications (webhooks) → Manage** (`webhooks:write`); the catalog (`events()`) needs
23718
- * **WhatsApp numbers → View** (`accounts:read`). A key only sees and manages subscriptions to
23719
- * events of the areas it can read: **Contacts and conversations → View** (`conversations:read`),
23720
- * **Groups and campaigns → View** (`communities:read`) and **WhatsApp numbers → View**
23721
- * (`accounts:read`). Asking for others is a `422` on `events`, and touching a subscription that
23716
+ * Reading needs **Notifications (webhooks) → View** and the rest
23717
+ * **Notifications (webhooks) → Manage**; the catalog (`events()`) needs
23718
+ * **WhatsApp numbers → View**. A key only sees and manages subscriptions to
23719
+ * events of the areas it can read: **Contacts and conversations → View**,
23720
+ * **Groups and campaigns → View** and **WhatsApp numbers → View**.
23721
+ * Asking for others is a `422` on `events`, and touching a subscription that
23722
23722
  * has them is `403 permission_denied`.
23723
23723
  */
23724
23724
  declare class Webhooks extends Resource {
@@ -23917,7 +23917,7 @@ declare class Funnelchat {
23917
23917
  readonly verify: typeof verify;
23918
23918
  readonly constructEvent: typeof constructEvent;
23919
23919
  };
23920
- static readonly VERSION = "0.2.1";
23920
+ static readonly VERSION = "0.2.2";
23921
23921
  readonly baseUrl: string;
23922
23922
  readonly timeoutMs: number;
23923
23923
  readonly maxRetries: number;
@@ -23982,6 +23982,6 @@ interface RouteInfo {
23982
23982
  declare const routes: readonly RouteInfo[];
23983
23983
 
23984
23984
  /** The SDK version, sent in the `User-Agent`. A test keeps it equal to package.json. */
23985
- declare const VERSION = "0.2.1";
23985
+ declare const VERSION = "0.2.2";
23986
23986
 
23987
23987
  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, 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 };