@wirecat/whatsapp-cli 0.3.0 → 0.6.0

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.
Files changed (121) hide show
  1. package/README.md +3 -0
  2. package/dist/adapter/adapter.d.ts +1 -1
  3. package/dist/adapter/adapter.d.ts.map +1 -1
  4. package/dist/adapter/adapter.js +16 -406
  5. package/dist/adapter/adapter.js.map +1 -1
  6. package/dist/adapter/channels.d.ts.map +1 -1
  7. package/dist/adapter/channels.js.map +1 -1
  8. package/dist/adapter/errors.d.ts +1 -1
  9. package/dist/adapter/errors.d.ts.map +1 -1
  10. package/dist/adapter/errors.js +4 -2
  11. package/dist/adapter/errors.js.map +1 -1
  12. package/dist/adapter/groups.d.ts.map +1 -1
  13. package/dist/adapter/groups.js +1 -1
  14. package/dist/adapter/groups.js.map +1 -1
  15. package/dist/adapter/listen.d.ts +11 -0
  16. package/dist/adapter/listen.d.ts.map +1 -0
  17. package/dist/adapter/listen.js +261 -0
  18. package/dist/adapter/listen.js.map +1 -0
  19. package/dist/adapter/map.d.ts +1 -1
  20. package/dist/adapter/map.d.ts.map +1 -1
  21. package/dist/adapter/map.js +12 -22
  22. package/dist/adapter/map.js.map +1 -1
  23. package/dist/adapter/polls.d.ts +2 -1
  24. package/dist/adapter/polls.d.ts.map +1 -1
  25. package/dist/adapter/polls.js +14 -3
  26. package/dist/adapter/polls.js.map +1 -1
  27. package/dist/adapter/privacy.d.ts.map +1 -1
  28. package/dist/adapter/privacy.js +26 -11
  29. package/dist/adapter/privacy.js.map +1 -1
  30. package/dist/adapter/sends.d.ts +14 -0
  31. package/dist/adapter/sends.d.ts.map +1 -0
  32. package/dist/adapter/sends.js +156 -0
  33. package/dist/adapter/sends.js.map +1 -0
  34. package/dist/adapter/settings.js +4 -1
  35. package/dist/adapter/settings.js.map +1 -1
  36. package/dist/app.d.ts +8 -0
  37. package/dist/app.d.ts.map +1 -1
  38. package/dist/app.js +20 -1
  39. package/dist/app.js.map +1 -1
  40. package/dist/bot/adapter.d.ts +18 -0
  41. package/dist/bot/adapter.d.ts.map +1 -0
  42. package/dist/bot/adapter.js +74 -0
  43. package/dist/bot/adapter.js.map +1 -0
  44. package/dist/bot/generated/definitions.d.ts +3 -0
  45. package/dist/bot/generated/definitions.d.ts.map +1 -0
  46. package/dist/bot/generated/definitions.js +9254 -0
  47. package/dist/bot/generated/definitions.js.map +1 -0
  48. package/dist/bot/generated/manifest.d.ts +3 -0
  49. package/dist/bot/generated/manifest.d.ts.map +1 -0
  50. package/dist/bot/generated/manifest.js +2614 -0
  51. package/dist/bot/generated/manifest.js.map +1 -0
  52. package/dist/bot/generated/schemas.d.ts +803 -0
  53. package/dist/bot/generated/schemas.d.ts.map +1 -0
  54. package/dist/bot/generated/schemas.js +3052 -0
  55. package/dist/bot/generated/schemas.js.map +1 -0
  56. package/dist/bot/generated/types.d.ts +3439 -0
  57. package/dist/bot/generated/types.d.ts.map +1 -0
  58. package/dist/bot/generated/types.js +5 -0
  59. package/dist/bot/generated/types.js.map +1 -0
  60. package/dist/bot/graph.d.ts +53 -0
  61. package/dist/bot/graph.d.ts.map +1 -0
  62. package/dist/bot/graph.js +141 -0
  63. package/dist/bot/graph.js.map +1 -0
  64. package/dist/bot/messaging.d.ts +30 -0
  65. package/dist/bot/messaging.d.ts.map +1 -0
  66. package/dist/bot/messaging.js +124 -0
  67. package/dist/bot/messaging.js.map +1 -0
  68. package/dist/bot/mime.d.ts +3 -0
  69. package/dist/bot/mime.d.ts.map +1 -0
  70. package/dist/bot/mime.js +20 -0
  71. package/dist/bot/mime.js.map +1 -0
  72. package/dist/bot/webhook.d.ts +13 -0
  73. package/dist/bot/webhook.d.ts.map +1 -0
  74. package/dist/bot/webhook.js +148 -0
  75. package/dist/bot/webhook.js.map +1 -0
  76. package/dist/commands/bot-templates.d.ts +9 -0
  77. package/dist/commands/bot-templates.d.ts.map +1 -0
  78. package/dist/commands/bot-templates.js +141 -0
  79. package/dist/commands/bot-templates.js.map +1 -0
  80. package/dist/commands/bot.d.ts +14 -0
  81. package/dist/commands/bot.d.ts.map +1 -0
  82. package/dist/commands/bot.js +208 -0
  83. package/dist/commands/bot.js.map +1 -0
  84. package/dist/commands/session.d.ts +0 -44
  85. package/dist/commands/session.d.ts.map +1 -1
  86. package/dist/commands/session.js +15 -141
  87. package/dist/commands/session.js.map +1 -1
  88. package/dist/commands/setup.d.ts.map +1 -1
  89. package/dist/commands/setup.js +9 -8
  90. package/dist/commands/setup.js.map +1 -1
  91. package/dist/commands/update.d.ts +2 -1
  92. package/dist/commands/update.d.ts.map +1 -1
  93. package/dist/commands/update.js.map +1 -1
  94. package/dist/diagnose.d.ts +6 -41
  95. package/dist/diagnose.d.ts.map +1 -1
  96. package/dist/diagnose.js.map +1 -1
  97. package/dist/engine/contract.d.ts +3 -2
  98. package/dist/engine/contract.d.ts.map +1 -1
  99. package/dist/engine/contract.js +3 -2
  100. package/dist/engine/contract.js.map +1 -1
  101. package/dist/engine/events.d.ts +1 -1
  102. package/dist/engine/events.d.ts.map +1 -1
  103. package/dist/engine/events.js.map +1 -1
  104. package/dist/engine/go-engine.d.ts.map +1 -1
  105. package/dist/engine/go-engine.js +2 -0
  106. package/dist/engine/go-engine.js.map +1 -1
  107. package/dist/messenger.d.ts +4 -1
  108. package/dist/messenger.d.ts.map +1 -1
  109. package/dist/messenger.js +5 -3
  110. package/dist/messenger.js.map +1 -1
  111. package/dist/program.d.ts.map +1 -1
  112. package/dist/program.js +7 -1
  113. package/dist/program.js.map +1 -1
  114. package/dist/session.d.ts +56 -0
  115. package/dist/session.d.ts.map +1 -0
  116. package/dist/session.js +136 -0
  117. package/dist/session.js.map +1 -0
  118. package/dist/version.d.ts +1 -1
  119. package/dist/version.js +1 -1
  120. package/package.json +16 -11
  121. package/skills/whatsapp-cli/SKILL.md +1 -1
@@ -0,0 +1,2614 @@
1
+ // GENERATED. DO NOT EDIT.
2
+ // Source: spec/bot/business-messaging-api_v23.0.yaml
3
+ // Run: pnpm bot:generate
4
+ export const operations = [
5
+ {
6
+ id: "addPhoneNumbers",
7
+ command: "add-phone-numbers",
8
+ binding: {
9
+ kind: "http",
10
+ method: "POST",
11
+ path: "/{Version}/{Business-ID}/add_phone_numbers",
12
+ },
13
+ effect: "write",
14
+ summary: "Add Phone Number to Business Account",
15
+ description: "Add a preverified phone number to a WhatsApp Business Account. This endpoint is used by\nPartners to create a pool of Partner owned numbers that end clients\ncan purchase.\n\n**Use Cases:**\n- Add new phone numbers to scale messaging operations\n- Set up phone numbers for different business locations\n- Manage phone number inventory for business messaging\n- Configure phone numbers for specific messaging workflows\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n**Phone Number Requirements:**\n- Must be in E.164 format (e.g., +1555-0104)\n- Must not be already registered to another WhatsApp Business Account\n- Must be capable of receiving SMS for verification\n- Must comply with WhatsApp's business messaging policies\n",
16
+ tags: ["Business Phone Numbers"],
17
+ parameters: [
18
+ {
19
+ name: "Business-ID",
20
+ in: "path",
21
+ required: true,
22
+ schema: {
23
+ type: "string",
24
+ pattern: "^[0-9]+$",
25
+ },
26
+ description: "Your WhatsApp Business Account ID. This ID can be found in your Business Manager\nor through business management APIs.\n",
27
+ },
28
+ ],
29
+ request: {
30
+ required: true,
31
+ confidence: "contract",
32
+ schema: "AddPhoneNumbersRequest",
33
+ },
34
+ response: {
35
+ confidence: "contract",
36
+ schema: "AddPhoneNumbersResponse",
37
+ },
38
+ },
39
+ {
40
+ id: "getBusinessPortfolio",
41
+ command: "get-business-portfolio",
42
+ binding: {
43
+ kind: "http",
44
+ method: "GET",
45
+ path: "/{Version}/{Business-ID}",
46
+ },
47
+ effect: "read",
48
+ summary: "Get Business Portfolio (Specific Fields)",
49
+ description: "Endpoint reference: [Business](https://developers.facebook.com/docs/marketing-api/reference/business/)",
50
+ tags: ["Business Portfolio"],
51
+ parameters: [
52
+ {
53
+ name: "Business-ID",
54
+ in: "path",
55
+ required: true,
56
+ schema: {
57
+ type: "string",
58
+ },
59
+ },
60
+ {
61
+ name: "fields",
62
+ in: "query",
63
+ required: false,
64
+ schema: {
65
+ type: "string",
66
+ },
67
+ },
68
+ ],
69
+ response: {
70
+ confidence: "contract",
71
+ schema: "GetBusinessPortfolioResponse",
72
+ },
73
+ },
74
+ {
75
+ id: "getOwnedWhatsAppBusinessAccounts",
76
+ command: "get-owned-whats-app-business-accounts",
77
+ binding: {
78
+ kind: "http",
79
+ method: "GET",
80
+ path: "/{Version}/{Business-ID}/owned_whatsapp_business_accounts",
81
+ },
82
+ effect: "read",
83
+ summary: "Get Owned WhatsApp Business Accounts",
84
+ description: "Retrieve WhatsApp Business Accounts owned by the specified business. This endpoint\nprovides comprehensive information about all WABAs owned by the business, including\naccount details, configuration, and status information.\n\n**Use Cases:**\n- Retrieve all WhatsApp Business Accounts owned by a business\n- Filter accounts by business type\n- Find specific accounts by ID\n- Monitor business portfolio of WhatsApp Business Accounts\n- Manage account access and permissions across multiple WABAs\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n**Caching:**\nAccount information can be cached for short periods, but status and configuration\nmay change frequently. Implement appropriate cache invalidation strategies.\n",
85
+ tags: ["Owned WhatsApp Business Accounts"],
86
+ parameters: [
87
+ {
88
+ name: "Business-ID",
89
+ in: "path",
90
+ required: true,
91
+ schema: {
92
+ type: "string",
93
+ pattern: "^[0-9]+$",
94
+ },
95
+ description: "Your Business ID. This ID represents the business portfolio that owns the\nWhatsApp Business Accounts and can be found in your Business Manager settings.\n",
96
+ },
97
+ {
98
+ name: "business_type",
99
+ in: "query",
100
+ required: false,
101
+ schema: {
102
+ type: "array",
103
+ items: {
104
+ type: "ref",
105
+ ref: "WhatsAppBusinessType",
106
+ },
107
+ },
108
+ description: "Filter accounts by business type. Can specify multiple types as comma-separated values.\nUse this to filter between enterprise and small-medium business accounts.\n",
109
+ },
110
+ {
111
+ name: "after",
112
+ in: "query",
113
+ required: false,
114
+ schema: {
115
+ type: "string",
116
+ },
117
+ description: "Cursor for forward pagination. Use the cursor from the previous response\nto get the next page of results.\n",
118
+ },
119
+ {
120
+ name: "first",
121
+ in: "query",
122
+ required: false,
123
+ schema: {
124
+ type: "integer",
125
+ minimum: 1,
126
+ maximum: 100,
127
+ },
128
+ description: "Number of results to return in forward pagination. Maximum value is 100.\nUse with 'after' cursor for forward pagination.\n",
129
+ },
130
+ {
131
+ name: "before",
132
+ in: "query",
133
+ required: false,
134
+ schema: {
135
+ type: "string",
136
+ },
137
+ description: "Cursor for backward pagination. Use the cursor from the previous response\nto get the previous page of results.\n",
138
+ },
139
+ {
140
+ name: "last",
141
+ in: "query",
142
+ required: false,
143
+ schema: {
144
+ type: "integer",
145
+ minimum: 1,
146
+ maximum: 100,
147
+ },
148
+ description: "Number of results to return in backward pagination. Maximum value is 100.\nUse with 'before' cursor for backward pagination.\n",
149
+ },
150
+ {
151
+ name: "find",
152
+ in: "query",
153
+ required: false,
154
+ schema: {
155
+ type: "string",
156
+ pattern: "^[0-9]+$",
157
+ },
158
+ description: "Find a specific WhatsApp Business Account by ID within the owned accounts.\nUse this to quickly locate a specific account.\n",
159
+ },
160
+ ],
161
+ response: {
162
+ confidence: "contract",
163
+ schema: "WhatsAppBusinessAccountsConnection",
164
+ },
165
+ },
166
+ {
167
+ id: "getBlockedUsers",
168
+ command: "get-blocked-users",
169
+ binding: {
170
+ kind: "http",
171
+ method: "GET",
172
+ path: "/{Version}/{Phone-Number-ID}/block_users",
173
+ },
174
+ effect: "read",
175
+ summary: "Get blocked users",
176
+ description: "- Guide: [Block Users](https://developers.facebook.com/docs/business-messaging/whatsapp/block-users)\n \n- Endpoint reference: [GET WhatsApp Buiness Phone Number > block_users](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account-to-number-current-status/block_users/#Reading)",
177
+ tags: ["Block Users"],
178
+ parameters: [
179
+ {
180
+ name: "Phone-Number-ID",
181
+ in: "path",
182
+ required: false,
183
+ schema: {
184
+ type: "string",
185
+ },
186
+ },
187
+ ],
188
+ },
189
+ {
190
+ id: "blockUsers",
191
+ command: "block-users",
192
+ binding: {
193
+ kind: "http",
194
+ method: "POST",
195
+ path: "/{Version}/{Phone-Number-ID}/block_users",
196
+ },
197
+ effect: "write",
198
+ summary: "Block user(s)",
199
+ description: "- Guide: [Block Users](https://developers.facebook.com/docs/business-messaging/whatsapp/block-users)\n \n- Endpoint reference: [POST WhatsApp Buiness Phone Number > block_users](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account-to-number-current-status/block_users/#Creating)",
200
+ tags: ["Block Users"],
201
+ parameters: [
202
+ {
203
+ name: "Phone-Number-ID",
204
+ in: "path",
205
+ required: false,
206
+ schema: {
207
+ type: "string",
208
+ },
209
+ },
210
+ ],
211
+ request: {
212
+ required: false,
213
+ confidence: "example",
214
+ schema: "BlockUsersRequest",
215
+ },
216
+ },
217
+ {
218
+ id: "unblockUsers",
219
+ command: "unblock-users",
220
+ binding: {
221
+ kind: "http",
222
+ method: "DELETE",
223
+ path: "/{Version}/{Phone-Number-ID}/block_users",
224
+ },
225
+ effect: "write",
226
+ summary: "Unblock user(s)",
227
+ description: "- Guide: [Block Users](https://developers.facebook.com/docs/business-messaging/whatsapp/block-users)\n \n- Endpoint reference: [DELETE WhatsApp Buiness Phone Number > block_users](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account-to-number-current-status/block_users/#Deleting)",
228
+ tags: ["Block Users"],
229
+ parameters: [
230
+ {
231
+ name: "Phone-Number-ID",
232
+ in: "path",
233
+ required: false,
234
+ schema: {
235
+ type: "string",
236
+ },
237
+ },
238
+ ],
239
+ request: {
240
+ required: false,
241
+ confidence: "example",
242
+ schema: "UnblockUsersRequest",
243
+ },
244
+ },
245
+ {
246
+ id: "checkCallPermissions",
247
+ command: "check-call-permissions",
248
+ binding: {
249
+ kind: "http",
250
+ method: "GET",
251
+ path: "/{Version}/{Phone-Number-ID}/call_permissions",
252
+ },
253
+ effect: "read",
254
+ summary: "Check Call Permissions",
255
+ description: "Check whether you have permission to call a WhatsApp user and what actions are available. This endpoint returns the current permission status for calling a specific user, along with available actions and their limits.\n\n**Permission Status:**\n- `granted`: You have active permission to call this user - `pending`: A permission request has been sent but not yet approved - `denied`: The user has denied call permissions - `expired`: Previous permission has expired\n\n**Available Actions:**\n- `start_call`: Initiate a new call to this user - `send_call_permission_request`: Send a permission request to this user\n\n**Error Handling:**\nThis endpoint may return various error codes including rate limiting errors if too many permission checks are made within a short period.\n",
256
+ tags: ["Call Permissions"],
257
+ parameters: [
258
+ {
259
+ name: "Phone-Number-ID",
260
+ in: "path",
261
+ required: false,
262
+ schema: {
263
+ type: "string",
264
+ },
265
+ description: "The ID of the phone number registered with your WhatsApp Business Account",
266
+ },
267
+ {
268
+ name: "user_wa_id",
269
+ in: "query",
270
+ required: true,
271
+ schema: {
272
+ type: "string",
273
+ },
274
+ description: "The WhatsApp ID of the user you want to check call permissions for",
275
+ },
276
+ ],
277
+ response: {
278
+ confidence: "contract",
279
+ schema: "CallPermissionCheckResponsePayload",
280
+ },
281
+ },
282
+ {
283
+ id: "manageCalls",
284
+ command: "manage-calls",
285
+ binding: {
286
+ kind: "http",
287
+ method: "POST",
288
+ path: "/{Version}/{Phone-Number-ID}/calls",
289
+ },
290
+ effect: "write",
291
+ summary: "Manage Calls",
292
+ description: 'Use this endpoint to initiate, accept, reject, or terminate WhatsApp calls.\n\n**For initiating or managing a call:**\nSend a POST request with the appropriate action (connect, pre_accept, accept, reject, terminate).\n\n**For terminating a call:**\nSend a POST request with action "terminate" and the call_id.\n\n**Note:** Response with error code 138006 indicates a lack of a call request permission for this business number from the WhatsApp user.\n',
293
+ tags: ["Calls"],
294
+ parameters: [
295
+ {
296
+ name: "Phone-Number-ID",
297
+ in: "path",
298
+ required: false,
299
+ schema: {
300
+ type: "string",
301
+ },
302
+ description: "The ID of the phone number registered with your WhatsApp Business Account",
303
+ },
304
+ ],
305
+ request: {
306
+ required: false,
307
+ confidence: "contract",
308
+ schema: "ManageCallsRequest",
309
+ },
310
+ response: {
311
+ confidence: "contract",
312
+ schema: "ManageCallsResponse",
313
+ },
314
+ },
315
+ {
316
+ id: "sendMarketingMessage",
317
+ command: "send-marketing-message",
318
+ binding: {
319
+ kind: "http",
320
+ method: "POST",
321
+ path: "/{Version}/{Phone-Number-ID}/marketing_messages",
322
+ },
323
+ effect: "write",
324
+ summary: "Send Marketing Template Message",
325
+ description: "Send marketing template messages using pre-approved templates. Supports optional product policy controls and message activity sharing settings.",
326
+ tags: ["Marketing Messages"],
327
+ parameters: [
328
+ {
329
+ name: "Phone-Number-ID",
330
+ in: "path",
331
+ required: false,
332
+ schema: {
333
+ type: "string",
334
+ },
335
+ description: "WhatsApp Business Phone Number ID",
336
+ },
337
+ ],
338
+ request: {
339
+ required: true,
340
+ confidence: "contract",
341
+ schema: "MarketingMessageRequestPayload",
342
+ },
343
+ response: {
344
+ confidence: "contract",
345
+ schema: "MarketingMessageResponsePayload",
346
+ },
347
+ },
348
+ {
349
+ id: "uploadMedia",
350
+ command: "upload-media",
351
+ binding: {
352
+ kind: "http",
353
+ method: "POST",
354
+ path: "/{Version}/{Phone-Number-ID}/media",
355
+ },
356
+ effect: "write",
357
+ summary: "Upload Image",
358
+ description: "This request uploads an image as .jpeg. The parameters are specified as **form-data** in the request **body**.",
359
+ tags: ["Media"],
360
+ parameters: [
361
+ {
362
+ name: "Phone-Number-ID",
363
+ in: "path",
364
+ required: false,
365
+ schema: {
366
+ type: "string",
367
+ },
368
+ },
369
+ ],
370
+ request: {
371
+ required: false,
372
+ confidence: "example",
373
+ schema: "UploadMediaRequest",
374
+ contentType: "multipart/form-data",
375
+ },
376
+ response: {
377
+ confidence: "contract",
378
+ schema: "UploadMediaResponse",
379
+ },
380
+ },
381
+ {
382
+ id: "sendMessage",
383
+ command: "send-message",
384
+ binding: {
385
+ kind: "http",
386
+ method: "POST",
387
+ path: "/{Version}/{Phone-Number-ID}/messages",
388
+ },
389
+ effect: "write",
390
+ summary: "Send Message.",
391
+ description: "Send Message.",
392
+ tags: ["Messages"],
393
+ parameters: [
394
+ {
395
+ name: "Phone-Number-ID",
396
+ in: "path",
397
+ required: false,
398
+ schema: {
399
+ type: "string",
400
+ },
401
+ },
402
+ ],
403
+ request: {
404
+ required: false,
405
+ confidence: "contract",
406
+ schema: "Message",
407
+ },
408
+ response: {
409
+ confidence: "contract",
410
+ schema: "MessageResponsePayload",
411
+ },
412
+ },
413
+ {
414
+ id: "listQrCodes",
415
+ command: "list-qr-codes",
416
+ binding: {
417
+ kind: "http",
418
+ method: "GET",
419
+ path: "/{Version}/{Phone-Number-ID}/message_qrdls",
420
+ },
421
+ effect: "read",
422
+ summary: "List All Message QR Codes",
423
+ description: "Retrieve all message QR codes for a phone number, sorted by creation time (newest first).\nSupports field selection, filtering by code, cursor-based pagination, and QR image generation.\n",
424
+ tags: ["QR Code Collection"],
425
+ parameters: [
426
+ {
427
+ name: "Phone-Number-ID",
428
+ in: "path",
429
+ required: false,
430
+ schema: {
431
+ type: "string",
432
+ pattern: "^[0-9]+$",
433
+ },
434
+ description: "The WhatsApp Business Account phone number ID for which to list QR codes.\nThis ID is provided when you add a phone number to your WhatsApp Business Account.\n",
435
+ },
436
+ {
437
+ name: "fields",
438
+ in: "query",
439
+ required: false,
440
+ schema: {
441
+ type: "string",
442
+ },
443
+ description: 'Comma-separated list of fields to include in the response. Available fields:\n- code: QR code identifier (always included)\n- prefilled_message: Pre-filled message text (always included)\n- deep_link_url: WhatsApp deep link URL (always included)\n- creation_time: Unix timestamp when QR code was created (first-party apps only)\n- qr_image_url.format(FORMAT): QR code image URL where FORMAT is SVG or PNG\n\nExample: "code,prefilled_message,qr_image_url.format(SVG)"\n',
444
+ },
445
+ {
446
+ name: "code",
447
+ in: "query",
448
+ required: false,
449
+ schema: {
450
+ type: "string",
451
+ minLength: 14,
452
+ maxLength: 14,
453
+ pattern: "^[A-Z2-7]{14}$",
454
+ },
455
+ description: "Filter results to a specific QR code by its unique identifier.\nWhen provided, only the matching QR code will be returned (if it exists).\n",
456
+ },
457
+ {
458
+ name: "limit",
459
+ in: "query",
460
+ required: false,
461
+ schema: {
462
+ default: 25,
463
+ type: "integer",
464
+ minimum: 1,
465
+ maximum: 25,
466
+ },
467
+ description: "Maximum number of QR codes to return in a single response.\nDefault and maximum limit is typically 25.\n",
468
+ },
469
+ {
470
+ name: "after",
471
+ in: "query",
472
+ required: false,
473
+ schema: {
474
+ type: "string",
475
+ },
476
+ description: "Cursor for pagination. Use this to get the next page of results.\nObtain this value from the paging.cursors.after field in previous responses.\n",
477
+ },
478
+ {
479
+ name: "before",
480
+ in: "query",
481
+ required: false,
482
+ schema: {
483
+ type: "string",
484
+ },
485
+ description: "Cursor for pagination. Use this to get the previous page of results.\nObtain this value from the paging.cursors.before field in previous responses.\n",
486
+ },
487
+ ],
488
+ response: {
489
+ confidence: "contract",
490
+ schema: "QrCodeList",
491
+ },
492
+ },
493
+ {
494
+ id: "createOrUpdateQrCode",
495
+ command: "create-or-update-qr-code",
496
+ binding: {
497
+ kind: "http",
498
+ method: "POST",
499
+ path: "/{Version}/{Phone-Number-ID}/message_qrdls",
500
+ },
501
+ effect: "write",
502
+ summary: "Create or Update Message QR Code",
503
+ description: "Create a new QR code (without code parameter) or update existing QR code (with code parameter).\nSupports optional QR image generation in PNG or SVG format.\n",
504
+ tags: ["QR Code Collection"],
505
+ parameters: [
506
+ {
507
+ name: "Phone-Number-ID",
508
+ in: "path",
509
+ required: false,
510
+ schema: {
511
+ type: "string",
512
+ pattern: "^[0-9]+$",
513
+ },
514
+ description: "The WhatsApp Business Account phone number ID for which to create or update the QR code.\nThis ID is provided when you add a phone number to your WhatsApp Business Account.\n",
515
+ },
516
+ ],
517
+ request: {
518
+ required: true,
519
+ confidence: "contract",
520
+ schema: "CreateOrUpdateQrCodeRequest",
521
+ },
522
+ response: {
523
+ confidence: "contract",
524
+ schema: "QrCodeResponse",
525
+ },
526
+ },
527
+ {
528
+ id: "getQrCode",
529
+ command: "get-qr-code",
530
+ binding: {
531
+ kind: "http",
532
+ method: "GET",
533
+ path: "/{Version}/{Phone-Number-ID}/message_qrdls/{QR-Code-ID}",
534
+ },
535
+ effect: "read",
536
+ summary: "Get Individual Message QR Code",
537
+ description: "Retrieve details for a specific QR code by its unique identifier.\nSupports field selection and QR image generation. Response returns QR code in data array for consistency.\n",
538
+ tags: ["Individual QR Code"],
539
+ parameters: [
540
+ {
541
+ name: "Phone-Number-ID",
542
+ in: "path",
543
+ required: false,
544
+ schema: {
545
+ type: "string",
546
+ pattern: "^[0-9]+$",
547
+ },
548
+ description: "The WhatsApp Business Account phone number ID that owns the QR code.\nThis ID is provided when you add a phone number to your WhatsApp Business Account.\n",
549
+ },
550
+ {
551
+ name: "QR-Code-ID",
552
+ in: "path",
553
+ required: true,
554
+ schema: {
555
+ type: "string",
556
+ minLength: 14,
557
+ maxLength: 14,
558
+ pattern: "^[A-Z2-7]{14}$",
559
+ },
560
+ description: "The unique 14-character identifier of the QR code to retrieve.\nThis is the code value returned when the QR code was created.\n",
561
+ },
562
+ {
563
+ name: "fields",
564
+ in: "query",
565
+ required: false,
566
+ schema: {
567
+ type: "string",
568
+ },
569
+ description: 'Comma-separated list of fields to include in the response. Available fields:\n- code: QR code identifier (always included)\n- prefilled_message: Pre-filled message text (always included)\n- deep_link_url: WhatsApp deep link URL (always included)\n- creation_time: Unix timestamp when QR code was created (first-party apps only)\n- qr_image_url.format(FORMAT): QR code image URL where FORMAT is SVG or PNG\n\nExample: "code,prefilled_message,qr_image_url.format(SVG)"\n',
570
+ },
571
+ ],
572
+ response: {
573
+ confidence: "contract",
574
+ schema: "QrCodeResponse",
575
+ },
576
+ },
577
+ {
578
+ id: "deleteQrCode",
579
+ command: "delete-qr-code",
580
+ binding: {
581
+ kind: "http",
582
+ method: "DELETE",
583
+ path: "/{Version}/{Phone-Number-ID}/message_qrdls/{QR-Code-ID}",
584
+ },
585
+ effect: "destructive",
586
+ summary: "Delete Individual Message QR Code",
587
+ description: "Permanently delete a specific QR code. Once deleted, the QR code and deep link become invalid.\nDeletion cannot be undone and affects any existing marketing materials using the QR code.\n",
588
+ tags: ["Individual QR Code"],
589
+ parameters: [
590
+ {
591
+ name: "Phone-Number-ID",
592
+ in: "path",
593
+ required: false,
594
+ schema: {
595
+ type: "string",
596
+ pattern: "^[0-9]+$",
597
+ },
598
+ description: "The WhatsApp Business Account phone number ID that owns the QR code to be deleted.\nThis ID is provided when you add a phone number to your WhatsApp Business Account.\n",
599
+ },
600
+ {
601
+ name: "QR-Code-ID",
602
+ in: "path",
603
+ required: true,
604
+ schema: {
605
+ type: "string",
606
+ minLength: 14,
607
+ maxLength: 14,
608
+ pattern: "^[A-Z2-7]{14}$",
609
+ },
610
+ description: "The unique 14-character identifier of the QR code to delete.\nThis is the code value returned when the QR code was created.\n",
611
+ },
612
+ ],
613
+ response: {
614
+ confidence: "contract",
615
+ schema: "DeleteQrCodeResponse",
616
+ },
617
+ },
618
+ {
619
+ id: "sendEncryptedMessage",
620
+ command: "send-encrypted-message",
621
+ binding: {
622
+ kind: "http",
623
+ method: "POST",
624
+ path: "/{Version}/{Phone-Number-ID}/messages_encrypted",
625
+ },
626
+ effect: "write",
627
+ summary: "Send Encrypted Message",
628
+ description: "Send encrypted messages using JWE (JSON Web Encryption) format. This endpoint provides an additional layer of security on top of existing standard TLS/SSL by accepting pre-encrypted message payloads and returning encrypted responses.\n\n**Important Notes:**\n- Only successful responses will be encrypted\n- Error responses will be returned unencrypted if the underlying JSON is incorrectly formatted\n- Payload encryption must be enabled for the phone number using the `POST /<Phone-Number-ID>/settings` endpoint\n- The encrypted payload must follow the same structure as the original `/messages` endpoint\n\n**Prerequisites:**\n- User Access Token with `whatsapp_business_messaging` permission\n- Valid `Phone-Number-ID` for your registered WhatsApp Business account\n- Payload encryption enabled for the phone number\n- Properly formatted JWE token containing encrypted message payload using supported algorithms\n\n**Supported Algorithms:**\n- **Content Encryption:** A128GCM, A256GCM...",
629
+ tags: ["Encrypted Messages"],
630
+ parameters: [
631
+ {
632
+ name: "Phone-Number-ID",
633
+ in: "path",
634
+ required: false,
635
+ schema: {
636
+ type: "string",
637
+ },
638
+ description: "The ID of the phone number used to send the message. Retrieved from the WhatsApp Business Account.",
639
+ },
640
+ ],
641
+ request: {
642
+ required: true,
643
+ confidence: "contract",
644
+ schema: "EncryptedMessageRequest",
645
+ },
646
+ response: {
647
+ confidence: "contract",
648
+ schema: "EncryptedMessageResponse",
649
+ },
650
+ },
651
+ {
652
+ id: "getOfficialBusinessAccountStatus",
653
+ command: "get-official-business-account-status",
654
+ binding: {
655
+ kind: "http",
656
+ method: "GET",
657
+ path: "/{Version}/{Phone-Number-ID}/official_business_account",
658
+ },
659
+ effect: "read",
660
+ summary: "Get Official Business Account Status",
661
+ description: "Retrieve the Official Business Account (OBA) status and related information for a WhatsApp Business Account phone number.\n\n**Use Cases:**\n- Check current OBA verification status\n- Monitor OBA application progress\n- Retrieve status messages for business account verification\n- Validate business credibility status\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n**Caching:**\nOBA status information can be cached for moderate periods, but status may change\nduring verification processes. Implement appropriate cache invalidation strategies.\n",
662
+ tags: ["Official Business Account"],
663
+ parameters: [
664
+ {
665
+ name: "Phone-Number-ID",
666
+ in: "path",
667
+ required: false,
668
+ schema: {
669
+ type: "string",
670
+ pattern: "^[0-9]+$",
671
+ },
672
+ description: "Your WhatsApp Business phone number ID. This ID represents the phone number\nstatus entity and can be obtained from your WhatsApp Business Account phone numbers list.\n",
673
+ },
674
+ {
675
+ name: "fields",
676
+ in: "query",
677
+ required: false,
678
+ schema: {
679
+ type: "string",
680
+ },
681
+ description: "Comma-separated list of fields to include in the response. If not specified,\ndefault fields will be returned (oba_status, status_message).\nAvailable fields: oba_status, status_message\n",
682
+ },
683
+ ],
684
+ response: {
685
+ confidence: "contract",
686
+ schema: "OfficialBusinessAccountStatus",
687
+ },
688
+ },
689
+ {
690
+ id: "requestOfficialBusinessAccount",
691
+ command: "request-official-business-account",
692
+ binding: {
693
+ kind: "http",
694
+ method: "POST",
695
+ path: "/{Version}/{Phone-Number-ID}/official_business_account",
696
+ },
697
+ effect: "write",
698
+ summary: "Update Official Business Account Status",
699
+ description: "Update or modify the Official Business Account (OBA) status for a WhatsApp Business Account phone number.\nThis endpoint allows businesses to submit new applications, withdraw existing applications, or resubmit\nafter addressing rejection reasons.\n\n**Use Cases:**\n- Submit initial Official Business Account application\n- Withdraw pending OBA application\n- Resubmit OBA application after addressing rejection feedback\n- Update application data for pending applications\n\n**Application Data Requirements:**\nWhen submitting or resubmitting an OBA application, certain business information may be required\ndepending on the current status and previous submissions.\n\n**Rate Limiting:**\nStandard Graph API rate limits apply with additional restrictions on application submissions\nto prevent abuse. Use appropriate retry logic with exponential backoff.\n\n**Status Transitions:**\n- Applications can only be submitted when no active application exists\n- Withdrawals are only allowed for pending applications\n- Resubmissions are only allowed after rejection\n",
700
+ tags: ["Official Business Account"],
701
+ parameters: [
702
+ {
703
+ name: "Phone-Number-ID",
704
+ in: "path",
705
+ required: false,
706
+ schema: {
707
+ type: "string",
708
+ pattern: "^[0-9]+$",
709
+ },
710
+ description: "Your WhatsApp Business phone number ID. This ID represents the phone number\nstatus entity and can be obtained from your WhatsApp Business Account phone numbers list.\n",
711
+ },
712
+ ],
713
+ request: {
714
+ required: true,
715
+ confidence: "contract",
716
+ schema: "OfficialBusinessAccountUpdateRequest",
717
+ },
718
+ response: {
719
+ confidence: "contract",
720
+ schema: "OfficialBusinessAccountUpdateResponse",
721
+ },
722
+ },
723
+ {
724
+ id: "getPhoneNumber",
725
+ command: "get-phone-number",
726
+ binding: {
727
+ kind: "http",
728
+ method: "GET",
729
+ path: "/{Version}/{Phone-Number-ID}",
730
+ },
731
+ effect: "read",
732
+ summary: "Retrieve WhatsApp Business Phone Number Information",
733
+ description: "Retrieve comprehensive information about a WhatsApp Business phone number using its unique ID (CSID).\nThis endpoint provides phone number status, verification details, quality metrics, and configuration information.\n\n**Core Information Returned:**\n- Phone number ID and display format\n- Verification status and verified business name\n- Quality rating based on message delivery performance\n- Code verification status for two-step verification\n- Display name certification status (when requested)\n\n**Quality Rating System:**\nThe quality rating reflects how recipients have been receiving messages from this phone number:\n- **GREEN**: High quality - messages are being delivered and engaged with well\n- **YELLOW**: Medium quality - some delivery or engagement issues detected\n- **RED**: Low quality - significant delivery or engagement problems\n- **NA**: Quality rating not yet determined (new phone numbers)\n\n**Display Name Status:**\nWhen requesting the `name_status` field, you'll receive the current verification status:\n- **APPROVED**: Business display name has been verified and is ready to use\n- **AVAILABLE_WITHOUT_REVIEW**: Display name is ready to use without additional review\n- **DECLINED**: Business display name verification was rejected\n- **EXPIRED**: Display name approval has expired\n- **PENDING_REVIEW**: Display name verification request is under review\n- **NONE**: No display name verification request exists\n\n**Code Verification Status:**\nIndicates the two-step verification status:\n- **VERIFIED**: Phone number has completed two-step verification\n- **UNVERIFIED**: Two-step verification is pending or incomplete\n\n**Use Cases:**\n- Monitor phone number quality and delivery performance\n- Check verification and display name status\n- Validate phone number configuration before sending messages\n- Retrieve display information for business profiles\n- Audit phone number compliance and status\n\nFor more information on quality ratings, see [WhatsApp Business Account Message Quality Rating](https://www.facebook.com/business/help/896873687365001).\n",
734
+ tags: ["Phone Numbers"],
735
+ parameters: [
736
+ {
737
+ name: "Phone-Number-ID",
738
+ in: "path",
739
+ required: false,
740
+ schema: {
741
+ type: "string",
742
+ pattern: "^[0-9]+$",
743
+ },
744
+ description: "Your WhatsApp Business Account phone number ID (CSID). This unique identifier is assigned when you\nregister the phone number with WhatsApp Business API and can be found in your WhatsApp Business Manager.\n",
745
+ },
746
+ {
747
+ name: "fields",
748
+ in: "query",
749
+ required: false,
750
+ schema: {
751
+ type: "string",
752
+ },
753
+ description: "Comma-separated list of additional fields to include in the response. If not specified,\nonly default fields (id, display_phone_number, verified_name, quality_rating) are returned.\n\n**Available Fields:**\n- `name_status`: Display name verification status\n- `code_verification_status`: Two-step verification status for the phone number\n\n**Field Values:**\n\n**name_status** values:\n- `APPROVED`: Display name approved and ready to use\n- `AVAILABLE_WITHOUT_REVIEW`: Display name ready without additional review\n- `DECLINED`: Display name verification rejected\n- `EXPIRED`: Display name approval has expired\n- `PENDING_REVIEW`: Display name verification under review\n- `NONE`: No display name verification request exists\n\n**code_verification_status** values:\n- `VERIFIED`: Phone number has completed two-step verification\n- `UNVERIFIED`: Two-step verification pending or incomplete\n",
754
+ },
755
+ ],
756
+ response: {
757
+ confidence: "contract",
758
+ schema: "PhoneNumberInfo",
759
+ },
760
+ },
761
+ {
762
+ id: "updatePhoneNumber",
763
+ command: "update-phone-number",
764
+ binding: {
765
+ kind: "http",
766
+ method: "POST",
767
+ path: "/{Version}/{Phone-Number-ID}",
768
+ },
769
+ effect: "write",
770
+ summary: "Update WhatsApp Business Account Phone Number Status and Configuration",
771
+ description: "Update the status and configuration of a WhatsApp Business Account phone number.\nThis endpoint supports comprehensive phone number management including status updates,\nwebhook configuration, security settings, and business profile management.\n\n**Supported Operations:**\n- Update connection status between WhatsApp Business Account and phone number\n- Configure webhook endpoints for message delivery notifications\n- Set up two-step verification and security notifications\n- Update display names for name verification\n- Configure search visibility and privacy settings\n- Set username for the WhatsApp Business Account\n- Override webhook callback URIs for message notifications\n\n**Business Logic Requirements:**\n- App must be linked to the WhatsApp Business Account\n- Webhook subscription must exist before configuring callback URI overrides\n- Callback URI verification is performed for external URLs\n- Internal URLs are allowed for development environments\n\n**Rate Limiting:**\nWhatsApp use case throttling applies. Use appropriate retry logic with exponential backoff.\n\n**Security Validations:**\n- App-to-WABA linking validation enforced\n- Webhook callback URI verification required for external URLs\n- Business integration system user checks for AI bot onboarding\n- Capability checks for first-party app access\n",
772
+ tags: ["Phone Numbers"],
773
+ parameters: [
774
+ {
775
+ name: "Phone-Number-ID",
776
+ in: "path",
777
+ required: false,
778
+ schema: {
779
+ type: "string",
780
+ pattern: "^[0-9]+$",
781
+ },
782
+ description: "Your WhatsApp Business Account phone number ID (CSID). This ID is provided when you\nregister the phone number and can be found in your WhatsApp Business Manager.\n",
783
+ },
784
+ ],
785
+ request: {
786
+ required: false,
787
+ confidence: "contract",
788
+ schema: "PhoneNumberStatusUpdateRequest",
789
+ },
790
+ response: {
791
+ confidence: "contract",
792
+ schema: "UpdatePhoneNumberResponse",
793
+ },
794
+ },
795
+ {
796
+ id: "deregisterPhoneNumber",
797
+ command: "deregister-phone-number",
798
+ binding: {
799
+ kind: "http",
800
+ method: "POST",
801
+ path: "/{Version}/{Phone-Number-ID}/deregister",
802
+ },
803
+ effect: "destructive",
804
+ summary: "Deregister WhatsApp Business Phone Number",
805
+ description: "Deregister a WhatsApp Business phone number from the Facebook Hosted System.\nThis operation removes the phone number from the WhatsApp Business Platform\nand makes it available for re-registration if needed.\n\n\n**Important Notes:**\n- Phone number must be currently linked in Facebook Hosted System\n- Phone number must be registered on the WhatsApp Business Platform\n- Cannot deregister phone numbers associated with SMB accounts\n- Rate limiting is enforced to prevent abuse\n- Deregistration triggers activity logging for audit purposes\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply with additional restrictions for registration\noperations. Use appropriate retry logic with exponential backoff.\n\n\n**Caching:**\nDeregistration status changes are immediate and should not be cached.\n",
806
+ tags: ["Phone Number Management"],
807
+ parameters: [
808
+ {
809
+ name: "Phone-Number-ID",
810
+ in: "path",
811
+ required: false,
812
+ schema: {
813
+ type: "string",
814
+ pattern: "^[0-9]+$",
815
+ },
816
+ description: "The ID of the phone number to deregister. This ID is provided when you register\nthe phone number and can be found in your WhatsApp Business Account settings.\n",
817
+ },
818
+ ],
819
+ response: {
820
+ confidence: "contract",
821
+ schema: "DeregisterResponse",
822
+ },
823
+ },
824
+ {
825
+ id: "getMessageHistory",
826
+ command: "get-message-history",
827
+ binding: {
828
+ kind: "http",
829
+ method: "GET",
830
+ path: "/{Version}/{Phone-Number-ID}/message_history",
831
+ },
832
+ effect: "read",
833
+ summary: "Get WhatsApp Business Account Message History",
834
+ description: "Retrieve paginated message history for a WhatsApp Business Account phone number,\nincluding delivery status events, timestamps, and webhook update information.\n\n\n**Use Cases:**\n- Track message delivery status and events\n- Monitor webhook delivery and update states\n- Retrieve historical message delivery information\n- Debug message delivery issues and webhook failures\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n\n**Caching:**\nMessage history data can be cached for moderate periods, but delivery status events\nmay change frequently. Implement appropriate cache invalidation strategies.\n\n\n**Pagination:**\nThis endpoint supports cursor-based pagination. Use the `after` and `before` cursors\nfrom the response to navigate through results.\n",
835
+ tags: ["Message History"],
836
+ parameters: [
837
+ {
838
+ name: "Phone-Number-ID",
839
+ in: "path",
840
+ required: false,
841
+ schema: {
842
+ type: "string",
843
+ pattern: "^[0-9]+$",
844
+ },
845
+ description: "Your WhatsApp Business Account phone number ID. This ID is provided when you register\nthe phone number and can be found in your WhatsApp Business Manager or through phone number APIs.\n",
846
+ },
847
+ {
848
+ name: "message_id",
849
+ in: "query",
850
+ required: false,
851
+ schema: {
852
+ type: "string",
853
+ },
854
+ description: "Filter results by specific WhatsApp message ID (WAMID). When provided,\nonly message history for this specific message will be returned.\n",
855
+ },
856
+ {
857
+ name: "fields",
858
+ in: "query",
859
+ required: false,
860
+ schema: {
861
+ type: "string",
862
+ },
863
+ description: "Comma-separated list of fields to include in the response. If not specified,\ndefault fields will be returned (id, message_id).\nAvailable fields: id, message_id, events{delivery_status,webhook_update_state,timestamp,application,webhook_uri,error_description}\n",
864
+ },
865
+ {
866
+ name: "limit",
867
+ in: "query",
868
+ required: false,
869
+ schema: {
870
+ default: 25,
871
+ type: "integer",
872
+ minimum: 1,
873
+ maximum: 100,
874
+ },
875
+ description: "Maximum number of message history entries to return per page.\nDefault is 25, maximum is 100.\n",
876
+ },
877
+ {
878
+ name: "after",
879
+ in: "query",
880
+ required: false,
881
+ schema: {
882
+ type: "string",
883
+ },
884
+ description: "Cursor for pagination. Use this to get the next page of results.\nThis value comes from the `paging.cursors.after` field in previous responses.\n",
885
+ },
886
+ {
887
+ name: "before",
888
+ in: "query",
889
+ required: false,
890
+ schema: {
891
+ type: "string",
892
+ },
893
+ description: "Cursor for pagination. Use this to get the previous page of results.\nThis value comes from the `paging.cursors.before` field in previous responses.\n",
894
+ },
895
+ ],
896
+ response: {
897
+ confidence: "contract",
898
+ schema: "MessageHistoryResponse",
899
+ },
900
+ },
901
+ {
902
+ id: "registerPhoneNumber",
903
+ command: "register-phone-number",
904
+ binding: {
905
+ kind: "http",
906
+ method: "POST",
907
+ path: "/{Version}/{Phone-Number-ID}/register",
908
+ },
909
+ effect: "destructive",
910
+ summary: "Register WhatsApp Business Phone Number",
911
+ description: "Register a WhatsApp Business phone number for messaging capabilities and enable\ntwo-step verification. This is a required step before sending messages through\nthe WhatsApp Business Cloud API.\n\n\n**Registration Process:**\n1. Phone number must be in UNVERIFIED status\n2. Provide a 6-digit PIN for two-step verification\n3. Optionally provide backup data for account migration\n4. Registration activates messaging capabilities\n\n\n**Migration Support:**\nFor migrating from on-premises WhatsApp Business API, include backup data\nwith password and encrypted account information.\n\n\n**Rate Limiting:**\nRegistration attempts are rate-limited to prevent abuse. Standard Graph API\nrate limits apply with additional restrictions for registration endpoints.\n\n\n**Security Requirements:**\n- Two-step verification is mandatory for all registered numbers\n- PIN must be securely stored and managed by the business\n- Registration enables webhook delivery and message sending capabilities\n",
912
+ tags: ["Phone Number Registration"],
913
+ parameters: [
914
+ {
915
+ name: "Phone-Number-ID",
916
+ in: "path",
917
+ required: false,
918
+ schema: {
919
+ type: "string",
920
+ pattern: "^[0-9]+$",
921
+ },
922
+ description: "The ID of the phone number to register. This ID is provided when the phone number\nis added to your WhatsApp Business Account and can be found in WhatsApp Manager.\n",
923
+ },
924
+ ],
925
+ request: {
926
+ required: true,
927
+ confidence: "contract",
928
+ schema: "WhatsAppBusinessPhoneNumberRegistrationRequest",
929
+ },
930
+ response: {
931
+ confidence: "contract",
932
+ schema: "WhatsAppBusinessPhoneNumberRegistrationResponse",
933
+ },
934
+ },
935
+ {
936
+ id: "requestVerificationCode",
937
+ command: "request-verification-code",
938
+ binding: {
939
+ kind: "http",
940
+ method: "POST",
941
+ path: "/{Version}/{Phone-Number-ID}/request_code",
942
+ },
943
+ effect: "write",
944
+ summary: "Request Phone Number Verification Code",
945
+ description: "Request a verification code for a WhatsApp Business phone number via SMS or voice call.\nThis is the first step in the phone number verification process.\n\n\n**Use Cases:**\n- Initial verification of newly added phone numbers\n- Re-verification when phone number status requires it\n- Switching between SMS and voice verification methods\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Additional rate limiting may be enforced\nfor verification code requests to prevent abuse.\n\n**Security:**\nVerification codes are sent only to the registered phone number and expire\nafter a short time period. Multiple failed attempts may result in temporary blocking.\n",
946
+ tags: ["Phone Number Verification"],
947
+ parameters: [
948
+ {
949
+ name: "Phone-Number-ID",
950
+ in: "path",
951
+ required: false,
952
+ schema: {
953
+ type: "string",
954
+ pattern: "^[0-9]+$",
955
+ },
956
+ description: "Your WhatsApp Business phone number ID. This ID represents the phone number\nstatus entity (EntWhatsAppBusinessAccountToNumberCurrentStatus) and can be\nobtained from your WhatsApp Business Account phone numbers list.\n",
957
+ },
958
+ ],
959
+ request: {
960
+ required: true,
961
+ confidence: "contract",
962
+ schema: "RequestCodeRequest",
963
+ },
964
+ response: {
965
+ confidence: "contract",
966
+ schema: "RequestCodeResponse",
967
+ },
968
+ },
969
+ {
970
+ id: "getPhoneNumberSettings",
971
+ command: "get-phone-number-settings",
972
+ binding: {
973
+ kind: "http",
974
+ method: "GET",
975
+ path: "/{Version}/{Phone-Number-ID}/settings",
976
+ },
977
+ effect: "read",
978
+ summary: "Get phone number settings",
979
+ description: "Retrieve current settings for a WhatsApp Business phone number.\nReturns calling settings, payload encryption settings, and data\nstorage configurations.\n",
980
+ tags: ["Settings"],
981
+ parameters: [
982
+ {
983
+ name: "Phone-Number-ID",
984
+ in: "path",
985
+ required: false,
986
+ schema: {
987
+ type: "string",
988
+ },
989
+ },
990
+ {
991
+ name: "include_sip_credentials",
992
+ in: "query",
993
+ required: false,
994
+ schema: {
995
+ default: false,
996
+ type: "boolean",
997
+ },
998
+ description: "Include SIP credentials in the response (requires additional permissions)",
999
+ },
1000
+ ],
1001
+ response: {
1002
+ confidence: "contract",
1003
+ schema: "PhoneNumberSettingsResponse",
1004
+ },
1005
+ },
1006
+ {
1007
+ id: "updatePhoneNumberSettings",
1008
+ command: "update-phone-number-settings",
1009
+ binding: {
1010
+ kind: "http",
1011
+ method: "POST",
1012
+ path: "/{Version}/{Phone-Number-ID}/settings",
1013
+ },
1014
+ effect: "write",
1015
+ summary: "Update phone number settings",
1016
+ description: "Update various settings for a WhatsApp Business phone number.\nYou can configure calling settings, user identity change settings,\npayload encryption, and data storage configurations.\nOnly one feature setting can be specified per request.\n",
1017
+ tags: ["Settings"],
1018
+ parameters: [
1019
+ {
1020
+ name: "Phone-Number-ID",
1021
+ in: "path",
1022
+ required: false,
1023
+ schema: {
1024
+ type: "string",
1025
+ },
1026
+ },
1027
+ ],
1028
+ request: {
1029
+ required: false,
1030
+ confidence: "contract",
1031
+ schema: "UpdatePhoneNumberSettingsRequest",
1032
+ },
1033
+ response: {
1034
+ confidence: "contract",
1035
+ schema: "UpdatePhoneNumberSettingsResponse",
1036
+ },
1037
+ },
1038
+ {
1039
+ id: "verifyPhoneNumberCode",
1040
+ command: "verify-phone-number-code",
1041
+ binding: {
1042
+ kind: "http",
1043
+ method: "POST",
1044
+ path: "/{Version}/{Phone-Number-ID}/verify_code",
1045
+ },
1046
+ effect: "write",
1047
+ summary: "Verify Phone Number Verification Code",
1048
+ description: "Verify a phone number verification code for a WhatsApp Business Account phone number.\nThis endpoint is used to complete the phone number verification process by submitting\nthe verification code received via SMS or voice call.\n\n\n**Use Cases:**\n- Complete phone number verification during initial setup\n- Verify phone number ownership for messaging capabilities\n- Finalize phone number registration process\n- Complete phone number migration verification\n\n\n**Rate Limiting:**\nVerification attempts are rate-limited to prevent abuse. Failed attempts may result\nin temporary blocking. Use appropriate retry logic with exponential backoff.\n\n\n**Security:**\nVerification codes are time-limited (typically 10 minutes) and single-use.\nMultiple failed attempts may trigger additional security measures.\n",
1049
+ tags: ["Phone Number Verification"],
1050
+ parameters: [
1051
+ {
1052
+ name: "Phone-Number-ID",
1053
+ in: "path",
1054
+ required: false,
1055
+ schema: {
1056
+ type: "string",
1057
+ pattern: "^[0-9]+$",
1058
+ },
1059
+ description: "The WhatsApp Business Account phone number ID that needs verification.\nThis ID is provided when you add a phone number to your WhatsApp Business Account.\n",
1060
+ },
1061
+ ],
1062
+ request: {
1063
+ required: true,
1064
+ confidence: "contract",
1065
+ schema: "VerifyCodeRequest",
1066
+ },
1067
+ response: {
1068
+ confidence: "contract",
1069
+ schema: "VerifyCodeResponse",
1070
+ },
1071
+ },
1072
+ {
1073
+ id: "getEncryptionPublicKey",
1074
+ command: "get-encryption-public-key",
1075
+ binding: {
1076
+ kind: "http",
1077
+ method: "GET",
1078
+ path: "/{Version}/{Phone-Number-ID}/whatsapp_business_encryption",
1079
+ },
1080
+ effect: "read",
1081
+ summary: "Get Business Encryption Public Key",
1082
+ description: "Retrieve the current business public key and its signature verification status.\n\nThis endpoint returns the public key that is currently configured for encrypting\nmessage payloads and indicates whether the stored signature is valid or has a mismatch.\n\n**Use Cases:**\n- Verify current encryption configuration\n- Check public key signature validation status\n- Retrieve public key for client-side encryption setup\n- Monitor encryption key status for security compliance\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n**Caching:**\nPublic key information can be cached for moderate periods, but signature status\nmay change and should be checked regularly for security validation.\n",
1083
+ tags: ["Flows", "Setup Endpoint Encryption", "Business Encryption"],
1084
+ parameters: [
1085
+ {
1086
+ name: "Phone-Number-ID",
1087
+ in: "path",
1088
+ required: false,
1089
+ schema: {
1090
+ type: "string",
1091
+ pattern: "^[0-9]+$",
1092
+ },
1093
+ description: "Your WhatsApp Business phone number ID. This ID represents the phone number\nentity and can be obtained from your WhatsApp Business Account phone numbers list.\n",
1094
+ },
1095
+ {
1096
+ name: "fields",
1097
+ in: "query",
1098
+ required: false,
1099
+ schema: {
1100
+ type: "string",
1101
+ },
1102
+ description: "Comma-separated list of fields to include in the response. If not specified,\nall available fields will be returned.\nAvailable fields: business_public_key, business_public_key_signature_status\n",
1103
+ },
1104
+ ],
1105
+ response: {
1106
+ confidence: "contract",
1107
+ schema: "GetEncryptionPublicKeyResponse",
1108
+ },
1109
+ },
1110
+ {
1111
+ id: "setEncryptionPublicKey",
1112
+ command: "set-encryption-public-key",
1113
+ binding: {
1114
+ kind: "http",
1115
+ method: "POST",
1116
+ path: "/{Version}/{Phone-Number-ID}/whatsapp_business_encryption",
1117
+ },
1118
+ effect: "write",
1119
+ summary: "Set Business Encryption Public Key",
1120
+ description: "Upload and configure a business public key for message payload encryption.\n\nThis endpoint accepts a business public key in PEM format, validates it,\nand stores it with a cryptographic signature for future use in encrypting\nmessage payloads and data channel requests.\n\n**Use Cases:**\n- Initial setup of encryption for WhatsApp Business messaging\n- Update existing public key for key rotation\n- Enable secure payload encryption for sensitive business communications\n- Configure encryption keys for compliance requirements\n\n**Key Requirements:**\n- Must be a valid RSA public key in PEM format\n- Key must meet Meta's security standards for encryption\n- Only one active public key per phone number at a time\n- Previous keys are replaced when new ones are uploaded\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Key uploads may have additional\nsecurity-related rate limiting to prevent abuse.\n",
1121
+ tags: ["Business Encryption"],
1122
+ parameters: [
1123
+ {
1124
+ name: "Phone-Number-ID",
1125
+ in: "path",
1126
+ required: false,
1127
+ schema: {
1128
+ type: "string",
1129
+ pattern: "^[0-9]+$",
1130
+ },
1131
+ description: "Your WhatsApp Business phone number ID. This ID represents the phone number\nentity and can be obtained from your WhatsApp Business Account phone numbers list.\n",
1132
+ },
1133
+ ],
1134
+ request: {
1135
+ required: true,
1136
+ confidence: "contract",
1137
+ schema: "WhatsAppBusinessEncryptionUploadRequest",
1138
+ contentType: "multipart/form-data",
1139
+ },
1140
+ response: {
1141
+ confidence: "contract",
1142
+ schema: "WhatsAppBusinessEncryptionUploadResponse",
1143
+ },
1144
+ },
1145
+ {
1146
+ id: "getBusinessProfile",
1147
+ command: "get-business-profile",
1148
+ binding: {
1149
+ kind: "http",
1150
+ method: "GET",
1151
+ path: "/{Version}/{Phone-Number-ID}/whatsapp_business_profile",
1152
+ },
1153
+ effect: "read",
1154
+ summary: "Get WhatsApp Business Profile",
1155
+ description: "Retrieve comprehensive information about a WhatsApp Business Profile, including\nbusiness details, contact information, and profile settings.\n\n\n**Use Cases:**\n- Retrieve current business profile information\n- Check business contact details and settings\n- Verify business vertical and website information\n- Get profile picture URL and about section\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n\n**Caching:**\nBusiness profile information can be cached for moderate periods, but should be\nrefreshed periodically to ensure accuracy.\n",
1156
+ tags: ["WhatsApp Business Profile"],
1157
+ parameters: [
1158
+ {
1159
+ name: "Phone-Number-ID",
1160
+ in: "path",
1161
+ required: false,
1162
+ schema: {
1163
+ type: "string",
1164
+ pattern: "^[0-9]+$",
1165
+ },
1166
+ description: "Your WhatsApp Business phone number ID. This ID represents the phone number\nstatus entity and can be obtained from your WhatsApp Business Account phone numbers list.\n",
1167
+ },
1168
+ {
1169
+ name: "fields",
1170
+ in: "query",
1171
+ required: false,
1172
+ schema: {
1173
+ type: "string",
1174
+ },
1175
+ description: "Comma-separated list of fields to include in the response. If not specified,\ndefault fields will be returned (messaging_product, about, address, description, email, profile_picture_url, websites, vertical).\nAvailable fields: messaging_product, about, address, description, email, profile_picture_url, websites, vertical\n",
1176
+ },
1177
+ ],
1178
+ response: {
1179
+ confidence: "contract",
1180
+ schema: "WhatsAppBusinessProfileResponse",
1181
+ },
1182
+ },
1183
+ {
1184
+ id: "updateBusinessProfile",
1185
+ command: "update-business-profile",
1186
+ binding: {
1187
+ kind: "http",
1188
+ method: "POST",
1189
+ path: "/{Version}/{Phone-Number-ID}/whatsapp_business_profile",
1190
+ },
1191
+ effect: "write",
1192
+ summary: "Update WhatsApp Business Profile",
1193
+ description: "Update WhatsApp Business Profile information including business details,\ncontact information, and profile settings.\n\n\n**Use Cases:**\n- Update business description and contact information\n- Modify business address and website information\n- Change business vertical classification\n- Update profile picture using Resumable Upload API\n- Update profile picture and about section\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n\n**Profile Picture Updates:**\nTo update the profile picture, first use the Resumable Upload API to obtain a\nprofile_picture_handle, then include it in the request.\n",
1194
+ tags: ["WhatsApp Business Profile"],
1195
+ parameters: [
1196
+ {
1197
+ name: "Phone-Number-ID",
1198
+ in: "path",
1199
+ required: false,
1200
+ schema: {
1201
+ type: "string",
1202
+ pattern: "^[0-9]+$",
1203
+ },
1204
+ description: "Your WhatsApp Business phone number ID. This ID represents the phone number\nstatus entity and can be obtained from your WhatsApp Business Account phone numbers list.\n",
1205
+ },
1206
+ ],
1207
+ request: {
1208
+ required: true,
1209
+ confidence: "contract",
1210
+ schema: "WhatsAppBusinessProfileUpdateRequest",
1211
+ },
1212
+ response: {
1213
+ confidence: "contract",
1214
+ schema: "WhatsAppBusinessProfileUpdateResponse",
1215
+ },
1216
+ },
1217
+ {
1218
+ id: "getCommerceSettings",
1219
+ command: "get-commerce-settings",
1220
+ binding: {
1221
+ kind: "http",
1222
+ method: "GET",
1223
+ path: "/{Version}/{Phone-Number-ID}/whatsapp_commerce_settings",
1224
+ },
1225
+ effect: "read",
1226
+ summary: "Get commerce settings",
1227
+ description: "- Guide: [Sell Products & Services](https://developers.facebook.com/docs/business-messaging/whatsapp/catalogs/sell-products-and-services) (Cloud API)\n- Guide: [Sell Products & Services](https://developers.facebook.com/docs/whatsapp/on-premises/guides/commerce-guides) (On-Premises API)\n- Endpoint reference: [WhatsApp Business Phone Number > WhatsApp Commerce Settings](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account-to-number-current-status/whatsapp_commerce_settings)",
1228
+ tags: ["Commerce Settings"],
1229
+ parameters: [
1230
+ {
1231
+ name: "Phone-Number-ID",
1232
+ in: "path",
1233
+ required: false,
1234
+ schema: {
1235
+ type: "string",
1236
+ },
1237
+ },
1238
+ ],
1239
+ response: {
1240
+ confidence: "contract",
1241
+ schema: "GetCommerceSettingsResponse",
1242
+ },
1243
+ },
1244
+ {
1245
+ id: "setCommerceSettings",
1246
+ command: "set-commerce-settings",
1247
+ binding: {
1248
+ kind: "http",
1249
+ method: "POST",
1250
+ path: "/{Version}/{Phone-Number-ID}/whatsapp_commerce_settings",
1251
+ },
1252
+ effect: "write",
1253
+ summary: "Set or update commerce settings",
1254
+ description: "- Guide: [Sell Products & Services](https://developers.facebook.com/docs/business-messaging/whatsapp/catalogs/sell-products-and-services) (Cloud API)\n- Guide: [Sell Products & Services](https://developers.facebook.com/docs/whatsapp/on-premises/guides/commerce-guides) (On-Premises API)\n- Endpoint reference: [WhatsApp Business Phone Number > WhatsApp Commerce Settings](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account-to-number-current-status/whatsapp_commerce_settings)",
1255
+ tags: ["Commerce Settings"],
1256
+ parameters: [
1257
+ {
1258
+ name: "Phone-Number-ID",
1259
+ in: "path",
1260
+ required: false,
1261
+ schema: {
1262
+ type: "string",
1263
+ },
1264
+ },
1265
+ {
1266
+ name: "is_cart_enabled",
1267
+ in: "query",
1268
+ required: false,
1269
+ schema: {
1270
+ type: "string",
1271
+ },
1272
+ },
1273
+ {
1274
+ name: "is_catalog_visible",
1275
+ in: "query",
1276
+ required: false,
1277
+ schema: {
1278
+ type: "string",
1279
+ },
1280
+ },
1281
+ ],
1282
+ response: {
1283
+ confidence: "contract",
1284
+ schema: "SetCommerceSettingsResponse",
1285
+ },
1286
+ },
1287
+ {
1288
+ id: "getBusinessComplianceInfo",
1289
+ command: "get-business-compliance-info",
1290
+ binding: {
1291
+ kind: "http",
1292
+ method: "GET",
1293
+ path: "/{Version}/{Phone-Number-ID}/business_compliance_info",
1294
+ },
1295
+ effect: "read",
1296
+ summary: "Get Business Compliance Information",
1297
+ description: "Retrieve comprehensive business compliance information for a WhatsApp Business Account phone number,\nincluding entity details, registration status, and required contact information for regulatory compliance.\n\n\n**Use Cases:**\n- Retrieve business compliance information for regulatory reporting\n- Verify business entity registration status and contact details\n- Access grievance officer and customer care information\n- Support compliance audits and regulatory verification processes\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n\n**Caching:**\nCompliance information can be cached for moderate periods, but should be refreshed regularly\nto ensure accuracy for regulatory purposes. Implement appropriate cache invalidation strategies.\n",
1298
+ tags: ["Business Compliance"],
1299
+ parameters: [
1300
+ {
1301
+ name: "Phone-Number-ID",
1302
+ in: "path",
1303
+ required: false,
1304
+ schema: {
1305
+ type: "string",
1306
+ pattern: "^[0-9]+$",
1307
+ },
1308
+ description: "Your WhatsApp Business Account phone number ID. This ID can be found in your\nWhatsApp Business Manager or through phone number management APIs.\n",
1309
+ },
1310
+ {
1311
+ name: "fields",
1312
+ in: "query",
1313
+ required: false,
1314
+ schema: {
1315
+ type: "string",
1316
+ },
1317
+ description: "Comma-separated list of fields to include in the response. If not specified,\ndefault fields will be returned. Available fields: messaging_product, entity_name,\nentity_type, entity_type_custom, is_registered, grievance_officer_details, customer_care_details\n",
1318
+ },
1319
+ ],
1320
+ response: {
1321
+ confidence: "contract",
1322
+ schema: "GetBusinessComplianceInfoResponse",
1323
+ },
1324
+ },
1325
+ {
1326
+ id: "updateBusinessComplianceInfo",
1327
+ command: "update-business-compliance-info",
1328
+ binding: {
1329
+ kind: "http",
1330
+ method: "POST",
1331
+ path: "/{Version}/{Phone-Number-ID}/business_compliance_info",
1332
+ },
1333
+ effect: "write",
1334
+ summary: "Update Business Compliance Information",
1335
+ description: 'Create or update comprehensive business compliance information for a WhatsApp Business Account phone number,\nincluding entity details, registration status, and required contact information for regulatory compliance.\n\n\n**Use Cases:**\n- Set business compliance information for regulatory reporting\n- Update business entity registration status and details\n- Configure grievance officer and customer care contact information\n- Ensure compliance data accuracy for regulatory purposes\n- Support compliance setup for new business operations\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n\n**Validation Rules:**\n- `entity_name` is required and must be between 2 and 128 characters\n- `entity_type` is required and must be a valid entity type enum value\n- `entity_type_custom` is mandatory when `entity_type` is "Other"\n- `entity_type_custom` cannot be used with non-"Other" entity types\n- `is_registered` can only be used with "Other" or "Partnership" entity types\n- `grievance_officer_details` is required with complete contact information\n- `customer_care_details` is required with contact information\n- Phone numbers must be valid international format with country code\n- Email addresses must be valid format and under 128 characters\n',
1336
+ tags: ["Business Compliance"],
1337
+ parameters: [
1338
+ {
1339
+ name: "Phone-Number-ID",
1340
+ in: "path",
1341
+ required: false,
1342
+ schema: {
1343
+ type: "string",
1344
+ pattern: "^[0-9]+$",
1345
+ },
1346
+ description: "Your WhatsApp Business Account phone number ID. This ID can be found in your\nWhatsApp Business Manager or through phone number management APIs.\n",
1347
+ },
1348
+ ],
1349
+ request: {
1350
+ required: true,
1351
+ confidence: "contract",
1352
+ schema: "BusinessComplianceInfoUpdateRequest",
1353
+ },
1354
+ response: {
1355
+ confidence: "contract",
1356
+ schema: "UpdateBusinessComplianceInfoResponse",
1357
+ },
1358
+ },
1359
+ {
1360
+ id: "getMedia",
1361
+ command: "get-media",
1362
+ binding: {
1363
+ kind: "http",
1364
+ method: "GET",
1365
+ path: "/{Version}/{Media-ID}",
1366
+ },
1367
+ effect: "read",
1368
+ summary: "Retrieve Media URL",
1369
+ description: "To retrieve your media’s URL, make a **GET** call to **`/{{Media-ID}}`**. Use the returned URL to download the media file. Note that clicking this URL (i.e. performing a generic GET) will not return the media; you must include an access token. For more information, see [Download Media](https://developers.facebook.com/docs/business-messaging/whatsapp/business-phone-numbers/media#download-media).\n\nYou can also use the optional query **`?phone_number_id`** for **`Retrieve Media URL`** and **`Delete Media`**. This parameter checks to make sure the media belongs to the phone number before retrieval or deletion.\n\n#### Response\n\nA successful response includes an object with a media URL. The URL is only valid for 5 minutes. To use this URL, see [Download Media](https://developers.facebook.com/docs/business-messaging/whatsapp/business-phone-numbers/media#download-media).",
1370
+ tags: ["Media"],
1371
+ parameters: [
1372
+ {
1373
+ name: "Media-ID",
1374
+ in: "path",
1375
+ required: true,
1376
+ schema: {
1377
+ type: "string",
1378
+ },
1379
+ },
1380
+ {
1381
+ name: "phone_number_id",
1382
+ in: "query",
1383
+ required: false,
1384
+ schema: {
1385
+ type: "string",
1386
+ },
1387
+ description: "Specifies that this action only be performed if the media belongs to the provided phone number.",
1388
+ },
1389
+ ],
1390
+ response: {
1391
+ confidence: "contract",
1392
+ schema: "GetMediaResponse",
1393
+ },
1394
+ },
1395
+ {
1396
+ id: "deleteMedia",
1397
+ command: "delete-media",
1398
+ binding: {
1399
+ kind: "http",
1400
+ method: "DELETE",
1401
+ path: "/{Version}/{Media-ID}",
1402
+ },
1403
+ effect: "destructive",
1404
+ summary: "Delete Media",
1405
+ description: "To delete media, make a **DELETE** call to the ID of the media you want to delete.\n\n## Prerequisites\n- [User Access Token](https://developers.facebook.com/docs/facebook-login/access-tokens#usertokens) with **`whatsapp_business_messaging`** permission\n- Media object ID from either uploading media endpoint or media message Webhooks",
1406
+ tags: ["Media"],
1407
+ parameters: [
1408
+ {
1409
+ name: "Media-ID",
1410
+ in: "path",
1411
+ required: true,
1412
+ schema: {
1413
+ type: "string",
1414
+ },
1415
+ },
1416
+ {
1417
+ name: "phone_number_id",
1418
+ in: "query",
1419
+ required: false,
1420
+ schema: {
1421
+ type: "string",
1422
+ },
1423
+ description: "Specifies that deletion of the media only be performed if the media belongs to the provided phone number.",
1424
+ },
1425
+ ],
1426
+ response: {
1427
+ confidence: "contract",
1428
+ schema: "DeleteMediaResponse",
1429
+ },
1430
+ },
1431
+ {
1432
+ id: "getMessageHistoryEvents",
1433
+ command: "get-message-history-events",
1434
+ binding: {
1435
+ kind: "http",
1436
+ method: "GET",
1437
+ path: "/{Version}/{Message-History-ID}/events",
1438
+ },
1439
+ effect: "read",
1440
+ summary: "Get WhatsApp Message History Events",
1441
+ description: "Retrieve paginated message delivery status events for a specific message history entry,\nincluding delivery status occurrences, timestamps, and application information.\n\n\n**Use Cases:**\n- Track detailed message delivery status events and transitions\n- Monitor delivery status occurrence timestamps\n- Retrieve application information for delivery events\n- Debug message delivery issues and status changes\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n\n**Caching:**\nMessage history events can be cached for short periods, but delivery status events\nmay change frequently. Implement appropriate cache invalidation strategies.\n\n\n**Pagination:**\nThis endpoint supports cursor-based pagination. Use the `after` and `before` cursors\nfrom the response to navigate through results.\n",
1442
+ tags: ["Message History Events"],
1443
+ parameters: [
1444
+ {
1445
+ name: "Message-History-ID",
1446
+ in: "path",
1447
+ required: true,
1448
+ schema: {
1449
+ type: "string",
1450
+ pattern: "^[0-9]+$",
1451
+ },
1452
+ description: "Your WhatsApp Business Message History ID. This ID is provided when you retrieve\nmessage history and can be found through message history APIs.\n",
1453
+ },
1454
+ {
1455
+ name: "status_filter",
1456
+ in: "query",
1457
+ required: false,
1458
+ schema: {
1459
+ type: "ref",
1460
+ ref: "WhatsAppMessageDeliveryStatus",
1461
+ },
1462
+ description: "Filter results by specific delivery status. When provided,\nonly events with this delivery status will be returned.\n",
1463
+ },
1464
+ {
1465
+ name: "fields",
1466
+ in: "query",
1467
+ required: false,
1468
+ schema: {
1469
+ type: "string",
1470
+ },
1471
+ description: "Comma-separated list of fields to include in the response. If not specified,\ndefault fields will be returned (cursor, node{id,delivery_status,occurrence_timestamp}).\nAvailable fields: cursor, node{id,delivery_status,error_description,occurrence_timestamp,status_timestamp,application}\n",
1472
+ },
1473
+ {
1474
+ name: "limit",
1475
+ in: "query",
1476
+ required: false,
1477
+ schema: {
1478
+ default: 25,
1479
+ type: "integer",
1480
+ minimum: 1,
1481
+ maximum: 100,
1482
+ },
1483
+ description: "Maximum number of message history events to return per page.\nDefault is 25, maximum is 100.\n",
1484
+ },
1485
+ {
1486
+ name: "after",
1487
+ in: "query",
1488
+ required: false,
1489
+ schema: {
1490
+ type: "string",
1491
+ },
1492
+ description: "Cursor for pagination. Use this to get the next page of results.\nThis value comes from the `paging.cursors.after` field in previous responses.\n",
1493
+ },
1494
+ {
1495
+ name: "before",
1496
+ in: "query",
1497
+ required: false,
1498
+ schema: {
1499
+ type: "string",
1500
+ },
1501
+ description: "Cursor for pagination. Use this to get the previous page of results.\nThis value comes from the `paging.cursors.before` field in previous responses.\n",
1502
+ },
1503
+ ],
1504
+ response: {
1505
+ confidence: "contract",
1506
+ schema: "MessageHistoryEventsResponse",
1507
+ },
1508
+ },
1509
+ {
1510
+ id: "getAssignedWhatsAppBusinessAccounts",
1511
+ command: "get-assigned-whats-app-business-accounts",
1512
+ binding: {
1513
+ kind: "http",
1514
+ method: "GET",
1515
+ path: "/{Version}/{User-ID}/assigned_whatsapp_business_accounts",
1516
+ },
1517
+ effect: "read",
1518
+ summary: "Get Assigned WhatsApp Business Accounts",
1519
+ description: "Retrieve WhatsApp Business Accounts that have been assigned to a specific user.\nThis endpoint provides information about account assignments, permissions, and\ncurrent status corresponding to the GraphAssignedWhatsAppBusinessAccountsEdge node.\n\n\n**Use Cases:**\n- Retrieve all WhatsApp Business Accounts assigned to a user\n- Check user permissions for specific accounts\n- Monitor account assignment status and changes\n- Validate user access before performing business operations\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n\n**Caching:**\nAssignment information can be cached for short periods, but permissions and status\nmay change frequently. Implement appropriate cache invalidation strategies.\n",
1520
+ tags: ["Assigned WhatsApp Business Accounts"],
1521
+ parameters: [
1522
+ {
1523
+ name: "User-ID",
1524
+ in: "path",
1525
+ required: true,
1526
+ schema: {
1527
+ type: "string",
1528
+ pattern: "^[0-9]+$",
1529
+ },
1530
+ description: "The user ID for whom to retrieve assigned WhatsApp Business Accounts.\nThis must be a valid user ID within your solution or partnership.\n",
1531
+ },
1532
+ {
1533
+ name: "fields",
1534
+ in: "query",
1535
+ required: false,
1536
+ schema: {
1537
+ type: "string",
1538
+ },
1539
+ description: "Comma-separated list of fields to include in the response. If not specified,\ndefault fields will be returned (id, name, status).\nAvailable fields: id, name, status, assignment_date, permissions, business_id, phone_numbers\n",
1540
+ },
1541
+ {
1542
+ name: "limit",
1543
+ in: "query",
1544
+ required: false,
1545
+ schema: {
1546
+ default: 25,
1547
+ type: "integer",
1548
+ minimum: 1,
1549
+ maximum: 100,
1550
+ },
1551
+ description: "Maximum number of accounts to return per page. Default is 25, maximum is 100.\n",
1552
+ },
1553
+ {
1554
+ name: "after",
1555
+ in: "query",
1556
+ required: false,
1557
+ schema: {
1558
+ type: "string",
1559
+ },
1560
+ description: "Cursor for pagination. Use this to get the next page of results.\n",
1561
+ },
1562
+ {
1563
+ name: "before",
1564
+ in: "query",
1565
+ required: false,
1566
+ schema: {
1567
+ type: "string",
1568
+ },
1569
+ description: "Cursor for pagination. Use this to get the previous page of results.\n",
1570
+ },
1571
+ ],
1572
+ response: {
1573
+ confidence: "contract",
1574
+ schema: "AssignedAccountsResponse",
1575
+ },
1576
+ },
1577
+ {
1578
+ id: "getWhatsAppAccountNumberDetails",
1579
+ command: "get-whats-app-account-number-details",
1580
+ binding: {
1581
+ kind: "http",
1582
+ method: "GET",
1583
+ path: "/{Version}/{WhatsApp-Account-Number-ID}",
1584
+ },
1585
+ effect: "read",
1586
+ summary: "Get WhatsApp Account Number Details",
1587
+ description: "Retrieve comprehensive details about a WhatsApp Account Number, including its current status,\nverification information, quality rating, and configuration settings.\n\n**Use Cases:**\n- Monitor account number status and quality rating\n- Verify account number configuration before messaging operations\n- Check verification and approval status\n- Retrieve display name and business profile information\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n**Caching:**\nAccount number details can be cached for short periods, but status information may change\nfrequently. Implement appropriate cache invalidation strategies.\n",
1588
+ tags: ["WhatsApp Account Numbers"],
1589
+ parameters: [
1590
+ {
1591
+ name: "WhatsApp-Account-Number-ID",
1592
+ in: "path",
1593
+ required: true,
1594
+ schema: {
1595
+ type: "string",
1596
+ pattern: "^[0-9]+$",
1597
+ },
1598
+ description: "Your WhatsApp Account Number ID. This ID represents the account number entity\nand can be obtained from your WhatsApp Business Account phone numbers list.\n",
1599
+ },
1600
+ {
1601
+ name: "fields",
1602
+ in: "query",
1603
+ required: false,
1604
+ schema: {
1605
+ type: "string",
1606
+ },
1607
+ description: "Comma-separated list of fields to include in the response. If not specified,\ndefault fields will be returned (id, display_phone_number, status).\nAvailable fields: id, display_phone_number, verified_name, status, quality_rating,\ncountry_code, country_dial_code, code_verification_status, name_status,\nmessaging_limit_tier, account_mode, certificate, is_official_business_account\n",
1608
+ },
1609
+ ],
1610
+ response: {
1611
+ confidence: "contract",
1612
+ schema: "WhatsAppAccountNumber",
1613
+ },
1614
+ },
1615
+ {
1616
+ id: "getAssignedUsers",
1617
+ command: "get-assigned-users",
1618
+ binding: {
1619
+ kind: "http",
1620
+ method: "GET",
1621
+ path: "/{Version}/{WhatsApp-Business-Account-ID}/assigned_users",
1622
+ },
1623
+ effect: "read",
1624
+ summary: "List Assigned Users",
1625
+ description: "Retrieve a list of users assigned to the WhatsApp Business Account with their permissions\nand user details. This endpoint supports pagination and filtering capabilities.\n\n\n**Use Cases:**\n- Audit user access to WhatsApp Business Account\n- Retrieve user permission assignments for compliance\n- List all users with access for management purposes\n- Monitor user access patterns and assignments\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n\n**Caching:**\nUser assignment data can be cached for short periods, but permission changes may occur\nfrequently. Implement appropriate cache invalidation strategies.\n",
1626
+ tags: ["WhatsApp Business Account Users"],
1627
+ parameters: [
1628
+ {
1629
+ name: "WhatsApp-Business-Account-ID",
1630
+ in: "path",
1631
+ required: false,
1632
+ schema: {
1633
+ type: "string",
1634
+ pattern: "^[0-9]+$",
1635
+ },
1636
+ description: "Your WhatsApp Business Account ID. This ID is provided when you create the account\nand can be found in your Business Manager or through account management APIs.\n",
1637
+ },
1638
+ {
1639
+ name: "business",
1640
+ in: "query",
1641
+ required: true,
1642
+ schema: {
1643
+ type: "string",
1644
+ pattern: "^[0-9]+$",
1645
+ },
1646
+ description: "Business ID that owns or has access to the WhatsApp Business Account.\nThis parameter is required to specify the business context for user assignments.\n",
1647
+ },
1648
+ {
1649
+ name: "fields",
1650
+ in: "query",
1651
+ required: false,
1652
+ schema: {
1653
+ type: "string",
1654
+ },
1655
+ description: "Comma-separated list of fields to include in the response. If not specified,\ndefault fields will be returned (id, name). Available fields: id, name, business, user_type\n",
1656
+ },
1657
+ {
1658
+ name: "limit",
1659
+ in: "query",
1660
+ required: false,
1661
+ schema: {
1662
+ type: "integer",
1663
+ minimum: 1,
1664
+ maximum: 100,
1665
+ },
1666
+ description: "Maximum number of assigned users to return per page. Default is 25, maximum is 100.\n",
1667
+ },
1668
+ {
1669
+ name: "after",
1670
+ in: "query",
1671
+ required: false,
1672
+ schema: {
1673
+ type: "string",
1674
+ },
1675
+ description: "Cursor for pagination. Use this to get the next page of results.\n",
1676
+ },
1677
+ {
1678
+ name: "before",
1679
+ in: "query",
1680
+ required: false,
1681
+ schema: {
1682
+ type: "string",
1683
+ },
1684
+ description: "Cursor for pagination. Use this to get the previous page of results.\n",
1685
+ },
1686
+ ],
1687
+ response: {
1688
+ confidence: "contract",
1689
+ schema: "AssignedUsersResponse",
1690
+ },
1691
+ },
1692
+ {
1693
+ id: "addAssignedUser",
1694
+ command: "add-assigned-user",
1695
+ binding: {
1696
+ kind: "http",
1697
+ method: "POST",
1698
+ path: "/{Version}/{WhatsApp-Business-Account-ID}/assigned_users",
1699
+ },
1700
+ effect: "write",
1701
+ summary: "Add User to WhatsApp Business Account",
1702
+ description: "Add a user to the WhatsApp Business Account with specified permission tasks.\nThis operation grants the user access to perform specific actions on the account\nbased on the provided permission tasks.\n\n\n**Use Cases:**\n- Grant user access to WhatsApp Business Account management\n- Assign specific permission tasks for granular access control\n- Add new team members to WhatsApp Business Account operations\n- Configure user permissions for different business roles\n\n\n**Permission Tasks:**\nDifferent permission tasks grant access to different WhatsApp Business Account features:\n- MANAGE: General account management permissions\n- DEVELOP: Development and API access permissions\n- MANAGE_TEMPLATES: Message template management\n- MANAGE_PHONE: Phone number management\n- MESSAGING: Send and receive messages\n- FULL_CONTROL: Complete access to all account features\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n",
1703
+ tags: ["WhatsApp Business Account Users"],
1704
+ parameters: [
1705
+ {
1706
+ name: "WhatsApp-Business-Account-ID",
1707
+ in: "path",
1708
+ required: false,
1709
+ schema: {
1710
+ type: "string",
1711
+ pattern: "^[0-9]+$",
1712
+ },
1713
+ description: "Your WhatsApp Business Account ID. This ID is provided when you create the account\nand can be found in your Business Manager or through account management APIs.\n",
1714
+ },
1715
+ ],
1716
+ request: {
1717
+ required: true,
1718
+ confidence: "contract",
1719
+ schema: "AddAssignedUserRequest",
1720
+ contentType: "application/x-www-form-urlencoded",
1721
+ },
1722
+ response: {
1723
+ confidence: "contract",
1724
+ schema: "SuccessResponse",
1725
+ },
1726
+ },
1727
+ {
1728
+ id: "removeAssignedUser",
1729
+ command: "remove-assigned-user",
1730
+ binding: {
1731
+ kind: "http",
1732
+ method: "DELETE",
1733
+ path: "/{Version}/{WhatsApp-Business-Account-ID}/assigned_users",
1734
+ },
1735
+ effect: "write",
1736
+ summary: "Remove User from WhatsApp Business Account",
1737
+ description: "Remove a user's access from the WhatsApp Business Account. This operation revokes\nall permissions and access rights for the specified user on the account.\n\n\n**Use Cases:**\n- Revoke user access when they leave the organization\n- Remove temporary access grants\n- Clean up user permissions for security compliance\n- Manage user lifecycle and access control\n\n\n**Important Notes:**\n- This operation removes ALL permissions for the user on this WhatsApp Business Account\n- The user will lose access to all account features and data\n- This action cannot be undone - the user must be re-added if access is needed again\n- Webhooks may be triggered to notify of user access changes\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n",
1738
+ tags: ["WhatsApp Business Account Users"],
1739
+ parameters: [
1740
+ {
1741
+ name: "WhatsApp-Business-Account-ID",
1742
+ in: "path",
1743
+ required: false,
1744
+ schema: {
1745
+ type: "string",
1746
+ pattern: "^[0-9]+$",
1747
+ },
1748
+ description: "Your WhatsApp Business Account ID. This ID is provided when you create the account\nand can be found in your Business Manager or through account management APIs.\n",
1749
+ },
1750
+ ],
1751
+ request: {
1752
+ required: true,
1753
+ confidence: "contract",
1754
+ schema: "RemoveAssignedUserRequest",
1755
+ contentType: "application/x-www-form-urlencoded",
1756
+ },
1757
+ response: {
1758
+ confidence: "contract",
1759
+ schema: "SuccessResponse",
1760
+ },
1761
+ },
1762
+ {
1763
+ id: "configureConversationalAutomation",
1764
+ command: "configure-conversational-automation",
1765
+ binding: {
1766
+ kind: "http",
1767
+ method: "POST",
1768
+ path: "/{Version}/{Phone-Number-ID}/conversational_automation",
1769
+ },
1770
+ effect: "write",
1771
+ summary: "Configure Conversational Automation",
1772
+ description: "Configure conversational automation settings for a WhatsApp Business Account phone number,\nincluding welcome messages, conversation prompts (ice breakers), and bot commands.\n\n\n**Use Cases:**\n- Set up automated welcome messages for new customer conversations\n- Configure conversation prompts to guide customer interactions\n- Define bot commands for common customer service scenarios\n- Update existing automation settings\n- Enable or disable specific automation features\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n\n**Validation:**\n- Command names must be unique within the same phone number\n- Prompts and command descriptions must comply with WhatsApp Business policies\n- Maximum limits are enforced for prompts and commands\n",
1773
+ tags: ["Conversational Automation"],
1774
+ parameters: [
1775
+ {
1776
+ name: "Phone-Number-ID",
1777
+ in: "path",
1778
+ required: false,
1779
+ schema: {
1780
+ type: "string",
1781
+ pattern: "^[0-9]+$",
1782
+ },
1783
+ description: "Your WhatsApp Business phone number ID. This ID represents the phone number\nentity and can be obtained from your WhatsApp Business Account phone numbers list.\n",
1784
+ },
1785
+ ],
1786
+ request: {
1787
+ required: true,
1788
+ confidence: "contract",
1789
+ schema: "ConversationalAutomationRequest",
1790
+ },
1791
+ response: {
1792
+ confidence: "contract",
1793
+ schema: "ConversationalAutomationResponse",
1794
+ },
1795
+ },
1796
+ {
1797
+ id: "getCreditLines",
1798
+ command: "get-credit-lines",
1799
+ binding: {
1800
+ kind: "http",
1801
+ method: "GET",
1802
+ path: "/{Version}/{Business-ID}/extendedcredits",
1803
+ },
1804
+ effect: "read",
1805
+ summary: "Get credit lines",
1806
+ description: "- Endpoint reference: [Business > Extendedcredits](https://developers.facebook.com/docs/marketing-api/reference/extended-credit/)",
1807
+ tags: ["Billing"],
1808
+ parameters: [
1809
+ {
1810
+ name: "Business-ID",
1811
+ in: "path",
1812
+ required: true,
1813
+ schema: {
1814
+ type: "string",
1815
+ },
1816
+ },
1817
+ ],
1818
+ response: {
1819
+ confidence: "contract",
1820
+ schema: "GetCreditLinesResponse",
1821
+ },
1822
+ },
1823
+ {
1824
+ id: "listPhoneNumbers",
1825
+ command: "list-phone-numbers",
1826
+ binding: {
1827
+ kind: "http",
1828
+ method: "GET",
1829
+ path: "/{Version}/{WABA-ID}/phone_numbers",
1830
+ },
1831
+ effect: "read",
1832
+ summary: "Get WhatsApp Business Account Phone Numbers",
1833
+ description: "Retrieve all phone numbers associated with a WhatsApp Business Account, including their\nstatus, verification details, and configuration information.\n\n**Use Cases:**\n- List all phone numbers in a WhatsApp Business Account\n- Monitor phone number status and verification progress\n- Check phone number quality ratings and messaging limits\n- Retrieve phone number configuration details\n\n**Filtering:**\nYou can filter results using the `filtering` parameter with JSON-encoded filter conditions.\nSupported filters include account_mode, messaging_limit_tier, and is_official_business_account.\n\n**Sorting:**\nResults can be sorted by creation_time or last_onboarded_time in ascending or descending order.\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n**Caching:**\nPhone number data can be cached for short periods, but status information may change\nfrequently. Implement appropriate cache invalidation strategies.\n",
1834
+ tags: ["Phone Number Management"],
1835
+ parameters: [
1836
+ {
1837
+ name: "WABA-ID",
1838
+ in: "path",
1839
+ required: false,
1840
+ schema: {
1841
+ type: "string",
1842
+ pattern: "^[0-9]+$",
1843
+ },
1844
+ description: "WhatsApp Business Account ID. This ID can be found in your WhatsApp Manager\nor through the business management APIs.\n",
1845
+ },
1846
+ {
1847
+ name: "fields",
1848
+ in: "query",
1849
+ required: false,
1850
+ schema: {
1851
+ type: "string",
1852
+ },
1853
+ description: "Comma-separated list of fields to include in the response. If not specified,\ndefault fields will be returned. Available fields include: id, display_phone_number,\nverified_name, status, quality_rating, country_code, country_dial_code,\ncode_verification_status, unified_cert_status, account_mode, host_platform,\nmessaging_limit_tier, is_official_business_account, username\n",
1854
+ },
1855
+ {
1856
+ name: "filtering",
1857
+ in: "query",
1858
+ required: false,
1859
+ schema: {
1860
+ type: "string",
1861
+ },
1862
+ description: "JSON-encoded array of filter conditions. Each filter should specify field, operator, and value.\nSupported fields: account_mode, messaging_limit_tier, is_official_business_account\n",
1863
+ },
1864
+ {
1865
+ name: "sort",
1866
+ in: "query",
1867
+ required: false,
1868
+ schema: {
1869
+ type: "string",
1870
+ enum: ["creation_time.asc", "creation_time.desc", "last_onboarded_time.asc", "last_onboarded_time.desc"],
1871
+ },
1872
+ description: "Sort field and direction. Format: field_name.asc or field_name.desc\nSupported fields: creation_time, last_onboarded_time\n",
1873
+ },
1874
+ {
1875
+ name: "limit",
1876
+ in: "query",
1877
+ required: false,
1878
+ schema: {
1879
+ default: 25,
1880
+ type: "integer",
1881
+ minimum: 1,
1882
+ maximum: 100,
1883
+ },
1884
+ description: "Maximum number of phone numbers to return per page",
1885
+ },
1886
+ {
1887
+ name: "after",
1888
+ in: "query",
1889
+ required: false,
1890
+ schema: {
1891
+ type: "string",
1892
+ },
1893
+ description: "Cursor for pagination - retrieve records after this cursor",
1894
+ },
1895
+ {
1896
+ name: "before",
1897
+ in: "query",
1898
+ required: false,
1899
+ schema: {
1900
+ type: "string",
1901
+ },
1902
+ description: "Cursor for pagination - retrieve records before this cursor",
1903
+ },
1904
+ ],
1905
+ response: {
1906
+ confidence: "contract",
1907
+ schema: "WhatsAppBusinessAccountPhoneNumbersConnection",
1908
+ },
1909
+ },
1910
+ {
1911
+ id: "createPhoneNumber",
1912
+ command: "create-phone-number",
1913
+ binding: {
1914
+ kind: "http",
1915
+ method: "POST",
1916
+ path: "/{Version}/{WABA-ID}/phone_numbers",
1917
+ },
1918
+ effect: "write",
1919
+ summary: "Create WhatsApp Business Account Phone Number",
1920
+ description: "Create a new phone number registration within a WhatsApp Business Account. This endpoint\ninitiates the phone number onboarding process, including verification and business name approval.\n\n**Use Cases:**\n- Add new phone numbers to a WhatsApp Business Account\n- Migrate phone numbers from on-premises to Cloud API\n- Register pre-verified phone numbers for BSP scenarios\n- Initiate phone number verification and business name approval process\n\n**Prerequisites:**\n- WhatsApp Business Account must have available phone number slots\n- Phone number must not be already registered with WhatsApp Business\n- Business must meet WhatsApp Business API requirements\n- Appropriate permissions and app review completion\n\n**Process Flow:**\n1. Submit phone number and business name for registration\n2. Phone number verification code will be sent (if not pre-verified)\n3. Business name will be submitted for review\n4. Monitor status through GET endpoint until approval\n\n**Rate Limiting:**\nPhone number creation is subject to strict rate limits to prevent abuse.\nStandard Graph API rate limits also apply.\n\n**Migration Support:**\nSet migrate_phone_number=true when migrating from on-premises API to Cloud API.\nAdditional validation and migration-specific logic will be applied.\n",
1921
+ tags: ["Phone Number Management"],
1922
+ parameters: [
1923
+ {
1924
+ name: "WABA-ID",
1925
+ in: "path",
1926
+ required: false,
1927
+ schema: {
1928
+ type: "string",
1929
+ pattern: "^[0-9]+$",
1930
+ },
1931
+ description: "WhatsApp Business Account ID where the phone number will be added.\nThis ID can be found in your WhatsApp Manager or through business management APIs.\n",
1932
+ },
1933
+ ],
1934
+ request: {
1935
+ required: true,
1936
+ confidence: "contract",
1937
+ schema: "PhoneNumberCreateRequest",
1938
+ },
1939
+ response: {
1940
+ confidence: "contract",
1941
+ schema: "PhoneNumberCreateResponse",
1942
+ },
1943
+ },
1944
+ {
1945
+ id: "listSchedules",
1946
+ command: "list-schedules",
1947
+ binding: {
1948
+ kind: "http",
1949
+ method: "GET",
1950
+ path: "/{Version}/{WABA-ID}/schedules",
1951
+ },
1952
+ effect: "read",
1953
+ summary: "Get WhatsApp Business Account Schedules",
1954
+ description: "Retrieve all schedules associated with a WhatsApp Business Account, including their\nconfiguration, status, and execution details.\n\n**Use Cases:**\n- List all schedules in a WhatsApp Business Account\n- Monitor schedule status and performance\n- Check schedule configuration and timing details\n- Retrieve schedule execution history and metrics\n\n**Filtering:**\nYou can filter results using the `filtering` parameter with JSON-encoded filter conditions.\nSupported filters include status, schedule_type, and is_active.\n\n**Sorting:**\nResults can be sorted by created_time or updated_time in ascending or descending order.\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n**Caching:**\nSchedule data can be cached for short periods, but status information may change\nfrequently. Implement appropriate cache invalidation strategies.\n",
1955
+ tags: ["Schedule Management"],
1956
+ parameters: [
1957
+ {
1958
+ name: "WABA-ID",
1959
+ in: "path",
1960
+ required: false,
1961
+ schema: {
1962
+ type: "string",
1963
+ pattern: "^[0-9]+$",
1964
+ },
1965
+ description: "WhatsApp Business Account ID. This ID can be found in your WhatsApp Manager\nor through the business management APIs.\n",
1966
+ },
1967
+ {
1968
+ name: "fields",
1969
+ in: "query",
1970
+ required: false,
1971
+ schema: {
1972
+ type: "string",
1973
+ },
1974
+ description: "Comma-separated list of fields to include in the response. If not specified,\ndefault fields will be returned. Available fields include: id, name, status,\nschedule_type, description, start_time, end_time, timezone, days_of_week,\ncreated_time, updated_time, is_active, recurrence_pattern\n",
1975
+ },
1976
+ {
1977
+ name: "filtering",
1978
+ in: "query",
1979
+ required: false,
1980
+ schema: {
1981
+ type: "string",
1982
+ },
1983
+ description: "JSON-encoded array of filter conditions. Each filter should specify field, operator, and value.\nSupported fields: status, schedule_type, is_active\n",
1984
+ },
1985
+ {
1986
+ name: "sort",
1987
+ in: "query",
1988
+ required: false,
1989
+ schema: {
1990
+ type: "string",
1991
+ enum: ["created_time.asc", "created_time.desc", "updated_time.asc", "updated_time.desc"],
1992
+ },
1993
+ description: "Sort field and direction. Format: field_name.asc or field_name.desc\nSupported fields: created_time, updated_time\n",
1994
+ },
1995
+ {
1996
+ name: "limit",
1997
+ in: "query",
1998
+ required: false,
1999
+ schema: {
2000
+ default: 25,
2001
+ type: "integer",
2002
+ minimum: 1,
2003
+ maximum: 100,
2004
+ },
2005
+ description: "Maximum number of schedules to return per page",
2006
+ },
2007
+ {
2008
+ name: "after",
2009
+ in: "query",
2010
+ required: false,
2011
+ schema: {
2012
+ type: "string",
2013
+ },
2014
+ description: "Cursor for pagination - retrieve records after this cursor",
2015
+ },
2016
+ {
2017
+ name: "before",
2018
+ in: "query",
2019
+ required: false,
2020
+ schema: {
2021
+ type: "string",
2022
+ },
2023
+ description: "Cursor for pagination - retrieve records before this cursor",
2024
+ },
2025
+ ],
2026
+ response: {
2027
+ confidence: "contract",
2028
+ schema: "WhatsAppBusinessAccountSchedulesConnection",
2029
+ },
2030
+ },
2031
+ {
2032
+ id: "createSchedule",
2033
+ command: "create-schedule",
2034
+ binding: {
2035
+ kind: "http",
2036
+ method: "POST",
2037
+ path: "/{Version}/{WABA-ID}/schedules",
2038
+ },
2039
+ effect: "write",
2040
+ summary: "Create WhatsApp Business Account Schedule",
2041
+ description: "Create a new schedule configuration within a WhatsApp Business Account. This endpoint\nallows businesses to set up automated scheduling for various operations such as business hours,\nautomated responses, and maintenance windows.\n\n**Use Cases:**\n- Create business hours schedules for automated responses\n- Set up maintenance windows for system operations\n- Configure automated message campaigns with timing\n- Establish recurring schedule patterns for business operations\n\n**Prerequisites:**\n- WhatsApp Business Account must have scheduling feature enabled\n- Appropriate permissions for schedule management\n- Valid timezone and time format specifications\n- Business must meet WhatsApp Business API requirements\n\n**Process Flow:**\n1. Submit schedule configuration with timing and recurrence details\n2. System validates schedule parameters and conflicts\n3. Schedule is created and activated based on is_active flag\n4. Monitor schedule status through GET endpoint\n\n**Rate Limiting:**\nSchedule creation is subject to rate limits to prevent abuse.\nStandard Graph API rate limits also apply.\n\n**Validation:**\n- Start time must be before end time\n- Timezone must be valid IANA timezone identifier\n- Days of week must be valid if specified\n- Recurrence pattern must be consistent with schedule type\n",
2042
+ tags: ["Schedule Management"],
2043
+ parameters: [
2044
+ {
2045
+ name: "WABA-ID",
2046
+ in: "path",
2047
+ required: false,
2048
+ schema: {
2049
+ type: "string",
2050
+ pattern: "^[0-9]+$",
2051
+ },
2052
+ description: "WhatsApp Business Account ID where the schedule will be created.\nThis ID can be found in your WhatsApp Manager or through business management APIs.\n",
2053
+ },
2054
+ ],
2055
+ request: {
2056
+ required: true,
2057
+ confidence: "contract",
2058
+ schema: "ScheduleCreateRequest",
2059
+ },
2060
+ response: {
2061
+ confidence: "contract",
2062
+ schema: "ScheduleCreateResponse",
2063
+ },
2064
+ },
2065
+ {
2066
+ id: "listSubscribedApps",
2067
+ command: "list-subscribed-apps",
2068
+ binding: {
2069
+ kind: "http",
2070
+ method: "GET",
2071
+ path: "/{Version}/{WABA-ID}/subscribed_apps",
2072
+ },
2073
+ effect: "read",
2074
+ summary: "Get All Subscriptions for a WABA",
2075
+ description: "Retrieve a list of all applications currently subscribed to webhook events\nfor the specified WhatsApp Business Account.\n\n\n**Use Cases:**\n- Monitor which apps are subscribed to WABA webhook events\n- Audit subscription configurations and permissions\n- Verify subscription status before making changes\n- Retrieve subscription details for troubleshooting\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n\n**Caching:**\nSubscription data can be cached for short periods, but may change when apps\nsubscribe or unsubscribe. Implement appropriate cache invalidation strategies.\n",
2076
+ tags: ["Webhook Subscriptions"],
2077
+ parameters: [
2078
+ {
2079
+ name: "WABA-ID",
2080
+ in: "path",
2081
+ required: false,
2082
+ schema: {
2083
+ type: "string",
2084
+ pattern: "^[0-9]+$",
2085
+ },
2086
+ description: "WhatsApp Business Account ID. This ID can be found in your WhatsApp Manager\nor through business management APIs.\n",
2087
+ },
2088
+ {
2089
+ name: "fields",
2090
+ in: "query",
2091
+ required: false,
2092
+ schema: {
2093
+ type: "string",
2094
+ },
2095
+ description: "Comma-separated list of fields to include in the response. If not specified,\ndefault fields will be returned. Available fields: id, name, link\n",
2096
+ },
2097
+ ],
2098
+ response: {
2099
+ confidence: "contract",
2100
+ schema: "SubscribedAppsResponse",
2101
+ },
2102
+ },
2103
+ {
2104
+ id: "subscribeApp",
2105
+ command: "subscribe-app",
2106
+ binding: {
2107
+ kind: "http",
2108
+ method: "POST",
2109
+ path: "/{Version}/{WABA-ID}/subscribed_apps",
2110
+ },
2111
+ effect: "write",
2112
+ summary: "Subscribe to WABA Webhooks",
2113
+ description: "Subscribe your application to webhook events for the specified WhatsApp Business Account.\nThis enables your app to receive real-time notifications for events such as message\ndeliveries, status updates, and other WABA activities.\n\n\n**Use Cases:**\n- Enable webhook notifications for your app\n- Configure custom callback URLs for webhook delivery\n- Set up webhook verification tokens for security\n- Override default app webhook settings for specific WABAs\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Subscription operations may have additional\nthrottling to prevent abuse.\n\n\n**Security:**\nAlways use HTTPS endpoints for webhook callbacks. Verify webhook authenticity\nusing the provided verification tokens and signature validation.\n",
2114
+ tags: ["Webhook Subscriptions"],
2115
+ parameters: [
2116
+ {
2117
+ name: "WABA-ID",
2118
+ in: "path",
2119
+ required: false,
2120
+ schema: {
2121
+ type: "string",
2122
+ pattern: "^[0-9]+$",
2123
+ },
2124
+ description: "WhatsApp Business Account ID. This ID can be found in your WhatsApp Manager\nor through business management APIs.\n",
2125
+ },
2126
+ ],
2127
+ request: {
2128
+ required: false,
2129
+ confidence: "contract",
2130
+ schema: "SubscriptionRequest",
2131
+ },
2132
+ response: {
2133
+ confidence: "contract",
2134
+ schema: "SubscriptionResponse",
2135
+ },
2136
+ },
2137
+ {
2138
+ id: "unsubscribeApp",
2139
+ command: "unsubscribe-app",
2140
+ binding: {
2141
+ kind: "http",
2142
+ method: "DELETE",
2143
+ path: "/{Version}/{WABA-ID}/subscribed_apps",
2144
+ },
2145
+ effect: "write",
2146
+ summary: "Unsubscribe from WABA Webhooks",
2147
+ description: "Unsubscribe your application from webhook events for the specified WhatsApp Business Account.\nThis will stop your app from receiving webhook notifications for this WABA.\n\n\n**Use Cases:**\n- Disable webhook notifications when no longer needed\n- Clean up subscriptions during app decommissioning\n- Temporarily disable webhooks for maintenance\n- Remove subscriptions for WABAs no longer managed by your app\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Unsubscription operations are typically\nprocessed immediately.\n\n\n**Important:**\nUnsubscribing will immediately stop all webhook deliveries for this WABA.\nEnsure your application can handle the cessation of webhook events gracefully.\n",
2148
+ tags: ["Webhook Subscriptions"],
2149
+ parameters: [
2150
+ {
2151
+ name: "WABA-ID",
2152
+ in: "path",
2153
+ required: false,
2154
+ schema: {
2155
+ type: "string",
2156
+ pattern: "^[0-9]+$",
2157
+ },
2158
+ description: "WhatsApp Business Account ID. This ID can be found in your WhatsApp Manager\nor through business management APIs.\n",
2159
+ },
2160
+ ],
2161
+ response: {
2162
+ confidence: "contract",
2163
+ schema: "SubscriptionResponse",
2164
+ },
2165
+ },
2166
+ {
2167
+ id: "getTemplate",
2168
+ command: "get-template",
2169
+ binding: {
2170
+ kind: "http",
2171
+ method: "GET",
2172
+ path: "/{Version}/{TEMPLATE_ID}",
2173
+ },
2174
+ effect: "read",
2175
+ summary: "Get template by ID (default fields)",
2176
+ description: "- Guide: [Message Templates](https://developers.facebook.com/docs/business-messaging/whatsapp/templates/overview)\n- Guide: [How To Monitor Quality Signals](https://developers.facebook.com/docs/whatsapp/guides/how-to-monitor-quality-signals)\n- Endpoint reference: [WhatsApp Message Template](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-hsm/)",
2177
+ tags: ["Templates"],
2178
+ parameters: [
2179
+ {
2180
+ name: "TEMPLATE_ID",
2181
+ in: "path",
2182
+ required: true,
2183
+ schema: {
2184
+ type: "string",
2185
+ },
2186
+ },
2187
+ ],
2188
+ response: {
2189
+ confidence: "contract",
2190
+ schema: "GetTemplateResponse",
2191
+ },
2192
+ },
2193
+ {
2194
+ id: "editTemplate",
2195
+ command: "edit-template",
2196
+ binding: {
2197
+ kind: "http",
2198
+ method: "POST",
2199
+ path: "/{Version}/{TEMPLATE_ID}",
2200
+ },
2201
+ effect: "write",
2202
+ summary: "Edit template",
2203
+ description: "- Guide: [Message Templates](https://developers.facebook.com/docs/business-messaging/whatsapp/templates/overview)\n- Guide: [How To Monitor Quality Signals](https://developers.facebook.com/docs/whatsapp/guides/how-to-monitor-quality-signals)\n- Endpoint reference: [WhatsApp Message Template](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-hsm/)",
2204
+ tags: ["Templates"],
2205
+ parameters: [
2206
+ {
2207
+ name: "TEMPLATE_ID",
2208
+ in: "path",
2209
+ required: true,
2210
+ schema: {
2211
+ type: "string",
2212
+ },
2213
+ },
2214
+ ],
2215
+ request: {
2216
+ required: false,
2217
+ confidence: "example",
2218
+ schema: "EditTemplateRequest",
2219
+ },
2220
+ response: {
2221
+ confidence: "contract",
2222
+ schema: "EditTemplateResponse",
2223
+ },
2224
+ },
2225
+ {
2226
+ id: "listTemplates",
2227
+ command: "list-templates",
2228
+ binding: {
2229
+ kind: "http",
2230
+ method: "GET",
2231
+ path: "/{Version}/{WABA-ID}/message_templates",
2232
+ },
2233
+ effect: "read",
2234
+ summary: "Get template by name (default fields)",
2235
+ description: "- Guide: [Message Templates](https://developers.facebook.com/docs/business-messaging/whatsapp/templates/overview)\n- Guide: [How To Monitor Quality Signals](https://developers.facebook.com/docs/whatsapp/guides/how-to-monitor-quality-signals)\n- Endpoint reference: [WhatsApp Business Account > Message Templates](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account/message_templates/)",
2236
+ tags: ["Templates"],
2237
+ parameters: [
2238
+ {
2239
+ name: "WABA-ID",
2240
+ in: "path",
2241
+ required: false,
2242
+ schema: {
2243
+ type: "string",
2244
+ },
2245
+ },
2246
+ {
2247
+ name: "name",
2248
+ in: "query",
2249
+ required: false,
2250
+ schema: {
2251
+ type: "string",
2252
+ },
2253
+ },
2254
+ ],
2255
+ response: {
2256
+ confidence: "contract",
2257
+ schema: "ListTemplatesResponse",
2258
+ },
2259
+ },
2260
+ {
2261
+ id: "createTemplate",
2262
+ command: "create-template",
2263
+ binding: {
2264
+ kind: "http",
2265
+ method: "POST",
2266
+ path: "/{Version}/{WABA-ID}/message_templates",
2267
+ },
2268
+ effect: "write",
2269
+ summary: "Create authentication template w/ OTP copy code button",
2270
+ description: "- Guide: [Authentication Templates with OTP Buttons](https://developers.facebook.com/docs/business-messaging/whatsapp/templates/authentication-templates/authentication-templates)\n- Guide: [Message Templates](https://developers.facebook.com/docs/business-messaging/whatsapp/templates/overview)\n- Guide: [How To Monitor Quality Signals](https://developers.facebook.com/docs/whatsapp/guides/how-to-monitor-quality-signals)\n- Endpoint reference: [WhatsApp Business Account > Message Templates](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account/message_templates/)",
2271
+ tags: ["Flows", "Send Flow"],
2272
+ parameters: [
2273
+ {
2274
+ name: "WABA-ID",
2275
+ in: "path",
2276
+ required: false,
2277
+ schema: {
2278
+ type: "string",
2279
+ },
2280
+ },
2281
+ ],
2282
+ request: {
2283
+ required: false,
2284
+ confidence: "example",
2285
+ schema: "CreateTemplateRequest",
2286
+ },
2287
+ response: {
2288
+ confidence: "contract",
2289
+ schema: "CreateTemplateResponse",
2290
+ },
2291
+ },
2292
+ {
2293
+ id: "deleteTemplate",
2294
+ command: "delete-template",
2295
+ binding: {
2296
+ kind: "http",
2297
+ method: "DELETE",
2298
+ path: "/{Version}/{WABA-ID}/message_templates",
2299
+ },
2300
+ effect: "destructive",
2301
+ summary: "Delete template by name",
2302
+ description: "- Guide: [Message Templates](https://developers.facebook.com/docs/business-messaging/whatsapp/templates/overview)\n- Guide: [How To Monitor Quality Signals](https://developers.facebook.com/docs/whatsapp/guides/how-to-monitor-quality-signals)\n- Endpoint reference: [WhatsApp Business Account > Message Templates](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account/message_templates/)",
2303
+ tags: ["Templates"],
2304
+ parameters: [
2305
+ {
2306
+ name: "WABA-ID",
2307
+ in: "path",
2308
+ required: false,
2309
+ schema: {
2310
+ type: "string",
2311
+ },
2312
+ },
2313
+ {
2314
+ name: "name",
2315
+ in: "query",
2316
+ required: false,
2317
+ schema: {
2318
+ type: "string",
2319
+ },
2320
+ },
2321
+ {
2322
+ name: "hsm_id",
2323
+ in: "query",
2324
+ required: false,
2325
+ schema: {
2326
+ type: "string",
2327
+ },
2328
+ description: "Template ID",
2329
+ },
2330
+ ],
2331
+ response: {
2332
+ confidence: "contract",
2333
+ schema: "DeleteTemplateResponse",
2334
+ },
2335
+ },
2336
+ {
2337
+ id: "listActivities",
2338
+ command: "list-activities",
2339
+ binding: {
2340
+ kind: "http",
2341
+ method: "GET",
2342
+ path: "/{Version}/{WABA-ID}/activities",
2343
+ },
2344
+ effect: "read",
2345
+ summary: "Get WhatsApp Business Account Activities",
2346
+ description: "Retrieve activity logs and audit trails for a WhatsApp Business Account.\nThis endpoint returns a chronological list of activities performed on the account,\nincluding administrative actions, configuration changes, and operational events.\n\n**Use Cases:**\n- Monitor account configuration changes and administrative actions\n- Generate compliance and audit reports for regulatory requirements\n- Track user activities and permission modifications\n- Investigate security incidents and unauthorized access attempts\n- Monitor API usage patterns and operational events\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n**Caching:**\nActivity data can be cached for short periods, but recent activities may change\nfrequently. Implement appropriate cache invalidation strategies.\n",
2347
+ tags: ["WhatsApp Business Account Activities"],
2348
+ parameters: [
2349
+ {
2350
+ name: "WABA-ID",
2351
+ in: "path",
2352
+ required: false,
2353
+ schema: {
2354
+ type: "string",
2355
+ pattern: "^[0-9]+$",
2356
+ },
2357
+ description: "Your WhatsApp Business Account ID. This ID can be found in your WhatsApp Manager\nor through the business account management APIs.\n",
2358
+ },
2359
+ {
2360
+ name: "fields",
2361
+ in: "query",
2362
+ required: false,
2363
+ schema: {
2364
+ type: "string",
2365
+ },
2366
+ description: "Comma-separated list of fields to include in the response. If not specified,\ndefault fields will be returned (id, activity_type, timestamp, actor_type).\nAvailable fields: id, activity_type, timestamp, actor_type, actor_id, actor_name, description, details, ip_address, user_agent\n",
2367
+ },
2368
+ {
2369
+ name: "limit",
2370
+ in: "query",
2371
+ required: false,
2372
+ schema: {
2373
+ default: 25,
2374
+ type: "integer",
2375
+ minimum: 1,
2376
+ maximum: 100,
2377
+ },
2378
+ description: "Maximum number of activity records to return per page. Default is 25, maximum is 100.\n",
2379
+ },
2380
+ {
2381
+ name: "after",
2382
+ in: "query",
2383
+ required: false,
2384
+ schema: {
2385
+ type: "string",
2386
+ },
2387
+ description: "Cursor for pagination. Use this to get the next page of results.\n",
2388
+ },
2389
+ {
2390
+ name: "before",
2391
+ in: "query",
2392
+ required: false,
2393
+ schema: {
2394
+ type: "string",
2395
+ },
2396
+ description: "Cursor for pagination. Use this to get the previous page of results.\n",
2397
+ },
2398
+ {
2399
+ name: "since",
2400
+ in: "query",
2401
+ required: false,
2402
+ schema: {
2403
+ type: "string",
2404
+ },
2405
+ description: "Unix timestamp or ISO 8601 date string. Only return activities that occurred after this time.\n",
2406
+ },
2407
+ {
2408
+ name: "until",
2409
+ in: "query",
2410
+ required: false,
2411
+ schema: {
2412
+ type: "string",
2413
+ },
2414
+ description: "Unix timestamp or ISO 8601 date string. Only return activities that occurred before this time.\n",
2415
+ },
2416
+ {
2417
+ name: "activity_type",
2418
+ in: "query",
2419
+ required: false,
2420
+ schema: {
2421
+ type: "string",
2422
+ },
2423
+ description: "Filter activities by type. Can be a single type or comma-separated list of types.\n",
2424
+ },
2425
+ ],
2426
+ response: {
2427
+ confidence: "contract",
2428
+ schema: "ActivityList",
2429
+ },
2430
+ },
2431
+ {
2432
+ id: "getBusinessAccount",
2433
+ command: "get-business-account",
2434
+ binding: {
2435
+ kind: "http",
2436
+ method: "GET",
2437
+ path: "/{Version}/{WABA-ID}",
2438
+ },
2439
+ effect: "read",
2440
+ summary: "Get WhatsApp Business Account Details",
2441
+ description: "Retrieve comprehensive details about a WhatsApp Business Account, including its\nconfiguration, status, and settings.\n\n**Use Cases:**\n- Retrieve WhatsApp Business Account configuration and details\n- Monitor account status and verification state\n- Check account ownership and business information\n- Validate account state before messaging operations\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n**Caching:**\nAccount details can be cached for moderate periods, but verification status may change.\nImplement appropriate cache invalidation strategies.\n",
2442
+ tags: ["WhatsApp Business Account"],
2443
+ parameters: [
2444
+ {
2445
+ name: "WABA-ID",
2446
+ in: "path",
2447
+ required: false,
2448
+ schema: {
2449
+ type: "string",
2450
+ pattern: "^[0-9]+$",
2451
+ },
2452
+ description: "Your WhatsApp Business Account ID. This ID is provided when you create the account\nand can be found in your WhatsApp Manager or through business management APIs.\n",
2453
+ },
2454
+ {
2455
+ name: "fields",
2456
+ in: "query",
2457
+ required: false,
2458
+ schema: {
2459
+ type: "string",
2460
+ },
2461
+ description: "Comma-separated list of fields to include in the response. If not specified,\ndefault fields will be returned (id, name). Available fields: id, name, timezone_id,\nmessage_template_namespace, account_review_status, business_verification_status,\ncountry, ownership_type, primary_business_location\n",
2462
+ },
2463
+ ],
2464
+ response: {
2465
+ confidence: "contract",
2466
+ schema: "WhatsAppBusinessAccount",
2467
+ },
2468
+ },
2469
+ {
2470
+ id: "updateBusinessAccount",
2471
+ command: "update-business-account",
2472
+ binding: {
2473
+ kind: "http",
2474
+ method: "POST",
2475
+ path: "/{Version}/{WABA-ID}",
2476
+ },
2477
+ effect: "write",
2478
+ summary: "Update WhatsApp Business Account",
2479
+ description: "Update configuration and settings for a WhatsApp Business Account.\n\n**Use Cases:**\n- Update WhatsApp Business Account name and configuration\n- Modify account settings and preferences\n- Update business information and verification details\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n",
2480
+ tags: ["WhatsApp Business Account"],
2481
+ parameters: [
2482
+ {
2483
+ name: "WABA-ID",
2484
+ in: "path",
2485
+ required: false,
2486
+ schema: {
2487
+ type: "string",
2488
+ pattern: "^[0-9]+$",
2489
+ },
2490
+ description: "Your WhatsApp Business Account ID. This ID is provided when you create the account\nand can be found in your WhatsApp Manager or through business management APIs.\n",
2491
+ },
2492
+ ],
2493
+ request: {
2494
+ required: true,
2495
+ confidence: "contract",
2496
+ schema: "UpdateBusinessAccountRequest",
2497
+ },
2498
+ response: {
2499
+ confidence: "contract",
2500
+ schema: "UpdateBusinessAccountResponse",
2501
+ },
2502
+ },
2503
+ {
2504
+ id: "getBusinessBot",
2505
+ command: "get-business-bot",
2506
+ binding: {
2507
+ kind: "http",
2508
+ method: "GET",
2509
+ path: "/{Version}/{WABA-Bot-ID}",
2510
+ },
2511
+ effect: "read",
2512
+ summary: "Get WhatsApp Business Bot Details",
2513
+ description: "Retrieve comprehensive details about a WhatsApp Business Bot, including its prompts,\ncommands, and welcome message configuration.\n\n\n**Use Cases:**\n- Retrieve bot configuration and automated response settings\n- Monitor available bot commands and their descriptions\n- Check welcome message enablement status\n- Validate bot state before implementing automation\n- Audit bot configuration for business compliance\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n\n**Caching:**\nBot details can be cached for moderate periods, but configuration may change\nwhen bot settings are updated. Implement appropriate cache invalidation strategies.\n",
2514
+ tags: ["WhatsApp Business Bot"],
2515
+ parameters: [
2516
+ {
2517
+ name: "WABA-Bot-ID",
2518
+ in: "path",
2519
+ required: true,
2520
+ schema: {
2521
+ type: "string",
2522
+ pattern: "^[0-9]+$",
2523
+ },
2524
+ description: "Your WhatsApp Business Bot ID. This ID is provided when you create the bot\nand can be found in your Business Manager or through bot management APIs.\n",
2525
+ },
2526
+ {
2527
+ name: "fields",
2528
+ in: "query",
2529
+ required: false,
2530
+ schema: {
2531
+ type: "string",
2532
+ },
2533
+ description: "Comma-separated list of fields to include in the response. If not specified,\ndefault fields will be returned (prompts, commands, enable_welcome_message).\nAvailable fields: id, prompts, commands, enable_welcome_message\n",
2534
+ },
2535
+ ],
2536
+ response: {
2537
+ confidence: "contract",
2538
+ schema: "WhatsAppBusinessBot",
2539
+ },
2540
+ },
2541
+ {
2542
+ id: "getBusinessProfileById",
2543
+ command: "get-business-profile-by-id",
2544
+ binding: {
2545
+ kind: "http",
2546
+ method: "GET",
2547
+ path: "/{Version}/{WhatsApp-Business-Profile-ID}",
2548
+ },
2549
+ effect: "read",
2550
+ summary: "Get WhatsApp Business Profile Details",
2551
+ description: "Retrieve comprehensive details about a WhatsApp Business Profile, including business information,\ncontact details, and profile configuration.\n\n\n**Use Cases:**\n- Retrieve business profile information and metadata\n- Verify profile configuration and contact details\n- Check profile status and business information\n- Validate profile state before business operations\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n\n\n**Caching:**\nProfile details can be cached for moderate periods, but business information may change\noccasionally. Implement appropriate cache invalidation strategies.\n",
2552
+ tags: ["WhatsApp Business Profiles"],
2553
+ parameters: [
2554
+ {
2555
+ name: "WhatsApp-Business-Profile-ID",
2556
+ in: "path",
2557
+ required: true,
2558
+ schema: {
2559
+ type: "string",
2560
+ pattern: "^[0-9]+$",
2561
+ },
2562
+ description: "Your WhatsApp Business Profile ID. This ID is provided when the profile is created\nand can be found in your WhatsApp Business Manager or through business management APIs.\n",
2563
+ },
2564
+ {
2565
+ name: "fields",
2566
+ in: "query",
2567
+ required: false,
2568
+ schema: {
2569
+ type: "string",
2570
+ },
2571
+ description: "Comma-separated list of fields to include in the response. If not specified,\ndefault fields will be returned (id and any available profile fields).\nAvailable fields: id, account_name, description, email, about, address, vertical, websites, profile_picture_url, messaging_product\n",
2572
+ },
2573
+ ],
2574
+ response: {
2575
+ confidence: "contract",
2576
+ schema: "WhatsAppBusinessProfileNode",
2577
+ },
2578
+ },
2579
+ {
2580
+ id: "updateBusinessProfileById",
2581
+ command: "update-business-profile-by-id",
2582
+ binding: {
2583
+ kind: "http",
2584
+ method: "POST",
2585
+ path: "/{Version}/{WhatsApp-Business-Profile-ID}",
2586
+ },
2587
+ effect: "write",
2588
+ summary: "Update WhatsApp Business Profile",
2589
+ description: "Update the WhatsApp Business Profile information such as business description, email, address,\nand other profile details. This operation corresponds to the GraphWhatsAppBusinessProfilePost functionality.\n\n\n**Use Cases:**\n- Update business profile information and metadata\n- Modify contact details and business description\n- Change business vertical classification\n- Update website URLs and profile picture\n- Maintain current business profile information\n\n\n**Profile Picture Upload:**\nIt is recommended to use the Resumable Upload API to obtain an upload ID, then use this\nupload ID to obtain the picture handle for the `profile_picture_handle` field.\n\n\n**Rate Limiting:**\nStandard Graph API rate limits apply. Use appropriate retry logic with exponential backoff.\n",
2590
+ tags: ["WhatsApp Business Profiles"],
2591
+ parameters: [
2592
+ {
2593
+ name: "WhatsApp-Business-Profile-ID",
2594
+ in: "path",
2595
+ required: true,
2596
+ schema: {
2597
+ type: "string",
2598
+ pattern: "^[0-9]+$",
2599
+ },
2600
+ description: "Your WhatsApp Business Profile ID. This ID is provided when the profile is created\nand can be found in your WhatsApp Business Manager or through business management APIs.\n",
2601
+ },
2602
+ ],
2603
+ request: {
2604
+ required: true,
2605
+ confidence: "contract",
2606
+ schema: "WhatsAppBusinessProfileUpdateRequest",
2607
+ },
2608
+ response: {
2609
+ confidence: "contract",
2610
+ schema: "WhatsAppBusinessProfileUpdateResponse",
2611
+ },
2612
+ },
2613
+ ];
2614
+ //# sourceMappingURL=manifest.js.map