@izapai/sdk 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -89,6 +89,27 @@ export type BodyUploadBusinessLibraryImageForCurrentBusinessApiV1BusinessesLibra
89
89
  */
90
90
  title?: string | null;
91
91
  };
92
+ /**
93
+ * Body_upload_business_library_sticker_for_current_business_api_v1_businesses_library_stickers_post
94
+ */
95
+ export type BodyUploadBusinessLibraryStickerForCurrentBusinessApiV1BusinessesLibraryStickersPost = {
96
+ /**
97
+ * Description
98
+ */
99
+ description?: string | null;
100
+ /**
101
+ * File
102
+ */
103
+ file: Blob | File;
104
+ /**
105
+ * Tags
106
+ */
107
+ tags?: string | null;
108
+ /**
109
+ * Title
110
+ */
111
+ title?: string | null;
112
+ };
92
113
  /**
93
114
  * Body_upload_files_api_v1_chats__chat_id__upload_post
94
115
  */
@@ -110,6 +131,10 @@ export type BusinessCreateRequest = {
110
131
  * Owner Contact
111
132
  */
112
133
  owner_contact?: string | null;
134
+ /**
135
+ * Owner Contact Region
136
+ */
137
+ owner_contact_region?: string | null;
113
138
  /**
114
139
  * Owner Name
115
140
  */
@@ -302,6 +327,33 @@ export type BusinessLibraryImageOut = {
302
327
  */
303
328
  url: string;
304
329
  };
330
+ /**
331
+ * BusinessLibraryStickerListResponse
332
+ *
333
+ * Paginated list of WhatsApp stickers in the library (newest first).
334
+ */
335
+ export type BusinessLibraryStickerListResponse = {
336
+ /**
337
+ * Has Next
338
+ */
339
+ has_next: boolean;
340
+ /**
341
+ * Limit
342
+ */
343
+ limit: number;
344
+ /**
345
+ * Offset
346
+ */
347
+ offset: number;
348
+ /**
349
+ * Stickers
350
+ */
351
+ stickers: Array<BusinessLibraryImageOut>;
352
+ /**
353
+ * Total
354
+ */
355
+ total: number;
356
+ };
305
357
  /**
306
358
  * BusinessMenuOut
307
359
  */
@@ -491,6 +543,10 @@ export type ChatMessageStatus = 'new' | 'queued' | 'sending' | 'sent' | 'failed'
491
543
  * A chat message as embedded in the send-message responses below.
492
544
  */
493
545
  export type ChatMessageSummaryOut = {
546
+ /**
547
+ * Client Message Id
548
+ */
549
+ client_message_id?: string | null;
494
550
  /**
495
551
  * Content
496
552
  */
@@ -759,6 +815,10 @@ export type ChatbotOut = {
759
815
  * Effective Locale
760
816
  */
761
817
  effective_locale: string;
818
+ /**
819
+ * Hold Ai After Manual Reply
820
+ */
821
+ hold_ai_after_manual_reply?: boolean;
762
822
  /**
763
823
  * Id
764
824
  */
@@ -831,6 +891,105 @@ export type ChatbotWhatsAppNumberOut = {
831
891
  */
832
892
  verified_name?: string | null;
833
893
  };
894
+ /**
895
+ * ContactConversationOut
896
+ */
897
+ export type ContactConversationOut = {
898
+ /**
899
+ * Chatbot Id
900
+ */
901
+ chatbot_id: string | null;
902
+ /**
903
+ * Chatbot Name
904
+ */
905
+ chatbot_name: string | null;
906
+ /**
907
+ * Id
908
+ */
909
+ id: string;
910
+ /**
911
+ * Last Message At
912
+ */
913
+ last_message_at: string | null;
914
+ };
915
+ /**
916
+ * ContactCreateIn
917
+ */
918
+ export type ContactCreateIn = {
919
+ /**
920
+ * Email
921
+ */
922
+ email?: string | null;
923
+ /**
924
+ * Name
925
+ */
926
+ name: string;
927
+ /**
928
+ * Notes
929
+ */
930
+ notes?: string | null;
931
+ /**
932
+ * Phone Number
933
+ */
934
+ phone_number: string;
935
+ /**
936
+ * Tags
937
+ */
938
+ tags?: Array<string>;
939
+ };
940
+ /**
941
+ * ContactDetailOut
942
+ */
943
+ export type ContactDetailOut = {
944
+ /**
945
+ * Ai Paused
946
+ */
947
+ ai_paused: boolean;
948
+ /**
949
+ * Conversation Id
950
+ */
951
+ conversation_id: string | null;
952
+ /**
953
+ * Conversations
954
+ */
955
+ conversations: Array<ContactConversationOut>;
956
+ /**
957
+ * Created At
958
+ */
959
+ created_at: string;
960
+ /**
961
+ * Email
962
+ */
963
+ email: string | null;
964
+ /**
965
+ * Id
966
+ */
967
+ id: string;
968
+ /**
969
+ * Last Interaction At
970
+ */
971
+ last_interaction_at: string | null;
972
+ /**
973
+ * Name
974
+ */
975
+ name: string;
976
+ /**
977
+ * Notes
978
+ */
979
+ notes: string | null;
980
+ /**
981
+ * Opted Out
982
+ */
983
+ opted_out: boolean;
984
+ /**
985
+ * Phone Number
986
+ */
987
+ phone_number: string | null;
988
+ /**
989
+ * Tags
990
+ */
991
+ tags: Array<string>;
992
+ };
834
993
  /**
835
994
  * ContactFilterEntriesAddedOut
836
995
  */
@@ -927,6 +1086,159 @@ export type ContactFilterOut = {
927
1086
  */
928
1087
  mode: ContactFilterMode;
929
1088
  };
1089
+ /**
1090
+ * ContactImportIn
1091
+ */
1092
+ export type ContactImportIn = {
1093
+ /**
1094
+ * Rows
1095
+ */
1096
+ rows: Array<ContactImportRowIn>;
1097
+ };
1098
+ /**
1099
+ * ContactImportOut
1100
+ */
1101
+ export type ContactImportOut = {
1102
+ /**
1103
+ * Created
1104
+ */
1105
+ created: number;
1106
+ /**
1107
+ * Skipped
1108
+ */
1109
+ skipped: Array<ContactImportSkippedOut>;
1110
+ /**
1111
+ * Updated
1112
+ */
1113
+ updated: number;
1114
+ };
1115
+ /**
1116
+ * ContactImportRowIn
1117
+ */
1118
+ export type ContactImportRowIn = {
1119
+ /**
1120
+ * Email
1121
+ */
1122
+ email?: string | null;
1123
+ /**
1124
+ * Name
1125
+ */
1126
+ name?: string | null;
1127
+ /**
1128
+ * Phone Number
1129
+ */
1130
+ phone_number: string;
1131
+ /**
1132
+ * Tags
1133
+ */
1134
+ tags?: Array<string>;
1135
+ };
1136
+ /**
1137
+ * ContactImportSkippedOut
1138
+ */
1139
+ export type ContactImportSkippedOut = {
1140
+ /**
1141
+ * Reason
1142
+ */
1143
+ reason: 'invalid_phone' | 'duplicate_in_file' | 'invalid_email';
1144
+ /**
1145
+ * Row
1146
+ */
1147
+ row: number;
1148
+ };
1149
+ /**
1150
+ * ContactListOut
1151
+ */
1152
+ export type ContactListOut = {
1153
+ /**
1154
+ * Items
1155
+ */
1156
+ items: Array<ContactOut>;
1157
+ /**
1158
+ * Page
1159
+ */
1160
+ page: number;
1161
+ /**
1162
+ * Page Size
1163
+ */
1164
+ page_size: number;
1165
+ /**
1166
+ * Total
1167
+ */
1168
+ total: number;
1169
+ };
1170
+ /**
1171
+ * ContactOut
1172
+ */
1173
+ export type ContactOut = {
1174
+ /**
1175
+ * Ai Paused
1176
+ */
1177
+ ai_paused: boolean;
1178
+ /**
1179
+ * Conversation Id
1180
+ */
1181
+ conversation_id: string | null;
1182
+ /**
1183
+ * Created At
1184
+ */
1185
+ created_at: string;
1186
+ /**
1187
+ * Email
1188
+ */
1189
+ email: string | null;
1190
+ /**
1191
+ * Id
1192
+ */
1193
+ id: string;
1194
+ /**
1195
+ * Last Interaction At
1196
+ */
1197
+ last_interaction_at: string | null;
1198
+ /**
1199
+ * Name
1200
+ */
1201
+ name: string;
1202
+ /**
1203
+ * Notes
1204
+ */
1205
+ notes: string | null;
1206
+ /**
1207
+ * Opted Out
1208
+ */
1209
+ opted_out: boolean;
1210
+ /**
1211
+ * Phone Number
1212
+ */
1213
+ phone_number: string | null;
1214
+ /**
1215
+ * Tags
1216
+ */
1217
+ tags: Array<string>;
1218
+ };
1219
+ /**
1220
+ * ContactUpdateIn
1221
+ *
1222
+ * Only the fields sent are changed; the phone number is fixed once created.
1223
+ */
1224
+ export type ContactUpdateIn = {
1225
+ /**
1226
+ * Email
1227
+ */
1228
+ email?: string | null;
1229
+ /**
1230
+ * Name
1231
+ */
1232
+ name?: string | null;
1233
+ /**
1234
+ * Notes
1235
+ */
1236
+ notes?: string | null;
1237
+ /**
1238
+ * Tags
1239
+ */
1240
+ tags?: Array<string> | null;
1241
+ };
930
1242
  /**
931
1243
  * CreateChatIn
932
1244
  */
@@ -954,6 +1266,10 @@ export type CreateMessageIn = {
954
1266
  * Attachments
955
1267
  */
956
1268
  attachments?: Array<MessageAttachment> | null;
1269
+ /**
1270
+ * Client Message Id
1271
+ */
1272
+ client_message_id?: string | null;
957
1273
  /**
958
1274
  * Content
959
1275
  */
@@ -1006,12 +1322,42 @@ export type CreateTransmissionPreviewIn = {
1006
1322
  * Business Id
1007
1323
  */
1008
1324
  business_id?: string | null;
1325
+ /**
1326
+ * Header Media Document Id
1327
+ *
1328
+ * UUID or filename of a document or video in the business's media library to use as the template's DOCUMENT or VIDEO header. Mutually exclusive with the other header media sources.
1329
+ */
1330
+ header_media_document_id?: string | null;
1331
+ /**
1332
+ * Header Media Filename
1333
+ *
1334
+ * Name recipients see for a DOCUMENT header. Ignored for image and video headers.
1335
+ */
1336
+ header_media_filename?: string | null;
1337
+ /**
1338
+ * Header Media Image Id
1339
+ *
1340
+ * UUID or filename of an image in the business's media library to use as the template's IMAGE header. Mutually exclusive with the other header media sources.
1341
+ */
1342
+ header_media_image_id?: string | null;
1343
+ /**
1344
+ * Header Media Url
1345
+ *
1346
+ * Public https:// URL of the file for the template's media header (an image for an IMAGE header, a PDF for a DOCUMENT header, an MP4 for a VIDEO header). Required when the template was approved with a media header; the same file goes to every recipient. Mutually exclusive with the library header fields.
1347
+ */
1348
+ header_media_url?: string | null;
1009
1349
  /**
1010
1350
  * Max Messages Per Minute
1011
1351
  *
1012
1352
  * Sending pace cap. Must be between 1 and 200 messages per minute.
1013
1353
  */
1014
1354
  max_messages_per_minute?: number;
1355
+ /**
1356
+ * Message Text
1357
+ *
1358
+ * Text to send. Required for 'whatsapp_freeform', which only reaches contacts inside the WhatsApp customer-service window; others are skipped.
1359
+ */
1360
+ message_text?: string | null;
1015
1361
  /**
1016
1362
  * Name
1017
1363
  *
@@ -1047,21 +1393,19 @@ export type CreateTransmissionPreviewIn = {
1047
1393
  /**
1048
1394
  * Template Name
1049
1395
  *
1050
- * Name of the pre-approved WhatsApp Cloud API template to send.
1396
+ * Name of the pre-approved WhatsApp Cloud API template to send. Required for 'whatsapp_template'; not accepted for 'whatsapp_freeform', which stores a fixed default.
1051
1397
  */
1052
- template_name: string;
1398
+ template_name?: string;
1053
1399
  /**
1054
1400
  * Timezone
1055
1401
  *
1056
- * IANA timezone used to interpret a naive 'scheduled_at'.
1402
+ * IANA timezone used to interpret a naive 'scheduled_at'. Defaults to the business's configured timezone (America/Sao_Paulo when none is set).
1057
1403
  */
1058
- timezone?: string;
1404
+ timezone?: string | null;
1059
1405
  /**
1060
- * Transmission Type
1061
- *
1062
- * Only 'whatsapp_template' is supported for now.
1406
+ * Transmission kind: 'whatsapp_template' or 'whatsapp_freeform'.
1063
1407
  */
1064
- transmission_type?: 'whatsapp_template';
1408
+ transmission_type?: TransmissionType;
1065
1409
  /**
1066
1410
  * Variable Columns
1067
1411
  *
@@ -1170,11 +1514,6 @@ export type MenuUpdateIn = {
1170
1514
  * MenusOut
1171
1515
  */
1172
1516
  export type MenusOut = {
1173
- /**
1174
- * Ai Model
1175
- */
1176
- ai_model?: string | null;
1177
- ai_model_reasoning?: ReasoningChoices | null;
1178
1517
  /**
1179
1518
  * Id
1180
1519
  */
@@ -1288,10 +1627,6 @@ export type PrincipalResponse = {
1288
1627
  */
1289
1628
  user_id?: string | null;
1290
1629
  };
1291
- /**
1292
- * ReasoningChoices
1293
- */
1294
- export type ReasoningChoices = 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
1295
1630
  /**
1296
1631
  * RegistrationTaskStatus
1297
1632
  *
@@ -1461,15 +1796,86 @@ export type SingleChatMessage = {
1461
1796
  updated_at?: string | null;
1462
1797
  user_message?: SingleChatMessage | null;
1463
1798
  };
1799
+ /**
1800
+ * StartTemplateConversationOut
1801
+ *
1802
+ * Response for ``POST /chats/template-conversations``.
1803
+ */
1804
+ export type StartTemplateConversationOut = {
1805
+ /**
1806
+ * Chat Id
1807
+ */
1808
+ chat_id: string;
1809
+ /**
1810
+ * Consumer Id
1811
+ */
1812
+ consumer_id: string;
1813
+ user_message: ChatMessageSummaryOut;
1814
+ };
1815
+ /**
1816
+ * StartTemplateConversationRequest
1817
+ *
1818
+ * Add a contact and open the conversation with an approved template.
1819
+ *
1820
+ * ``phone`` is any international number in E.164 form (leading ``+``). The business
1821
+ * line to send from may be omitted only when the business has a single line.
1822
+ */
1823
+ export type StartTemplateConversationRequest = {
1824
+ /**
1825
+ * Email
1826
+ */
1827
+ email?: string | null;
1828
+ /**
1829
+ * Name
1830
+ */
1831
+ name?: string | null;
1832
+ /**
1833
+ * Phone
1834
+ *
1835
+ * International phone number, E.164 with leading '+'
1836
+ */
1837
+ phone: string;
1838
+ /**
1839
+ * Template Id
1840
+ */
1841
+ template_id: string;
1842
+ /**
1843
+ * Variables
1844
+ *
1845
+ * Body/button variable values, keyed '1','2',…
1846
+ */
1847
+ variables?: {
1848
+ [key: string]: string;
1849
+ };
1850
+ /**
1851
+ * Whatsapp Number Id
1852
+ */
1853
+ whatsapp_number_id?: string | null;
1854
+ };
1464
1855
  /**
1465
1856
  * TemplateButton
1466
1857
  *
1467
1858
  * A single template button.
1468
1859
  *
1469
- * ``type`` is one of QUICK_REPLY, URL, PHONE_NUMBER. URL/PHONE_NUMBER buttons
1470
- * carry the corresponding ``url``/``phone_number`` field.
1860
+ * ``type`` is one of QUICK_REPLY, URL, PHONE_NUMBER, VOICE_CALL, FLOW, REQUEST_CONTACT_INFO, ORDER_DETAILS. URL/PHONE_NUMBER
1861
+ * buttons carry the corresponding ``url``/``phone_number`` field; FLOW buttons carry
1862
+ * ``flow_id`` and, when navigating, ``navigate_screen``. REQUEST_CONTACT_INFO has no
1863
+ * ``text`` because Meta sets its label. Combination rules are checked
1864
+ * on submission by ``validate_for_submission``.
1471
1865
  */
1472
1866
  export type TemplateButton = {
1867
+ /**
1868
+ * Flow Action
1869
+ */
1870
+ flow_action?: 'navigate' | 'data_exchange' | null;
1871
+ /**
1872
+ * Flow Id
1873
+ */
1874
+ flow_id?: string | null;
1875
+ /**
1876
+ * Navigate Screen
1877
+ */
1878
+ navigate_screen?: string | null;
1473
1879
  /**
1474
1880
  * Phone Number
1475
1881
  */
@@ -1477,11 +1883,11 @@ export type TemplateButton = {
1477
1883
  /**
1478
1884
  * Text
1479
1885
  */
1480
- text: string;
1886
+ text?: string;
1481
1887
  /**
1482
1888
  * Type
1483
1889
  *
1484
- * QUICK_REPLY | URL | PHONE_NUMBER
1890
+ * QUICK_REPLY | URL | PHONE_NUMBER | VOICE_CALL | FLOW | REQUEST_CONTACT_INFO | ORDER_DETAILS
1485
1891
  */
1486
1892
  type: string;
1487
1893
  /**
@@ -1495,6 +1901,18 @@ export type TemplateButton = {
1495
1901
  * Stored/returned button. Label length is uncapped so synced templates can be listed.
1496
1902
  */
1497
1903
  export type TemplateButtonOut = {
1904
+ /**
1905
+ * Flow Action
1906
+ */
1907
+ flow_action?: string | null;
1908
+ /**
1909
+ * Flow Id
1910
+ */
1911
+ flow_id?: string | null;
1912
+ /**
1913
+ * Navigate Screen
1914
+ */
1915
+ navigate_screen?: string | null;
1498
1916
  /**
1499
1917
  * Phone Number
1500
1918
  */
@@ -1502,11 +1920,11 @@ export type TemplateButtonOut = {
1502
1920
  /**
1503
1921
  * Text
1504
1922
  */
1505
- text: string;
1923
+ text?: string;
1506
1924
  /**
1507
1925
  * Type
1508
1926
  *
1509
- * QUICK_REPLY | URL | PHONE_NUMBER
1927
+ * QUICK_REPLY | URL | PHONE_NUMBER | VOICE_CALL | FLOW | REQUEST_CONTACT_INFO | ORDER_DETAILS | COPY_CODE | OTP
1510
1928
  */
1511
1929
  type: string;
1512
1930
  /**
@@ -1743,6 +2161,10 @@ export type TransmissionPreviewOut = {
1743
2161
  * Not On Whatsapp Count
1744
2162
  */
1745
2163
  not_on_whatsapp_count?: number;
2164
+ /**
2165
+ * Outside Window Count
2166
+ */
2167
+ outside_window_count?: number;
1746
2168
  /**
1747
2169
  * Phone Column
1748
2170
  */
@@ -1770,7 +2192,7 @@ export type TransmissionPreviewOut = {
1770
2192
  /**
1771
2193
  * Template Name
1772
2194
  */
1773
- template_name: string;
2195
+ template_name: string | null;
1774
2196
  /**
1775
2197
  * Transmission Id
1776
2198
  */
@@ -1787,6 +2209,10 @@ export type TransmissionPreviewOut = {
1787
2209
  * Valid Count
1788
2210
  */
1789
2211
  valid_count: number;
2212
+ /**
2213
+ * Warning Details
2214
+ */
2215
+ warning_details?: Array<TransmissionWarningOut>;
1790
2216
  /**
1791
2217
  * Warnings
1792
2218
  */
@@ -1843,7 +2269,7 @@ export type TransmissionStatusOut = {
1843
2269
  /**
1844
2270
  * Template Name
1845
2271
  */
1846
- template_name: string;
2272
+ template_name: string | null;
1847
2273
  /**
1848
2274
  * Total Recipients
1849
2275
  */
@@ -1857,6 +2283,34 @@ export type TransmissionStatusOut = {
1857
2283
  */
1858
2284
  transmission_type: string;
1859
2285
  };
2286
+ /**
2287
+ * TransmissionType
2288
+ *
2289
+ * The kind of bulk message a transmission sends.
2290
+ *
2291
+ * ``WHATSAPP_TEMPLATE`` sends an approved template to a phone list. ``WHATSAPP_FREEFORM``
2292
+ * sends a fixed text and only reaches contacts inside Meta's 24h customer-service window.
2293
+ * Modelled as an enum so further channels can be added without a schema change to the
2294
+ * stored value.
2295
+ */
2296
+ export type TransmissionType = 'whatsapp_template' | 'whatsapp_freeform';
2297
+ /**
2298
+ * TransmissionWarningOut
2299
+ */
2300
+ export type TransmissionWarningOut = {
2301
+ /**
2302
+ * Code
2303
+ */
2304
+ code: 'marketing_template' | 'template_not_synced' | 'variable_unmatched';
2305
+ /**
2306
+ * Message
2307
+ */
2308
+ message: string;
2309
+ /**
2310
+ * Variable
2311
+ */
2312
+ variable?: string | null;
2313
+ };
1860
2314
  /**
1861
2315
  * UploadedFile
1862
2316
  *
@@ -2243,6 +2697,12 @@ export type WhatsAppTemplateCreate = {
2243
2697
  * Buttons
2244
2698
  */
2245
2699
  buttons?: Array<TemplateButton>;
2700
+ /**
2701
+ * Call Permission Request
2702
+ *
2703
+ * Add Meta's call permission request component (marketing/utility only, no buttons).
2704
+ */
2705
+ call_permission_request?: boolean;
2246
2706
  category?: TemplateCategory;
2247
2707
  /**
2248
2708
  * Display Name
@@ -2257,6 +2717,10 @@ export type WhatsAppTemplateCreate = {
2257
2717
  */
2258
2718
  footer_text?: string | null;
2259
2719
  header_format?: TemplateHeaderFormat;
2720
+ /**
2721
+ * Header Media Document Id
2722
+ */
2723
+ header_media_document_id?: string | null;
2260
2724
  /**
2261
2725
  * Header Text
2262
2726
  */
@@ -2269,6 +2733,10 @@ export type WhatsAppTemplateCreate = {
2269
2733
  * Name
2270
2734
  */
2271
2735
  name: string;
2736
+ /**
2737
+ * Waba Id
2738
+ */
2739
+ waba_id?: string | null;
2272
2740
  };
2273
2741
  /**
2274
2742
  * WhatsAppTemplateOut
@@ -2286,6 +2754,12 @@ export type WhatsAppTemplateOut = {
2286
2754
  * Buttons
2287
2755
  */
2288
2756
  buttons?: Array<TemplateButtonOut>;
2757
+ /**
2758
+ * Call Permission Request
2759
+ *
2760
+ * Add Meta's call permission request component (marketing/utility only, no buttons).
2761
+ */
2762
+ call_permission_request?: boolean;
2289
2763
  category?: TemplateCategory;
2290
2764
  /**
2291
2765
  * Created
@@ -2304,6 +2778,10 @@ export type WhatsAppTemplateOut = {
2304
2778
  */
2305
2779
  footer_text?: string | null;
2306
2780
  header_format?: TemplateHeaderFormat;
2781
+ /**
2782
+ * Header Media Document Id
2783
+ */
2784
+ header_media_document_id?: string | null;
2307
2785
  /**
2308
2786
  * Header Text
2309
2787
  */
@@ -2341,11 +2819,15 @@ export type WhatsAppTemplateOut = {
2341
2819
  */
2342
2820
  rejection_reason?: string | null;
2343
2821
  status: TemplateStatus;
2822
+ /**
2823
+ * Waba Id
2824
+ */
2825
+ waba_id?: string | null;
2344
2826
  };
2345
2827
  /**
2346
2828
  * WhatsAppTemplateUpdate
2347
2829
  *
2348
- * Partial update. Approved templates can only be edited while in DRAFT/REJECTED.
2830
+ * Partial update. Content edits to APPROVED/PAUSED templates are sent to Meta immediately.
2349
2831
  */
2350
2832
  export type WhatsAppTemplateUpdate = {
2351
2833
  /**
@@ -2356,6 +2838,10 @@ export type WhatsAppTemplateUpdate = {
2356
2838
  * Buttons
2357
2839
  */
2358
2840
  buttons?: Array<TemplateButton> | null;
2841
+ /**
2842
+ * Call Permission Request
2843
+ */
2844
+ call_permission_request?: boolean | null;
2359
2845
  category?: TemplateCategory | null;
2360
2846
  /**
2361
2847
  * Display Name
@@ -2370,6 +2856,10 @@ export type WhatsAppTemplateUpdate = {
2370
2856
  */
2371
2857
  footer_text?: string | null;
2372
2858
  header_format?: TemplateHeaderFormat | null;
2859
+ /**
2860
+ * Header Media Document Id
2861
+ */
2862
+ header_media_document_id?: string | null;
2373
2863
  /**
2374
2864
  * Header Text
2375
2865
  */
@@ -3041,9 +3531,155 @@ export type UploadBusinessLibraryImageData = {
3041
3531
  };
3042
3532
  path?: never;
3043
3533
  query?: never;
3044
- url: '/api/v1/businesses/library/images';
3534
+ url: '/api/v1/businesses/library/images';
3535
+ };
3536
+ export type UploadBusinessLibraryImageErrors = {
3537
+ /**
3538
+ * Missing or invalid credentials.
3539
+ */
3540
+ 401: ApiError;
3541
+ /**
3542
+ * The credential is valid but not authorized for this action.
3543
+ */
3544
+ 403: ApiError;
3545
+ /**
3546
+ * The resource, or the business named in the request, does not exist.
3547
+ */
3548
+ 404: ApiError;
3549
+ /**
3550
+ * Validation Error
3551
+ */
3552
+ 422: HttpValidationError;
3553
+ /**
3554
+ * Unexpected error.
3555
+ */
3556
+ default: ApiError;
3557
+ };
3558
+ export type UploadBusinessLibraryImageError = UploadBusinessLibraryImageErrors[keyof UploadBusinessLibraryImageErrors];
3559
+ export type UploadBusinessLibraryImageResponses = {
3560
+ /**
3561
+ * Successful Response
3562
+ */
3563
+ 201: BusinessLibraryImageOut;
3564
+ };
3565
+ export type UploadBusinessLibraryImageResponse = UploadBusinessLibraryImageResponses[keyof UploadBusinessLibraryImageResponses];
3566
+ export type DeleteBusinessLibraryImageData = {
3567
+ body?: never;
3568
+ headers?: {
3569
+ /**
3570
+ * Business-Id
3571
+ *
3572
+ * Business UUID whose library is targeted. Required when the user has more than one business.
3573
+ */
3574
+ 'business-id'?: string | null;
3575
+ };
3576
+ path: {
3577
+ /**
3578
+ * Image Id
3579
+ */
3580
+ image_id: string;
3581
+ };
3582
+ query?: never;
3583
+ url: '/api/v1/businesses/library/images/{image_id}';
3584
+ };
3585
+ export type DeleteBusinessLibraryImageErrors = {
3586
+ /**
3587
+ * Missing or invalid credentials.
3588
+ */
3589
+ 401: ApiError;
3590
+ /**
3591
+ * The credential is valid but not authorized for this action.
3592
+ */
3593
+ 403: ApiError;
3594
+ /**
3595
+ * The resource, or the business named in the request, does not exist.
3596
+ */
3597
+ 404: ApiError;
3598
+ /**
3599
+ * Validation Error
3600
+ */
3601
+ 422: HttpValidationError;
3602
+ /**
3603
+ * Unexpected error.
3604
+ */
3605
+ default: ApiError;
3606
+ };
3607
+ export type DeleteBusinessLibraryImageError = DeleteBusinessLibraryImageErrors[keyof DeleteBusinessLibraryImageErrors];
3608
+ export type DeleteBusinessLibraryImageResponses = {
3609
+ /**
3610
+ * Successful Response
3611
+ */
3612
+ 204: void;
3613
+ };
3614
+ export type DeleteBusinessLibraryImageResponse = DeleteBusinessLibraryImageResponses[keyof DeleteBusinessLibraryImageResponses];
3615
+ export type ListBusinessLibraryStickersData = {
3616
+ body?: never;
3617
+ headers?: {
3618
+ /**
3619
+ * Business-Id
3620
+ *
3621
+ * Business UUID whose library is targeted. Required when the user has more than one business.
3622
+ */
3623
+ 'business-id'?: string | null;
3624
+ };
3625
+ path?: never;
3626
+ query?: {
3627
+ /**
3628
+ * Limit
3629
+ */
3630
+ limit?: number;
3631
+ /**
3632
+ * Offset
3633
+ */
3634
+ offset?: number;
3635
+ };
3636
+ url: '/api/v1/businesses/library/stickers';
3637
+ };
3638
+ export type ListBusinessLibraryStickersErrors = {
3639
+ /**
3640
+ * Missing or invalid credentials.
3641
+ */
3642
+ 401: ApiError;
3643
+ /**
3644
+ * The credential is valid but not authorized for this action.
3645
+ */
3646
+ 403: ApiError;
3647
+ /**
3648
+ * The resource, or the business named in the request, does not exist.
3649
+ */
3650
+ 404: ApiError;
3651
+ /**
3652
+ * Validation Error
3653
+ */
3654
+ 422: HttpValidationError;
3655
+ /**
3656
+ * Unexpected error.
3657
+ */
3658
+ default: ApiError;
3659
+ };
3660
+ export type ListBusinessLibraryStickersError = ListBusinessLibraryStickersErrors[keyof ListBusinessLibraryStickersErrors];
3661
+ export type ListBusinessLibraryStickersResponses = {
3662
+ /**
3663
+ * Successful Response
3664
+ */
3665
+ 200: BusinessLibraryStickerListResponse;
3666
+ };
3667
+ export type ListBusinessLibraryStickersResponse = ListBusinessLibraryStickersResponses[keyof ListBusinessLibraryStickersResponses];
3668
+ export type UploadBusinessLibraryStickerData = {
3669
+ body: BodyUploadBusinessLibraryStickerForCurrentBusinessApiV1BusinessesLibraryStickersPost;
3670
+ headers?: {
3671
+ /**
3672
+ * Business-Id
3673
+ *
3674
+ * Business UUID whose library is targeted. Required when the user has more than one business.
3675
+ */
3676
+ 'business-id'?: string | null;
3677
+ };
3678
+ path?: never;
3679
+ query?: never;
3680
+ url: '/api/v1/businesses/library/stickers';
3045
3681
  };
3046
- export type UploadBusinessLibraryImageErrors = {
3682
+ export type UploadBusinessLibraryStickerErrors = {
3047
3683
  /**
3048
3684
  * Missing or invalid credentials.
3049
3685
  */
@@ -3065,15 +3701,15 @@ export type UploadBusinessLibraryImageErrors = {
3065
3701
  */
3066
3702
  default: ApiError;
3067
3703
  };
3068
- export type UploadBusinessLibraryImageError = UploadBusinessLibraryImageErrors[keyof UploadBusinessLibraryImageErrors];
3069
- export type UploadBusinessLibraryImageResponses = {
3704
+ export type UploadBusinessLibraryStickerError = UploadBusinessLibraryStickerErrors[keyof UploadBusinessLibraryStickerErrors];
3705
+ export type UploadBusinessLibraryStickerResponses = {
3070
3706
  /**
3071
3707
  * Successful Response
3072
3708
  */
3073
3709
  201: BusinessLibraryImageOut;
3074
3710
  };
3075
- export type UploadBusinessLibraryImageResponse = UploadBusinessLibraryImageResponses[keyof UploadBusinessLibraryImageResponses];
3076
- export type DeleteBusinessLibraryImageData = {
3711
+ export type UploadBusinessLibraryStickerResponse = UploadBusinessLibraryStickerResponses[keyof UploadBusinessLibraryStickerResponses];
3712
+ export type DeleteBusinessLibraryStickerData = {
3077
3713
  body?: never;
3078
3714
  headers?: {
3079
3715
  /**
@@ -3085,14 +3721,14 @@ export type DeleteBusinessLibraryImageData = {
3085
3721
  };
3086
3722
  path: {
3087
3723
  /**
3088
- * Image Id
3724
+ * Sticker Id
3089
3725
  */
3090
- image_id: string;
3726
+ sticker_id: string;
3091
3727
  };
3092
3728
  query?: never;
3093
- url: '/api/v1/businesses/library/images/{image_id}';
3729
+ url: '/api/v1/businesses/library/stickers/{sticker_id}';
3094
3730
  };
3095
- export type DeleteBusinessLibraryImageErrors = {
3731
+ export type DeleteBusinessLibraryStickerErrors = {
3096
3732
  /**
3097
3733
  * Missing or invalid credentials.
3098
3734
  */
@@ -3114,14 +3750,14 @@ export type DeleteBusinessLibraryImageErrors = {
3114
3750
  */
3115
3751
  default: ApiError;
3116
3752
  };
3117
- export type DeleteBusinessLibraryImageError = DeleteBusinessLibraryImageErrors[keyof DeleteBusinessLibraryImageErrors];
3118
- export type DeleteBusinessLibraryImageResponses = {
3753
+ export type DeleteBusinessLibraryStickerError = DeleteBusinessLibraryStickerErrors[keyof DeleteBusinessLibraryStickerErrors];
3754
+ export type DeleteBusinessLibraryStickerResponses = {
3119
3755
  /**
3120
3756
  * Successful Response
3121
3757
  */
3122
3758
  204: void;
3123
3759
  };
3124
- export type DeleteBusinessLibraryImageResponse = DeleteBusinessLibraryImageResponses[keyof DeleteBusinessLibraryImageResponses];
3760
+ export type DeleteBusinessLibraryStickerResponse = DeleteBusinessLibraryStickerResponses[keyof DeleteBusinessLibraryStickerResponses];
3125
3761
  export type ListBusinessMenusData = {
3126
3762
  body?: never;
3127
3763
  headers?: {
@@ -3806,6 +4442,48 @@ export type CreateChatResponses = {
3806
4442
  200: ChatOut;
3807
4443
  };
3808
4444
  export type CreateChatResponse = CreateChatResponses[keyof CreateChatResponses];
4445
+ export type StartTemplateConversationData = {
4446
+ body: StartTemplateConversationRequest;
4447
+ headers?: {
4448
+ /**
4449
+ * Business-Id
4450
+ */
4451
+ 'business-id'?: string;
4452
+ };
4453
+ path?: never;
4454
+ query?: never;
4455
+ url: '/api/v1/chats/template-conversations';
4456
+ };
4457
+ export type StartTemplateConversationErrors = {
4458
+ /**
4459
+ * Missing or invalid credentials.
4460
+ */
4461
+ 401: ApiError;
4462
+ /**
4463
+ * The credential is valid but not authorized for this action.
4464
+ */
4465
+ 403: ApiError;
4466
+ /**
4467
+ * The resource, or the business named in the request, does not exist.
4468
+ */
4469
+ 404: ApiError;
4470
+ /**
4471
+ * Validation Error
4472
+ */
4473
+ 422: HttpValidationError;
4474
+ /**
4475
+ * Unexpected error.
4476
+ */
4477
+ default: ApiError;
4478
+ };
4479
+ export type StartTemplateConversationError = StartTemplateConversationErrors[keyof StartTemplateConversationErrors];
4480
+ export type StartTemplateConversationResponses = {
4481
+ /**
4482
+ * Successful Response
4483
+ */
4484
+ 201: StartTemplateConversationOut;
4485
+ };
4486
+ export type StartTemplateConversationResponse = StartTemplateConversationResponses[keyof StartTemplateConversationResponses];
3809
4487
  export type DeleteChatData = {
3810
4488
  body?: never;
3811
4489
  path: {
@@ -4330,7 +5008,7 @@ export type UploadChatAttachmentErrors = {
4330
5008
  */
4331
5009
  422: HttpValidationError;
4332
5010
  /**
4333
- * Too many uploads for this user or chat in the current rate-limit window.
5011
+ * Too many uploads for this business in the current rate-limit window.
4334
5012
  */
4335
5013
  429: ApiError;
4336
5014
  /**
@@ -4346,6 +5024,257 @@ export type UploadChatAttachmentResponses = {
4346
5024
  200: FileUploadResponse;
4347
5025
  };
4348
5026
  export type UploadChatAttachmentResponse = UploadChatAttachmentResponses[keyof UploadChatAttachmentResponses];
5027
+ export type ListContactsData = {
5028
+ body?: never;
5029
+ headers?: {
5030
+ /**
5031
+ * Business-Id
5032
+ *
5033
+ * UUID of the business the request is scoped to. Required on this route; the deprecated /businesses/{business_id}/... form takes it from the path instead.
5034
+ */
5035
+ 'business-id'?: string | null;
5036
+ };
5037
+ path?: never;
5038
+ query?: {
5039
+ /**
5040
+ * Chatbot Id
5041
+ */
5042
+ chatbot_id?: string | null;
5043
+ /**
5044
+ * Search
5045
+ */
5046
+ search?: string | null;
5047
+ /**
5048
+ * Page
5049
+ */
5050
+ page?: number;
5051
+ /**
5052
+ * Page Size
5053
+ */
5054
+ page_size?: number;
5055
+ };
5056
+ url: '/api/v1/contacts';
5057
+ };
5058
+ export type ListContactsErrors = {
5059
+ /**
5060
+ * Missing or invalid credentials.
5061
+ */
5062
+ 401: ApiError;
5063
+ /**
5064
+ * The credential is valid but not authorized for this action.
5065
+ */
5066
+ 403: ApiError;
5067
+ /**
5068
+ * The resource, or the business named in the request, does not exist.
5069
+ */
5070
+ 404: ApiError;
5071
+ /**
5072
+ * Validation Error
5073
+ */
5074
+ 422: HttpValidationError;
5075
+ /**
5076
+ * Unexpected error.
5077
+ */
5078
+ default: ApiError;
5079
+ };
5080
+ export type ListContactsError = ListContactsErrors[keyof ListContactsErrors];
5081
+ export type ListContactsResponses = {
5082
+ /**
5083
+ * Successful Response
5084
+ */
5085
+ 200: ContactListOut;
5086
+ };
5087
+ export type ListContactsResponse = ListContactsResponses[keyof ListContactsResponses];
5088
+ export type CreateContactData = {
5089
+ body: ContactCreateIn;
5090
+ headers?: {
5091
+ /**
5092
+ * Business-Id
5093
+ *
5094
+ * UUID of the business the request is scoped to. Required on this route; the deprecated /businesses/{business_id}/... form takes it from the path instead.
5095
+ */
5096
+ 'business-id'?: string | null;
5097
+ };
5098
+ path?: never;
5099
+ query?: never;
5100
+ url: '/api/v1/contacts';
5101
+ };
5102
+ export type CreateContactErrors = {
5103
+ /**
5104
+ * Missing or invalid credentials.
5105
+ */
5106
+ 401: ApiError;
5107
+ /**
5108
+ * The credential is valid but not authorized for this action.
5109
+ */
5110
+ 403: ApiError;
5111
+ /**
5112
+ * The resource, or the business named in the request, does not exist.
5113
+ */
5114
+ 404: ApiError;
5115
+ /**
5116
+ * A contact with that phone number already exists for this business.
5117
+ */
5118
+ 409: ApiError;
5119
+ /**
5120
+ * Validation Error
5121
+ */
5122
+ 422: HttpValidationError;
5123
+ /**
5124
+ * Unexpected error.
5125
+ */
5126
+ default: ApiError;
5127
+ };
5128
+ export type CreateContactError = CreateContactErrors[keyof CreateContactErrors];
5129
+ export type CreateContactResponses = {
5130
+ /**
5131
+ * Successful Response
5132
+ */
5133
+ 201: ContactOut;
5134
+ };
5135
+ export type CreateContactResponse = CreateContactResponses[keyof CreateContactResponses];
5136
+ export type ImportContactsData = {
5137
+ body: ContactImportIn;
5138
+ headers?: {
5139
+ /**
5140
+ * Business-Id
5141
+ *
5142
+ * UUID of the business the request is scoped to. Required on this route; the deprecated /businesses/{business_id}/... form takes it from the path instead.
5143
+ */
5144
+ 'business-id'?: string | null;
5145
+ };
5146
+ path?: never;
5147
+ query?: never;
5148
+ url: '/api/v1/contacts/import';
5149
+ };
5150
+ export type ImportContactsErrors = {
5151
+ /**
5152
+ * Missing or invalid credentials.
5153
+ */
5154
+ 401: ApiError;
5155
+ /**
5156
+ * The credential is valid but not authorized for this action.
5157
+ */
5158
+ 403: ApiError;
5159
+ /**
5160
+ * The resource, or the business named in the request, does not exist.
5161
+ */
5162
+ 404: ApiError;
5163
+ /**
5164
+ * Validation Error
5165
+ */
5166
+ 422: HttpValidationError;
5167
+ /**
5168
+ * Unexpected error.
5169
+ */
5170
+ default: ApiError;
5171
+ };
5172
+ export type ImportContactsError = ImportContactsErrors[keyof ImportContactsErrors];
5173
+ export type ImportContactsResponses = {
5174
+ /**
5175
+ * Successful Response
5176
+ */
5177
+ 200: ContactImportOut;
5178
+ };
5179
+ export type ImportContactsResponse = ImportContactsResponses[keyof ImportContactsResponses];
5180
+ export type GetContactData = {
5181
+ body?: never;
5182
+ headers?: {
5183
+ /**
5184
+ * Business-Id
5185
+ *
5186
+ * UUID of the business the request is scoped to. Required on this route; the deprecated /businesses/{business_id}/... form takes it from the path instead.
5187
+ */
5188
+ 'business-id'?: string | null;
5189
+ };
5190
+ path: {
5191
+ /**
5192
+ * Contact Id
5193
+ */
5194
+ contact_id: string;
5195
+ };
5196
+ query?: never;
5197
+ url: '/api/v1/contacts/{contact_id}';
5198
+ };
5199
+ export type GetContactErrors = {
5200
+ /**
5201
+ * Missing or invalid credentials.
5202
+ */
5203
+ 401: ApiError;
5204
+ /**
5205
+ * The credential is valid but not authorized for this action.
5206
+ */
5207
+ 403: ApiError;
5208
+ /**
5209
+ * The resource, or the business named in the request, does not exist.
5210
+ */
5211
+ 404: ApiError;
5212
+ /**
5213
+ * Validation Error
5214
+ */
5215
+ 422: HttpValidationError;
5216
+ /**
5217
+ * Unexpected error.
5218
+ */
5219
+ default: ApiError;
5220
+ };
5221
+ export type GetContactError = GetContactErrors[keyof GetContactErrors];
5222
+ export type GetContactResponses = {
5223
+ /**
5224
+ * Successful Response
5225
+ */
5226
+ 200: ContactDetailOut;
5227
+ };
5228
+ export type GetContactResponse = GetContactResponses[keyof GetContactResponses];
5229
+ export type UpdateContactData = {
5230
+ body: ContactUpdateIn;
5231
+ headers?: {
5232
+ /**
5233
+ * Business-Id
5234
+ *
5235
+ * UUID of the business the request is scoped to. Required on this route; the deprecated /businesses/{business_id}/... form takes it from the path instead.
5236
+ */
5237
+ 'business-id'?: string | null;
5238
+ };
5239
+ path: {
5240
+ /**
5241
+ * Contact Id
5242
+ */
5243
+ contact_id: string;
5244
+ };
5245
+ query?: never;
5246
+ url: '/api/v1/contacts/{contact_id}';
5247
+ };
5248
+ export type UpdateContactErrors = {
5249
+ /**
5250
+ * Missing or invalid credentials.
5251
+ */
5252
+ 401: ApiError;
5253
+ /**
5254
+ * The credential is valid but not authorized for this action.
5255
+ */
5256
+ 403: ApiError;
5257
+ /**
5258
+ * The resource, or the business named in the request, does not exist.
5259
+ */
5260
+ 404: ApiError;
5261
+ /**
5262
+ * Validation Error
5263
+ */
5264
+ 422: HttpValidationError;
5265
+ /**
5266
+ * Unexpected error.
5267
+ */
5268
+ default: ApiError;
5269
+ };
5270
+ export type UpdateContactError = UpdateContactErrors[keyof UpdateContactErrors];
5271
+ export type UpdateContactResponses = {
5272
+ /**
5273
+ * Successful Response
5274
+ */
5275
+ 200: ContactOut;
5276
+ };
5277
+ export type UpdateContactResponse = UpdateContactResponses[keyof UpdateContactResponses];
4349
5278
  export type ListApiTokensData = {
4350
5279
  body?: never;
4351
5280
  path?: never;
@@ -4467,6 +5396,12 @@ export type ListTransmissionsData = {
4467
5396
  * Limit
4468
5397
  */
4469
5398
  limit?: number;
5399
+ /**
5400
+ * Q
5401
+ *
5402
+ * Case-insensitive substring of the name.
5403
+ */
5404
+ q?: string | null;
4470
5405
  };
4471
5406
  url: '/api/v1/transmissions';
4472
5407
  };