@funnelchat-hq/sandbox 0.5.1 → 0.5.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/README.md +21 -11
- package/dist/{chunk-NSON4OUU.js → chunk-4ELMG644.js} +1214 -687
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/spec/procedencia.json +6 -6
|
@@ -356,7 +356,7 @@ var catalog_default = {
|
|
|
356
356
|
connection: "qr",
|
|
357
357
|
external_reference: "cliente-42"
|
|
358
358
|
},
|
|
359
|
-
disconnected_at: "2026-10-05T03:00:
|
|
359
|
+
disconnected_at: "2026-10-05T03:00:00Z",
|
|
360
360
|
reason: "qr_logged_out",
|
|
361
361
|
connect_link_id: 812,
|
|
362
362
|
workspace_id: 37
|
|
@@ -382,7 +382,7 @@ var catalog_default = {
|
|
|
382
382
|
connection: "qr",
|
|
383
383
|
external_reference: "cliente-42"
|
|
384
384
|
},
|
|
385
|
-
connected_at: "2026-10-05T03:00:
|
|
385
|
+
connected_at: "2026-10-05T03:00:00Z",
|
|
386
386
|
connect_link_id: 812,
|
|
387
387
|
workspace_id: 37
|
|
388
388
|
}
|
|
@@ -407,7 +407,7 @@ var catalog_default = {
|
|
|
407
407
|
connection: "qr",
|
|
408
408
|
external_reference: "cliente-42"
|
|
409
409
|
},
|
|
410
|
-
deleted_at: "2026-10-05T03:00:
|
|
410
|
+
deleted_at: "2026-10-05T03:00:00Z",
|
|
411
411
|
connect_link_id: 812,
|
|
412
412
|
workspace_id: 37
|
|
413
413
|
}
|
|
@@ -434,7 +434,7 @@ var catalog_default = {
|
|
|
434
434
|
},
|
|
435
435
|
previous_state: "available",
|
|
436
436
|
state: "limited",
|
|
437
|
-
changed_at: "2026-10-05T03:00:
|
|
437
|
+
changed_at: "2026-10-05T03:00:00Z",
|
|
438
438
|
connect_link_id: null,
|
|
439
439
|
workspace_id: 37
|
|
440
440
|
}
|
|
@@ -461,7 +461,7 @@ var catalog_default = {
|
|
|
461
461
|
},
|
|
462
462
|
previous: "GREEN",
|
|
463
463
|
current: "YELLOW",
|
|
464
|
-
changed_at: "2026-10-05T03:00:
|
|
464
|
+
changed_at: "2026-10-05T03:00:00Z",
|
|
465
465
|
connect_link_id: null,
|
|
466
466
|
workspace_id: 37
|
|
467
467
|
}
|
|
@@ -488,7 +488,7 @@ var catalog_default = {
|
|
|
488
488
|
},
|
|
489
489
|
previous: "TIER_1K",
|
|
490
490
|
current: "TIER_10K",
|
|
491
|
-
changed_at: "2026-10-05T03:00:
|
|
491
|
+
changed_at: "2026-10-05T03:00:00Z",
|
|
492
492
|
connect_link_id: null,
|
|
493
493
|
workspace_id: 37
|
|
494
494
|
}
|
|
@@ -518,7 +518,7 @@ var catalog_default = {
|
|
|
518
518
|
status: "APPROVED",
|
|
519
519
|
verified_name: "Soporte Lucky Shrub",
|
|
520
520
|
rejection_reason: null,
|
|
521
|
-
reviewed_at: "2026-10-05T03:00:
|
|
521
|
+
reviewed_at: "2026-10-05T03:00:00Z",
|
|
522
522
|
connect_link_id: null,
|
|
523
523
|
workspace_id: 37
|
|
524
524
|
}
|
|
@@ -1375,7 +1375,7 @@ var catalog_default = {
|
|
|
1375
1375
|
type: "pipeline.finished",
|
|
1376
1376
|
area: "communities",
|
|
1377
1377
|
status: "active",
|
|
1378
|
-
description: "Termin\xF3 un pipeline de operaciones sobre grupos, con su resultado agregado y la clave de idempotencia del pedido que lo origin\xF3, cuando la hay.",
|
|
1378
|
+
description: "Termin\xF3 un pipeline de operaciones sobre los grupos de una campa\xF1a, con su resultado agregado y la clave de idempotencia del pedido que lo origin\xF3, cuando la hay; si despu\xE9s cambia el resultado de alguna de sus acciones (por ejemplo, por un reintento), sale otro, con otro `id` y los conteos nuevos.",
|
|
1379
1379
|
subscribable: true,
|
|
1380
1380
|
example: {
|
|
1381
1381
|
id: "evt_0000000000000000000000000000000a",
|
|
@@ -1407,7 +1407,7 @@ var catalog_default = {
|
|
|
1407
1407
|
type: "group.blocked",
|
|
1408
1408
|
area: "communities",
|
|
1409
1409
|
status: "active",
|
|
1410
|
-
description: "Un grupo qued\xF3 inoperable: sin administrador conectado, con el link de invitaci\xF3n inv\xE1lido o suspendido por WhatsApp.",
|
|
1410
|
+
description: "Un grupo de una campa\xF1a qued\xF3 inoperable: sin administrador conectado, con el link de invitaci\xF3n inv\xE1lido o suspendido por WhatsApp; un grupo que no es de una campa\xF1a no lo genera.",
|
|
1411
1411
|
subscribable: true,
|
|
1412
1412
|
example: {
|
|
1413
1413
|
id: "evt_00000000000000000000000000000005",
|
|
@@ -1431,7 +1431,7 @@ var catalog_default = {
|
|
|
1431
1431
|
type: "group.recovered",
|
|
1432
1432
|
area: "communities",
|
|
1433
1433
|
status: "active",
|
|
1434
|
-
description: "Un grupo que estaba bloqueado volvi\xF3 a operar.",
|
|
1434
|
+
description: "Un grupo de una campa\xF1a que estaba bloqueado volvi\xF3 a operar; un grupo que no es de una campa\xF1a no lo genera.",
|
|
1435
1435
|
subscribable: true,
|
|
1436
1436
|
example: {
|
|
1437
1437
|
id: "evt_00000000000000000000000000000006",
|
|
@@ -3075,8 +3075,34 @@ var openapi_default = {
|
|
|
3075
3075
|
content: {
|
|
3076
3076
|
"application/json": {
|
|
3077
3077
|
schema: {
|
|
3078
|
-
type: "
|
|
3079
|
-
|
|
3078
|
+
type: "object",
|
|
3079
|
+
properties: {
|
|
3080
|
+
contactsCount: {
|
|
3081
|
+
type: "integer"
|
|
3082
|
+
},
|
|
3083
|
+
unreachableCount: {
|
|
3084
|
+
type: "integer"
|
|
3085
|
+
},
|
|
3086
|
+
pausedCount: {
|
|
3087
|
+
type: "integer"
|
|
3088
|
+
},
|
|
3089
|
+
optedOutCount: {
|
|
3090
|
+
type: "integer"
|
|
3091
|
+
},
|
|
3092
|
+
hardBouncedCount: {
|
|
3093
|
+
type: "integer"
|
|
3094
|
+
},
|
|
3095
|
+
blockedCount: {
|
|
3096
|
+
type: "integer"
|
|
3097
|
+
}
|
|
3098
|
+
},
|
|
3099
|
+
required: [
|
|
3100
|
+
"contactsCount",
|
|
3101
|
+
"unreachableCount",
|
|
3102
|
+
"pausedCount",
|
|
3103
|
+
"optedOutCount",
|
|
3104
|
+
"hardBouncedCount"
|
|
3105
|
+
]
|
|
3080
3106
|
}
|
|
3081
3107
|
}
|
|
3082
3108
|
}
|
|
@@ -5477,77 +5503,18 @@ var openapi_default = {
|
|
|
5477
5503
|
schema: {
|
|
5478
5504
|
type: "array",
|
|
5479
5505
|
items: {
|
|
5480
|
-
|
|
5481
|
-
|
|
5482
|
-
|
|
5483
|
-
|
|
5484
|
-
message: {
|
|
5485
|
-
type: "string",
|
|
5486
|
-
const: "No autorizado: el campo personalizado no pertenece al usuario autenticado."
|
|
5487
|
-
},
|
|
5488
|
-
status: {
|
|
5489
|
-
type: "integer",
|
|
5490
|
-
const: 403
|
|
5491
|
-
}
|
|
5492
|
-
},
|
|
5493
|
-
required: [
|
|
5494
|
-
"message",
|
|
5495
|
-
"status"
|
|
5496
|
-
]
|
|
5497
|
-
},
|
|
5498
|
-
{
|
|
5499
|
-
type: "object",
|
|
5500
|
-
properties: {
|
|
5501
|
-
message: {
|
|
5502
|
-
type: "string",
|
|
5503
|
-
const: "No autorizado: el contacto no pertenece al usuario autenticado."
|
|
5504
|
-
},
|
|
5505
|
-
status: {
|
|
5506
|
-
type: "integer",
|
|
5507
|
-
const: 403
|
|
5508
|
-
}
|
|
5509
|
-
},
|
|
5510
|
-
required: [
|
|
5511
|
-
"message",
|
|
5512
|
-
"status"
|
|
5513
|
-
]
|
|
5514
|
-
},
|
|
5515
|
-
{
|
|
5516
|
-
type: "object",
|
|
5517
|
-
properties: {
|
|
5518
|
-
message: {
|
|
5519
|
-
type: [
|
|
5520
|
-
"string",
|
|
5521
|
-
"null"
|
|
5522
|
-
]
|
|
5523
|
-
},
|
|
5524
|
-
status: {
|
|
5525
|
-
type: "integer",
|
|
5526
|
-
const: 422
|
|
5527
|
-
}
|
|
5528
|
-
},
|
|
5529
|
-
required: [
|
|
5530
|
-
"message",
|
|
5531
|
-
"status"
|
|
5532
|
-
]
|
|
5506
|
+
type: "object",
|
|
5507
|
+
properties: {
|
|
5508
|
+
message: {
|
|
5509
|
+
type: "string"
|
|
5533
5510
|
},
|
|
5534
|
-
{
|
|
5535
|
-
type: "
|
|
5536
|
-
properties: {
|
|
5537
|
-
message: {
|
|
5538
|
-
type: "string",
|
|
5539
|
-
const: "Custom field value attached successfully."
|
|
5540
|
-
},
|
|
5541
|
-
status: {
|
|
5542
|
-
type: "integer",
|
|
5543
|
-
const: 201
|
|
5544
|
-
}
|
|
5545
|
-
},
|
|
5546
|
-
required: [
|
|
5547
|
-
"message",
|
|
5548
|
-
"status"
|
|
5549
|
-
]
|
|
5511
|
+
status: {
|
|
5512
|
+
type: "integer"
|
|
5550
5513
|
}
|
|
5514
|
+
},
|
|
5515
|
+
required: [
|
|
5516
|
+
"message",
|
|
5517
|
+
"status"
|
|
5551
5518
|
]
|
|
5552
5519
|
}
|
|
5553
5520
|
}
|
|
@@ -5795,210 +5762,203 @@ var openapi_default = {
|
|
|
5795
5762
|
}
|
|
5796
5763
|
}
|
|
5797
5764
|
},
|
|
5765
|
+
responses: {
|
|
5766
|
+
"200": {
|
|
5767
|
+
description: "OK"
|
|
5768
|
+
},
|
|
5769
|
+
"401": {
|
|
5770
|
+
$ref: "#/components/responses/ConversationsAuthenticationException"
|
|
5771
|
+
},
|
|
5772
|
+
"402": {
|
|
5773
|
+
description: "Payment Required",
|
|
5774
|
+
content: {
|
|
5775
|
+
"application/json": {
|
|
5776
|
+
schema: {
|
|
5777
|
+
type: "object",
|
|
5778
|
+
properties: {
|
|
5779
|
+
error: {
|
|
5780
|
+
type: "string",
|
|
5781
|
+
enum: [
|
|
5782
|
+
"payment_required"
|
|
5783
|
+
]
|
|
5784
|
+
},
|
|
5785
|
+
message: {
|
|
5786
|
+
type: "string"
|
|
5787
|
+
}
|
|
5788
|
+
},
|
|
5789
|
+
required: [
|
|
5790
|
+
"error",
|
|
5791
|
+
"message"
|
|
5792
|
+
]
|
|
5793
|
+
}
|
|
5794
|
+
}
|
|
5795
|
+
}
|
|
5796
|
+
},
|
|
5797
|
+
"403": {
|
|
5798
|
+
$ref: "#/components/responses/ConversationsAuthorizationException"
|
|
5799
|
+
},
|
|
5800
|
+
"404": {
|
|
5801
|
+
$ref: "#/components/responses/ConversationsModelNotFoundException"
|
|
5802
|
+
},
|
|
5803
|
+
"422": {
|
|
5804
|
+
$ref: "#/components/responses/ConversationsValidationException"
|
|
5805
|
+
}
|
|
5806
|
+
},
|
|
5807
|
+
"x-fc-permission": "conversations:write",
|
|
5808
|
+
"x-fc-proposito": "Sirve para mantener al d\xEDa la ficha de un contacto desde tu sistema: nombre, email, tel\xE9fono, notas, asesor asignado, favorito o si puede ejecutar flujos.",
|
|
5809
|
+
"x-fc-domain": "conversations"
|
|
5810
|
+
}
|
|
5811
|
+
},
|
|
5812
|
+
"/api/v1/contacts/{contact}/tags": {
|
|
5813
|
+
get: {
|
|
5814
|
+
operationId: "contact.tags",
|
|
5815
|
+
description: "**Permiso requerido:** **Contactos y conversaciones \u2192 Ver**",
|
|
5816
|
+
summary: "Ver las etiquetas de un contacto",
|
|
5817
|
+
tags: [
|
|
5818
|
+
"Etiquetas"
|
|
5819
|
+
],
|
|
5820
|
+
parameters: [
|
|
5821
|
+
{
|
|
5822
|
+
name: "contact",
|
|
5823
|
+
in: "path",
|
|
5824
|
+
required: true,
|
|
5825
|
+
schema: {
|
|
5826
|
+
type: "integer"
|
|
5827
|
+
}
|
|
5828
|
+
},
|
|
5829
|
+
{
|
|
5830
|
+
name: "perPage",
|
|
5831
|
+
in: "query",
|
|
5832
|
+
schema: {
|
|
5833
|
+
type: "integer",
|
|
5834
|
+
default: 25,
|
|
5835
|
+
minimum: 1,
|
|
5836
|
+
maximum: 100
|
|
5837
|
+
}
|
|
5838
|
+
}
|
|
5839
|
+
],
|
|
5798
5840
|
responses: {
|
|
5799
5841
|
"200": {
|
|
5800
5842
|
description: "OK",
|
|
5801
5843
|
content: {
|
|
5802
5844
|
"application/json": {
|
|
5803
5845
|
schema: {
|
|
5804
|
-
type: "object"
|
|
5805
|
-
|
|
5806
|
-
|
|
5807
|
-
|
|
5808
|
-
|
|
5809
|
-
|
|
5810
|
-
|
|
5811
|
-
|
|
5812
|
-
|
|
5813
|
-
|
|
5814
|
-
|
|
5815
|
-
|
|
5816
|
-
|
|
5817
|
-
|
|
5818
|
-
|
|
5819
|
-
|
|
5820
|
-
|
|
5821
|
-
|
|
5822
|
-
|
|
5823
|
-
|
|
5824
|
-
|
|
5825
|
-
|
|
5826
|
-
|
|
5827
|
-
|
|
5828
|
-
|
|
5829
|
-
|
|
5830
|
-
|
|
5831
|
-
|
|
5832
|
-
|
|
5833
|
-
|
|
5834
|
-
|
|
5835
|
-
|
|
5836
|
-
|
|
5837
|
-
|
|
5838
|
-
|
|
5839
|
-
|
|
5840
|
-
|
|
5841
|
-
|
|
5842
|
-
|
|
5843
|
-
|
|
5844
|
-
|
|
5845
|
-
|
|
5846
|
-
|
|
5847
|
-
|
|
5848
|
-
|
|
5849
|
-
|
|
5850
|
-
|
|
5851
|
-
|
|
5852
|
-
|
|
5853
|
-
|
|
5854
|
-
|
|
5855
|
-
|
|
5856
|
-
|
|
5857
|
-
|
|
5858
|
-
|
|
5859
|
-
|
|
5860
|
-
|
|
5861
|
-
|
|
5862
|
-
|
|
5863
|
-
|
|
5864
|
-
|
|
5865
|
-
|
|
5866
|
-
|
|
5867
|
-
|
|
5868
|
-
|
|
5869
|
-
|
|
5870
|
-
|
|
5871
|
-
|
|
5872
|
-
|
|
5873
|
-
|
|
5874
|
-
|
|
5875
|
-
|
|
5876
|
-
|
|
5877
|
-
|
|
5878
|
-
|
|
5879
|
-
|
|
5880
|
-
|
|
5881
|
-
|
|
5882
|
-
|
|
5883
|
-
|
|
5884
|
-
|
|
5885
|
-
|
|
5886
|
-
|
|
5887
|
-
|
|
5888
|
-
|
|
5889
|
-
|
|
5890
|
-
|
|
5891
|
-
|
|
5892
|
-
|
|
5893
|
-
|
|
5894
|
-
|
|
5895
|
-
|
|
5896
|
-
|
|
5897
|
-
|
|
5898
|
-
|
|
5899
|
-
|
|
5900
|
-
|
|
5901
|
-
|
|
5902
|
-
|
|
5903
|
-
|
|
5904
|
-
|
|
5905
|
-
|
|
5906
|
-
|
|
5907
|
-
|
|
5908
|
-
|
|
5909
|
-
|
|
5910
|
-
|
|
5911
|
-
|
|
5912
|
-
|
|
5913
|
-
|
|
5914
|
-
|
|
5915
|
-
|
|
5916
|
-
|
|
5917
|
-
|
|
5918
|
-
|
|
5919
|
-
|
|
5920
|
-
}
|
|
5921
|
-
},
|
|
5922
|
-
required: [
|
|
5923
|
-
"first",
|
|
5924
|
-
"last",
|
|
5925
|
-
"prev",
|
|
5926
|
-
"next"
|
|
5927
|
-
]
|
|
5928
|
-
},
|
|
5929
|
-
meta: {
|
|
5930
|
-
type: "object",
|
|
5931
|
-
properties: {
|
|
5932
|
-
current_page: {
|
|
5933
|
-
type: "integer"
|
|
5934
|
-
},
|
|
5935
|
-
from: {
|
|
5936
|
-
type: [
|
|
5937
|
-
"integer",
|
|
5938
|
-
"null"
|
|
5939
|
-
]
|
|
5940
|
-
},
|
|
5941
|
-
last_page: {
|
|
5942
|
-
type: "integer"
|
|
5943
|
-
},
|
|
5944
|
-
links: {
|
|
5945
|
-
type: "array",
|
|
5946
|
-
items: {
|
|
5947
|
-
type: "object",
|
|
5948
|
-
properties: {
|
|
5949
|
-
url: {
|
|
5950
|
-
type: [
|
|
5951
|
-
"string",
|
|
5952
|
-
"null"
|
|
5953
|
-
]
|
|
5954
|
-
},
|
|
5955
|
-
label: {
|
|
5956
|
-
type: "string"
|
|
5957
|
-
},
|
|
5958
|
-
active: {
|
|
5959
|
-
type: "boolean"
|
|
5960
|
-
}
|
|
5961
|
-
},
|
|
5962
|
-
required: [
|
|
5963
|
-
"url",
|
|
5964
|
-
"label",
|
|
5965
|
-
"active"
|
|
5966
|
-
]
|
|
5967
|
-
}
|
|
5968
|
-
},
|
|
5969
|
-
path: {
|
|
5970
|
-
type: "string"
|
|
5971
|
-
},
|
|
5972
|
-
per_page: {
|
|
5973
|
-
type: "integer"
|
|
5974
|
-
},
|
|
5975
|
-
to: {
|
|
5976
|
-
type: [
|
|
5977
|
-
"integer",
|
|
5978
|
-
"null"
|
|
5979
|
-
]
|
|
5980
|
-
},
|
|
5981
|
-
total: {
|
|
5982
|
-
type: "integer"
|
|
5983
|
-
}
|
|
5984
|
-
},
|
|
5985
|
-
required: [
|
|
5986
|
-
"current_page",
|
|
5987
|
-
"from",
|
|
5988
|
-
"last_page",
|
|
5989
|
-
"links",
|
|
5990
|
-
"path",
|
|
5991
|
-
"per_page",
|
|
5992
|
-
"to",
|
|
5993
|
-
"total"
|
|
5994
|
-
]
|
|
5995
|
-
}
|
|
5996
|
-
},
|
|
5997
|
-
required: [
|
|
5998
|
-
"data",
|
|
5999
|
-
"links",
|
|
6000
|
-
"meta"
|
|
6001
|
-
]
|
|
5846
|
+
type: "object",
|
|
5847
|
+
properties: {
|
|
5848
|
+
data: {
|
|
5849
|
+
type: "array",
|
|
5850
|
+
items: {
|
|
5851
|
+
$ref: "#/components/schemas/ContactTagResource"
|
|
5852
|
+
}
|
|
5853
|
+
},
|
|
5854
|
+
links: {
|
|
5855
|
+
type: "object",
|
|
5856
|
+
properties: {
|
|
5857
|
+
first: {
|
|
5858
|
+
type: [
|
|
5859
|
+
"string",
|
|
5860
|
+
"null"
|
|
5861
|
+
]
|
|
5862
|
+
},
|
|
5863
|
+
last: {
|
|
5864
|
+
type: [
|
|
5865
|
+
"string",
|
|
5866
|
+
"null"
|
|
5867
|
+
]
|
|
5868
|
+
},
|
|
5869
|
+
prev: {
|
|
5870
|
+
type: [
|
|
5871
|
+
"string",
|
|
5872
|
+
"null"
|
|
5873
|
+
]
|
|
5874
|
+
},
|
|
5875
|
+
next: {
|
|
5876
|
+
type: [
|
|
5877
|
+
"string",
|
|
5878
|
+
"null"
|
|
5879
|
+
]
|
|
5880
|
+
}
|
|
5881
|
+
},
|
|
5882
|
+
required: [
|
|
5883
|
+
"first",
|
|
5884
|
+
"last",
|
|
5885
|
+
"prev",
|
|
5886
|
+
"next"
|
|
5887
|
+
]
|
|
5888
|
+
},
|
|
5889
|
+
meta: {
|
|
5890
|
+
type: "object",
|
|
5891
|
+
properties: {
|
|
5892
|
+
current_page: {
|
|
5893
|
+
type: "integer"
|
|
5894
|
+
},
|
|
5895
|
+
from: {
|
|
5896
|
+
type: [
|
|
5897
|
+
"integer",
|
|
5898
|
+
"null"
|
|
5899
|
+
]
|
|
5900
|
+
},
|
|
5901
|
+
last_page: {
|
|
5902
|
+
type: "integer"
|
|
5903
|
+
},
|
|
5904
|
+
links: {
|
|
5905
|
+
type: "array",
|
|
5906
|
+
items: {
|
|
5907
|
+
type: "object",
|
|
5908
|
+
properties: {
|
|
5909
|
+
url: {
|
|
5910
|
+
type: [
|
|
5911
|
+
"string",
|
|
5912
|
+
"null"
|
|
5913
|
+
]
|
|
5914
|
+
},
|
|
5915
|
+
label: {
|
|
5916
|
+
type: "string"
|
|
5917
|
+
},
|
|
5918
|
+
active: {
|
|
5919
|
+
type: "boolean"
|
|
5920
|
+
}
|
|
5921
|
+
},
|
|
5922
|
+
required: [
|
|
5923
|
+
"url",
|
|
5924
|
+
"label",
|
|
5925
|
+
"active"
|
|
5926
|
+
]
|
|
5927
|
+
}
|
|
5928
|
+
},
|
|
5929
|
+
path: {
|
|
5930
|
+
type: "string"
|
|
5931
|
+
},
|
|
5932
|
+
per_page: {
|
|
5933
|
+
type: "integer"
|
|
5934
|
+
},
|
|
5935
|
+
to: {
|
|
5936
|
+
type: [
|
|
5937
|
+
"integer",
|
|
5938
|
+
"null"
|
|
5939
|
+
]
|
|
5940
|
+
},
|
|
5941
|
+
total: {
|
|
5942
|
+
type: "integer"
|
|
5943
|
+
}
|
|
5944
|
+
},
|
|
5945
|
+
required: [
|
|
5946
|
+
"current_page",
|
|
5947
|
+
"from",
|
|
5948
|
+
"last_page",
|
|
5949
|
+
"links",
|
|
5950
|
+
"path",
|
|
5951
|
+
"per_page",
|
|
5952
|
+
"to",
|
|
5953
|
+
"total"
|
|
5954
|
+
]
|
|
5955
|
+
}
|
|
5956
|
+
},
|
|
5957
|
+
required: [
|
|
5958
|
+
"data",
|
|
5959
|
+
"links",
|
|
5960
|
+
"meta"
|
|
5961
|
+
]
|
|
6002
5962
|
}
|
|
6003
5963
|
}
|
|
6004
5964
|
}
|
|
@@ -6836,14 +6796,7 @@ var openapi_default = {
|
|
|
6836
6796
|
},
|
|
6837
6797
|
responses: {
|
|
6838
6798
|
"200": {
|
|
6839
|
-
description: "OK"
|
|
6840
|
-
content: {
|
|
6841
|
-
"application/json": {
|
|
6842
|
-
schema: {
|
|
6843
|
-
type: "null"
|
|
6844
|
-
}
|
|
6845
|
-
}
|
|
6846
|
-
}
|
|
6799
|
+
description: "OK"
|
|
6847
6800
|
},
|
|
6848
6801
|
"401": {
|
|
6849
6802
|
$ref: "#/components/responses/ConversationsAuthenticationException"
|
|
@@ -7154,7 +7107,7 @@ var openapi_default = {
|
|
|
7154
7107
|
"/api/v1/contacts/{contact}/message/contact-card": {
|
|
7155
7108
|
post: {
|
|
7156
7109
|
operationId: "contactCard.store",
|
|
7157
|
-
description: "**Permiso requerido:** **Contactos y conversaciones \u2192 Enviar**\n\nSi el l\xEDmite de contactos activos (MAC) frena el env\xEDo, responde `429` con `error` = `mac_lockout_24h` o `mac_limit_reached` y sin `Retry-After`: reintentar no sirve hasta que sumes capacidad o empiece un ciclo nuevo. El env\xEDo no sale
|
|
7110
|
+
description: "**Permiso requerido:** **Contactos y conversaciones \u2192 Enviar**\n\nSi el l\xEDmite de contactos activos (MAC) frena el env\xEDo, responde `429` con `error` = `mac_lockout_24h` o `mac_limit_reached` y sin `Retry-After`: reintentar no sirve hasta que sumes capacidad o empiece un ciclo nuevo. El env\xEDo no sale y no se guarda ning\xFAn mensaje ni tu `client_reference`: no queda nada en el historial del contacto. Detalle en \xABErrores y l\xEDmites\xBB.",
|
|
7158
7111
|
summary: "Mandar una tarjeta de contacto",
|
|
7159
7112
|
tags: [
|
|
7160
7113
|
"Atender una conversaci\xF3n"
|
|
@@ -7380,7 +7333,7 @@ var openapi_default = {
|
|
|
7380
7333
|
properties: {
|
|
7381
7334
|
error: {
|
|
7382
7335
|
type: "string",
|
|
7383
|
-
description: "C\xF3digo estable del error: es lo que se compara. `message` es para personas y puede cambiar.",
|
|
7336
|
+
description: "C\xF3digo estable del error: es lo que se compara. `message` es para personas y puede cambiar. Con este status, el portero tambi\xE9n puede devolver `gate_misconfigured`.",
|
|
7384
7337
|
examples: [
|
|
7385
7338
|
"internal_error"
|
|
7386
7339
|
]
|
|
@@ -8196,11 +8149,17 @@ var openapi_default = {
|
|
|
8196
8149
|
properties: {
|
|
8197
8150
|
error: {
|
|
8198
8151
|
type: "string",
|
|
8199
|
-
|
|
8152
|
+
enum: [
|
|
8153
|
+
"internal_error"
|
|
8154
|
+
]
|
|
8155
|
+
},
|
|
8156
|
+
message: {
|
|
8157
|
+
type: "string"
|
|
8200
8158
|
}
|
|
8201
8159
|
},
|
|
8202
8160
|
required: [
|
|
8203
|
-
"error"
|
|
8161
|
+
"error",
|
|
8162
|
+
"message"
|
|
8204
8163
|
]
|
|
8205
8164
|
}
|
|
8206
8165
|
}
|
|
@@ -8459,11 +8418,18 @@ var openapi_default = {
|
|
|
8459
8418
|
type: "object",
|
|
8460
8419
|
properties: {
|
|
8461
8420
|
count: {
|
|
8462
|
-
|
|
8463
|
-
|
|
8464
|
-
|
|
8465
|
-
|
|
8466
|
-
|
|
8421
|
+
anyOf: [
|
|
8422
|
+
{
|
|
8423
|
+
type: "null"
|
|
8424
|
+
},
|
|
8425
|
+
{
|
|
8426
|
+
type: "integer",
|
|
8427
|
+
minimum: 0
|
|
8428
|
+
},
|
|
8429
|
+
{
|
|
8430
|
+
type: "integer"
|
|
8431
|
+
}
|
|
8432
|
+
]
|
|
8467
8433
|
}
|
|
8468
8434
|
},
|
|
8469
8435
|
required: [
|
|
@@ -8800,7 +8766,7 @@ var openapi_default = {
|
|
|
8800
8766
|
"/api/v1/contacts/{contact}/message": {
|
|
8801
8767
|
post: {
|
|
8802
8768
|
operationId: "conversation.sendMessage",
|
|
8803
|
-
description: "**Permiso requerido:** **Contactos y conversaciones \u2192 Enviar**\n\nSi el l\xEDmite de contactos activos (MAC) frena el env\xEDo, responde `429` con `error` = `mac_lockout_24h` o `mac_limit_reached` y sin `Retry-After`: reintentar no sirve hasta que sumes capacidad o empiece un ciclo nuevo. El env\xEDo no sale
|
|
8769
|
+
description: "**Permiso requerido:** **Contactos y conversaciones \u2192 Enviar**\n\nSi el l\xEDmite de contactos activos (MAC) frena el env\xEDo, responde `429` con `error` = `mac_lockout_24h` o `mac_limit_reached` y sin `Retry-After`: reintentar no sirve hasta que sumes capacidad o empiece un ciclo nuevo. El env\xEDo no sale y no se guarda ning\xFAn mensaje ni tu `client_reference`: no queda nada en el historial del contacto. Detalle en \xABErrores y l\xEDmites\xBB.",
|
|
8804
8770
|
summary: "Mandar un mensaje a un contacto",
|
|
8805
8771
|
tags: [
|
|
8806
8772
|
"Atender una conversaci\xF3n"
|
|
@@ -8878,6 +8844,37 @@ var openapi_default = {
|
|
|
8878
8844
|
"404": {
|
|
8879
8845
|
$ref: "#/components/responses/ConversationsModelNotFoundException"
|
|
8880
8846
|
},
|
|
8847
|
+
"415": {
|
|
8848
|
+
description: "Unsupported Media Type",
|
|
8849
|
+
content: {
|
|
8850
|
+
"application/json": {
|
|
8851
|
+
schema: {
|
|
8852
|
+
type: "object",
|
|
8853
|
+
properties: {
|
|
8854
|
+
error: {
|
|
8855
|
+
type: "string",
|
|
8856
|
+
enum: [
|
|
8857
|
+
"bad_request"
|
|
8858
|
+
]
|
|
8859
|
+
},
|
|
8860
|
+
message: {
|
|
8861
|
+
type: "string"
|
|
8862
|
+
},
|
|
8863
|
+
supported_file_types: {
|
|
8864
|
+
type: "array",
|
|
8865
|
+
items: {
|
|
8866
|
+
type: "string"
|
|
8867
|
+
}
|
|
8868
|
+
}
|
|
8869
|
+
},
|
|
8870
|
+
required: [
|
|
8871
|
+
"error",
|
|
8872
|
+
"message"
|
|
8873
|
+
]
|
|
8874
|
+
}
|
|
8875
|
+
}
|
|
8876
|
+
}
|
|
8877
|
+
},
|
|
8881
8878
|
"422": {
|
|
8882
8879
|
description: "Unprocessable Content",
|
|
8883
8880
|
content: {
|
|
@@ -9001,7 +8998,7 @@ var openapi_default = {
|
|
|
9001
8998
|
properties: {
|
|
9002
8999
|
error: {
|
|
9003
9000
|
type: "string",
|
|
9004
|
-
description: "C\xF3digo estable del error: es lo que se compara. `message` es para personas y puede cambiar.",
|
|
9001
|
+
description: "C\xF3digo estable del error: es lo que se compara. `message` es para personas y puede cambiar. Con este status, el portero tambi\xE9n puede devolver `gate_misconfigured`.",
|
|
9005
9002
|
examples: [
|
|
9006
9003
|
"internal_error"
|
|
9007
9004
|
]
|
|
@@ -9574,14 +9571,7 @@ var openapi_default = {
|
|
|
9574
9571
|
},
|
|
9575
9572
|
responses: {
|
|
9576
9573
|
"200": {
|
|
9577
|
-
description: "OK"
|
|
9578
|
-
content: {
|
|
9579
|
-
"application/json": {
|
|
9580
|
-
schema: {
|
|
9581
|
-
type: "object"
|
|
9582
|
-
}
|
|
9583
|
-
}
|
|
9584
|
-
}
|
|
9574
|
+
description: "OK"
|
|
9585
9575
|
},
|
|
9586
9576
|
"401": {
|
|
9587
9577
|
$ref: "#/components/responses/ConversationsAuthenticationException"
|
|
@@ -11687,14 +11677,7 @@ var openapi_default = {
|
|
|
11687
11677
|
},
|
|
11688
11678
|
responses: {
|
|
11689
11679
|
"200": {
|
|
11690
|
-
description: "OK"
|
|
11691
|
-
content: {
|
|
11692
|
-
"application/json": {
|
|
11693
|
-
schema: {
|
|
11694
|
-
type: "object"
|
|
11695
|
-
}
|
|
11696
|
-
}
|
|
11697
|
-
}
|
|
11680
|
+
description: "OK"
|
|
11698
11681
|
},
|
|
11699
11682
|
"401": {
|
|
11700
11683
|
$ref: "#/components/responses/ConversationsAuthenticationException"
|
|
@@ -11757,14 +11740,7 @@ var openapi_default = {
|
|
|
11757
11740
|
],
|
|
11758
11741
|
responses: {
|
|
11759
11742
|
"200": {
|
|
11760
|
-
description: "OK"
|
|
11761
|
-
content: {
|
|
11762
|
-
"application/json": {
|
|
11763
|
-
schema: {
|
|
11764
|
-
type: "object"
|
|
11765
|
-
}
|
|
11766
|
-
}
|
|
11767
|
-
}
|
|
11743
|
+
description: "OK"
|
|
11768
11744
|
},
|
|
11769
11745
|
"401": {
|
|
11770
11746
|
$ref: "#/components/responses/ConversationsAuthenticationException"
|
|
@@ -12053,7 +12029,7 @@ var openapi_default = {
|
|
|
12053
12029
|
properties: {
|
|
12054
12030
|
error: {
|
|
12055
12031
|
type: "string",
|
|
12056
|
-
description: "C\xF3digo estable del error: es lo que se compara. `message` es para personas y puede cambiar.",
|
|
12032
|
+
description: "C\xF3digo estable del error: es lo que se compara. `message` es para personas y puede cambiar. Con este status, el portero tambi\xE9n puede devolver `gate_misconfigured`.",
|
|
12057
12033
|
examples: [
|
|
12058
12034
|
"internal_error"
|
|
12059
12035
|
]
|
|
@@ -14110,9 +14086,6 @@ var openapi_default = {
|
|
|
14110
14086
|
"application/json": {
|
|
14111
14087
|
schema: {
|
|
14112
14088
|
anyOf: [
|
|
14113
|
-
{
|
|
14114
|
-
type: "string"
|
|
14115
|
-
},
|
|
14116
14089
|
{
|
|
14117
14090
|
type: "object",
|
|
14118
14091
|
properties: {
|
|
@@ -14120,39 +14093,28 @@ var openapi_default = {
|
|
|
14120
14093
|
type: "boolean"
|
|
14121
14094
|
},
|
|
14122
14095
|
unlimited: {
|
|
14123
|
-
type: "
|
|
14096
|
+
type: "boolean"
|
|
14124
14097
|
},
|
|
14125
14098
|
current_count: {
|
|
14126
|
-
type: "integer"
|
|
14127
|
-
const: 0
|
|
14099
|
+
type: "integer"
|
|
14128
14100
|
},
|
|
14129
14101
|
limit: {
|
|
14130
14102
|
type: [
|
|
14131
14103
|
"integer",
|
|
14132
14104
|
"null"
|
|
14133
|
-
],
|
|
14134
|
-
enum: [
|
|
14135
|
-
0,
|
|
14136
|
-
null
|
|
14137
14105
|
]
|
|
14138
14106
|
},
|
|
14139
14107
|
remaining: {
|
|
14140
14108
|
type: [
|
|
14141
14109
|
"integer",
|
|
14142
14110
|
"null"
|
|
14143
|
-
],
|
|
14144
|
-
enum: [
|
|
14145
|
-
0,
|
|
14146
|
-
null
|
|
14147
14111
|
]
|
|
14148
14112
|
},
|
|
14149
14113
|
usage_percentage: {
|
|
14150
|
-
type: "integer"
|
|
14151
|
-
const: 0
|
|
14114
|
+
type: "integer"
|
|
14152
14115
|
},
|
|
14153
14116
|
state: {
|
|
14154
|
-
type: "string"
|
|
14155
|
-
const: "normal"
|
|
14117
|
+
type: "string"
|
|
14156
14118
|
},
|
|
14157
14119
|
grace: {
|
|
14158
14120
|
type: "null"
|
|
@@ -14172,6 +14134,159 @@ var openapi_default = {
|
|
|
14172
14134
|
"grace",
|
|
14173
14135
|
"period_start"
|
|
14174
14136
|
]
|
|
14137
|
+
},
|
|
14138
|
+
{
|
|
14139
|
+
type: "object",
|
|
14140
|
+
properties: {
|
|
14141
|
+
mac_count: {
|
|
14142
|
+
type: "integer"
|
|
14143
|
+
},
|
|
14144
|
+
mac_limit: {
|
|
14145
|
+
type: [
|
|
14146
|
+
"integer",
|
|
14147
|
+
"null"
|
|
14148
|
+
]
|
|
14149
|
+
},
|
|
14150
|
+
cycle_capacity: {
|
|
14151
|
+
type: [
|
|
14152
|
+
"integer",
|
|
14153
|
+
"null"
|
|
14154
|
+
]
|
|
14155
|
+
},
|
|
14156
|
+
accumulated_available: {
|
|
14157
|
+
type: [
|
|
14158
|
+
"integer",
|
|
14159
|
+
"null"
|
|
14160
|
+
]
|
|
14161
|
+
},
|
|
14162
|
+
total_available: {
|
|
14163
|
+
type: [
|
|
14164
|
+
"integer",
|
|
14165
|
+
"null"
|
|
14166
|
+
]
|
|
14167
|
+
},
|
|
14168
|
+
usage_percentage: {
|
|
14169
|
+
type: "number"
|
|
14170
|
+
},
|
|
14171
|
+
enforcement_enabled: {
|
|
14172
|
+
type: "boolean"
|
|
14173
|
+
},
|
|
14174
|
+
alert_level: {
|
|
14175
|
+
type: [
|
|
14176
|
+
"string",
|
|
14177
|
+
"null"
|
|
14178
|
+
]
|
|
14179
|
+
},
|
|
14180
|
+
expiring_buckets: {
|
|
14181
|
+
type: "array",
|
|
14182
|
+
items: {
|
|
14183
|
+
type: "object",
|
|
14184
|
+
properties: {
|
|
14185
|
+
amount: {
|
|
14186
|
+
type: "integer"
|
|
14187
|
+
},
|
|
14188
|
+
expires_in_days: {
|
|
14189
|
+
type: "integer"
|
|
14190
|
+
}
|
|
14191
|
+
},
|
|
14192
|
+
required: [
|
|
14193
|
+
"amount",
|
|
14194
|
+
"expires_in_days"
|
|
14195
|
+
]
|
|
14196
|
+
}
|
|
14197
|
+
},
|
|
14198
|
+
buckets: {
|
|
14199
|
+
type: "array",
|
|
14200
|
+
items: {
|
|
14201
|
+
type: "object",
|
|
14202
|
+
properties: {
|
|
14203
|
+
source: {
|
|
14204
|
+
type: "string"
|
|
14205
|
+
},
|
|
14206
|
+
macs_remaining: {
|
|
14207
|
+
type: "integer"
|
|
14208
|
+
},
|
|
14209
|
+
expires_at: {
|
|
14210
|
+
type: "string"
|
|
14211
|
+
}
|
|
14212
|
+
},
|
|
14213
|
+
required: [
|
|
14214
|
+
"source",
|
|
14215
|
+
"macs_remaining",
|
|
14216
|
+
"expires_at"
|
|
14217
|
+
]
|
|
14218
|
+
}
|
|
14219
|
+
},
|
|
14220
|
+
state: {
|
|
14221
|
+
type: "string"
|
|
14222
|
+
},
|
|
14223
|
+
grace: {
|
|
14224
|
+
type: [
|
|
14225
|
+
"object",
|
|
14226
|
+
"null"
|
|
14227
|
+
],
|
|
14228
|
+
properties: {
|
|
14229
|
+
grace_period_id: {
|
|
14230
|
+
type: [
|
|
14231
|
+
"integer",
|
|
14232
|
+
"null"
|
|
14233
|
+
]
|
|
14234
|
+
},
|
|
14235
|
+
started_at: {
|
|
14236
|
+
type: [
|
|
14237
|
+
"string",
|
|
14238
|
+
"null"
|
|
14239
|
+
]
|
|
14240
|
+
},
|
|
14241
|
+
expires_at: {
|
|
14242
|
+
type: [
|
|
14243
|
+
"string",
|
|
14244
|
+
"null"
|
|
14245
|
+
]
|
|
14246
|
+
},
|
|
14247
|
+
seconds_remaining: {
|
|
14248
|
+
type: "integer"
|
|
14249
|
+
},
|
|
14250
|
+
end_reason: {
|
|
14251
|
+
type: [
|
|
14252
|
+
"string",
|
|
14253
|
+
"null"
|
|
14254
|
+
]
|
|
14255
|
+
}
|
|
14256
|
+
},
|
|
14257
|
+
required: [
|
|
14258
|
+
"grace_period_id",
|
|
14259
|
+
"started_at",
|
|
14260
|
+
"expires_at",
|
|
14261
|
+
"seconds_remaining",
|
|
14262
|
+
"end_reason"
|
|
14263
|
+
]
|
|
14264
|
+
},
|
|
14265
|
+
unlimited: {
|
|
14266
|
+
type: "boolean"
|
|
14267
|
+
},
|
|
14268
|
+
workspace_id: {
|
|
14269
|
+
type: "integer"
|
|
14270
|
+
},
|
|
14271
|
+
inactive_contacts_count: {
|
|
14272
|
+
type: "integer"
|
|
14273
|
+
}
|
|
14274
|
+
},
|
|
14275
|
+
required: [
|
|
14276
|
+
"mac_count",
|
|
14277
|
+
"mac_limit",
|
|
14278
|
+
"cycle_capacity",
|
|
14279
|
+
"accumulated_available",
|
|
14280
|
+
"total_available",
|
|
14281
|
+
"usage_percentage",
|
|
14282
|
+
"enforcement_enabled",
|
|
14283
|
+
"alert_level",
|
|
14284
|
+
"expiring_buckets",
|
|
14285
|
+
"buckets",
|
|
14286
|
+
"state",
|
|
14287
|
+
"grace",
|
|
14288
|
+
"unlimited"
|
|
14289
|
+
]
|
|
14175
14290
|
}
|
|
14176
14291
|
]
|
|
14177
14292
|
}
|
|
@@ -14680,7 +14795,7 @@ var openapi_default = {
|
|
|
14680
14795
|
"/api/v1/message/send-message": {
|
|
14681
14796
|
post: {
|
|
14682
14797
|
operationId: "message.sendMessage",
|
|
14683
|
-
description: "**Permiso requerido:** **Contactos y conversaciones \u2192 Enviar**\n\nIndica a qui\xE9n env\xEDas con `phone`: el tel\xE9fono con c\xF3digo de pa\xEDs, por ejemplo `5491122334455`. No hace falta crear el contacto antes: si ese tel\xE9fono todav\xEDa no es un contacto de tu cuenta, se crea en el workspace de tu clave, igual que con `POST /contacts/update-or-create` y con el mismo permiso, que **Enviar** ya incluye. La respuesta trae su id en `message.contact_id`, el mismo que llevan los eventos `message.status_changed`. Si el tel\xE9fono no es v\xE1lido, o ya es un contacto de otro workspace de tu cuenta, la respuesta es la misma que dar\xEDa `POST /contacts/update-or-create`: 422, o 404 sin datos de ese contacto. Con un n\xFAmero oficial de WhatsApp (API Cloud) tambi\xE9n puedes indicar `whatsapp_id`, el BSUID que env\xEDa Meta (por ejemplo `US.13491208655302741918`), en lugar de `phone`; usado as\xED con un n\xFAmero conectado por QR, responde 422. En un n\xFAmero oficial, el primer mensaje a un contacto nuevo tiene que ser una plantilla: un mensaje libre solo sale dentro de las 24 horas desde que el contacto te escribi\xF3. Si ya tienes el `contact_id`, puedes seguir envi\xE1ndolo: si junto con \xE9l mandas `phone` o `whatsapp_id`, tienen que ser de ese mismo contacto (si no, 422 `recipient_mismatch`). En `send-template`, `phone` o `whatsapp_id` va siempre, con o sin `contact_id`.\n\nSi el l\xEDmite de contactos activos (MAC) frena el env\xEDo, responde `429` con `error` = `mac_lockout_24h` o `mac_limit_reached` y sin `Retry-After`: reintentar no sirve hasta que sumes capacidad o empiece un ciclo nuevo. El env\xEDo no sale
|
|
14798
|
+
description: "**Permiso requerido:** **Contactos y conversaciones \u2192 Enviar**\n\nIndica a qui\xE9n env\xEDas con `phone`: el tel\xE9fono con c\xF3digo de pa\xEDs, por ejemplo `5491122334455`. No hace falta crear el contacto antes: si ese tel\xE9fono todav\xEDa no es un contacto de tu cuenta, se crea en el workspace de tu clave, igual que con `POST /contacts/update-or-create` y con el mismo permiso, que **Enviar** ya incluye. La respuesta trae su id en `message.contact_id`, el mismo que llevan los eventos `message.status_changed`. Si el tel\xE9fono no es v\xE1lido, o ya es un contacto de otro workspace de tu cuenta, la respuesta es la misma que dar\xEDa `POST /contacts/update-or-create`: 422, o 404 sin datos de ese contacto. Con un n\xFAmero oficial de WhatsApp (API Cloud) tambi\xE9n puedes indicar `whatsapp_id`, el BSUID que env\xEDa Meta (por ejemplo `US.13491208655302741918`), en lugar de `phone`; usado as\xED con un n\xFAmero conectado por QR, responde 422. En un n\xFAmero oficial, el primer mensaje a un contacto nuevo tiene que ser una plantilla: un mensaje libre solo sale dentro de las 24 horas desde que el contacto te escribi\xF3. Si ya tienes el `contact_id`, puedes seguir envi\xE1ndolo: si junto con \xE9l mandas `phone` o `whatsapp_id`, tienen que ser de ese mismo contacto (si no, 422 `recipient_mismatch`). En `send-template`, `phone` o `whatsapp_id` va siempre, con o sin `contact_id`.\n\nSi el l\xEDmite de contactos activos (MAC) frena el env\xEDo, responde `429` con `error` = `mac_lockout_24h` o `mac_limit_reached` y sin `Retry-After`: reintentar no sirve hasta que sumes capacidad o empiece un ciclo nuevo. El env\xEDo no sale y no se guarda ning\xFAn mensaje ni tu `client_reference`: no queda nada en el historial del contacto. Detalle en \xABErrores y l\xEDmites\xBB.",
|
|
14684
14799
|
summary: "Mandar un mensaje",
|
|
14685
14800
|
tags: [
|
|
14686
14801
|
"Mensajes"
|
|
@@ -14750,36 +14865,58 @@ var openapi_default = {
|
|
|
14750
14865
|
content: {
|
|
14751
14866
|
"application/json": {
|
|
14752
14867
|
schema: {
|
|
14753
|
-
|
|
14754
|
-
|
|
14755
|
-
|
|
14756
|
-
|
|
14757
|
-
|
|
14758
|
-
|
|
14759
|
-
enum: [
|
|
14760
|
-
"error"
|
|
14761
|
-
]
|
|
14762
|
-
},
|
|
14763
|
-
error: {
|
|
14764
|
-
type: "string"
|
|
14765
|
-
}
|
|
14766
|
-
},
|
|
14767
|
-
required: [
|
|
14768
|
-
"status",
|
|
14769
|
-
"error"
|
|
14868
|
+
type: "object",
|
|
14869
|
+
properties: {
|
|
14870
|
+
error: {
|
|
14871
|
+
type: "string",
|
|
14872
|
+
enum: [
|
|
14873
|
+
"not_found"
|
|
14770
14874
|
]
|
|
14771
14875
|
},
|
|
14772
|
-
{
|
|
14773
|
-
type: "
|
|
14774
|
-
|
|
14775
|
-
|
|
14776
|
-
|
|
14777
|
-
|
|
14778
|
-
|
|
14779
|
-
|
|
14780
|
-
|
|
14876
|
+
message: {
|
|
14877
|
+
type: "string"
|
|
14878
|
+
},
|
|
14879
|
+
status: {
|
|
14880
|
+
type: "string",
|
|
14881
|
+
enum: [
|
|
14882
|
+
"error"
|
|
14883
|
+
]
|
|
14884
|
+
}
|
|
14885
|
+
},
|
|
14886
|
+
required: [
|
|
14887
|
+
"error",
|
|
14888
|
+
"message"
|
|
14889
|
+
]
|
|
14890
|
+
}
|
|
14891
|
+
}
|
|
14892
|
+
}
|
|
14893
|
+
},
|
|
14894
|
+
"415": {
|
|
14895
|
+
description: "Unsupported Media Type",
|
|
14896
|
+
content: {
|
|
14897
|
+
"application/json": {
|
|
14898
|
+
schema: {
|
|
14899
|
+
type: "object",
|
|
14900
|
+
properties: {
|
|
14901
|
+
error: {
|
|
14902
|
+
type: "string",
|
|
14903
|
+
enum: [
|
|
14904
|
+
"bad_request"
|
|
14781
14905
|
]
|
|
14906
|
+
},
|
|
14907
|
+
message: {
|
|
14908
|
+
type: "string"
|
|
14909
|
+
},
|
|
14910
|
+
supported_file_types: {
|
|
14911
|
+
type: "array",
|
|
14912
|
+
items: {
|
|
14913
|
+
type: "string"
|
|
14914
|
+
}
|
|
14782
14915
|
}
|
|
14916
|
+
},
|
|
14917
|
+
required: [
|
|
14918
|
+
"error",
|
|
14919
|
+
"message"
|
|
14783
14920
|
]
|
|
14784
14921
|
}
|
|
14785
14922
|
}
|
|
@@ -14908,7 +15045,7 @@ var openapi_default = {
|
|
|
14908
15045
|
properties: {
|
|
14909
15046
|
error: {
|
|
14910
15047
|
type: "string",
|
|
14911
|
-
description: "C\xF3digo estable del error: es lo que se compara. `message` es para personas y puede cambiar.",
|
|
15048
|
+
description: "C\xF3digo estable del error: es lo que se compara. `message` es para personas y puede cambiar. Con este status, el portero tambi\xE9n puede devolver `gate_misconfigured`.",
|
|
14912
15049
|
examples: [
|
|
14913
15050
|
"internal_error"
|
|
14914
15051
|
]
|
|
@@ -15247,6 +15384,12 @@ var openapi_default = {
|
|
|
15247
15384
|
{
|
|
15248
15385
|
type: "object",
|
|
15249
15386
|
properties: {
|
|
15387
|
+
error: {
|
|
15388
|
+
type: "string",
|
|
15389
|
+
examples: [
|
|
15390
|
+
"validation_failed"
|
|
15391
|
+
]
|
|
15392
|
+
},
|
|
15250
15393
|
message: {
|
|
15251
15394
|
type: "string"
|
|
15252
15395
|
},
|
|
@@ -15255,6 +15398,7 @@ var openapi_default = {
|
|
|
15255
15398
|
}
|
|
15256
15399
|
},
|
|
15257
15400
|
required: [
|
|
15401
|
+
"error",
|
|
15258
15402
|
"message",
|
|
15259
15403
|
"errors"
|
|
15260
15404
|
]
|
|
@@ -15801,31 +15945,21 @@ var openapi_default = {
|
|
|
15801
15945
|
content: {
|
|
15802
15946
|
"application/json": {
|
|
15803
15947
|
schema: {
|
|
15804
|
-
|
|
15805
|
-
|
|
15806
|
-
|
|
15807
|
-
|
|
15808
|
-
|
|
15809
|
-
|
|
15810
|
-
const: "Approved templates can be edited up to 10 times in a 30-day period or once in a 24-hour period."
|
|
15811
|
-
}
|
|
15812
|
-
},
|
|
15813
|
-
required: [
|
|
15814
|
-
"error"
|
|
15948
|
+
type: "object",
|
|
15949
|
+
properties: {
|
|
15950
|
+
error: {
|
|
15951
|
+
type: "string",
|
|
15952
|
+
enum: [
|
|
15953
|
+
"bad_request"
|
|
15815
15954
|
]
|
|
15816
15955
|
},
|
|
15817
|
-
{
|
|
15818
|
-
type: "
|
|
15819
|
-
properties: {
|
|
15820
|
-
error: {
|
|
15821
|
-
type: "string",
|
|
15822
|
-
const: "Templates with pending status cannot be updated."
|
|
15823
|
-
}
|
|
15824
|
-
},
|
|
15825
|
-
required: [
|
|
15826
|
-
"error"
|
|
15827
|
-
]
|
|
15956
|
+
message: {
|
|
15957
|
+
type: "string"
|
|
15828
15958
|
}
|
|
15959
|
+
},
|
|
15960
|
+
required: [
|
|
15961
|
+
"error",
|
|
15962
|
+
"message"
|
|
15829
15963
|
]
|
|
15830
15964
|
}
|
|
15831
15965
|
}
|
|
@@ -16263,50 +16397,22 @@ var openapi_default = {
|
|
|
16263
16397
|
content: {
|
|
16264
16398
|
"application/json": {
|
|
16265
16399
|
schema: {
|
|
16266
|
-
|
|
16267
|
-
|
|
16268
|
-
|
|
16269
|
-
|
|
16270
|
-
|
|
16271
|
-
|
|
16272
|
-
|
|
16273
|
-
"template_not_found"
|
|
16274
|
-
]
|
|
16275
|
-
},
|
|
16276
|
-
message: {
|
|
16277
|
-
type: "string"
|
|
16278
|
-
}
|
|
16279
|
-
},
|
|
16280
|
-
required: [
|
|
16281
|
-
"error",
|
|
16282
|
-
"message"
|
|
16283
|
-
]
|
|
16284
|
-
},
|
|
16285
|
-
{
|
|
16286
|
-
type: "object",
|
|
16287
|
-
properties: {
|
|
16288
|
-
error: {
|
|
16289
|
-
type: "string",
|
|
16290
|
-
enum: [
|
|
16291
|
-
"Contact not found"
|
|
16292
|
-
]
|
|
16293
|
-
}
|
|
16294
|
-
},
|
|
16295
|
-
required: [
|
|
16296
|
-
"error"
|
|
16400
|
+
type: "object",
|
|
16401
|
+
properties: {
|
|
16402
|
+
error: {
|
|
16403
|
+
type: "string",
|
|
16404
|
+
enum: [
|
|
16405
|
+
"template_not_found",
|
|
16406
|
+
"not_found"
|
|
16297
16407
|
]
|
|
16298
16408
|
},
|
|
16299
|
-
{
|
|
16300
|
-
type: "
|
|
16301
|
-
properties: {
|
|
16302
|
-
message: {
|
|
16303
|
-
type: "string"
|
|
16304
|
-
}
|
|
16305
|
-
},
|
|
16306
|
-
required: [
|
|
16307
|
-
"message"
|
|
16308
|
-
]
|
|
16409
|
+
message: {
|
|
16410
|
+
type: "string"
|
|
16309
16411
|
}
|
|
16412
|
+
},
|
|
16413
|
+
required: [
|
|
16414
|
+
"error",
|
|
16415
|
+
"message"
|
|
16310
16416
|
]
|
|
16311
16417
|
}
|
|
16312
16418
|
}
|
|
@@ -16415,6 +16521,24 @@ var openapi_default = {
|
|
|
16415
16521
|
"placeholders",
|
|
16416
16522
|
"count"
|
|
16417
16523
|
]
|
|
16524
|
+
},
|
|
16525
|
+
{
|
|
16526
|
+
type: "object",
|
|
16527
|
+
properties: {
|
|
16528
|
+
error: {
|
|
16529
|
+
type: "string",
|
|
16530
|
+
enum: [
|
|
16531
|
+
"template_waba_mismatch"
|
|
16532
|
+
]
|
|
16533
|
+
},
|
|
16534
|
+
message: {
|
|
16535
|
+
type: "string"
|
|
16536
|
+
}
|
|
16537
|
+
},
|
|
16538
|
+
required: [
|
|
16539
|
+
"error",
|
|
16540
|
+
"message"
|
|
16541
|
+
]
|
|
16418
16542
|
}
|
|
16419
16543
|
]
|
|
16420
16544
|
}
|
|
@@ -16463,7 +16587,7 @@ var openapi_default = {
|
|
|
16463
16587
|
properties: {
|
|
16464
16588
|
error: {
|
|
16465
16589
|
type: "string",
|
|
16466
|
-
description: "C\xF3digo estable del error: es lo que se compara. `message` es para personas y puede cambiar.",
|
|
16590
|
+
description: "C\xF3digo estable del error: es lo que se compara. `message` es para personas y puede cambiar. Con este status, el portero tambi\xE9n puede devolver `gate_misconfigured`.",
|
|
16467
16591
|
examples: [
|
|
16468
16592
|
"internal_error"
|
|
16469
16593
|
]
|
|
@@ -16554,6 +16678,63 @@ var openapi_default = {
|
|
|
16554
16678
|
},
|
|
16555
16679
|
"404": {
|
|
16556
16680
|
$ref: "#/components/responses/ConversationsModelNotFoundException"
|
|
16681
|
+
},
|
|
16682
|
+
"422": {
|
|
16683
|
+
description: "Unprocessable Content",
|
|
16684
|
+
content: {
|
|
16685
|
+
"application/json": {
|
|
16686
|
+
schema: {
|
|
16687
|
+
type: "object",
|
|
16688
|
+
properties: {
|
|
16689
|
+
error: {
|
|
16690
|
+
type: "string",
|
|
16691
|
+
enum: [
|
|
16692
|
+
"number_not_connected_to_meta",
|
|
16693
|
+
"meta_rejected"
|
|
16694
|
+
]
|
|
16695
|
+
},
|
|
16696
|
+
message: {
|
|
16697
|
+
type: "string"
|
|
16698
|
+
},
|
|
16699
|
+
meta_code: {
|
|
16700
|
+
type: [
|
|
16701
|
+
"integer",
|
|
16702
|
+
"null"
|
|
16703
|
+
]
|
|
16704
|
+
}
|
|
16705
|
+
},
|
|
16706
|
+
required: [
|
|
16707
|
+
"error",
|
|
16708
|
+
"message"
|
|
16709
|
+
]
|
|
16710
|
+
}
|
|
16711
|
+
}
|
|
16712
|
+
}
|
|
16713
|
+
},
|
|
16714
|
+
"502": {
|
|
16715
|
+
description: "Bad Gateway",
|
|
16716
|
+
content: {
|
|
16717
|
+
"application/json": {
|
|
16718
|
+
schema: {
|
|
16719
|
+
type: "object",
|
|
16720
|
+
properties: {
|
|
16721
|
+
error: {
|
|
16722
|
+
type: "string",
|
|
16723
|
+
enum: [
|
|
16724
|
+
"meta_unavailable"
|
|
16725
|
+
]
|
|
16726
|
+
},
|
|
16727
|
+
message: {
|
|
16728
|
+
type: "string"
|
|
16729
|
+
}
|
|
16730
|
+
},
|
|
16731
|
+
required: [
|
|
16732
|
+
"error",
|
|
16733
|
+
"message"
|
|
16734
|
+
]
|
|
16735
|
+
}
|
|
16736
|
+
}
|
|
16737
|
+
}
|
|
16557
16738
|
}
|
|
16558
16739
|
},
|
|
16559
16740
|
"x-fc-permission": "conversations:write",
|
|
@@ -18336,14 +18517,7 @@ var openapi_default = {
|
|
|
18336
18517
|
},
|
|
18337
18518
|
responses: {
|
|
18338
18519
|
"200": {
|
|
18339
|
-
description: "OK"
|
|
18340
|
-
content: {
|
|
18341
|
-
"application/json": {
|
|
18342
|
-
schema: {
|
|
18343
|
-
type: "object"
|
|
18344
|
-
}
|
|
18345
|
-
}
|
|
18346
|
-
}
|
|
18520
|
+
description: "OK"
|
|
18347
18521
|
},
|
|
18348
18522
|
"400": {
|
|
18349
18523
|
description: "Bad Request",
|
|
@@ -18680,14 +18854,7 @@ var openapi_default = {
|
|
|
18680
18854
|
},
|
|
18681
18855
|
responses: {
|
|
18682
18856
|
"200": {
|
|
18683
|
-
description: "OK"
|
|
18684
|
-
content: {
|
|
18685
|
-
"application/json": {
|
|
18686
|
-
schema: {
|
|
18687
|
-
type: "object"
|
|
18688
|
-
}
|
|
18689
|
-
}
|
|
18690
|
-
}
|
|
18857
|
+
description: "OK"
|
|
18691
18858
|
},
|
|
18692
18859
|
"401": {
|
|
18693
18860
|
$ref: "#/components/responses/ConversationsAuthenticationException"
|
|
@@ -18775,21 +18942,14 @@ var openapi_default = {
|
|
|
18775
18942
|
content: {
|
|
18776
18943
|
"application/json": {
|
|
18777
18944
|
schema: {
|
|
18778
|
-
|
|
18779
|
-
|
|
18780
|
-
|
|
18781
|
-
|
|
18782
|
-
data: {
|
|
18783
|
-
$ref: "#/components/schemas/TemplateMetricsResource"
|
|
18784
|
-
}
|
|
18785
|
-
},
|
|
18786
|
-
required: [
|
|
18787
|
-
"data"
|
|
18788
|
-
]
|
|
18789
|
-
},
|
|
18790
|
-
{
|
|
18791
|
-
type: "object"
|
|
18945
|
+
type: "object",
|
|
18946
|
+
properties: {
|
|
18947
|
+
data: {
|
|
18948
|
+
$ref: "#/components/schemas/TemplateMetricsResource"
|
|
18792
18949
|
}
|
|
18950
|
+
},
|
|
18951
|
+
required: [
|
|
18952
|
+
"data"
|
|
18793
18953
|
]
|
|
18794
18954
|
}
|
|
18795
18955
|
}
|
|
@@ -19765,14 +19925,7 @@ var openapi_default = {
|
|
|
19765
19925
|
content: {
|
|
19766
19926
|
"application/json": {
|
|
19767
19927
|
schema: {
|
|
19768
|
-
|
|
19769
|
-
{
|
|
19770
|
-
$ref: "#/components/schemas/UserResource"
|
|
19771
|
-
},
|
|
19772
|
-
{
|
|
19773
|
-
type: "object"
|
|
19774
|
-
}
|
|
19775
|
-
]
|
|
19928
|
+
$ref: "#/components/schemas/UserResource"
|
|
19776
19929
|
}
|
|
19777
19930
|
}
|
|
19778
19931
|
}
|
|
@@ -22064,15 +22217,7 @@ var openapi_default = {
|
|
|
22064
22217
|
],
|
|
22065
22218
|
responses: {
|
|
22066
22219
|
"204": {
|
|
22067
|
-
description: "No Content"
|
|
22068
|
-
content: {
|
|
22069
|
-
"application/json": {
|
|
22070
|
-
schema: {
|
|
22071
|
-
type: "array",
|
|
22072
|
-
items: {}
|
|
22073
|
-
}
|
|
22074
|
-
}
|
|
22075
|
-
}
|
|
22220
|
+
description: "No Content"
|
|
22076
22221
|
},
|
|
22077
22222
|
"401": {
|
|
22078
22223
|
$ref: "#/components/responses/ConversationsAuthenticationException"
|
|
@@ -22304,75 +22449,177 @@ var openapi_default = {
|
|
|
22304
22449
|
}
|
|
22305
22450
|
}
|
|
22306
22451
|
},
|
|
22307
|
-
"401": {
|
|
22308
|
-
$ref: "#/components/responses/ConversationsAuthenticationException"
|
|
22309
|
-
},
|
|
22310
|
-
"402": {
|
|
22311
|
-
description: "Payment Required",
|
|
22452
|
+
"401": {
|
|
22453
|
+
$ref: "#/components/responses/ConversationsAuthenticationException"
|
|
22454
|
+
},
|
|
22455
|
+
"402": {
|
|
22456
|
+
description: "Payment Required",
|
|
22457
|
+
content: {
|
|
22458
|
+
"application/json": {
|
|
22459
|
+
schema: {
|
|
22460
|
+
type: "object",
|
|
22461
|
+
properties: {
|
|
22462
|
+
error: {
|
|
22463
|
+
type: "string",
|
|
22464
|
+
enum: [
|
|
22465
|
+
"payment_required"
|
|
22466
|
+
]
|
|
22467
|
+
},
|
|
22468
|
+
message: {
|
|
22469
|
+
type: "string"
|
|
22470
|
+
}
|
|
22471
|
+
},
|
|
22472
|
+
required: [
|
|
22473
|
+
"error",
|
|
22474
|
+
"message"
|
|
22475
|
+
]
|
|
22476
|
+
}
|
|
22477
|
+
}
|
|
22478
|
+
}
|
|
22479
|
+
},
|
|
22480
|
+
"403": {
|
|
22481
|
+
$ref: "#/components/responses/ConversationsAuthorizationException"
|
|
22482
|
+
},
|
|
22483
|
+
"422": {
|
|
22484
|
+
$ref: "#/components/responses/ConversationsValidationException"
|
|
22485
|
+
}
|
|
22486
|
+
},
|
|
22487
|
+
"x-fc-permission": "conversations:write",
|
|
22488
|
+
"x-fc-proposito": "\xDAsalo para sumar un n\xFAmero oficial a un formulario y poder mandarlo tambi\xE9n desde ah\xED; si ya est\xE1 publicado, se publica en ese n\xFAmero enseguida.",
|
|
22489
|
+
"x-fc-domain": "conversations"
|
|
22490
|
+
}
|
|
22491
|
+
},
|
|
22492
|
+
"/api/v1/forms/{id}/versions": {
|
|
22493
|
+
post: {
|
|
22494
|
+
operationId: "whatsappForm.storeVersion",
|
|
22495
|
+
description: "**Permiso requerido:** **Contactos y conversaciones \u2192 Editar**\n\nCrea la versi\xF3n siguiente de un formulario publicado, como borrador, para poder cambiarlo. `{id}` es el `id` de la versi\xF3n desde la que partes. Responde 201 con la versi\xF3n nueva, o 200 con `created: false` si el formulario ya ten\xEDa un borrador (ese borrador es la respuesta). Responde 404 si la versi\xF3n no existe o no es de tu cuenta.",
|
|
22496
|
+
summary: "Crear una versi\xF3n de un formulario",
|
|
22497
|
+
tags: [
|
|
22498
|
+
"Formularios"
|
|
22499
|
+
],
|
|
22500
|
+
parameters: [
|
|
22501
|
+
{
|
|
22502
|
+
name: "id",
|
|
22503
|
+
in: "path",
|
|
22504
|
+
required: true,
|
|
22505
|
+
schema: {
|
|
22506
|
+
type: "integer"
|
|
22507
|
+
}
|
|
22508
|
+
}
|
|
22509
|
+
],
|
|
22510
|
+
responses: {
|
|
22511
|
+
"200": {
|
|
22512
|
+
description: "OK",
|
|
22513
|
+
content: {
|
|
22514
|
+
"application/json": {
|
|
22515
|
+
schema: {
|
|
22516
|
+
type: "object",
|
|
22517
|
+
properties: {
|
|
22518
|
+
data: {
|
|
22519
|
+
$ref: "#/components/schemas/WhatsappFormResource"
|
|
22520
|
+
},
|
|
22521
|
+
created: {
|
|
22522
|
+
type: "boolean"
|
|
22523
|
+
},
|
|
22524
|
+
lint: {
|
|
22525
|
+
type: "array",
|
|
22526
|
+
items: {}
|
|
22527
|
+
},
|
|
22528
|
+
numbers: {
|
|
22529
|
+
type: "array",
|
|
22530
|
+
prefixItems: [
|
|
22531
|
+
{
|
|
22532
|
+
type: "object",
|
|
22533
|
+
properties: {
|
|
22534
|
+
device_id: {},
|
|
22535
|
+
primary: {
|
|
22536
|
+
type: "boolean"
|
|
22537
|
+
},
|
|
22538
|
+
status: {
|
|
22539
|
+
type: "string"
|
|
22540
|
+
},
|
|
22541
|
+
error: {
|
|
22542
|
+
type: "string"
|
|
22543
|
+
}
|
|
22544
|
+
},
|
|
22545
|
+
required: [
|
|
22546
|
+
"device_id",
|
|
22547
|
+
"primary",
|
|
22548
|
+
"status",
|
|
22549
|
+
"error"
|
|
22550
|
+
]
|
|
22551
|
+
}
|
|
22552
|
+
],
|
|
22553
|
+
minItems: 1,
|
|
22554
|
+
maxItems: 1
|
|
22555
|
+
}
|
|
22556
|
+
},
|
|
22557
|
+
required: [
|
|
22558
|
+
"data",
|
|
22559
|
+
"created",
|
|
22560
|
+
"lint",
|
|
22561
|
+
"numbers"
|
|
22562
|
+
]
|
|
22563
|
+
}
|
|
22564
|
+
}
|
|
22565
|
+
}
|
|
22566
|
+
},
|
|
22567
|
+
"201": {
|
|
22568
|
+
description: "Created",
|
|
22312
22569
|
content: {
|
|
22313
22570
|
"application/json": {
|
|
22314
22571
|
schema: {
|
|
22315
22572
|
type: "object",
|
|
22316
22573
|
properties: {
|
|
22317
|
-
|
|
22318
|
-
|
|
22319
|
-
enum: [
|
|
22320
|
-
"payment_required"
|
|
22321
|
-
]
|
|
22574
|
+
data: {
|
|
22575
|
+
$ref: "#/components/schemas/WhatsappFormResource"
|
|
22322
22576
|
},
|
|
22323
|
-
|
|
22324
|
-
type: "
|
|
22577
|
+
created: {
|
|
22578
|
+
type: "boolean"
|
|
22579
|
+
},
|
|
22580
|
+
lint: {
|
|
22581
|
+
type: "array",
|
|
22582
|
+
items: {}
|
|
22583
|
+
},
|
|
22584
|
+
numbers: {
|
|
22585
|
+
type: "array",
|
|
22586
|
+
prefixItems: [
|
|
22587
|
+
{
|
|
22588
|
+
type: "object",
|
|
22589
|
+
properties: {
|
|
22590
|
+
device_id: {},
|
|
22591
|
+
primary: {
|
|
22592
|
+
type: "boolean"
|
|
22593
|
+
},
|
|
22594
|
+
status: {
|
|
22595
|
+
type: "string"
|
|
22596
|
+
},
|
|
22597
|
+
error: {
|
|
22598
|
+
type: "string"
|
|
22599
|
+
}
|
|
22600
|
+
},
|
|
22601
|
+
required: [
|
|
22602
|
+
"device_id",
|
|
22603
|
+
"primary",
|
|
22604
|
+
"status",
|
|
22605
|
+
"error"
|
|
22606
|
+
]
|
|
22607
|
+
}
|
|
22608
|
+
],
|
|
22609
|
+
minItems: 1,
|
|
22610
|
+
maxItems: 1
|
|
22325
22611
|
}
|
|
22326
22612
|
},
|
|
22327
22613
|
required: [
|
|
22328
|
-
"
|
|
22329
|
-
"
|
|
22614
|
+
"data",
|
|
22615
|
+
"created",
|
|
22616
|
+
"lint",
|
|
22617
|
+
"numbers"
|
|
22330
22618
|
]
|
|
22331
22619
|
}
|
|
22332
22620
|
}
|
|
22333
22621
|
}
|
|
22334
22622
|
},
|
|
22335
|
-
"403": {
|
|
22336
|
-
$ref: "#/components/responses/ConversationsAuthorizationException"
|
|
22337
|
-
},
|
|
22338
|
-
"422": {
|
|
22339
|
-
$ref: "#/components/responses/ConversationsValidationException"
|
|
22340
|
-
}
|
|
22341
|
-
},
|
|
22342
|
-
"x-fc-permission": "conversations:write",
|
|
22343
|
-
"x-fc-proposito": "\xDAsalo para sumar un n\xFAmero oficial a un formulario y poder mandarlo tambi\xE9n desde ah\xED; si ya est\xE1 publicado, se publica en ese n\xFAmero enseguida.",
|
|
22344
|
-
"x-fc-domain": "conversations"
|
|
22345
|
-
}
|
|
22346
|
-
},
|
|
22347
|
-
"/api/v1/forms/{id}/versions": {
|
|
22348
|
-
post: {
|
|
22349
|
-
operationId: "whatsappForm.storeVersion",
|
|
22350
|
-
description: "**Permiso requerido:** **Contactos y conversaciones \u2192 Editar**\n\nCrea la versi\xF3n siguiente de un formulario publicado, como borrador, para poder cambiarlo. `{id}` es el `id` de la versi\xF3n desde la que partes. Responde 201 con la versi\xF3n nueva, o 200 con `created: false` si el formulario ya ten\xEDa un borrador (ese borrador es la respuesta). Responde 404 si la versi\xF3n no existe o no es de tu cuenta.",
|
|
22351
|
-
summary: "Crear una versi\xF3n de un formulario",
|
|
22352
|
-
tags: [
|
|
22353
|
-
"Formularios"
|
|
22354
|
-
],
|
|
22355
|
-
parameters: [
|
|
22356
|
-
{
|
|
22357
|
-
name: "id",
|
|
22358
|
-
in: "path",
|
|
22359
|
-
required: true,
|
|
22360
|
-
schema: {
|
|
22361
|
-
type: "integer"
|
|
22362
|
-
}
|
|
22363
|
-
}
|
|
22364
|
-
],
|
|
22365
|
-
responses: {
|
|
22366
|
-
"200": {
|
|
22367
|
-
description: "OK",
|
|
22368
|
-
content: {
|
|
22369
|
-
"application/json": {
|
|
22370
|
-
schema: {
|
|
22371
|
-
type: "string"
|
|
22372
|
-
}
|
|
22373
|
-
}
|
|
22374
|
-
}
|
|
22375
|
-
},
|
|
22376
22623
|
"401": {
|
|
22377
22624
|
$ref: "#/components/responses/ConversationsAuthenticationException"
|
|
22378
22625
|
},
|
|
@@ -22968,36 +23215,22 @@ var openapi_default = {
|
|
|
22968
23215
|
content: {
|
|
22969
23216
|
"application/json": {
|
|
22970
23217
|
schema: {
|
|
22971
|
-
|
|
22972
|
-
|
|
22973
|
-
|
|
22974
|
-
|
|
22975
|
-
|
|
22976
|
-
|
|
22977
|
-
|
|
22978
|
-
"form_not_found"
|
|
22979
|
-
]
|
|
22980
|
-
},
|
|
22981
|
-
message: {
|
|
22982
|
-
type: "string"
|
|
22983
|
-
}
|
|
22984
|
-
},
|
|
22985
|
-
required: [
|
|
22986
|
-
"error",
|
|
22987
|
-
"message"
|
|
23218
|
+
type: "object",
|
|
23219
|
+
properties: {
|
|
23220
|
+
error: {
|
|
23221
|
+
type: "string",
|
|
23222
|
+
enum: [
|
|
23223
|
+
"form_not_found",
|
|
23224
|
+
"not_found"
|
|
22988
23225
|
]
|
|
22989
23226
|
},
|
|
22990
|
-
{
|
|
22991
|
-
type: "
|
|
22992
|
-
properties: {
|
|
22993
|
-
message: {
|
|
22994
|
-
type: "string"
|
|
22995
|
-
}
|
|
22996
|
-
},
|
|
22997
|
-
required: [
|
|
22998
|
-
"message"
|
|
22999
|
-
]
|
|
23227
|
+
message: {
|
|
23228
|
+
type: "string"
|
|
23000
23229
|
}
|
|
23230
|
+
},
|
|
23231
|
+
required: [
|
|
23232
|
+
"error",
|
|
23233
|
+
"message"
|
|
23001
23234
|
]
|
|
23002
23235
|
}
|
|
23003
23236
|
}
|
|
@@ -23131,7 +23364,7 @@ var openapi_default = {
|
|
|
23131
23364
|
properties: {
|
|
23132
23365
|
error: {
|
|
23133
23366
|
type: "string",
|
|
23134
|
-
description: "C\xF3digo estable del error: es lo que se compara. `message` es para personas y puede cambiar.",
|
|
23367
|
+
description: "C\xF3digo estable del error: es lo que se compara. `message` es para personas y puede cambiar. Con este status, el portero tambi\xE9n puede devolver `gate_misconfigured`.",
|
|
23135
23368
|
examples: [
|
|
23136
23369
|
"internal_error"
|
|
23137
23370
|
]
|
|
@@ -25278,6 +25511,61 @@ var openapi_default = {
|
|
|
25278
25511
|
"401": {
|
|
25279
25512
|
$ref: "#/components/responses/CommunitiesAuthenticationException"
|
|
25280
25513
|
},
|
|
25514
|
+
"402": {
|
|
25515
|
+
description: "La cuenta lleg\xF3 al tope de grupos oficiales de su plan. No se registra ninguna acci\xF3n.",
|
|
25516
|
+
content: {
|
|
25517
|
+
"application/json": {
|
|
25518
|
+
schema: {
|
|
25519
|
+
type: "object",
|
|
25520
|
+
properties: {
|
|
25521
|
+
error: {
|
|
25522
|
+
type: "string",
|
|
25523
|
+
description: "C\xF3digo estable del error: es lo que se compara. `message` es para personas y puede cambiar.",
|
|
25524
|
+
enum: [
|
|
25525
|
+
"plan_cap_reached"
|
|
25526
|
+
]
|
|
25527
|
+
},
|
|
25528
|
+
message: {
|
|
25529
|
+
type: "string",
|
|
25530
|
+
examples: [
|
|
25531
|
+
"Alcanzaste el l\xEDmite de tu plan."
|
|
25532
|
+
]
|
|
25533
|
+
},
|
|
25534
|
+
feature: {
|
|
25535
|
+
type: "string",
|
|
25536
|
+
description: "La funci\xF3n del plan que tiene el tope.",
|
|
25537
|
+
examples: [
|
|
25538
|
+
"cloud_api_groups"
|
|
25539
|
+
]
|
|
25540
|
+
},
|
|
25541
|
+
parameter: {
|
|
25542
|
+
type: "string",
|
|
25543
|
+
description: "El tope que se alcanz\xF3: grupos oficiales creados.",
|
|
25544
|
+
examples: [
|
|
25545
|
+
"cloud_api_groups_created"
|
|
25546
|
+
]
|
|
25547
|
+
},
|
|
25548
|
+
cap: {
|
|
25549
|
+
type: "integer",
|
|
25550
|
+
description: "El tope del plan."
|
|
25551
|
+
},
|
|
25552
|
+
used: {
|
|
25553
|
+
type: "integer",
|
|
25554
|
+
description: "Lo que la cuenta ya us\xF3 de ese tope."
|
|
25555
|
+
}
|
|
25556
|
+
},
|
|
25557
|
+
required: [
|
|
25558
|
+
"error",
|
|
25559
|
+
"message",
|
|
25560
|
+
"feature",
|
|
25561
|
+
"parameter",
|
|
25562
|
+
"cap",
|
|
25563
|
+
"used"
|
|
25564
|
+
]
|
|
25565
|
+
}
|
|
25566
|
+
}
|
|
25567
|
+
}
|
|
25568
|
+
},
|
|
25281
25569
|
"403": {
|
|
25282
25570
|
$ref: "#/components/responses/CommunitiesAuthorizationException"
|
|
25283
25571
|
},
|
|
@@ -26519,14 +26807,14 @@ var openapi_default = {
|
|
|
26519
26807
|
],
|
|
26520
26808
|
responses: {
|
|
26521
26809
|
"200": {
|
|
26522
|
-
description: "
|
|
26810
|
+
description: "El estado de la acci\xF3n y, si termin\xF3 `completed`, su resultado.",
|
|
26523
26811
|
content: {
|
|
26524
26812
|
"application/json": {
|
|
26525
26813
|
schema: {
|
|
26526
26814
|
type: "object",
|
|
26527
26815
|
properties: {
|
|
26528
26816
|
data: {
|
|
26529
|
-
$ref: "#/components/schemas/
|
|
26817
|
+
$ref: "#/components/schemas/ApiGroupActionResource"
|
|
26530
26818
|
}
|
|
26531
26819
|
},
|
|
26532
26820
|
required: [
|
|
@@ -26545,9 +26833,7 @@ var openapi_default = {
|
|
|
26545
26833
|
},
|
|
26546
26834
|
"x-fc-proposito": "Sirve para saber c\xF3mo termin\xF3 lo que le pediste a un grupo, como mandarle un mensaje: si sigue en cola, se est\xE1 haciendo, termin\xF3 o fall\xF3, y su resultado.",
|
|
26547
26835
|
"x-fc-domain": "communities",
|
|
26548
|
-
"x-fc-permission": "communities:read"
|
|
26549
|
-
"x-fc-pending": "communities-group-action",
|
|
26550
|
-
"x-fc-pending-response": "communities-group-action"
|
|
26836
|
+
"x-fc-permission": "communities:read"
|
|
26551
26837
|
}
|
|
26552
26838
|
},
|
|
26553
26839
|
"/api/v1/groups/{group}/participants": {
|
|
@@ -26823,7 +27109,7 @@ var openapi_default = {
|
|
|
26823
27109
|
"/api/v1/groups/{group}/description": {
|
|
26824
27110
|
put: {
|
|
26825
27111
|
operationId: "apiGroupAction.updateDescription",
|
|
26826
|
-
description: "**Permiso requerido:** **Grupos y campa\xF1as \u2192 Administrar grupos**\n\n**Nota:** As\xEDncrona: responde 202 con `action_id`; consulta el resultado en `GET /groups/actions/{action}`. Hasta 2048 caracteres
|
|
27112
|
+
description: "**Permiso requerido:** **Grupos y campa\xF1as \u2192 Administrar grupos**\n\n**Nota:** As\xEDncrona: responde 202 con `action_id`; consulta el resultado en `GET /groups/actions/{action}`. Hasta 2048 caracteres. Con un n\xFAmero QR, una descripci\xF3n vac\xEDa la borra; con un n\xFAmero oficial responde `422 validation_failed`, porque WhatsApp no permite borrar la descripci\xF3n de un grupo oficial. Se ejecuta al ritmo de las campa\xF1as del n\xFAmero.",
|
|
26827
27113
|
summary: "Cambiar la descripci\xF3n de un grupo",
|
|
26828
27114
|
tags: [
|
|
26829
27115
|
"Acciones de grupo"
|
|
@@ -34544,19 +34830,22 @@ var openapi_default = {
|
|
|
34544
34830
|
}
|
|
34545
34831
|
},
|
|
34546
34832
|
"400": {
|
|
34547
|
-
description: "El n\xFAmero no admite esta edici\xF3n.",
|
|
34833
|
+
description: "El n\xFAmero no admite esta edici\xF3n (`unsupported_provider`).",
|
|
34548
34834
|
content: {
|
|
34549
34835
|
"application/json": {
|
|
34550
34836
|
schema: {
|
|
34551
34837
|
type: "object",
|
|
34552
34838
|
properties: {
|
|
34553
34839
|
error: {
|
|
34554
|
-
type: "string"
|
|
34555
|
-
|
|
34840
|
+
type: "string"
|
|
34841
|
+
},
|
|
34842
|
+
message: {
|
|
34843
|
+
type: "string"
|
|
34556
34844
|
}
|
|
34557
34845
|
},
|
|
34558
34846
|
required: [
|
|
34559
|
-
"error"
|
|
34847
|
+
"error",
|
|
34848
|
+
"message"
|
|
34560
34849
|
]
|
|
34561
34850
|
}
|
|
34562
34851
|
}
|
|
@@ -36712,7 +37001,7 @@ var openapi_default = {
|
|
|
36712
37001
|
"/api/v1/devices/{device}/username": {
|
|
36713
37002
|
get: {
|
|
36714
37003
|
operationId: "deviceUsername.show",
|
|
36715
|
-
description: "**Lectura** \xB7 requiere **N\xFAmeros de WhatsApp \u2192 Ver**.\n\nLo consulta en Meta; si Meta no devuelve ninguno, responde el \xFAltimo que se reserv\xF3. Solo\npara n\xFAmeros oficiales.",
|
|
37004
|
+
description: "**Lectura** \xB7 requiere **N\xFAmeros de WhatsApp \u2192 Ver**.\n\nLo consulta en Meta; si Meta no devuelve ninguno, responde el \xFAltimo que se reserv\xF3. Solo\npara n\xFAmeros oficiales. Si Meta rechaza la consulta, la respuesta lleva el mismo c\xF3digo HTTP\nque dio Meta, `error` `meta_error` y el motivo de Meta en `message`.",
|
|
36716
37005
|
summary: "Ver el nombre de usuario de un n\xFAmero",
|
|
36717
37006
|
tags: [
|
|
36718
37007
|
"N\xFAmeros"
|
|
@@ -36811,35 +37100,22 @@ var openapi_default = {
|
|
|
36811
37100
|
$ref: "#/components/responses/AccountsModelNotFoundException"
|
|
36812
37101
|
},
|
|
36813
37102
|
"422": {
|
|
36814
|
-
description: "El n\xFAmero no es oficial o no est\xE1 conectado.",
|
|
37103
|
+
description: "El n\xFAmero no es oficial (`device_not_meta`) o todav\xEDa no est\xE1 conectado a Meta (`device_not_ready`).",
|
|
36815
37104
|
content: {
|
|
36816
37105
|
"application/json": {
|
|
36817
37106
|
schema: {
|
|
36818
|
-
|
|
36819
|
-
|
|
36820
|
-
|
|
36821
|
-
|
|
36822
|
-
error: {
|
|
36823
|
-
type: "string",
|
|
36824
|
-
const: "El dispositivo no tiene credenciales Meta configuradas."
|
|
36825
|
-
}
|
|
36826
|
-
},
|
|
36827
|
-
required: [
|
|
36828
|
-
"error"
|
|
36829
|
-
]
|
|
37107
|
+
type: "object",
|
|
37108
|
+
properties: {
|
|
37109
|
+
error: {
|
|
37110
|
+
type: "string"
|
|
36830
37111
|
},
|
|
36831
|
-
{
|
|
36832
|
-
type: "
|
|
36833
|
-
properties: {
|
|
36834
|
-
error: {
|
|
36835
|
-
type: "string",
|
|
36836
|
-
const: "Solo disponible para dispositivos WhatsApp Cloud API."
|
|
36837
|
-
}
|
|
36838
|
-
},
|
|
36839
|
-
required: [
|
|
36840
|
-
"error"
|
|
36841
|
-
]
|
|
37112
|
+
message: {
|
|
37113
|
+
type: "string"
|
|
36842
37114
|
}
|
|
37115
|
+
},
|
|
37116
|
+
required: [
|
|
37117
|
+
"error",
|
|
37118
|
+
"message"
|
|
36843
37119
|
]
|
|
36844
37120
|
}
|
|
36845
37121
|
}
|
|
@@ -36880,11 +37156,23 @@ var openapi_default = {
|
|
|
36880
37156
|
}
|
|
36881
37157
|
},
|
|
36882
37158
|
"502": {
|
|
36883
|
-
description: "Meta no respondi\xF3. Vuelve a intentarlo.",
|
|
37159
|
+
description: "Meta no respondi\xF3 (`provider_error`). Vuelve a intentarlo.",
|
|
36884
37160
|
content: {
|
|
36885
37161
|
"application/json": {
|
|
36886
37162
|
schema: {
|
|
36887
|
-
type: "
|
|
37163
|
+
type: "object",
|
|
37164
|
+
properties: {
|
|
37165
|
+
error: {
|
|
37166
|
+
type: "string"
|
|
37167
|
+
},
|
|
37168
|
+
message: {
|
|
37169
|
+
type: "string"
|
|
37170
|
+
}
|
|
37171
|
+
},
|
|
37172
|
+
required: [
|
|
37173
|
+
"error",
|
|
37174
|
+
"message"
|
|
37175
|
+
]
|
|
36888
37176
|
}
|
|
36889
37177
|
}
|
|
36890
37178
|
}
|
|
@@ -36898,7 +37186,7 @@ var openapi_default = {
|
|
|
36898
37186
|
},
|
|
36899
37187
|
post: {
|
|
36900
37188
|
operationId: "deviceUsername.store",
|
|
36901
|
-
description: "**Escritura** \xB7 requiere **N\xFAmeros de WhatsApp \u2192 Editar**.\n\n`username` va de 3 a 35 caracteres: letras min\xFAsculas, n\xFAmeros, puntos y guiones bajos. Se\nreserva en Meta; si Meta lo rechaza (por ejemplo, porque ya est\xE1 tomado), la respuesta\
|
|
37189
|
+
description: "**Escritura** \xB7 requiere **N\xFAmeros de WhatsApp \u2192 Editar**.\n\n`username` va de 3 a 35 caracteres: letras min\xFAsculas, n\xFAmeros, puntos y guiones bajos. Se\nreserva en Meta; si Meta lo rechaza (por ejemplo, porque ya est\xE1 tomado), la respuesta\nlleva el mismo c\xF3digo HTTP que dio Meta, `error` `meta_error` y su motivo en `message`. Solo\npara n\xFAmeros oficiales.",
|
|
36902
37190
|
summary: "Reservar un nombre de usuario",
|
|
36903
37191
|
tags: [
|
|
36904
37192
|
"N\xFAmeros"
|
|
@@ -37025,35 +37313,22 @@ var openapi_default = {
|
|
|
37025
37313
|
$ref: "#/components/responses/AccountsModelNotFoundException"
|
|
37026
37314
|
},
|
|
37027
37315
|
"422": {
|
|
37028
|
-
description: "El nombre no es v\xE1lido,
|
|
37316
|
+
description: "El nombre no es v\xE1lido (`validation_failed`, con `errors`), el n\xFAmero no es oficial (`device_not_meta`) o todav\xEDa no est\xE1 conectado a Meta (`device_not_ready`).",
|
|
37029
37317
|
content: {
|
|
37030
37318
|
"application/json": {
|
|
37031
37319
|
schema: {
|
|
37032
|
-
|
|
37033
|
-
|
|
37034
|
-
|
|
37035
|
-
|
|
37036
|
-
error: {
|
|
37037
|
-
type: "string",
|
|
37038
|
-
const: "El dispositivo no tiene credenciales Meta configuradas."
|
|
37039
|
-
}
|
|
37040
|
-
},
|
|
37041
|
-
required: [
|
|
37042
|
-
"error"
|
|
37043
|
-
]
|
|
37320
|
+
type: "object",
|
|
37321
|
+
properties: {
|
|
37322
|
+
error: {
|
|
37323
|
+
type: "string"
|
|
37044
37324
|
},
|
|
37045
|
-
{
|
|
37046
|
-
type: "
|
|
37047
|
-
properties: {
|
|
37048
|
-
error: {
|
|
37049
|
-
type: "string",
|
|
37050
|
-
const: "Solo disponible para dispositivos WhatsApp Cloud API."
|
|
37051
|
-
}
|
|
37052
|
-
},
|
|
37053
|
-
required: [
|
|
37054
|
-
"error"
|
|
37055
|
-
]
|
|
37325
|
+
message: {
|
|
37326
|
+
type: "string"
|
|
37056
37327
|
}
|
|
37328
|
+
},
|
|
37329
|
+
required: [
|
|
37330
|
+
"error",
|
|
37331
|
+
"message"
|
|
37057
37332
|
]
|
|
37058
37333
|
}
|
|
37059
37334
|
}
|
|
@@ -37094,11 +37369,23 @@ var openapi_default = {
|
|
|
37094
37369
|
}
|
|
37095
37370
|
},
|
|
37096
37371
|
"502": {
|
|
37097
|
-
description: "Meta no respondi\xF3. Vuelve a intentarlo.",
|
|
37372
|
+
description: "Meta no respondi\xF3 (`provider_error`). Vuelve a intentarlo.",
|
|
37098
37373
|
content: {
|
|
37099
37374
|
"application/json": {
|
|
37100
37375
|
schema: {
|
|
37101
|
-
type: "
|
|
37376
|
+
type: "object",
|
|
37377
|
+
properties: {
|
|
37378
|
+
error: {
|
|
37379
|
+
type: "string"
|
|
37380
|
+
},
|
|
37381
|
+
message: {
|
|
37382
|
+
type: "string"
|
|
37383
|
+
}
|
|
37384
|
+
},
|
|
37385
|
+
required: [
|
|
37386
|
+
"error",
|
|
37387
|
+
"message"
|
|
37388
|
+
]
|
|
37102
37389
|
}
|
|
37103
37390
|
}
|
|
37104
37391
|
}
|
|
@@ -37114,7 +37401,7 @@ var openapi_default = {
|
|
|
37114
37401
|
"/api/v1/devices/{device}/username/suggestions": {
|
|
37115
37402
|
get: {
|
|
37116
37403
|
operationId: "deviceUsername.suggestions",
|
|
37117
|
-
description: "**Lectura** \xB7 requiere **N\xFAmeros de WhatsApp \u2192 Ver**.\n\nLas sugerencias que da Meta para ese n\xFAmero. Solo para n\xFAmeros oficiales.",
|
|
37404
|
+
description: "**Lectura** \xB7 requiere **N\xFAmeros de WhatsApp \u2192 Ver**.\n\nLas sugerencias que da Meta para ese n\xFAmero. Solo para n\xFAmeros oficiales. Si Meta rechaza la\nconsulta, la respuesta lleva el mismo c\xF3digo HTTP que dio Meta, `error` `meta_error` y el\nmotivo de Meta en `message`.",
|
|
37118
37405
|
summary: "Ver nombres de usuario sugeridos",
|
|
37119
37406
|
tags: [
|
|
37120
37407
|
"N\xFAmeros"
|
|
@@ -37213,35 +37500,22 @@ var openapi_default = {
|
|
|
37213
37500
|
$ref: "#/components/responses/AccountsModelNotFoundException"
|
|
37214
37501
|
},
|
|
37215
37502
|
"422": {
|
|
37216
|
-
description: "El n\xFAmero no es oficial o no est\xE1 conectado.",
|
|
37503
|
+
description: "El n\xFAmero no es oficial (`device_not_meta`) o todav\xEDa no est\xE1 conectado a Meta (`device_not_ready`).",
|
|
37217
37504
|
content: {
|
|
37218
37505
|
"application/json": {
|
|
37219
37506
|
schema: {
|
|
37220
|
-
|
|
37221
|
-
|
|
37222
|
-
|
|
37223
|
-
|
|
37224
|
-
error: {
|
|
37225
|
-
type: "string",
|
|
37226
|
-
const: "El dispositivo no tiene credenciales Meta configuradas."
|
|
37227
|
-
}
|
|
37228
|
-
},
|
|
37229
|
-
required: [
|
|
37230
|
-
"error"
|
|
37231
|
-
]
|
|
37507
|
+
type: "object",
|
|
37508
|
+
properties: {
|
|
37509
|
+
error: {
|
|
37510
|
+
type: "string"
|
|
37232
37511
|
},
|
|
37233
|
-
{
|
|
37234
|
-
type: "
|
|
37235
|
-
properties: {
|
|
37236
|
-
error: {
|
|
37237
|
-
type: "string",
|
|
37238
|
-
const: "Solo disponible para dispositivos WhatsApp Cloud API."
|
|
37239
|
-
}
|
|
37240
|
-
},
|
|
37241
|
-
required: [
|
|
37242
|
-
"error"
|
|
37243
|
-
]
|
|
37512
|
+
message: {
|
|
37513
|
+
type: "string"
|
|
37244
37514
|
}
|
|
37515
|
+
},
|
|
37516
|
+
required: [
|
|
37517
|
+
"error",
|
|
37518
|
+
"message"
|
|
37245
37519
|
]
|
|
37246
37520
|
}
|
|
37247
37521
|
}
|
|
@@ -37282,11 +37556,23 @@ var openapi_default = {
|
|
|
37282
37556
|
}
|
|
37283
37557
|
},
|
|
37284
37558
|
"502": {
|
|
37285
|
-
description: "Meta no respondi\xF3. Vuelve a intentarlo.",
|
|
37559
|
+
description: "Meta no respondi\xF3 (`provider_error`). Vuelve a intentarlo.",
|
|
37286
37560
|
content: {
|
|
37287
37561
|
"application/json": {
|
|
37288
37562
|
schema: {
|
|
37289
|
-
type: "
|
|
37563
|
+
type: "object",
|
|
37564
|
+
properties: {
|
|
37565
|
+
error: {
|
|
37566
|
+
type: "string"
|
|
37567
|
+
},
|
|
37568
|
+
message: {
|
|
37569
|
+
type: "string"
|
|
37570
|
+
}
|
|
37571
|
+
},
|
|
37572
|
+
required: [
|
|
37573
|
+
"error",
|
|
37574
|
+
"message"
|
|
37575
|
+
]
|
|
37290
37576
|
}
|
|
37291
37577
|
}
|
|
37292
37578
|
}
|
|
@@ -37671,7 +37957,7 @@ var openapi_default = {
|
|
|
37671
37957
|
},
|
|
37672
37958
|
post: {
|
|
37673
37959
|
operationId: "webhookSubscription.store",
|
|
37674
|
-
description: "**Escritura** \xB7 requiere **Avisos (webhooks) \u2192 Administrar**.\n\nCon una clave de API, cada tipo de `events` exige adem\xE1s el permiso\n**N\xFAmeros de WhatsApp \u2192 Ver**, **Contactos y conversaciones \u2192 Ver** o\n**Grupos y campa\xF1as \u2192 Ver**, seg\xFAn su \xE1rea; si falta, 422.",
|
|
37960
|
+
description: "**Escritura** \xB7 requiere **Avisos (webhooks) \u2192 Administrar**.\n\nCon una clave de API, cada tipo de `events` exige adem\xE1s el permiso\n**N\xFAmeros de WhatsApp \u2192 Ver**, **Contactos y conversaciones \u2192 Ver** o\n**Grupos y campa\xF1as \u2192 Ver**, seg\xFAn su \xE1rea; si falta, 422.\n\nHay un tope de 50 suscripciones por workspace (por cuenta, si no usas workspaces), sea\ncual sea su estado: con 50, crear otra responde `422` con `error`\n`webhooks_limit_reached`.\n\nNo acepta `Idempotency-Key`: reintentar una creaci\xF3n que s\xED lleg\xF3 crea otra suscripci\xF3n,\ncon otro secreto.",
|
|
37675
37961
|
summary: "Crear un webhook",
|
|
37676
37962
|
tags: [
|
|
37677
37963
|
"Webhooks"
|
|
@@ -38866,7 +39152,7 @@ var openapi_default = {
|
|
|
38866
39152
|
],
|
|
38867
39153
|
responses: {
|
|
38868
39154
|
"200": {
|
|
38869
|
-
description: "
|
|
39155
|
+
description: "La WABA, con sus n\xFAmeros y su l\xEDmite de mensajes.",
|
|
38870
39156
|
content: {
|
|
38871
39157
|
"application/json": {
|
|
38872
39158
|
schema: {
|
|
@@ -40519,7 +40805,7 @@ var openapi_default = {
|
|
|
40519
40805
|
post: {
|
|
40520
40806
|
operationId: "webhook.group_blocked",
|
|
40521
40807
|
summary: "group.blocked",
|
|
40522
|
-
description: "Un grupo qued\xF3 inoperable: sin administrador conectado, con el link de invitaci\xF3n inv\xE1lido o suspendido por WhatsApp.",
|
|
40808
|
+
description: "Un grupo de una campa\xF1a qued\xF3 inoperable: sin administrador conectado, con el link de invitaci\xF3n inv\xE1lido o suspendido por WhatsApp; un grupo que no es de una campa\xF1a no lo genera.",
|
|
40523
40809
|
tags: [
|
|
40524
40810
|
"Webhooks"
|
|
40525
40811
|
],
|
|
@@ -40609,7 +40895,7 @@ var openapi_default = {
|
|
|
40609
40895
|
post: {
|
|
40610
40896
|
operationId: "webhook.group_recovered",
|
|
40611
40897
|
summary: "group.recovered",
|
|
40612
|
-
description: "Un grupo que estaba bloqueado volvi\xF3 a operar.",
|
|
40898
|
+
description: "Un grupo de una campa\xF1a que estaba bloqueado volvi\xF3 a operar; un grupo que no es de una campa\xF1a no lo genera.",
|
|
40613
40899
|
tags: [
|
|
40614
40900
|
"Webhooks"
|
|
40615
40901
|
],
|
|
@@ -40979,7 +41265,7 @@ var openapi_default = {
|
|
|
40979
41265
|
post: {
|
|
40980
41266
|
operationId: "webhook.pipeline_finished",
|
|
40981
41267
|
summary: "pipeline.finished",
|
|
40982
|
-
description: "Termin\xF3 un pipeline de operaciones sobre grupos, con su resultado agregado y la clave de idempotencia del pedido que lo origin\xF3, cuando la hay.",
|
|
41268
|
+
description: "Termin\xF3 un pipeline de operaciones sobre los grupos de una campa\xF1a, con su resultado agregado y la clave de idempotencia del pedido que lo origin\xF3, cuando la hay; si despu\xE9s cambia el resultado de alguna de sus acciones (por ejemplo, por un reintento), sale otro, con otro `id` y los conteos nuevos.",
|
|
40983
41269
|
tags: [
|
|
40984
41270
|
"Webhooks"
|
|
40985
41271
|
],
|
|
@@ -42180,7 +42466,7 @@ var openapi_default = {
|
|
|
42180
42466
|
connection: "qr",
|
|
42181
42467
|
external_reference: "cliente-42"
|
|
42182
42468
|
},
|
|
42183
|
-
connected_at: "2026-10-05T03:00:
|
|
42469
|
+
connected_at: "2026-10-05T03:00:00Z",
|
|
42184
42470
|
connect_link_id: 812,
|
|
42185
42471
|
workspace_id: 37
|
|
42186
42472
|
}
|
|
@@ -42267,7 +42553,7 @@ var openapi_default = {
|
|
|
42267
42553
|
connection: "qr",
|
|
42268
42554
|
external_reference: "cliente-42"
|
|
42269
42555
|
},
|
|
42270
|
-
disconnected_at: "2026-10-05T03:00:
|
|
42556
|
+
disconnected_at: "2026-10-05T03:00:00Z",
|
|
42271
42557
|
reason: "qr_logged_out",
|
|
42272
42558
|
connect_link_id: 812,
|
|
42273
42559
|
workspace_id: 37
|
|
@@ -43133,7 +43419,7 @@ var openapi_default = {
|
|
|
43133
43419
|
connection: "qr",
|
|
43134
43420
|
external_reference: "cliente-42"
|
|
43135
43421
|
},
|
|
43136
|
-
deleted_at: "2026-10-05T03:00:
|
|
43422
|
+
deleted_at: "2026-10-05T03:00:00Z",
|
|
43137
43423
|
connect_link_id: 812,
|
|
43138
43424
|
workspace_id: 37
|
|
43139
43425
|
}
|
|
@@ -43230,7 +43516,7 @@ var openapi_default = {
|
|
|
43230
43516
|
},
|
|
43231
43517
|
previous_state: "available",
|
|
43232
43518
|
state: "limited",
|
|
43233
|
-
changed_at: "2026-10-05T03:00:
|
|
43519
|
+
changed_at: "2026-10-05T03:00:00Z",
|
|
43234
43520
|
connect_link_id: null,
|
|
43235
43521
|
workspace_id: 37
|
|
43236
43522
|
}
|
|
@@ -43315,7 +43601,7 @@ var openapi_default = {
|
|
|
43315
43601
|
},
|
|
43316
43602
|
previous: "GREEN",
|
|
43317
43603
|
current: "YELLOW",
|
|
43318
|
-
changed_at: "2026-10-05T03:00:
|
|
43604
|
+
changed_at: "2026-10-05T03:00:00Z",
|
|
43319
43605
|
connect_link_id: null,
|
|
43320
43606
|
workspace_id: 37
|
|
43321
43607
|
}
|
|
@@ -43400,7 +43686,7 @@ var openapi_default = {
|
|
|
43400
43686
|
},
|
|
43401
43687
|
previous: "TIER_1K",
|
|
43402
43688
|
current: "TIER_10K",
|
|
43403
|
-
changed_at: "2026-10-05T03:00:
|
|
43689
|
+
changed_at: "2026-10-05T03:00:00Z",
|
|
43404
43690
|
connect_link_id: null,
|
|
43405
43691
|
workspace_id: 37
|
|
43406
43692
|
}
|
|
@@ -43513,7 +43799,7 @@ var openapi_default = {
|
|
|
43513
43799
|
status: "APPROVED",
|
|
43514
43800
|
verified_name: "Soporte Lucky Shrub",
|
|
43515
43801
|
rejection_reason: null,
|
|
43516
|
-
reviewed_at: "2026-10-05T03:00:
|
|
43802
|
+
reviewed_at: "2026-10-05T03:00:00Z",
|
|
43517
43803
|
connect_link_id: null,
|
|
43518
43804
|
workspace_id: 37
|
|
43519
43805
|
}
|
|
@@ -45109,6 +45395,251 @@ var openapi_default = {
|
|
|
45109
45395
|
],
|
|
45110
45396
|
title: "ApiGroupActionAcceptedResource"
|
|
45111
45397
|
},
|
|
45398
|
+
ApiGroupActionResource: {
|
|
45399
|
+
type: "object",
|
|
45400
|
+
properties: {
|
|
45401
|
+
action_id: {
|
|
45402
|
+
type: "string",
|
|
45403
|
+
description: "Id de la acci\xF3n: el `action_id` del `202`."
|
|
45404
|
+
},
|
|
45405
|
+
type: {
|
|
45406
|
+
type: "string",
|
|
45407
|
+
description: "Tipo de acci\xF3n.",
|
|
45408
|
+
enum: [
|
|
45409
|
+
"create_group",
|
|
45410
|
+
"add_participants",
|
|
45411
|
+
"remove_participants",
|
|
45412
|
+
"promote_admins",
|
|
45413
|
+
"demote_admins",
|
|
45414
|
+
"update_name",
|
|
45415
|
+
"update_description",
|
|
45416
|
+
"update_photo",
|
|
45417
|
+
"update_settings",
|
|
45418
|
+
"renew_invite_link",
|
|
45419
|
+
"send_message",
|
|
45420
|
+
"approve_join_requests",
|
|
45421
|
+
"reject_join_requests"
|
|
45422
|
+
]
|
|
45423
|
+
},
|
|
45424
|
+
status: {
|
|
45425
|
+
type: "string",
|
|
45426
|
+
description: "Estado de la acci\xF3n.",
|
|
45427
|
+
enum: [
|
|
45428
|
+
"queued",
|
|
45429
|
+
"running",
|
|
45430
|
+
"completed",
|
|
45431
|
+
"failed"
|
|
45432
|
+
]
|
|
45433
|
+
},
|
|
45434
|
+
device_id: {
|
|
45435
|
+
type: [
|
|
45436
|
+
"integer",
|
|
45437
|
+
"null"
|
|
45438
|
+
],
|
|
45439
|
+
description: "N\xFAmero que ejecuta la acci\xF3n; `null` si es de otro workspace que el de la key."
|
|
45440
|
+
},
|
|
45441
|
+
group: {
|
|
45442
|
+
type: [
|
|
45443
|
+
"object",
|
|
45444
|
+
"null"
|
|
45445
|
+
],
|
|
45446
|
+
description: "Grupo de la acci\xF3n; `null` si todav\xEDa no existe (una creaci\xF3n sin terminar) o es de otro workspace que el de la key.",
|
|
45447
|
+
properties: {
|
|
45448
|
+
uid: {
|
|
45449
|
+
type: "string"
|
|
45450
|
+
},
|
|
45451
|
+
name: {
|
|
45452
|
+
type: [
|
|
45453
|
+
"string",
|
|
45454
|
+
"null"
|
|
45455
|
+
]
|
|
45456
|
+
}
|
|
45457
|
+
},
|
|
45458
|
+
required: [
|
|
45459
|
+
"uid",
|
|
45460
|
+
"name"
|
|
45461
|
+
]
|
|
45462
|
+
},
|
|
45463
|
+
result: {
|
|
45464
|
+
description: 'Resultado de una acci\xF3n `completed`; `null` mientras est\xE1 `queued` o `running` y cuando termina `failed`. Su forma depende de `type`: `{"participants": [...]}` (una lista, en el orden del pedido) para las acciones con lista de tel\xE9fonos; `{"group": {"uid", "name"}, "invite_link"}` para `create_group`; `{"invite_link"}` para `renew_invite_link`; `{"message": {"uid"}}` para `send_message`; `{}` para las dem\xE1s. Es el mismo `result` del evento `group_action.completed`.',
|
|
45465
|
+
anyOf: [
|
|
45466
|
+
{
|
|
45467
|
+
type: "object",
|
|
45468
|
+
properties: {
|
|
45469
|
+
participants: {
|
|
45470
|
+
type: "array",
|
|
45471
|
+
items: {
|
|
45472
|
+
type: "object",
|
|
45473
|
+
properties: {
|
|
45474
|
+
identity: {
|
|
45475
|
+
type: [
|
|
45476
|
+
"string",
|
|
45477
|
+
"null"
|
|
45478
|
+
]
|
|
45479
|
+
},
|
|
45480
|
+
identity_type: {
|
|
45481
|
+
type: [
|
|
45482
|
+
"string",
|
|
45483
|
+
"null"
|
|
45484
|
+
]
|
|
45485
|
+
},
|
|
45486
|
+
status: {
|
|
45487
|
+
type: "string",
|
|
45488
|
+
enum: [
|
|
45489
|
+
"added",
|
|
45490
|
+
"invited",
|
|
45491
|
+
"removed",
|
|
45492
|
+
"promoted",
|
|
45493
|
+
"demoted",
|
|
45494
|
+
"approved",
|
|
45495
|
+
"rejected",
|
|
45496
|
+
"failed"
|
|
45497
|
+
]
|
|
45498
|
+
},
|
|
45499
|
+
reason: {
|
|
45500
|
+
type: [
|
|
45501
|
+
"string",
|
|
45502
|
+
"null"
|
|
45503
|
+
]
|
|
45504
|
+
}
|
|
45505
|
+
},
|
|
45506
|
+
required: [
|
|
45507
|
+
"identity",
|
|
45508
|
+
"identity_type",
|
|
45509
|
+
"status",
|
|
45510
|
+
"reason"
|
|
45511
|
+
]
|
|
45512
|
+
}
|
|
45513
|
+
}
|
|
45514
|
+
},
|
|
45515
|
+
required: [
|
|
45516
|
+
"participants"
|
|
45517
|
+
]
|
|
45518
|
+
},
|
|
45519
|
+
{
|
|
45520
|
+
type: "object",
|
|
45521
|
+
properties: {
|
|
45522
|
+
group: {
|
|
45523
|
+
type: "object",
|
|
45524
|
+
properties: {
|
|
45525
|
+
uid: {
|
|
45526
|
+
type: "string"
|
|
45527
|
+
},
|
|
45528
|
+
name: {
|
|
45529
|
+
type: [
|
|
45530
|
+
"string",
|
|
45531
|
+
"null"
|
|
45532
|
+
]
|
|
45533
|
+
}
|
|
45534
|
+
},
|
|
45535
|
+
required: [
|
|
45536
|
+
"uid",
|
|
45537
|
+
"name"
|
|
45538
|
+
]
|
|
45539
|
+
},
|
|
45540
|
+
invite_link: {
|
|
45541
|
+
type: [
|
|
45542
|
+
"string",
|
|
45543
|
+
"null"
|
|
45544
|
+
]
|
|
45545
|
+
}
|
|
45546
|
+
},
|
|
45547
|
+
required: [
|
|
45548
|
+
"group",
|
|
45549
|
+
"invite_link"
|
|
45550
|
+
]
|
|
45551
|
+
},
|
|
45552
|
+
{
|
|
45553
|
+
type: "object",
|
|
45554
|
+
properties: {
|
|
45555
|
+
invite_link: {
|
|
45556
|
+
type: [
|
|
45557
|
+
"string",
|
|
45558
|
+
"null"
|
|
45559
|
+
]
|
|
45560
|
+
}
|
|
45561
|
+
},
|
|
45562
|
+
required: [
|
|
45563
|
+
"invite_link"
|
|
45564
|
+
]
|
|
45565
|
+
},
|
|
45566
|
+
{
|
|
45567
|
+
type: "object",
|
|
45568
|
+
properties: {
|
|
45569
|
+
message: {
|
|
45570
|
+
type: "object",
|
|
45571
|
+
properties: {
|
|
45572
|
+
uid: {
|
|
45573
|
+
type: [
|
|
45574
|
+
"string",
|
|
45575
|
+
"null"
|
|
45576
|
+
]
|
|
45577
|
+
}
|
|
45578
|
+
},
|
|
45579
|
+
required: [
|
|
45580
|
+
"uid"
|
|
45581
|
+
]
|
|
45582
|
+
}
|
|
45583
|
+
},
|
|
45584
|
+
required: [
|
|
45585
|
+
"message"
|
|
45586
|
+
]
|
|
45587
|
+
},
|
|
45588
|
+
{
|
|
45589
|
+
type: "object"
|
|
45590
|
+
},
|
|
45591
|
+
{
|
|
45592
|
+
type: "null"
|
|
45593
|
+
}
|
|
45594
|
+
]
|
|
45595
|
+
},
|
|
45596
|
+
reason: {
|
|
45597
|
+
type: [
|
|
45598
|
+
"string",
|
|
45599
|
+
"null"
|
|
45600
|
+
],
|
|
45601
|
+
description: "Motivo de una acci\xF3n `failed`; `null` en los dem\xE1s estados. Vocabulario cerrado: la secci\xF3n \xABMotivos\xBB de \xABAcciones de grupo\xBB."
|
|
45602
|
+
},
|
|
45603
|
+
created_at: {
|
|
45604
|
+
type: [
|
|
45605
|
+
"string",
|
|
45606
|
+
"null"
|
|
45607
|
+
]
|
|
45608
|
+
},
|
|
45609
|
+
started_at: {
|
|
45610
|
+
type: [
|
|
45611
|
+
"string",
|
|
45612
|
+
"null"
|
|
45613
|
+
]
|
|
45614
|
+
},
|
|
45615
|
+
completed_at: {
|
|
45616
|
+
type: [
|
|
45617
|
+
"string",
|
|
45618
|
+
"null"
|
|
45619
|
+
]
|
|
45620
|
+
},
|
|
45621
|
+
failed_at: {
|
|
45622
|
+
type: [
|
|
45623
|
+
"string",
|
|
45624
|
+
"null"
|
|
45625
|
+
]
|
|
45626
|
+
}
|
|
45627
|
+
},
|
|
45628
|
+
required: [
|
|
45629
|
+
"action_id",
|
|
45630
|
+
"type",
|
|
45631
|
+
"status",
|
|
45632
|
+
"device_id",
|
|
45633
|
+
"group",
|
|
45634
|
+
"result",
|
|
45635
|
+
"reason",
|
|
45636
|
+
"created_at",
|
|
45637
|
+
"started_at",
|
|
45638
|
+
"completed_at",
|
|
45639
|
+
"failed_at"
|
|
45640
|
+
],
|
|
45641
|
+
title: "ApiGroupActionResource"
|
|
45642
|
+
},
|
|
45112
45643
|
ApiGroupDescriptionRequest: {
|
|
45113
45644
|
type: "object",
|
|
45114
45645
|
description: "Cuerpo de `PUT /groups/{group}/description`: una descripci\xF3n vac\xEDa la borra, salvo con un n\xFAmero oficial,\nen el que WhatsApp no permite borrarla. Los campos que no figuran se ignoran.",
|
|
@@ -48774,7 +49305,7 @@ var openapi_default = {
|
|
|
48774
49305
|
"integer",
|
|
48775
49306
|
"null"
|
|
48776
49307
|
],
|
|
48777
|
-
description: "
|
|
49308
|
+
description: "En la \xFAltima evaluaci\xF3n, cu\xE1ntos grupos ten\xEDa el n\xFAmero; `null` si nunca se evalu\xF3."
|
|
48778
49309
|
},
|
|
48779
49310
|
overloaded_one_to_one_count: {
|
|
48780
49311
|
type: [
|
|
@@ -48793,7 +49324,7 @@ var openapi_default = {
|
|
|
48793
49324
|
},
|
|
48794
49325
|
overloaded_alert_level: {
|
|
48795
49326
|
type: "string",
|
|
48796
|
-
description: "
|
|
49327
|
+
description: "El evento de n\xFAmero sobrecargado: `loud` (sin descartar), `latent` (descartado en este\nepisodio) o `none` (no est\xE1 sobrecargado o nunca se evalu\xF3)."
|
|
48797
49328
|
},
|
|
48798
49329
|
overloaded_dismissed_at: {
|
|
48799
49330
|
type: [
|
|
@@ -55227,7 +55758,7 @@ var openapi_default = {
|
|
|
55227
55758
|
generated_by: "scripts/generate.mjs",
|
|
55228
55759
|
note: "GENERATED: do not edit it. The portal's snapshot plus the pending layers.",
|
|
55229
55760
|
inputs: {
|
|
55230
|
-
"spec/funnelchat.json": "
|
|
55761
|
+
"spec/funnelchat.json": "7db2ead826697c80fd8feef3f0ea556b5374dd3d2cb5e02f3cfe4584af79e33c",
|
|
55231
55762
|
"spec/pending.json": "dd7b8cf6e5be45ddf1c0c00a9f4480cceec11b364adec083bbf989fa11944d9d",
|
|
55232
55763
|
"spec/pending-sandbox.json": "32bcbfef902fbabd57e1626f4d97e964b89f3c561c7b0f0e21531c8576019aaf"
|
|
55233
55764
|
},
|
|
@@ -55241,7 +55772,6 @@ var openapi_default = {
|
|
|
55241
55772
|
"GET /api/v1/devices/{device}/qr (respuestas: 200) [pending.json]",
|
|
55242
55773
|
"GET /api/v1/templates (respuestas: 200) [pending.json]",
|
|
55243
55774
|
"PUT /api/v1/webhooks/{id} (respuestas: 200) [pending.json]",
|
|
55244
|
-
"GET /api/v1/groups/actions/{action} (respuestas: 200) [pending.json]",
|
|
55245
55775
|
"webhook device.connected [pending.json]",
|
|
55246
55776
|
"webhook device.disconnected [pending.json]",
|
|
55247
55777
|
"webhook billing.payment_failed [pending.json]",
|
|
@@ -56275,11 +56805,8 @@ function resolveFile(body2, style) {
|
|
|
56275
56805
|
if (fileType !== null) return { file, type: fileType, fileName };
|
|
56276
56806
|
const type = SUPPORTED_EXTENSIONS[extension];
|
|
56277
56807
|
if (type) return { file, type, fileName };
|
|
56278
|
-
const
|
|
56279
|
-
throw new
|
|
56280
|
-
415,
|
|
56281
|
-
style === "conversation" ? { error, supported_file_types: Object.keys(SUPPORTED_EXTENSIONS) } : { status: "error", error }
|
|
56282
|
-
);
|
|
56808
|
+
const message = `Unsupported file type: ${extension}`;
|
|
56809
|
+
throw new ApiError(415, "bad_request", message, style === "conversation" ? { supported_file_types: Object.keys(SUPPORTED_EXTENSIONS) } : {});
|
|
56283
56810
|
}
|
|
56284
56811
|
|
|
56285
56812
|
// src/openapi/shape.ts
|
|
@@ -56305,7 +56832,7 @@ function shapeOnlyAnswer(op) {
|
|
|
56305
56832
|
|
|
56306
56833
|
// package.json
|
|
56307
56834
|
var package_default = {
|
|
56308
|
-
version: "0.5.
|
|
56835
|
+
version: "0.5.2"};
|
|
56309
56836
|
|
|
56310
56837
|
// src/version.ts
|
|
56311
56838
|
var VERSION = package_default.version;
|
|
@@ -57456,27 +57983,27 @@ function connectDevice(app, device, options = {}) {
|
|
|
57456
57983
|
device.connected = true;
|
|
57457
57984
|
device.firstConnectedAt ??= at;
|
|
57458
57985
|
if (device.kind === "cloud" && (device.health === null || device.health === "unknown")) device.health = "available";
|
|
57459
|
-
return app.webhooks.emit("device.connected", eventData(device, { connected_at:
|
|
57986
|
+
return app.webhooks.emit("device.connected", eventData(device, { connected_at: isoSeconds(at) }, connectLinkId), { occurredAt: at, workspaceId: device.workspaceId });
|
|
57460
57987
|
}
|
|
57461
57988
|
function disconnectDevice(app, device, reason) {
|
|
57462
57989
|
if (!device.connected) return null;
|
|
57463
57990
|
const at = /* @__PURE__ */ new Date();
|
|
57464
57991
|
device.connected = false;
|
|
57465
|
-
return app.webhooks.emit("device.disconnected", eventData(device, { disconnected_at:
|
|
57992
|
+
return app.webhooks.emit("device.disconnected", eventData(device, { disconnected_at: isoSeconds(at), reason }), { occurredAt: at, workspaceId: device.workspaceId });
|
|
57466
57993
|
}
|
|
57467
57994
|
function setHealth(app, device, state2) {
|
|
57468
57995
|
const previous = device.health ?? "unknown";
|
|
57469
57996
|
if (previous === state2) return null;
|
|
57470
57997
|
device.health = state2;
|
|
57471
57998
|
const at = /* @__PURE__ */ new Date();
|
|
57472
|
-
return app.webhooks.emit("device.health_changed", eventData(device, { previous_state: previous, state: state2, changed_at:
|
|
57999
|
+
return app.webhooks.emit("device.health_changed", eventData(device, { previous_state: previous, state: state2, changed_at: isoSeconds(at) }), {
|
|
57473
58000
|
occurredAt: at,
|
|
57474
58001
|
workspaceId: device.workspaceId
|
|
57475
58002
|
});
|
|
57476
58003
|
}
|
|
57477
58004
|
function deleteDevice(app, device) {
|
|
57478
58005
|
const at = /* @__PURE__ */ new Date();
|
|
57479
|
-
const event = app.webhooks.emit("device.deleted", eventData(device, { deleted_at:
|
|
58006
|
+
const event = app.webhooks.emit("device.deleted", eventData(device, { deleted_at: isoSeconds(at) }), { occurredAt: at, workspaceId: device.workspaceId });
|
|
57480
58007
|
app.store.devices.delete(device.id);
|
|
57481
58008
|
for (const link of app.store.connectLinks.values()) {
|
|
57482
58009
|
if (link.reconnect && link.deviceId === device.id && link.status === "pending") {
|
|
@@ -58478,13 +59005,13 @@ function sendTemplate(ctx) {
|
|
|
58478
59005
|
if (!template) throw new ApiError(404, "template_not_found", "No se envi\xF3: la plantilla no existe en tu cuenta. Revisa el identificador de la plantilla.");
|
|
58479
59006
|
const device = ctx.app.store.devices.get(Number(ctx.path.device));
|
|
58480
59007
|
if (!device) throw rejection("device_unavailable");
|
|
58481
|
-
if (template.deviceId !== device.id) throw new
|
|
59008
|
+
if (template.deviceId !== device.id) throw new ApiError(422, "template_waba_mismatch", "La plantilla no pertenece al n\xFAmero actual");
|
|
58482
59009
|
if (template.status !== "APPROVED") throw fieldError("template", `La plantilla est\xE1 ${template.status}: solo se env\xEDan plantillas aprobadas.`);
|
|
58483
59010
|
assertUsable(b, device);
|
|
58484
59011
|
const identity = byIdentity(b);
|
|
58485
59012
|
const contactId = identity ? sendRecipient(ctx, b).id : Number(b.contact_id);
|
|
58486
59013
|
const contact = ctx.app.store.contacts.get(contactId);
|
|
58487
|
-
if (!contact || !sees(ctx.workspace, contact.workspaceId)) throw new
|
|
59014
|
+
if (!contact || !sees(ctx.workspace, contact.workspaceId)) throw new ApiError(404, "not_found", "Contact not found");
|
|
58488
59015
|
if (!device.connected) throw rejection("device_unavailable");
|
|
58489
59016
|
const variables = b.template_variables?.body;
|
|
58490
59017
|
const phone = identity ? void 0 : b.phone;
|
|
@@ -58515,9 +59042,9 @@ var messageHandlers = {
|
|
|
58515
59042
|
let contact = null;
|
|
58516
59043
|
if (!byIdentity(b)) {
|
|
58517
59044
|
contact = ctx.app.store.contacts.get(Number(b.contact_id)) ?? null;
|
|
58518
|
-
if (!contact || !sees(ctx.workspace, contact.workspaceId)) throw new
|
|
59045
|
+
if (!contact || !sees(ctx.workspace, contact.workspaceId)) throw new ApiError(404, "not_found", "Contacto no encontrado.", { status: "error" });
|
|
58519
59046
|
}
|
|
58520
|
-
if (!ctx.app.store.devices.has(Number(b.device_id))) throw new
|
|
59047
|
+
if (!ctx.app.store.devices.has(Number(b.device_id))) throw new ApiError(403, "forbidden", "No autorizado");
|
|
58521
59048
|
return sendToContact(ctx, contact, "direct");
|
|
58522
59049
|
},
|
|
58523
59050
|
// The spec of the portal names the parameter `{template}`; conversations, `{template_id}`. Same URL.
|
|
@@ -59690,7 +60217,7 @@ var webhookHandlers = {
|
|
|
59690
60217
|
const b = body(ctx);
|
|
59691
60218
|
checkSubscriptionBody(ctx.app, b);
|
|
59692
60219
|
if (ofWorkspace(ctx).length >= SUBSCRIPTION_LIMIT) {
|
|
59693
|
-
throw new ApiError(422, "
|
|
60220
|
+
throw new ApiError(422, "webhooks_limit_reached", `Alcanzaste el l\xEDmite de ${SUBSCRIPTION_LIMIT} suscripciones de webhook.`);
|
|
59694
60221
|
}
|
|
59695
60222
|
const now = /* @__PURE__ */ new Date();
|
|
59696
60223
|
const subscription = {
|
|
@@ -60823,5 +61350,5 @@ function createSandbox(options = {}) {
|
|
|
60823
61350
|
}
|
|
60824
61351
|
|
|
60825
61352
|
export { ConfigError, DEFAULT_CONFIG_FILE, DEFAULT_PORT, DELIVERY_HEADER, EDGE_ERRORS, EVENT_HEADER, FAILURE_REASONS, FORM_TEMPLATES, META_ERRORS, REJECTIONS, REQUEST_ID_HEADER, SEND_FILE_TYPES, SIGNATURE_HEADER, SIMULATED_HEADER, SUPPORTED_EXTENSIONS, VERSION, catalog, createSandbox, defaultConfig, mergeConfig, parseArgs, resolveConfig, signature };
|
|
60826
|
-
//# sourceMappingURL=chunk-
|
|
60827
|
-
//# sourceMappingURL=chunk-
|
|
61353
|
+
//# sourceMappingURL=chunk-4ELMG644.js.map
|
|
61354
|
+
//# sourceMappingURL=chunk-4ELMG644.js.map
|