@sentdm/sentdm 0.33.0 → 0.35.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 (120) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/client.d.mts +53 -22
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +53 -22
  5. package/client.d.ts.map +1 -1
  6. package/client.js +39 -8
  7. package/client.js.map +1 -1
  8. package/client.mjs +39 -8
  9. package/client.mjs.map +1 -1
  10. package/package.json +1 -1
  11. package/resources/contacts.d.mts +606 -89
  12. package/resources/contacts.d.mts.map +1 -1
  13. package/resources/contacts.d.ts +606 -89
  14. package/resources/contacts.d.ts.map +1 -1
  15. package/resources/contacts.js +21 -15
  16. package/resources/contacts.js.map +1 -1
  17. package/resources/contacts.mjs +21 -15
  18. package/resources/contacts.mjs.map +1 -1
  19. package/resources/conversations.d.mts +335 -69
  20. package/resources/conversations.d.mts.map +1 -1
  21. package/resources/conversations.d.ts +335 -69
  22. package/resources/conversations.d.ts.map +1 -1
  23. package/resources/conversations.js +15 -10
  24. package/resources/conversations.js.map +1 -1
  25. package/resources/conversations.mjs +15 -10
  26. package/resources/conversations.mjs.map +1 -1
  27. package/resources/index.d.mts +7 -7
  28. package/resources/index.d.mts.map +1 -1
  29. package/resources/index.d.ts +7 -7
  30. package/resources/index.d.ts.map +1 -1
  31. package/resources/index.js.map +1 -1
  32. package/resources/index.mjs.map +1 -1
  33. package/resources/me.d.mts +132 -41
  34. package/resources/me.d.mts.map +1 -1
  35. package/resources/me.d.ts +132 -41
  36. package/resources/me.d.ts.map +1 -1
  37. package/resources/me.js +3 -1
  38. package/resources/me.js.map +1 -1
  39. package/resources/me.mjs +3 -1
  40. package/resources/me.mjs.map +1 -1
  41. package/resources/messages.d.mts +212 -31
  42. package/resources/messages.d.mts.map +1 -1
  43. package/resources/messages.d.ts +212 -31
  44. package/resources/messages.d.ts.map +1 -1
  45. package/resources/messages.js +11 -5
  46. package/resources/messages.js.map +1 -1
  47. package/resources/messages.mjs +11 -5
  48. package/resources/messages.mjs.map +1 -1
  49. package/resources/numbers.d.mts +45 -4
  50. package/resources/numbers.d.mts.map +1 -1
  51. package/resources/numbers.d.ts +45 -4
  52. package/resources/numbers.d.ts.map +1 -1
  53. package/resources/numbers.js +3 -1
  54. package/resources/numbers.js.map +1 -1
  55. package/resources/numbers.mjs +3 -1
  56. package/resources/numbers.mjs.map +1 -1
  57. package/resources/profiles/campaigns.d.mts +579 -209
  58. package/resources/profiles/campaigns.d.mts.map +1 -1
  59. package/resources/profiles/campaigns.d.ts +579 -209
  60. package/resources/profiles/campaigns.d.ts.map +1 -1
  61. package/resources/profiles/campaigns.js +33 -64
  62. package/resources/profiles/campaigns.js.map +1 -1
  63. package/resources/profiles/campaigns.mjs +33 -64
  64. package/resources/profiles/campaigns.mjs.map +1 -1
  65. package/resources/profiles/index.d.mts +2 -2
  66. package/resources/profiles/index.d.mts.map +1 -1
  67. package/resources/profiles/index.d.ts +2 -2
  68. package/resources/profiles/index.d.ts.map +1 -1
  69. package/resources/profiles/index.js.map +1 -1
  70. package/resources/profiles/index.mjs.map +1 -1
  71. package/resources/profiles/profiles.d.mts +2006 -499
  72. package/resources/profiles/profiles.d.mts.map +1 -1
  73. package/resources/profiles/profiles.d.ts +2006 -499
  74. package/resources/profiles/profiles.d.ts.map +1 -1
  75. package/resources/profiles/profiles.js +97 -68
  76. package/resources/profiles/profiles.js.map +1 -1
  77. package/resources/profiles/profiles.mjs +97 -68
  78. package/resources/profiles/profiles.mjs.map +1 -1
  79. package/resources/templates.d.mts +497 -84
  80. package/resources/templates.d.mts.map +1 -1
  81. package/resources/templates.d.ts +497 -84
  82. package/resources/templates.d.ts.map +1 -1
  83. package/resources/templates.js +6 -4
  84. package/resources/templates.js.map +1 -1
  85. package/resources/templates.mjs +6 -4
  86. package/resources/templates.mjs.map +1 -1
  87. package/resources/users.d.mts +449 -46
  88. package/resources/users.d.mts.map +1 -1
  89. package/resources/users.d.ts +449 -46
  90. package/resources/users.d.ts.map +1 -1
  91. package/resources/users.js +11 -7
  92. package/resources/users.js.map +1 -1
  93. package/resources/users.mjs +11 -7
  94. package/resources/users.mjs.map +1 -1
  95. package/resources/webhooks.d.mts +934 -109
  96. package/resources/webhooks.d.mts.map +1 -1
  97. package/resources/webhooks.d.ts +934 -109
  98. package/resources/webhooks.d.ts.map +1 -1
  99. package/resources/webhooks.js +11 -8
  100. package/resources/webhooks.js.map +1 -1
  101. package/resources/webhooks.mjs +11 -8
  102. package/resources/webhooks.mjs.map +1 -1
  103. package/src/client.ts +90 -60
  104. package/src/resources/contacts.ts +696 -92
  105. package/src/resources/conversations.ts +400 -77
  106. package/src/resources/index.ts +26 -26
  107. package/src/resources/me.ts +151 -52
  108. package/src/resources/messages.ts +236 -31
  109. package/src/resources/numbers.ts +50 -4
  110. package/src/resources/profiles/campaigns.ts +706 -232
  111. package/src/resources/profiles/index.ts +6 -14
  112. package/src/resources/profiles/profiles.ts +2421 -637
  113. package/src/resources/templates.ts +583 -99
  114. package/src/resources/users.ts +519 -47
  115. package/src/resources/webhooks.ts +1170 -179
  116. package/src/version.ts +1 -1
  117. package/version.d.mts +1 -1
  118. package/version.d.ts +1 -1
  119. package/version.js +1 -1
  120. package/version.mjs +1 -1
@@ -8,7 +8,11 @@ import { RequestOptions } from '../internal/request-options';
8
8
  import { path } from '../internal/utils/path';
9
9
 
10
10
  /**
11
- * Configure webhook endpoints for real-time event delivery
11
+ * Delivery reports and inbound messages, pushed to you.
12
+ *
13
+ * Subscribe an endpoint to the event types you care about — `GET /v3/webhooks/event-types` lists them — and we POST each one as it happens, retrying on failure. Polling `GET /v3/messages/{id}` works and does not scale.
14
+ *
15
+ * **Verify the signature.** Every delivery is signed with your endpoint's secret; an unverified endpoint is one anybody can post to. `rotate-secret` replaces it, `test` sends a specimen event, and `GET /v3/webhooks/{id}/events` shows what we tried to deliver and what your endpoint answered — which is the first place to look when something appears to be missing.
12
16
  */
13
17
  export class Webhooks extends APIResource {
14
18
  /**
@@ -16,10 +20,10 @@ export class Webhooks extends APIResource {
16
20
  *
17
21
  * @example
18
22
  * ```ts
19
- * const apiResponseWebhook = await client.webhooks.create();
23
+ * const webhook = await client.webhooks.create();
20
24
  * ```
21
25
  */
22
- create(params: WebhookCreateParams, options?: RequestOptions): APIPromise<APIResponseWebhook> {
26
+ create(params: WebhookCreateParams, options?: RequestOptions): APIPromise<WebhookCreateResponse> {
23
27
  const { 'Idempotency-Key': idempotencyKey, 'x-profile-id': xProfileID, ...body } = params;
24
28
  return this._client.post('/v3/webhooks', {
25
29
  body,
@@ -39,7 +43,7 @@ export class Webhooks extends APIResource {
39
43
  *
40
44
  * @example
41
45
  * ```ts
42
- * const apiResponseWebhook = await client.webhooks.retrieve(
46
+ * const webhook = await client.webhooks.retrieve(
43
47
  * 'd4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8',
44
48
  * );
45
49
  * ```
@@ -48,7 +52,7 @@ export class Webhooks extends APIResource {
48
52
  id: string,
49
53
  params: WebhookRetrieveParams | null | undefined = {},
50
54
  options?: RequestOptions,
51
- ): APIPromise<APIResponseWebhook> {
55
+ ): APIPromise<WebhookRetrieveResponse> {
52
56
  const { 'x-profile-id': xProfileID } = params ?? {};
53
57
  return this._client.get(path`/v3/webhooks/${id}`, {
54
58
  ...options,
@@ -64,12 +68,16 @@ export class Webhooks extends APIResource {
64
68
  *
65
69
  * @example
66
70
  * ```ts
67
- * const apiResponseWebhook = await client.webhooks.update(
71
+ * const webhook = await client.webhooks.update(
68
72
  * 'd4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8',
69
73
  * );
70
74
  * ```
71
75
  */
72
- update(id: string, params: WebhookUpdateParams, options?: RequestOptions): APIPromise<APIResponseWebhook> {
76
+ update(
77
+ id: string,
78
+ params: WebhookUpdateParams,
79
+ options?: RequestOptions,
80
+ ): APIPromise<WebhookUpdateResponse> {
73
81
  const { 'Idempotency-Key': idempotencyKey, 'x-profile-id': xProfileID, ...body } = params;
74
82
  return this._client.put(path`/v3/webhooks/${id}`, {
75
83
  body,
@@ -241,17 +249,16 @@ export class Webhooks extends APIResource {
241
249
  *
242
250
  * @example
243
251
  * ```ts
244
- * const apiResponseWebhook =
245
- * await client.webhooks.toggleStatus(
246
- * 'd4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8',
247
- * );
252
+ * const response = await client.webhooks.toggleStatus(
253
+ * 'd4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8',
254
+ * );
248
255
  * ```
249
256
  */
250
257
  toggleStatus(
251
258
  id: string,
252
259
  params: WebhookToggleStatusParams,
253
260
  options?: RequestOptions,
254
- ): APIPromise<APIResponseWebhook> {
261
+ ): APIPromise<WebhookToggleStatusResponse> {
255
262
  const { 'Idempotency-Key': idempotencyKey, 'x-profile-id': xProfileID, ...body } = params;
256
263
  return this._client.patch(path`/v3/webhooks/${id}/toggle-status`, {
257
264
  body,
@@ -268,197 +275,279 @@ export class Webhooks extends APIResource {
268
275
  }
269
276
 
270
277
  /**
271
- * Request and response metadata
278
+ * The envelope Sent POSTs to a subscribed webhook endpoint. Every event shares
279
+ * this shape and varies only in Payload.
272
280
  */
273
- export interface APIMeta {
281
+ export interface InboundMessageEvent {
274
282
  /**
275
- * Unique identifier for this request (for tracing and support)
283
+ * The specific event within the family, for example message.delivered or
284
+ * message.received. Absent on events that have no subtype, so treat it as
285
+ * optional.
276
286
  */
277
- request_id?: string;
287
+ event?: string | null;
278
288
 
279
289
  /**
280
- * Server timestamp when the response was generated
290
+ * The event family, for example message or templates. Route on this first, then on
291
+ * event for the specific change.
281
292
  */
282
- timestamp?: string;
293
+ field?: string;
283
294
 
284
295
  /**
285
- * API version used for this request
296
+ * Body of a message.received event. Delivered when a contact messages one of your
297
+ * numbers.
286
298
  */
287
- version?: string;
288
- }
299
+ payload?: InboundMessageEventPayload | null;
289
300
 
290
- /**
291
- * Standard API response envelope for all v3 endpoints
292
- */
293
- export interface APIResponseWebhook {
294
301
  /**
295
- * The response data (null if error)
302
+ * When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
303
+ * time, not the time the underlying change happened. Use the timestamp inside the
304
+ * payload for the latter.
296
305
  */
297
- data?: WebhookResponse | null;
306
+ timestamp?: string;
307
+ }
298
308
 
309
+ /**
310
+ * Body of a message.received event. Delivered when a contact messages one of your
311
+ * numbers.
312
+ */
313
+ export interface InboundMessageEventPayload {
299
314
  /**
300
- * Error information
315
+ * The account the message belongs to.
301
316
  */
302
- error?: ErrorDetail | null;
317
+ account_id?: string;
303
318
 
304
319
  /**
305
- * Request and response metadata
320
+ * The channel the message arrived on, for example sms or whatsapp.
306
321
  */
307
- meta?: APIMeta;
322
+ channel?: string;
308
323
 
309
324
  /**
310
- * Indicates whether the request was successful
325
+ * The contact's number in E.164 format, meaning the number the message came from.
311
326
  */
312
- success?: boolean;
313
- }
327
+ inbound_number?: string;
314
328
 
315
- /**
316
- * Error information
317
- */
318
- export interface ErrorDetail {
319
329
  /**
320
- * Machine-readable error code (e.g., "RESOURCE_001")
330
+ * The inbound message.
321
331
  */
322
- code?: string;
332
+ message_id?: string;
323
333
 
324
334
  /**
325
- * Additional validation error details (field-level errors)
335
+ * Your number in E.164 format, meaning the number the message was addressed to.
326
336
  */
327
- details?: { [key: string]: Array<string> } | null;
337
+ outbound_number?: string;
328
338
 
329
339
  /**
330
- * URL to documentation about this error
340
+ * When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ).
331
341
  */
332
- doc_url?: string | null;
342
+ received_at?: string;
333
343
 
334
344
  /**
335
- * Human-readable error message
345
+ * The message body. Sent as null when the inbound message carried no text, for
346
+ * example a media-only message. The field is always present, so read it and check
347
+ * for null rather than checking whether the key exists.
336
348
  */
337
- message?: string;
338
- }
349
+ text?: string | null;
339
350
 
340
- export interface MutationRequest {
341
351
  /**
342
- * Sandbox flag - when true, the operation is simulated without side effects Useful
343
- * for testing integrations without actual execution
352
+ * When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ). Same value as
353
+ * ReceivedAt, kept for envelope consistency with outbound events.
344
354
  */
345
- sandbox?: boolean;
355
+ updated_at?: string;
346
356
  }
347
357
 
348
358
  /**
349
- * Pagination metadata for list responses
359
+ * The envelope Sent POSTs to a subscribed webhook endpoint. Every event shares
360
+ * this shape and varies only in Payload.
350
361
  */
351
- export interface PaginationMeta {
362
+ export interface MessageEvent {
352
363
  /**
353
- * Cursor-based pagination pointers
364
+ * The specific event within the family, for example message.delivered or
365
+ * message.received. Absent on events that have no subtype, so treat it as
366
+ * optional.
354
367
  */
355
- cursors?: PaginationMeta.Cursors | null;
368
+ event?: string | null;
356
369
 
357
370
  /**
358
- * Whether there are more pages after this one
371
+ * The event family, for example message or templates. Route on this first, then on
372
+ * event for the specific change.
359
373
  */
360
- has_more?: boolean;
374
+ field?: string;
361
375
 
362
376
  /**
363
- * Current page number (1-indexed)
377
+ * Body of an outbound message lifecycle event. Delivered once per status change,
378
+ * so a single message produces several of these as it moves toward a terminal
379
+ * status.
364
380
  */
365
- page?: number;
381
+ payload?: MessageEventPayload | null;
366
382
 
367
383
  /**
368
- * Number of items per page
384
+ * When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
385
+ * time, not the time the underlying change happened. Use the timestamp inside the
386
+ * payload for the latter.
369
387
  */
370
- page_size?: number;
388
+ timestamp?: string;
389
+ }
371
390
 
391
+ /**
392
+ * Body of an outbound message lifecycle event. Delivered once per status change,
393
+ * so a single message produces several of these as it moves toward a terminal
394
+ * status.
395
+ */
396
+ export interface MessageEventPayload {
372
397
  /**
373
- * Total number of items across all pages
398
+ * The account the message belongs to.
374
399
  */
375
- total_count?: number;
400
+ account_id?: string;
376
401
 
377
402
  /**
378
- * Total number of pages
403
+ * The agent attributed to the send, when the send was attributed to one.
379
404
  */
380
- total_pages?: number;
381
- }
405
+ agent_id?: string | null;
382
406
 
383
- export namespace PaginationMeta {
384
407
  /**
385
- * Cursor-based pagination pointers
408
+ * The channel the message went out on, for example sms or whatsapp. A message that
409
+ * falls back to another channel reports the channel actually used.
386
410
  */
387
- export interface Cursors {
388
- /**
389
- * Cursor to fetch the next page
390
- */
391
- after?: string | null;
392
-
393
- /**
394
- * Cursor to fetch the previous page
395
- */
396
- before?: string | null;
397
- }
398
- }
411
+ channel?: string;
399
412
 
400
- export interface WebhookEventType {
401
- description?: string | null;
413
+ /**
414
+ * The message this event describes. Stable across every event in the message's
415
+ * lifecycle, so use it to correlate them.
416
+ */
417
+ message_id?: string;
402
418
 
403
- display_name?: string;
419
+ /**
420
+ * The status the message just reached, for example SENT, DELIVERED, or FAILED.
421
+ * Sent means dispatched and delivered means confirmed, so treat them as distinct
422
+ * outcomes.
423
+ */
424
+ message_status?: string;
404
425
 
405
- event_type?: string | null;
426
+ /**
427
+ * The recipient's number in E.164 format.
428
+ */
429
+ outbound_number?: string;
406
430
 
407
- is_active?: boolean;
431
+ /**
432
+ * The template the message was sent from, when it was sent from one.
433
+ */
434
+ template_id?: string | null;
408
435
 
409
- name?: string;
436
+ /**
437
+ * Name of the template the message was sent from. Omitted when the message wasn't
438
+ * template-based.
439
+ */
440
+ template_name?: string | null;
410
441
 
411
- sub_types?: Array<WebhookEventType> | null;
442
+ /**
443
+ * When the message reached MessageStatus, in UTC (yyyy-MM-ddTHH:mm:ssZ).
444
+ */
445
+ updated_at?: string;
412
446
  }
413
447
 
414
- export interface WebhookResponse {
415
- id?: string;
416
-
417
- consecutive_failures?: number;
448
+ /**
449
+ * The envelope Sent POSTs to a subscribed webhook endpoint. Every event shares
450
+ * this shape and varies only in Payload.
451
+ */
452
+ export interface TemplateEvent {
453
+ /**
454
+ * The specific event within the family, for example message.delivered or
455
+ * message.received. Absent on events that have no subtype, so treat it as
456
+ * optional.
457
+ */
458
+ event?: string | null;
418
459
 
419
- created_at?: string;
460
+ /**
461
+ * The event family, for example message or templates. Route on this first, then on
462
+ * event for the specific change.
463
+ */
464
+ field?: string;
420
465
 
421
- display_name?: string;
466
+ /**
467
+ * Body of a template status event. Delivered when a template's review outcome
468
+ * changes, so you can react without polling.
469
+ */
470
+ payload?: TemplateEventPayload | null;
422
471
 
423
- endpoint_url?: string;
472
+ /**
473
+ * When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
474
+ * time, not the time the underlying change happened. Use the timestamp inside the
475
+ * payload for the latter.
476
+ */
477
+ timestamp?: string;
478
+ }
424
479
 
425
- event_filters?: { [key: string]: Array<string> } | null;
480
+ /**
481
+ * Body of a template status event. Delivered when a template's review outcome
482
+ * changes, so you can react without polling.
483
+ */
484
+ export interface TemplateEventPayload {
485
+ /**
486
+ * The account the template belongs to.
487
+ */
488
+ account_id?: string;
426
489
 
427
- event_types?: Array<string>;
490
+ /**
491
+ * The template's category, for example UTILITY, MARKETING, or AUTHENTICATION.
492
+ */
493
+ category?: string;
428
494
 
429
- is_active?: boolean;
495
+ /**
496
+ * The channel the template applies to.
497
+ */
498
+ channel?: string;
430
499
 
431
- last_delivery_attempt_at?: string | null;
500
+ /**
501
+ * The template's language code, for example en_US.
502
+ */
503
+ language?: string;
432
504
 
433
- last_successful_delivery_at?: string | null;
505
+ /**
506
+ * Why the template reached Status, when a reason was given. Populated on a
507
+ * rejection.
508
+ */
509
+ reason?: string | null;
434
510
 
435
- retry_count?: number;
511
+ /**
512
+ * The review status the template just reached, for example APPROVED or REJECTED.
513
+ */
514
+ status?: string;
436
515
 
437
- signing_secret?: string | null;
516
+ /**
517
+ * The template in Sent.
518
+ */
519
+ template_id?: string;
438
520
 
439
- timeout_seconds?: number;
521
+ /**
522
+ * The template's display name.
523
+ */
524
+ template_name?: string;
440
525
 
441
- updated_at?: string | null;
526
+ /**
527
+ * The template's identifier with Meta, assigned when the template is submitted for
528
+ * review.
529
+ */
530
+ whatsapp_template_id?: string;
442
531
  }
443
532
 
444
533
  /**
445
534
  * Standard API response envelope for all v3 endpoints
446
535
  */
447
- export interface WebhookListResponse {
536
+ export interface WebhookCreateResponse {
448
537
  /**
449
538
  * The response data (null if error)
450
539
  */
451
- data?: WebhookListResponse.Data | null;
540
+ data?: WebhookCreateResponse.Data | null;
452
541
 
453
542
  /**
454
543
  * Error information
455
544
  */
456
- error?: ErrorDetail | null;
545
+ error?: WebhookCreateResponse.Error | null;
457
546
 
458
547
  /**
459
548
  * Request and response metadata
460
549
  */
461
- meta?: APIMeta;
550
+ meta?: WebhookCreateResponse.Meta;
462
551
 
463
552
  /**
464
553
  * Indicates whether the request was successful
@@ -466,72 +555,110 @@ export interface WebhookListResponse {
466
555
  success?: boolean;
467
556
  }
468
557
 
469
- export namespace WebhookListResponse {
558
+ export namespace WebhookCreateResponse {
470
559
  /**
471
560
  * The response data (null if error)
472
561
  */
473
562
  export interface Data {
563
+ id?: string;
564
+
565
+ consecutive_failures?: number;
566
+
567
+ created_at?: string;
568
+
474
569
  /**
475
- * Pagination metadata for list responses
570
+ * Which customer owns this — the key's own, or the profile named in x-profile-id.
571
+ * Says whose resource this is, which the resource's own id does not.
476
572
  */
477
- pagination?: WebhooksAPI.PaginationMeta;
573
+ customer_id?: string;
478
574
 
479
- webhooks?: Array<WebhooksAPI.WebhookResponse>;
480
- }
481
- }
575
+ display_name?: string;
482
576
 
483
- /**
484
- * Standard API response envelope for all v3 endpoints
485
- */
486
- export interface WebhookListEventTypesResponse {
487
- /**
488
- * The response data (null if error)
489
- */
490
- data?: WebhookListEventTypesResponse.Data | null;
577
+ endpoint_url?: string;
578
+
579
+ event_filters?: { [key: string]: Array<string> } | null;
580
+
581
+ event_types?: Array<string>;
582
+
583
+ is_active?: boolean;
584
+
585
+ last_delivery_attempt_at?: string | null;
586
+
587
+ last_successful_delivery_at?: string | null;
588
+
589
+ retry_count?: number;
590
+
591
+ signing_secret?: string | null;
592
+
593
+ timeout_seconds?: number;
594
+
595
+ updated_at?: string | null;
596
+ }
491
597
 
492
598
  /**
493
599
  * Error information
494
600
  */
495
- error?: ErrorDetail | null;
601
+ export interface Error {
602
+ /**
603
+ * Machine-readable error code (e.g., "RESOURCE_001")
604
+ */
605
+ code?: string;
606
+
607
+ /**
608
+ * Additional validation error details (field-level errors)
609
+ */
610
+ details?: { [key: string]: Array<string> } | null;
611
+
612
+ /**
613
+ * URL to documentation about this error
614
+ */
615
+ doc_url?: string | null;
616
+
617
+ /**
618
+ * Human-readable error message
619
+ */
620
+ message?: string;
621
+ }
496
622
 
497
623
  /**
498
624
  * Request and response metadata
499
625
  */
500
- meta?: APIMeta;
626
+ export interface Meta {
627
+ /**
628
+ * Unique identifier for this request (for tracing and support)
629
+ */
630
+ request_id?: string;
501
631
 
502
- /**
503
- * Indicates whether the request was successful
504
- */
505
- success?: boolean;
506
- }
632
+ /**
633
+ * Server timestamp when the response was generated
634
+ */
635
+ timestamp?: string;
507
636
 
508
- export namespace WebhookListEventTypesResponse {
509
- /**
510
- * The response data (null if error)
511
- */
512
- export interface Data {
513
- event_types?: Array<WebhooksAPI.WebhookEventType>;
637
+ /**
638
+ * API version used for this request
639
+ */
640
+ version?: string;
514
641
  }
515
642
  }
516
643
 
517
644
  /**
518
645
  * Standard API response envelope for all v3 endpoints
519
646
  */
520
- export interface WebhookListEventsResponse {
647
+ export interface WebhookRetrieveResponse {
521
648
  /**
522
649
  * The response data (null if error)
523
650
  */
524
- data?: WebhookListEventsResponse.Data | null;
651
+ data?: WebhookRetrieveResponse.Data | null;
525
652
 
526
653
  /**
527
654
  * Error information
528
655
  */
529
- error?: ErrorDetail | null;
656
+ error?: WebhookRetrieveResponse.Error | null;
530
657
 
531
658
  /**
532
659
  * Request and response metadata
533
660
  */
534
- meta?: APIMeta;
661
+ meta?: WebhookRetrieveResponse.Meta;
535
662
 
536
663
  /**
537
664
  * Indicates whether the request was successful
@@ -539,64 +666,110 @@ export interface WebhookListEventsResponse {
539
666
  success?: boolean;
540
667
  }
541
668
 
542
- export namespace WebhookListEventsResponse {
669
+ export namespace WebhookRetrieveResponse {
543
670
  /**
544
671
  * The response data (null if error)
545
672
  */
546
673
  export interface Data {
547
- events?: Array<Data.Event>;
674
+ id?: string;
675
+
676
+ consecutive_failures?: number;
677
+
678
+ created_at?: string;
548
679
 
549
680
  /**
550
- * Pagination metadata for list responses
681
+ * Which customer owns this — the key's own, or the profile named in x-profile-id.
682
+ * Says whose resource this is, which the resource's own id does not.
551
683
  */
552
- pagination?: WebhooksAPI.PaginationMeta;
553
- }
684
+ customer_id?: string;
554
685
 
555
- export namespace Data {
556
- export interface Event {
557
- id?: string;
686
+ display_name?: string;
558
687
 
559
- created_at?: string;
688
+ endpoint_url?: string;
560
689
 
561
- delivery_attempts?: number;
690
+ event_filters?: { [key: string]: Array<string> } | null;
562
691
 
563
- delivery_status?: string;
692
+ event_types?: Array<string>;
564
693
 
565
- error_message?: string | null;
694
+ is_active?: boolean;
566
695
 
567
- event_data?: unknown;
696
+ last_delivery_attempt_at?: string | null;
568
697
 
569
- event_type?: string;
698
+ last_successful_delivery_at?: string | null;
570
699
 
571
- http_status_code?: number | null;
700
+ retry_count?: number;
572
701
 
573
- processing_completed_at?: string | null;
702
+ signing_secret?: string | null;
574
703
 
575
- processing_started_at?: string | null;
704
+ timeout_seconds?: number;
576
705
 
577
- response_body?: string | null;
578
- }
706
+ updated_at?: string | null;
707
+ }
708
+
709
+ /**
710
+ * Error information
711
+ */
712
+ export interface Error {
713
+ /**
714
+ * Machine-readable error code (e.g., "RESOURCE_001")
715
+ */
716
+ code?: string;
717
+
718
+ /**
719
+ * Additional validation error details (field-level errors)
720
+ */
721
+ details?: { [key: string]: Array<string> } | null;
722
+
723
+ /**
724
+ * URL to documentation about this error
725
+ */
726
+ doc_url?: string | null;
727
+
728
+ /**
729
+ * Human-readable error message
730
+ */
731
+ message?: string;
732
+ }
733
+
734
+ /**
735
+ * Request and response metadata
736
+ */
737
+ export interface Meta {
738
+ /**
739
+ * Unique identifier for this request (for tracing and support)
740
+ */
741
+ request_id?: string;
742
+
743
+ /**
744
+ * Server timestamp when the response was generated
745
+ */
746
+ timestamp?: string;
747
+
748
+ /**
749
+ * API version used for this request
750
+ */
751
+ version?: string;
579
752
  }
580
753
  }
581
754
 
582
755
  /**
583
756
  * Standard API response envelope for all v3 endpoints
584
757
  */
585
- export interface WebhookRotateSecretResponse {
758
+ export interface WebhookUpdateResponse {
586
759
  /**
587
760
  * The response data (null if error)
588
761
  */
589
- data?: WebhookRotateSecretResponse.Data | null;
762
+ data?: WebhookUpdateResponse.Data | null;
590
763
 
591
764
  /**
592
765
  * Error information
593
766
  */
594
- error?: ErrorDetail | null;
767
+ error?: WebhookUpdateResponse.Error | null;
595
768
 
596
769
  /**
597
770
  * Request and response metadata
598
771
  */
599
- meta?: APIMeta;
772
+ meta?: WebhookUpdateResponse.Meta;
600
773
 
601
774
  /**
602
775
  * Indicates whether the request was successful
@@ -604,33 +777,110 @@ export interface WebhookRotateSecretResponse {
604
777
  success?: boolean;
605
778
  }
606
779
 
607
- export namespace WebhookRotateSecretResponse {
780
+ export namespace WebhookUpdateResponse {
608
781
  /**
609
782
  * The response data (null if error)
610
783
  */
611
784
  export interface Data {
612
- signing_secret?: string;
785
+ id?: string;
786
+
787
+ consecutive_failures?: number;
788
+
789
+ created_at?: string;
790
+
791
+ /**
792
+ * Which customer owns this — the key's own, or the profile named in x-profile-id.
793
+ * Says whose resource this is, which the resource's own id does not.
794
+ */
795
+ customer_id?: string;
796
+
797
+ display_name?: string;
798
+
799
+ endpoint_url?: string;
800
+
801
+ event_filters?: { [key: string]: Array<string> } | null;
802
+
803
+ event_types?: Array<string>;
804
+
805
+ is_active?: boolean;
806
+
807
+ last_delivery_attempt_at?: string | null;
808
+
809
+ last_successful_delivery_at?: string | null;
810
+
811
+ retry_count?: number;
812
+
813
+ signing_secret?: string | null;
814
+
815
+ timeout_seconds?: number;
816
+
817
+ updated_at?: string | null;
818
+ }
819
+
820
+ /**
821
+ * Error information
822
+ */
823
+ export interface Error {
824
+ /**
825
+ * Machine-readable error code (e.g., "RESOURCE_001")
826
+ */
827
+ code?: string;
828
+
829
+ /**
830
+ * Additional validation error details (field-level errors)
831
+ */
832
+ details?: { [key: string]: Array<string> } | null;
833
+
834
+ /**
835
+ * URL to documentation about this error
836
+ */
837
+ doc_url?: string | null;
838
+
839
+ /**
840
+ * Human-readable error message
841
+ */
842
+ message?: string;
843
+ }
844
+
845
+ /**
846
+ * Request and response metadata
847
+ */
848
+ export interface Meta {
849
+ /**
850
+ * Unique identifier for this request (for tracing and support)
851
+ */
852
+ request_id?: string;
853
+
854
+ /**
855
+ * Server timestamp when the response was generated
856
+ */
857
+ timestamp?: string;
858
+
859
+ /**
860
+ * API version used for this request
861
+ */
862
+ version?: string;
613
863
  }
614
864
  }
615
865
 
616
866
  /**
617
867
  * Standard API response envelope for all v3 endpoints
618
868
  */
619
- export interface WebhookTestResponse {
869
+ export interface WebhookListResponse {
620
870
  /**
621
- * The response data (null if error)
871
+ * A paginated list of webhooks.
622
872
  */
623
- data?: WebhookTestResponse.Data | null;
873
+ data?: WebhookListResponse.Data | null;
624
874
 
625
875
  /**
626
876
  * Error information
627
877
  */
628
- error?: ErrorDetail | null;
878
+ error?: WebhookListResponse.Error | null;
629
879
 
630
880
  /**
631
881
  * Request and response metadata
632
882
  */
633
- meta?: APIMeta;
883
+ meta?: WebhookListResponse.Meta;
634
884
 
635
885
  /**
636
886
  * Indicates whether the request was successful
@@ -638,15 +888,753 @@ export interface WebhookTestResponse {
638
888
  success?: boolean;
639
889
  }
640
890
 
641
- export namespace WebhookTestResponse {
891
+ export namespace WebhookListResponse {
642
892
  /**
643
- * The response data (null if error)
893
+ * A paginated list of webhooks.
644
894
  */
645
895
  export interface Data {
646
- message?: string;
647
-
896
+ /**
897
+ * Pagination metadata for list responses
898
+ */
899
+ pagination?: Data.Pagination;
900
+
901
+ /**
902
+ * The webhooks on this page.
903
+ */
904
+ webhooks?: Array<Data.Webhook>;
905
+ }
906
+
907
+ export namespace Data {
908
+ /**
909
+ * Pagination metadata for list responses
910
+ */
911
+ export interface Pagination {
912
+ /**
913
+ * @deprecated Cursor-based pagination. Never populated — see Cursors.
914
+ */
915
+ cursors?: Pagination.Cursors | null;
916
+
917
+ /**
918
+ * Whether there are more pages after this one
919
+ */
920
+ has_more?: boolean;
921
+
922
+ /**
923
+ * Current page number (1-indexed)
924
+ */
925
+ page?: number;
926
+
927
+ /**
928
+ * Number of items per page
929
+ */
930
+ page_size?: number;
931
+
932
+ /**
933
+ * Total number of items across all pages
934
+ */
935
+ total_count?: number;
936
+
937
+ /**
938
+ * Total number of pages
939
+ */
940
+ total_pages?: number;
941
+ }
942
+
943
+ export namespace Pagination {
944
+ /**
945
+ * @deprecated Cursor-based pagination. Never populated — see Cursors.
946
+ */
947
+ export interface Cursors {
948
+ /**
949
+ * Cursor to fetch the next page.
950
+ */
951
+ after?: string | null;
952
+
953
+ /**
954
+ * Cursor to fetch the previous page.
955
+ */
956
+ before?: string | null;
957
+ }
958
+ }
959
+
960
+ export interface Webhook {
961
+ id?: string;
962
+
963
+ consecutive_failures?: number;
964
+
965
+ created_at?: string;
966
+
967
+ /**
968
+ * Which customer owns this — the key's own, or the profile named in x-profile-id.
969
+ * Says whose resource this is, which the resource's own id does not.
970
+ */
971
+ customer_id?: string;
972
+
973
+ display_name?: string;
974
+
975
+ endpoint_url?: string;
976
+
977
+ event_filters?: { [key: string]: Array<string> } | null;
978
+
979
+ event_types?: Array<string>;
980
+
981
+ is_active?: boolean;
982
+
983
+ last_delivery_attempt_at?: string | null;
984
+
985
+ last_successful_delivery_at?: string | null;
986
+
987
+ retry_count?: number;
988
+
989
+ signing_secret?: string | null;
990
+
991
+ timeout_seconds?: number;
992
+
993
+ updated_at?: string | null;
994
+ }
995
+ }
996
+
997
+ /**
998
+ * Error information
999
+ */
1000
+ export interface Error {
1001
+ /**
1002
+ * Machine-readable error code (e.g., "RESOURCE_001")
1003
+ */
1004
+ code?: string;
1005
+
1006
+ /**
1007
+ * Additional validation error details (field-level errors)
1008
+ */
1009
+ details?: { [key: string]: Array<string> } | null;
1010
+
1011
+ /**
1012
+ * URL to documentation about this error
1013
+ */
1014
+ doc_url?: string | null;
1015
+
1016
+ /**
1017
+ * Human-readable error message
1018
+ */
1019
+ message?: string;
1020
+ }
1021
+
1022
+ /**
1023
+ * Request and response metadata
1024
+ */
1025
+ export interface Meta {
1026
+ /**
1027
+ * Unique identifier for this request (for tracing and support)
1028
+ */
1029
+ request_id?: string;
1030
+
1031
+ /**
1032
+ * Server timestamp when the response was generated
1033
+ */
1034
+ timestamp?: string;
1035
+
1036
+ /**
1037
+ * API version used for this request
1038
+ */
1039
+ version?: string;
1040
+ }
1041
+ }
1042
+
1043
+ /**
1044
+ * Standard API response envelope for all v3 endpoints
1045
+ */
1046
+ export interface WebhookListEventTypesResponse {
1047
+ /**
1048
+ * The webhook event types a customer can subscribe to.
1049
+ */
1050
+ data?: WebhookListEventTypesResponse.Data | null;
1051
+
1052
+ /**
1053
+ * Error information
1054
+ */
1055
+ error?: WebhookListEventTypesResponse.Error | null;
1056
+
1057
+ /**
1058
+ * Request and response metadata
1059
+ */
1060
+ meta?: WebhookListEventTypesResponse.Meta;
1061
+
1062
+ /**
1063
+ * Indicates whether the request was successful
1064
+ */
1065
+ success?: boolean;
1066
+ }
1067
+
1068
+ export namespace WebhookListEventTypesResponse {
1069
+ /**
1070
+ * The webhook event types a customer can subscribe to.
1071
+ */
1072
+ export interface Data {
1073
+ /**
1074
+ * The event_types on this page.
1075
+ */
1076
+ event_types?: Array<Data.EventType>;
1077
+
1078
+ /**
1079
+ * Pagination metadata for list responses
1080
+ */
1081
+ pagination?: Data.Pagination;
1082
+ }
1083
+
1084
+ export namespace Data {
1085
+ export interface EventType {
1086
+ description?: string | null;
1087
+
1088
+ display_name?: string;
1089
+
1090
+ event_type?: string | null;
1091
+
1092
+ is_active?: boolean;
1093
+
1094
+ name?: string;
1095
+
1096
+ sub_types?: Array<unknown> | null;
1097
+ }
1098
+
1099
+ /**
1100
+ * Pagination metadata for list responses
1101
+ */
1102
+ export interface Pagination {
1103
+ /**
1104
+ * @deprecated Cursor-based pagination. Never populated — see Cursors.
1105
+ */
1106
+ cursors?: Pagination.Cursors | null;
1107
+
1108
+ /**
1109
+ * Whether there are more pages after this one
1110
+ */
1111
+ has_more?: boolean;
1112
+
1113
+ /**
1114
+ * Current page number (1-indexed)
1115
+ */
1116
+ page?: number;
1117
+
1118
+ /**
1119
+ * Number of items per page
1120
+ */
1121
+ page_size?: number;
1122
+
1123
+ /**
1124
+ * Total number of items across all pages
1125
+ */
1126
+ total_count?: number;
1127
+
1128
+ /**
1129
+ * Total number of pages
1130
+ */
1131
+ total_pages?: number;
1132
+ }
1133
+
1134
+ export namespace Pagination {
1135
+ /**
1136
+ * @deprecated Cursor-based pagination. Never populated — see Cursors.
1137
+ */
1138
+ export interface Cursors {
1139
+ /**
1140
+ * Cursor to fetch the next page.
1141
+ */
1142
+ after?: string | null;
1143
+
1144
+ /**
1145
+ * Cursor to fetch the previous page.
1146
+ */
1147
+ before?: string | null;
1148
+ }
1149
+ }
1150
+ }
1151
+
1152
+ /**
1153
+ * Error information
1154
+ */
1155
+ export interface Error {
1156
+ /**
1157
+ * Machine-readable error code (e.g., "RESOURCE_001")
1158
+ */
1159
+ code?: string;
1160
+
1161
+ /**
1162
+ * Additional validation error details (field-level errors)
1163
+ */
1164
+ details?: { [key: string]: Array<string> } | null;
1165
+
1166
+ /**
1167
+ * URL to documentation about this error
1168
+ */
1169
+ doc_url?: string | null;
1170
+
1171
+ /**
1172
+ * Human-readable error message
1173
+ */
1174
+ message?: string;
1175
+ }
1176
+
1177
+ /**
1178
+ * Request and response metadata
1179
+ */
1180
+ export interface Meta {
1181
+ /**
1182
+ * Unique identifier for this request (for tracing and support)
1183
+ */
1184
+ request_id?: string;
1185
+
1186
+ /**
1187
+ * Server timestamp when the response was generated
1188
+ */
1189
+ timestamp?: string;
1190
+
1191
+ /**
1192
+ * API version used for this request
1193
+ */
1194
+ version?: string;
1195
+ }
1196
+ }
1197
+
1198
+ /**
1199
+ * Standard API response envelope for all v3 endpoints
1200
+ */
1201
+ export interface WebhookListEventsResponse {
1202
+ /**
1203
+ * A paginated list of webhook delivery records.
1204
+ */
1205
+ data?: WebhookListEventsResponse.Data | null;
1206
+
1207
+ /**
1208
+ * Error information
1209
+ */
1210
+ error?: WebhookListEventsResponse.Error | null;
1211
+
1212
+ /**
1213
+ * Request and response metadata
1214
+ */
1215
+ meta?: WebhookListEventsResponse.Meta;
1216
+
1217
+ /**
1218
+ * Indicates whether the request was successful
1219
+ */
1220
+ success?: boolean;
1221
+ }
1222
+
1223
+ export namespace WebhookListEventsResponse {
1224
+ /**
1225
+ * A paginated list of webhook delivery records.
1226
+ */
1227
+ export interface Data {
1228
+ /**
1229
+ * The events on this page.
1230
+ */
1231
+ events?: Array<Data.Event>;
1232
+
1233
+ /**
1234
+ * Pagination metadata for list responses
1235
+ */
1236
+ pagination?: Data.Pagination;
1237
+ }
1238
+
1239
+ export namespace Data {
1240
+ export interface Event {
1241
+ id?: string;
1242
+
1243
+ created_at?: string;
1244
+
1245
+ delivery_attempts?: number;
1246
+
1247
+ delivery_status?: string;
1248
+
1249
+ error_message?: string | null;
1250
+
1251
+ /**
1252
+ * The exact event body that was delivered, or attempted, for this record. One of
1253
+ * the three webhook envelopes: a message status change, an inbound message, or a
1254
+ * template status change. Read field and event to tell which, the same way your
1255
+ * endpoint does.
1256
+ */
1257
+ event_data?: WebhooksAPI.MessageEvent | WebhooksAPI.InboundMessageEvent | WebhooksAPI.TemplateEvent;
1258
+
1259
+ event_type?: string;
1260
+
1261
+ http_status_code?: number | null;
1262
+
1263
+ processing_completed_at?: string | null;
1264
+
1265
+ processing_started_at?: string | null;
1266
+
1267
+ response_body?: string | null;
1268
+ }
1269
+
1270
+ /**
1271
+ * Pagination metadata for list responses
1272
+ */
1273
+ export interface Pagination {
1274
+ /**
1275
+ * @deprecated Cursor-based pagination. Never populated — see Cursors.
1276
+ */
1277
+ cursors?: Pagination.Cursors | null;
1278
+
1279
+ /**
1280
+ * Whether there are more pages after this one
1281
+ */
1282
+ has_more?: boolean;
1283
+
1284
+ /**
1285
+ * Current page number (1-indexed)
1286
+ */
1287
+ page?: number;
1288
+
1289
+ /**
1290
+ * Number of items per page
1291
+ */
1292
+ page_size?: number;
1293
+
1294
+ /**
1295
+ * Total number of items across all pages
1296
+ */
1297
+ total_count?: number;
1298
+
1299
+ /**
1300
+ * Total number of pages
1301
+ */
1302
+ total_pages?: number;
1303
+ }
1304
+
1305
+ export namespace Pagination {
1306
+ /**
1307
+ * @deprecated Cursor-based pagination. Never populated — see Cursors.
1308
+ */
1309
+ export interface Cursors {
1310
+ /**
1311
+ * Cursor to fetch the next page.
1312
+ */
1313
+ after?: string | null;
1314
+
1315
+ /**
1316
+ * Cursor to fetch the previous page.
1317
+ */
1318
+ before?: string | null;
1319
+ }
1320
+ }
1321
+ }
1322
+
1323
+ /**
1324
+ * Error information
1325
+ */
1326
+ export interface Error {
1327
+ /**
1328
+ * Machine-readable error code (e.g., "RESOURCE_001")
1329
+ */
1330
+ code?: string;
1331
+
1332
+ /**
1333
+ * Additional validation error details (field-level errors)
1334
+ */
1335
+ details?: { [key: string]: Array<string> } | null;
1336
+
1337
+ /**
1338
+ * URL to documentation about this error
1339
+ */
1340
+ doc_url?: string | null;
1341
+
1342
+ /**
1343
+ * Human-readable error message
1344
+ */
1345
+ message?: string;
1346
+ }
1347
+
1348
+ /**
1349
+ * Request and response metadata
1350
+ */
1351
+ export interface Meta {
1352
+ /**
1353
+ * Unique identifier for this request (for tracing and support)
1354
+ */
1355
+ request_id?: string;
1356
+
1357
+ /**
1358
+ * Server timestamp when the response was generated
1359
+ */
1360
+ timestamp?: string;
1361
+
1362
+ /**
1363
+ * API version used for this request
1364
+ */
1365
+ version?: string;
1366
+ }
1367
+ }
1368
+
1369
+ /**
1370
+ * Standard API response envelope for all v3 endpoints
1371
+ */
1372
+ export interface WebhookRotateSecretResponse {
1373
+ /**
1374
+ * The response data (null if error)
1375
+ */
1376
+ data?: WebhookRotateSecretResponse.Data | null;
1377
+
1378
+ /**
1379
+ * Error information
1380
+ */
1381
+ error?: WebhookRotateSecretResponse.Error | null;
1382
+
1383
+ /**
1384
+ * Request and response metadata
1385
+ */
1386
+ meta?: WebhookRotateSecretResponse.Meta;
1387
+
1388
+ /**
1389
+ * Indicates whether the request was successful
1390
+ */
1391
+ success?: boolean;
1392
+ }
1393
+
1394
+ export namespace WebhookRotateSecretResponse {
1395
+ /**
1396
+ * The response data (null if error)
1397
+ */
1398
+ export interface Data {
1399
+ signing_secret?: string;
1400
+ }
1401
+
1402
+ /**
1403
+ * Error information
1404
+ */
1405
+ export interface Error {
1406
+ /**
1407
+ * Machine-readable error code (e.g., "RESOURCE_001")
1408
+ */
1409
+ code?: string;
1410
+
1411
+ /**
1412
+ * Additional validation error details (field-level errors)
1413
+ */
1414
+ details?: { [key: string]: Array<string> } | null;
1415
+
1416
+ /**
1417
+ * URL to documentation about this error
1418
+ */
1419
+ doc_url?: string | null;
1420
+
1421
+ /**
1422
+ * Human-readable error message
1423
+ */
1424
+ message?: string;
1425
+ }
1426
+
1427
+ /**
1428
+ * Request and response metadata
1429
+ */
1430
+ export interface Meta {
1431
+ /**
1432
+ * Unique identifier for this request (for tracing and support)
1433
+ */
1434
+ request_id?: string;
1435
+
1436
+ /**
1437
+ * Server timestamp when the response was generated
1438
+ */
1439
+ timestamp?: string;
1440
+
1441
+ /**
1442
+ * API version used for this request
1443
+ */
1444
+ version?: string;
1445
+ }
1446
+ }
1447
+
1448
+ /**
1449
+ * Standard API response envelope for all v3 endpoints
1450
+ */
1451
+ export interface WebhookTestResponse {
1452
+ /**
1453
+ * The response data (null if error)
1454
+ */
1455
+ data?: WebhookTestResponse.Data | null;
1456
+
1457
+ /**
1458
+ * Error information
1459
+ */
1460
+ error?: WebhookTestResponse.Error | null;
1461
+
1462
+ /**
1463
+ * Request and response metadata
1464
+ */
1465
+ meta?: WebhookTestResponse.Meta;
1466
+
1467
+ /**
1468
+ * Indicates whether the request was successful
1469
+ */
1470
+ success?: boolean;
1471
+ }
1472
+
1473
+ export namespace WebhookTestResponse {
1474
+ /**
1475
+ * The response data (null if error)
1476
+ */
1477
+ export interface Data {
1478
+ message?: string;
1479
+
648
1480
  success?: boolean;
649
1481
  }
1482
+
1483
+ /**
1484
+ * Error information
1485
+ */
1486
+ export interface Error {
1487
+ /**
1488
+ * Machine-readable error code (e.g., "RESOURCE_001")
1489
+ */
1490
+ code?: string;
1491
+
1492
+ /**
1493
+ * Additional validation error details (field-level errors)
1494
+ */
1495
+ details?: { [key: string]: Array<string> } | null;
1496
+
1497
+ /**
1498
+ * URL to documentation about this error
1499
+ */
1500
+ doc_url?: string | null;
1501
+
1502
+ /**
1503
+ * Human-readable error message
1504
+ */
1505
+ message?: string;
1506
+ }
1507
+
1508
+ /**
1509
+ * Request and response metadata
1510
+ */
1511
+ export interface Meta {
1512
+ /**
1513
+ * Unique identifier for this request (for tracing and support)
1514
+ */
1515
+ request_id?: string;
1516
+
1517
+ /**
1518
+ * Server timestamp when the response was generated
1519
+ */
1520
+ timestamp?: string;
1521
+
1522
+ /**
1523
+ * API version used for this request
1524
+ */
1525
+ version?: string;
1526
+ }
1527
+ }
1528
+
1529
+ /**
1530
+ * Standard API response envelope for all v3 endpoints
1531
+ */
1532
+ export interface WebhookToggleStatusResponse {
1533
+ /**
1534
+ * The response data (null if error)
1535
+ */
1536
+ data?: WebhookToggleStatusResponse.Data | null;
1537
+
1538
+ /**
1539
+ * Error information
1540
+ */
1541
+ error?: WebhookToggleStatusResponse.Error | null;
1542
+
1543
+ /**
1544
+ * Request and response metadata
1545
+ */
1546
+ meta?: WebhookToggleStatusResponse.Meta;
1547
+
1548
+ /**
1549
+ * Indicates whether the request was successful
1550
+ */
1551
+ success?: boolean;
1552
+ }
1553
+
1554
+ export namespace WebhookToggleStatusResponse {
1555
+ /**
1556
+ * The response data (null if error)
1557
+ */
1558
+ export interface Data {
1559
+ id?: string;
1560
+
1561
+ consecutive_failures?: number;
1562
+
1563
+ created_at?: string;
1564
+
1565
+ /**
1566
+ * Which customer owns this — the key's own, or the profile named in x-profile-id.
1567
+ * Says whose resource this is, which the resource's own id does not.
1568
+ */
1569
+ customer_id?: string;
1570
+
1571
+ display_name?: string;
1572
+
1573
+ endpoint_url?: string;
1574
+
1575
+ event_filters?: { [key: string]: Array<string> } | null;
1576
+
1577
+ event_types?: Array<string>;
1578
+
1579
+ is_active?: boolean;
1580
+
1581
+ last_delivery_attempt_at?: string | null;
1582
+
1583
+ last_successful_delivery_at?: string | null;
1584
+
1585
+ retry_count?: number;
1586
+
1587
+ signing_secret?: string | null;
1588
+
1589
+ timeout_seconds?: number;
1590
+
1591
+ updated_at?: string | null;
1592
+ }
1593
+
1594
+ /**
1595
+ * Error information
1596
+ */
1597
+ export interface Error {
1598
+ /**
1599
+ * Machine-readable error code (e.g., "RESOURCE_001")
1600
+ */
1601
+ code?: string;
1602
+
1603
+ /**
1604
+ * Additional validation error details (field-level errors)
1605
+ */
1606
+ details?: { [key: string]: Array<string> } | null;
1607
+
1608
+ /**
1609
+ * URL to documentation about this error
1610
+ */
1611
+ doc_url?: string | null;
1612
+
1613
+ /**
1614
+ * Human-readable error message
1615
+ */
1616
+ message?: string;
1617
+ }
1618
+
1619
+ /**
1620
+ * Request and response metadata
1621
+ */
1622
+ export interface Meta {
1623
+ /**
1624
+ * Unique identifier for this request (for tracing and support)
1625
+ */
1626
+ request_id?: string;
1627
+
1628
+ /**
1629
+ * Server timestamp when the response was generated
1630
+ */
1631
+ timestamp?: string;
1632
+
1633
+ /**
1634
+ * API version used for this request
1635
+ */
1636
+ version?: string;
1637
+ }
650
1638
  }
651
1639
 
652
1640
  export interface WebhookCreateParams {
@@ -908,18 +1896,21 @@ export interface WebhookToggleStatusParams {
908
1896
 
909
1897
  export declare namespace Webhooks {
910
1898
  export {
911
- type APIMeta as APIMeta,
912
- type APIResponseWebhook as APIResponseWebhook,
913
- type ErrorDetail as ErrorDetail,
914
- type MutationRequest as MutationRequest,
915
- type PaginationMeta as PaginationMeta,
916
- type WebhookEventType as WebhookEventType,
917
- type WebhookResponse as WebhookResponse,
1899
+ type InboundMessageEvent as InboundMessageEvent,
1900
+ type InboundMessageEventPayload as InboundMessageEventPayload,
1901
+ type MessageEvent as MessageEvent,
1902
+ type MessageEventPayload as MessageEventPayload,
1903
+ type TemplateEvent as TemplateEvent,
1904
+ type TemplateEventPayload as TemplateEventPayload,
1905
+ type WebhookCreateResponse as WebhookCreateResponse,
1906
+ type WebhookRetrieveResponse as WebhookRetrieveResponse,
1907
+ type WebhookUpdateResponse as WebhookUpdateResponse,
918
1908
  type WebhookListResponse as WebhookListResponse,
919
1909
  type WebhookListEventTypesResponse as WebhookListEventTypesResponse,
920
1910
  type WebhookListEventsResponse as WebhookListEventsResponse,
921
1911
  type WebhookRotateSecretResponse as WebhookRotateSecretResponse,
922
1912
  type WebhookTestResponse as WebhookTestResponse,
1913
+ type WebhookToggleStatusResponse as WebhookToggleStatusResponse,
923
1914
  type WebhookCreateParams as WebhookCreateParams,
924
1915
  type WebhookRetrieveParams as WebhookRetrieveParams,
925
1916
  type WebhookUpdateParams as WebhookUpdateParams,