@sentdm/sentdm 0.26.0 → 0.27.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 (103) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/client.d.mts +12 -12
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +12 -12
  5. package/client.d.ts.map +1 -1
  6. package/client.js.map +1 -1
  7. package/client.mjs.map +1 -1
  8. package/package.json +1 -1
  9. package/resources/contacts.d.mts +48 -486
  10. package/resources/contacts.d.mts.map +1 -1
  11. package/resources/contacts.d.ts +48 -486
  12. package/resources/contacts.d.ts.map +1 -1
  13. package/resources/contacts.js +3 -3
  14. package/resources/contacts.js.map +1 -1
  15. package/resources/contacts.mjs +3 -3
  16. package/resources/contacts.mjs.map +1 -1
  17. package/resources/index.d.mts +6 -6
  18. package/resources/index.d.mts.map +1 -1
  19. package/resources/index.d.ts +6 -6
  20. package/resources/index.d.ts.map +1 -1
  21. package/resources/index.js.map +1 -1
  22. package/resources/index.mjs.map +1 -1
  23. package/resources/me.d.mts +40 -113
  24. package/resources/me.d.mts.map +1 -1
  25. package/resources/me.d.ts +40 -113
  26. package/resources/me.d.ts.map +1 -1
  27. package/resources/me.js.map +1 -1
  28. package/resources/me.mjs.map +1 -1
  29. package/resources/messages.d.mts +7 -126
  30. package/resources/messages.d.mts.map +1 -1
  31. package/resources/messages.d.ts +7 -126
  32. package/resources/messages.d.ts.map +1 -1
  33. package/resources/messages.js.map +1 -1
  34. package/resources/messages.mjs.map +1 -1
  35. package/resources/numbers.d.mts +3 -42
  36. package/resources/numbers.d.mts.map +1 -1
  37. package/resources/numbers.d.ts +3 -42
  38. package/resources/numbers.d.ts.map +1 -1
  39. package/resources/numbers.js.map +1 -1
  40. package/resources/numbers.mjs.map +1 -1
  41. package/resources/profiles/campaigns.d.mts +149 -480
  42. package/resources/profiles/campaigns.d.mts.map +1 -1
  43. package/resources/profiles/campaigns.d.ts +149 -480
  44. package/resources/profiles/campaigns.d.ts.map +1 -1
  45. package/resources/profiles/campaigns.js +41 -39
  46. package/resources/profiles/campaigns.js.map +1 -1
  47. package/resources/profiles/campaigns.mjs +41 -39
  48. package/resources/profiles/campaigns.mjs.map +1 -1
  49. package/resources/profiles/index.d.mts +2 -2
  50. package/resources/profiles/index.d.mts.map +1 -1
  51. package/resources/profiles/index.d.ts +2 -2
  52. package/resources/profiles/index.d.ts.map +1 -1
  53. package/resources/profiles/index.js.map +1 -1
  54. package/resources/profiles/index.mjs.map +1 -1
  55. package/resources/profiles/profiles.d.mts +391 -1699
  56. package/resources/profiles/profiles.d.mts.map +1 -1
  57. package/resources/profiles/profiles.d.ts +391 -1699
  58. package/resources/profiles/profiles.d.ts.map +1 -1
  59. package/resources/profiles/profiles.js +6 -3
  60. package/resources/profiles/profiles.js.map +1 -1
  61. package/resources/profiles/profiles.mjs +6 -3
  62. package/resources/profiles/profiles.mjs.map +1 -1
  63. package/resources/templates.d.mts +176 -993
  64. package/resources/templates.d.mts.map +1 -1
  65. package/resources/templates.d.ts +176 -993
  66. package/resources/templates.d.ts.map +1 -1
  67. package/resources/templates.js +3 -3
  68. package/resources/templates.js.map +1 -1
  69. package/resources/templates.mjs +3 -3
  70. package/resources/templates.mjs.map +1 -1
  71. package/resources/users.d.mts +46 -373
  72. package/resources/users.d.mts.map +1 -1
  73. package/resources/users.d.ts +46 -373
  74. package/resources/users.d.ts.map +1 -1
  75. package/resources/users.js +7 -3
  76. package/resources/users.js.map +1 -1
  77. package/resources/users.mjs +7 -3
  78. package/resources/users.mjs.map +1 -1
  79. package/resources/webhooks.d.mts +110 -624
  80. package/resources/webhooks.d.mts.map +1 -1
  81. package/resources/webhooks.d.ts +110 -624
  82. package/resources/webhooks.d.ts.map +1 -1
  83. package/resources/webhooks.js +7 -6
  84. package/resources/webhooks.js.map +1 -1
  85. package/resources/webhooks.mjs +7 -6
  86. package/resources/webhooks.mjs.map +1 -1
  87. package/src/client.ts +68 -33
  88. package/src/resources/contacts.ts +49 -566
  89. package/src/resources/index.ts +34 -17
  90. package/src/resources/me.ts +51 -132
  91. package/src/resources/messages.ts +7 -141
  92. package/src/resources/numbers.ts +3 -47
  93. package/src/resources/profiles/campaigns.ts +172 -667
  94. package/src/resources/profiles/index.ts +17 -5
  95. package/src/resources/profiles/profiles.ts +549 -2282
  96. package/src/resources/templates.ts +206 -1256
  97. package/src/resources/users.ts +47 -430
  98. package/src/resources/webhooks.ts +120 -742
  99. package/src/version.ts +1 -1
  100. package/version.d.mts +1 -1
  101. package/version.d.ts +1 -1
  102. package/version.js +1 -1
  103. package/version.mjs +1 -1
@@ -1,16 +1,22 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  import { APIResource } from '../../core/resource';
4
+ import * as ProfilesAPI from './profiles';
5
+ import * as WebhooksAPI from '../webhooks';
4
6
  import * as CampaignsAPI from './campaigns';
5
7
  import {
8
+ APIResponseOfTcrCampaignWithUseCases,
9
+ BaseDto,
6
10
  CampaignCreateParams,
7
- CampaignCreateResponse,
11
+ CampaignData,
8
12
  CampaignDeleteParams,
9
13
  CampaignListParams,
10
14
  CampaignListResponse,
11
15
  CampaignUpdateParams,
12
- CampaignUpdateResponse,
13
16
  Campaigns,
17
+ MessagingUseCaseUs,
18
+ SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData,
19
+ TcrCampaignWithUseCases,
14
20
  } from './campaigns';
15
21
  import { APIPromise } from '../../core/api-promise';
16
22
  import { buildHeaders } from '../../internal/headers';
@@ -63,10 +69,11 @@ export class Profiles extends APIResource {
63
69
  *
64
70
  * @example
65
71
  * ```ts
66
- * const profile = await client.profiles.create();
72
+ * const apiResponseOfProfileDetail =
73
+ * await client.profiles.create();
67
74
  * ```
68
75
  */
69
- create(params: ProfileCreateParams, options?: RequestOptions): APIPromise<ProfileCreateResponse> {
76
+ create(params: ProfileCreateParams, options?: RequestOptions): APIPromise<APIResponseOfProfileDetail> {
70
77
  const { 'Idempotency-Key': idempotencyKey, 'x-profile-id': xProfileID, ...body } = params;
71
78
  return this._client.post('/v3/profiles', {
72
79
  body,
@@ -88,14 +95,15 @@ export class Profiles extends APIResource {
88
95
  *
89
96
  * @example
90
97
  * ```ts
91
- * const profile = await client.profiles.retrieve('profileId');
98
+ * const apiResponseOfProfileDetail =
99
+ * await client.profiles.retrieve('profileId');
92
100
  * ```
93
101
  */
94
102
  retrieve(
95
103
  profileID: string,
96
104
  params: ProfileRetrieveParams | null | undefined = {},
97
105
  options?: RequestOptions,
98
- ): APIPromise<ProfileRetrieveResponse> {
106
+ ): APIPromise<APIResponseOfProfileDetail> {
99
107
  const { 'x-profile-id': xProfileID } = params ?? {};
100
108
  return this._client.get(path`/v3/profiles/${profileID}`, {
101
109
  ...options,
@@ -128,14 +136,15 @@ export class Profiles extends APIResource {
128
136
  *
129
137
  * @example
130
138
  * ```ts
131
- * const profile = await client.profiles.update('profileId');
139
+ * const apiResponseOfProfileDetail =
140
+ * await client.profiles.update('profileId');
132
141
  * ```
133
142
  */
134
143
  update(
135
144
  profileID: string,
136
145
  params: ProfileUpdateParams,
137
146
  options?: RequestOptions,
138
- ): APIPromise<ProfileUpdateResponse> {
147
+ ): APIPromise<APIResponseOfProfileDetail> {
139
148
  const { 'Idempotency-Key': idempotencyKey, 'x-profile-id': xProfileID, ...body } = params;
140
149
  return this._client.patch(path`/v3/profiles/${profileID}`, {
141
150
  body,
@@ -250,21 +259,21 @@ export class Profiles extends APIResource {
250
259
  /**
251
260
  * Standard API response envelope for all v3 endpoints
252
261
  */
253
- export interface ProfileCreateResponse {
262
+ export interface APIResponseOfProfileDetail {
254
263
  /**
255
264
  * Detailed profile response for v3 API
256
265
  */
257
- data?: ProfileCreateResponse.Data | null;
266
+ data?: ProfileDetail | null;
258
267
 
259
268
  /**
260
269
  * Error information
261
270
  */
262
- error?: ProfileCreateResponse.Error | null;
271
+ error?: WebhooksAPI.ErrorDetail | null;
263
272
 
264
273
  /**
265
274
  * Request and response metadata
266
275
  */
267
- meta?: ProfileCreateResponse.Meta;
276
+ meta?: WebhooksAPI.APIMeta;
268
277
 
269
278
  /**
270
279
  * Indicates whether the request was successful
@@ -272,1846 +281,637 @@ export interface ProfileCreateResponse {
272
281
  success?: boolean;
273
282
  }
274
283
 
275
- export namespace ProfileCreateResponse {
284
+ /**
285
+ * Billing contact information for a profile. Required when billing_model is
286
+ * "profile" or "profile_and_organization".
287
+ */
288
+ export interface BillingContactInfo {
276
289
  /**
277
- * Detailed profile response for v3 API
290
+ * Email address where invoices will be sent (required)
278
291
  */
279
- export interface Data {
280
- /**
281
- * Profile unique identifier
282
- */
283
- id?: string;
292
+ email: string;
284
293
 
285
- /**
286
- * Whether contacts are shared across profiles in the organization
287
- */
288
- allow_contact_sharing?: boolean;
294
+ /**
295
+ * Full name of the billing contact or company (required)
296
+ */
297
+ name: string;
289
298
 
290
- /**
291
- * Whether number changes are allowed during onboarding
292
- */
293
- allow_number_change_during_onboarding?: boolean | null;
299
+ /**
300
+ * Billing address (optional). Free-form text including street, city, state, postal
301
+ * code, and country.
302
+ */
303
+ address?: string | null;
294
304
 
295
- /**
296
- * Whether templates are shared across profiles in the organization
297
- */
298
- allow_template_sharing?: boolean;
305
+ /**
306
+ * Phone number for the billing contact (optional)
307
+ */
308
+ phone?: string | null;
309
+ }
299
310
 
300
- /**
301
- * Billing contact info returned in profile responses
302
- */
303
- billing_contact?: Data.BillingContact | null;
311
+ /**
312
+ * Brand and KYC data grouped into contact, business, and compliance sections
313
+ */
314
+ export interface BrandsBrandData {
315
+ /**
316
+ * Compliance and TCR information for brand registration
317
+ */
318
+ compliance: SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandComplianceInfo;
304
319
 
305
- /**
306
- * Billing model: profile, organization, or profile_and_organization
307
- */
308
- billing_model?: string;
320
+ /**
321
+ * Contact information for brand KYC
322
+ */
323
+ contact: SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandContactInfo;
309
324
 
310
- /**
311
- * Brand response with nested contact, business, and compliance sections — mirrors
312
- * the request structure.
313
- */
314
- brand?: Data.Brand | null;
325
+ /**
326
+ * Business details and address for brand KYC
327
+ */
328
+ business?: SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo | null;
329
+ }
315
330
 
316
- /**
317
- * When the profile was created
318
- */
319
- created_at?: string;
331
+ export interface DestinationCountry {
332
+ id?: string;
320
333
 
321
- /**
322
- * Profile description
323
- */
324
- description?: string | null;
334
+ isMain?: boolean;
335
+ }
336
+
337
+ /**
338
+ * Payment card details for a profile. Accepted when billing_model is "profile" or
339
+ * "profile_and_organization". These details are not stored on our servers and will
340
+ * be forwarded to the payment processor.
341
+ */
342
+ export interface PaymentDetails {
343
+ /**
344
+ * Card number (digits only, 13–19 characters)
345
+ */
346
+ card_number: string;
347
+
348
+ /**
349
+ * Card security code (3–4 digits)
350
+ */
351
+ cvc: string;
352
+
353
+ /**
354
+ * Card expiry date in MM/YY format (e.g. "09/27")
355
+ */
356
+ expiry: string;
357
+
358
+ /**
359
+ * Billing ZIP / postal code associated with the card
360
+ */
361
+ zip_code: string;
362
+ }
363
+
364
+ /**
365
+ * Detailed profile response for v3 API
366
+ */
367
+ export interface ProfileDetail {
368
+ /**
369
+ * Profile unique identifier
370
+ */
371
+ id?: string;
372
+
373
+ /**
374
+ * Whether contacts are shared across profiles in the organization
375
+ */
376
+ allow_contact_sharing?: boolean;
377
+
378
+ /**
379
+ * Whether number changes are allowed during onboarding
380
+ */
381
+ allow_number_change_during_onboarding?: boolean | null;
382
+
383
+ /**
384
+ * Whether templates are shared across profiles in the organization
385
+ */
386
+ allow_template_sharing?: boolean;
387
+
388
+ /**
389
+ * Billing contact info returned in profile responses
390
+ */
391
+ billing_contact?: ProfileDetail.BillingContact | null;
392
+
393
+ /**
394
+ * Billing model: profile, organization, or profile_and_organization
395
+ */
396
+ billing_model?: string;
397
+
398
+ /**
399
+ * Brand response with nested contact, business, and compliance sections — mirrors
400
+ * the request structure.
401
+ */
402
+ brand?: ProfileDetail.Brand | null;
403
+
404
+ /**
405
+ * When the profile was created
406
+ */
407
+ created_at?: string;
408
+
409
+ /**
410
+ * Profile description
411
+ */
412
+ description?: string | null;
413
+
414
+ /**
415
+ * Profile email (inherited from organization)
416
+ */
417
+ email?: string | null;
418
+
419
+ /**
420
+ * Profile icon URL
421
+ */
422
+ icon?: string | null;
423
+
424
+ /**
425
+ * Whether this profile inherits contacts from the organization
426
+ */
427
+ inherit_contacts?: boolean;
428
+
429
+ /**
430
+ * Whether this profile inherits TCR brand from the organization
431
+ */
432
+ inherit_tcr_brand?: boolean;
433
+
434
+ /**
435
+ * Whether this profile inherits TCR campaign from the organization
436
+ */
437
+ inherit_tcr_campaign?: boolean;
438
+
439
+ /**
440
+ * Whether this profile inherits templates from the organization
441
+ */
442
+ inherit_templates?: boolean;
443
+
444
+ /**
445
+ * Profile name
446
+ */
447
+ name?: string;
448
+
449
+ /**
450
+ * Parent organization ID
451
+ */
452
+ organization_id?: string | null;
453
+
454
+ /**
455
+ * Direct SMS phone number
456
+ */
457
+ sending_phone_number?: string | null;
458
+
459
+ /**
460
+ * Reference to another profile for SMS/Telnyx configuration
461
+ */
462
+ sending_phone_number_profile_id?: string | null;
463
+
464
+ /**
465
+ * Reference to another profile for WhatsApp configuration
466
+ */
467
+ sending_whatsapp_number_profile_id?: string | null;
468
+
469
+ /**
470
+ * Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
471
+ * only, with at least one letter.
472
+ */
473
+ short_name?: string | null;
474
+
475
+ /**
476
+ * Profile setup status: incomplete, pending_review, approved, rejected
477
+ */
478
+ status?: string;
479
+
480
+ /**
481
+ * When the profile was last updated
482
+ */
483
+ updated_at?: string | null;
484
+
485
+ /**
486
+ * WhatsApp Business Account ID associated with this profile. Present whether the
487
+ * WABA is inherited from the organization or configured directly.
488
+ */
489
+ waba_id?: string | null;
490
+
491
+ /**
492
+ * Direct WhatsApp phone number
493
+ */
494
+ whatsapp_phone_number?: string | null;
495
+ }
496
+
497
+ export namespace ProfileDetail {
498
+ /**
499
+ * Billing contact info returned in profile responses
500
+ */
501
+ export interface BillingContact {
502
+ address?: string | null;
325
503
 
326
- /**
327
- * Profile email (inherited from organization)
328
- */
329
504
  email?: string | null;
330
505
 
331
- /**
332
- * Profile icon URL
333
- */
334
- icon?: string | null;
506
+ name?: string | null;
335
507
 
336
- /**
337
- * Whether this profile inherits contacts from the organization
338
- */
339
- inherit_contacts?: boolean;
508
+ phone?: string | null;
509
+ }
340
510
 
511
+ /**
512
+ * Brand response with nested contact, business, and compliance sections — mirrors
513
+ * the request structure.
514
+ */
515
+ export interface Brand {
341
516
  /**
342
- * Whether this profile inherits TCR brand from the organization
517
+ * Unique identifier for the brand
343
518
  */
344
- inherit_tcr_brand?: boolean;
519
+ id?: string;
345
520
 
346
521
  /**
347
- * Whether this profile inherits TCR campaign from the organization
522
+ * Business details and address information
348
523
  */
349
- inherit_tcr_campaign?: boolean;
524
+ business?: Brand.Business | null;
350
525
 
351
526
  /**
352
- * Whether this profile inherits templates from the organization
527
+ * Compliance and TCR-related information
353
528
  */
354
- inherit_templates?: boolean;
529
+ compliance?: Brand.Compliance | null;
355
530
 
356
531
  /**
357
- * Profile name
532
+ * Contact information for the brand
358
533
  */
359
- name?: string;
534
+ contact?: Brand.Contact | null;
360
535
 
361
536
  /**
362
- * Parent organization ID
537
+ * When the brand was created
363
538
  */
364
- organization_id?: string | null;
539
+ created_at?: string;
365
540
 
366
541
  /**
367
- * Direct SMS phone number
542
+ * CSP (Campaign Service Provider) ID
368
543
  */
369
- sending_phone_number?: string | null;
544
+ csp_id?: string | null;
370
545
 
371
- /**
372
- * Reference to another profile for SMS/Telnyx configuration
373
- */
374
- sending_phone_number_profile_id?: string | null;
546
+ identity_status?: 'SELF_DECLARED' | 'UNVERIFIED' | 'VERIFIED' | 'VETTED_VERIFIED' | null;
375
547
 
376
548
  /**
377
- * Reference to another profile for WhatsApp configuration
549
+ * Whether this brand is inherited from the parent organization
378
550
  */
379
- sending_whatsapp_number_profile_id?: string | null;
551
+ is_inherited?: boolean;
552
+
553
+ status?: 'ACTIVE' | 'INACTIVE' | 'SUSPENDED' | null;
380
554
 
381
555
  /**
382
- * Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
383
- * only, with at least one letter.
556
+ * When the brand was submitted to TCR
384
557
  */
385
- short_name?: string | null;
558
+ submitted_at?: string | null;
386
559
 
387
560
  /**
388
- * Profile setup status: incomplete, pending_review, approved, rejected
561
+ * Whether this brand has been submitted to TCR
389
562
  */
390
- status?: string;
563
+ submitted_to_tcr?: boolean;
391
564
 
392
565
  /**
393
- * When the profile was last updated
566
+ * TCR brand ID (populated after TCR submission)
394
567
  */
395
- updated_at?: string | null;
568
+ tcr_brand_id?: string | null;
396
569
 
397
570
  /**
398
- * WhatsApp Business Account ID associated with this profile. Present whether the
399
- * WABA is inherited from the organization or configured directly.
571
+ * Universal EIN from TCR
400
572
  */
401
- waba_id?: string | null;
573
+ universal_ein?: string | null;
402
574
 
403
575
  /**
404
- * Direct WhatsApp phone number
576
+ * When the brand was last updated
405
577
  */
406
- whatsapp_phone_number?: string | null;
578
+ updated_at?: string | null;
407
579
  }
408
580
 
409
- export namespace Data {
581
+ export namespace Brand {
410
582
  /**
411
- * Billing contact info returned in profile responses
583
+ * Business details and address information
412
584
  */
413
- export interface BillingContact {
414
- address?: string | null;
415
-
416
- email?: string | null;
585
+ export interface Business {
586
+ /**
587
+ * City
588
+ */
589
+ city?: string | null;
417
590
 
418
- name?: string | null;
591
+ /**
592
+ * Country code (e.g., US, CA)
593
+ */
594
+ country?: string | null;
419
595
 
420
- phone?: string | null;
421
- }
596
+ /**
597
+ * Country where the business is registered
598
+ */
599
+ country_of_registration?: string | null;
422
600
 
423
- /**
424
- * Brand response with nested contact, business, and compliance sections — mirrors
425
- * the request structure.
426
- */
427
- export interface Brand {
428
601
  /**
429
- * Unique identifier for the brand
602
+ * Business entity type
430
603
  */
431
- id?: string;
604
+ entity_type?: string | null;
432
605
 
433
606
  /**
434
- * Business details and address information
607
+ * Legal business name
435
608
  */
436
- business?: Brand.Business | null;
609
+ legal_name?: string | null;
437
610
 
438
611
  /**
439
- * Compliance and TCR-related information
612
+ * Postal/ZIP code
440
613
  */
441
- compliance?: Brand.Compliance | null;
614
+ postal_code?: string | null;
442
615
 
443
616
  /**
444
- * Contact information for the brand
617
+ * State/province code
445
618
  */
446
- contact?: Brand.Contact | null;
619
+ state?: string | null;
447
620
 
448
621
  /**
449
- * When the brand was created
622
+ * Street address
450
623
  */
451
- created_at?: string;
624
+ street?: string | null;
452
625
 
453
626
  /**
454
- * CSP (Campaign Service Provider) ID
627
+ * Tax ID/EIN number
455
628
  */
456
- csp_id?: string | null;
629
+ tax_id?: string | null;
457
630
 
458
- identity_status?: 'SELF_DECLARED' | 'UNVERIFIED' | 'VERIFIED' | 'VETTED_VERIFIED' | null;
631
+ /**
632
+ * Type of tax ID (e.g., us_ein, ca_bn)
633
+ */
634
+ tax_id_type?: string | null;
459
635
 
460
636
  /**
461
- * Whether this brand is inherited from the parent organization
637
+ * Business website URL
462
638
  */
463
- is_inherited?: boolean;
639
+ url?: string | null;
640
+ }
641
+
642
+ /**
643
+ * Compliance and TCR-related information
644
+ */
645
+ export interface Compliance {
646
+ brand_relationship?: ProfilesAPI.TcrBrandRelationship | null;
464
647
 
465
- status?: 'ACTIVE' | 'INACTIVE' | 'SUSPENDED' | null;
648
+ /**
649
+ * List of destination countries for messaging
650
+ */
651
+ destination_countries?: Array<ProfilesAPI.DestinationCountry>;
466
652
 
467
653
  /**
468
- * When the brand was submitted to TCR
654
+ * Expected daily messaging volume
469
655
  */
470
- submitted_at?: string | null;
656
+ expected_messaging_volume?: string | null;
471
657
 
472
658
  /**
473
- * Whether this brand has been submitted to TCR
659
+ * Whether this is a TCR (Campaign Registry) application
474
660
  */
475
- submitted_to_tcr?: boolean;
661
+ is_tcr_application?: boolean;
476
662
 
477
663
  /**
478
- * TCR brand ID (populated after TCR submission)
664
+ * Additional notes about the business or use case
479
665
  */
480
- tcr_brand_id?: string | null;
666
+ notes?: string | null;
481
667
 
482
668
  /**
483
- * Universal EIN from TCR
669
+ * Phone number prefix for messaging (e.g., "+1")
484
670
  */
485
- universal_ein?: string | null;
671
+ phone_number_prefix?: string | null;
486
672
 
487
673
  /**
488
- * When the brand was last updated
674
+ * Primary messaging use case description
489
675
  */
490
- updated_at?: string | null;
676
+ primary_use_case?: string | null;
677
+
678
+ vertical?: ProfilesAPI.TcrVertical | null;
491
679
  }
492
680
 
493
- export namespace Brand {
681
+ /**
682
+ * Contact information for the brand
683
+ */
684
+ export interface Contact {
685
+ /**
686
+ * Business/brand name
687
+ */
688
+ business_name?: string | null;
689
+
690
+ /**
691
+ * Contact email address
692
+ */
693
+ email?: string | null;
694
+
695
+ /**
696
+ * Primary contact name
697
+ */
698
+ name?: string;
699
+
494
700
  /**
495
- * Business details and address information
701
+ * Contact phone number in E.164 format
496
702
  */
497
- export interface Business {
498
- /**
499
- * City
500
- */
501
- city?: string | null;
502
-
503
- /**
504
- * Country code (e.g., US, CA)
505
- */
506
- country?: string | null;
507
-
508
- /**
509
- * Country where the business is registered
510
- */
511
- country_of_registration?: string | null;
512
-
513
- /**
514
- * Business entity type
515
- */
516
- entity_type?: string | null;
517
-
518
- /**
519
- * Legal business name
520
- */
521
- legal_name?: string | null;
522
-
523
- /**
524
- * Postal/ZIP code
525
- */
526
- postal_code?: string | null;
527
-
528
- /**
529
- * State/province code
530
- */
531
- state?: string | null;
532
-
533
- /**
534
- * Street address
535
- */
536
- street?: string | null;
537
-
538
- /**
539
- * Tax ID/EIN number
540
- */
541
- tax_id?: string | null;
542
-
543
- /**
544
- * Type of tax ID (e.g., us_ein, ca_bn)
545
- */
546
- tax_id_type?: string | null;
547
-
548
- /**
549
- * Business website URL
550
- */
551
- url?: string | null;
552
- }
703
+ phone?: string | null;
553
704
 
554
705
  /**
555
- * Compliance and TCR-related information
706
+ * Contact phone country code (e.g., "1" for US)
556
707
  */
557
- export interface Compliance {
558
- brand_relationship?:
559
- | 'BASIC_ACCOUNT'
560
- | 'MEDIUM_ACCOUNT'
561
- | 'LARGE_ACCOUNT'
562
- | 'SMALL_ACCOUNT'
563
- | 'KEY_ACCOUNT'
564
- | null;
565
-
566
- /**
567
- * List of destination countries for messaging
568
- */
569
- destination_countries?: Array<Compliance.DestinationCountry>;
570
-
571
- /**
572
- * Expected daily messaging volume
573
- */
574
- expected_messaging_volume?: string | null;
575
-
576
- /**
577
- * Whether this is a TCR (Campaign Registry) application
578
- */
579
- is_tcr_application?: boolean;
580
-
581
- /**
582
- * Additional notes about the business or use case
583
- */
584
- notes?: string | null;
585
-
586
- /**
587
- * Phone number prefix for messaging (e.g., "+1")
588
- */
589
- phone_number_prefix?: string | null;
590
-
591
- /**
592
- * Primary messaging use case description
593
- */
594
- primary_use_case?: string | null;
595
-
596
- vertical?:
597
- | 'PROFESSIONAL'
598
- | 'REAL_ESTATE'
599
- | 'HEALTHCARE'
600
- | 'HUMAN_RESOURCES'
601
- | 'ENERGY'
602
- | 'ENTERTAINMENT'
603
- | 'RETAIL'
604
- | 'TRANSPORTATION'
605
- | 'AGRICULTURE'
606
- | 'INSURANCE'
607
- | 'POSTAL'
608
- | 'EDUCATION'
609
- | 'HOSPITALITY'
610
- | 'FINANCIAL'
611
- | 'POLITICAL'
612
- | 'GAMBLING'
613
- | 'LEGAL'
614
- | 'CONSTRUCTION'
615
- | 'NGO'
616
- | 'MANUFACTURING'
617
- | 'GOVERNMENT'
618
- | 'TECHNOLOGY'
619
- | 'COMMUNICATION'
620
- | null;
621
- }
622
-
623
- export namespace Compliance {
624
- export interface DestinationCountry {
625
- id?: string;
626
-
627
- isMain?: boolean;
628
- }
629
- }
708
+ phone_country_code?: string | null;
630
709
 
631
710
  /**
632
- * Contact information for the brand
711
+ * Contact's role in the business
633
712
  */
634
- export interface Contact {
635
- /**
636
- * Business/brand name
637
- */
638
- business_name?: string | null;
639
-
640
- /**
641
- * Contact email address
642
- */
643
- email?: string | null;
644
-
645
- /**
646
- * Primary contact name
647
- */
648
- name?: string;
649
-
650
- /**
651
- * Contact phone number in E.164 format
652
- */
653
- phone?: string | null;
654
-
655
- /**
656
- * Contact phone country code (e.g., "1" for US)
657
- */
658
- phone_country_code?: string | null;
659
-
660
- /**
661
- * Contact's role in the business
662
- */
663
- role?: string | null;
664
- }
713
+ role?: string | null;
665
714
  }
666
715
  }
716
+ }
667
717
 
718
+ /**
719
+ * Business details and address for brand KYC
720
+ */
721
+ export interface SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo {
668
722
  /**
669
- * Error information
723
+ * City
670
724
  */
671
- export interface Error {
672
- /**
673
- * Machine-readable error code (e.g., "RESOURCE_001")
674
- */
675
- code?: string;
725
+ city?: string | null;
676
726
 
677
- /**
678
- * Additional validation error details (field-level errors)
679
- */
680
- details?: { [key: string]: Array<string> } | null;
727
+ /**
728
+ * Country code (e.g., US, CA)
729
+ */
730
+ country?: string | null;
681
731
 
682
- /**
683
- * URL to documentation about this error
684
- */
685
- doc_url?: string | null;
732
+ /**
733
+ * Country where the business is registered
734
+ */
735
+ countryOfRegistration?: string | null;
686
736
 
687
- /**
688
- * Human-readable error message
689
- */
690
- message?: string;
691
- }
737
+ entityType?: 'PRIVATE_PROFIT' | 'PUBLIC_PROFIT' | 'NON_PROFIT' | 'SOLE_PROPRIETOR' | 'GOVERNMENT' | null;
692
738
 
693
739
  /**
694
- * Request and response metadata
740
+ * Legal business name
695
741
  */
696
- export interface Meta {
697
- /**
698
- * Unique identifier for this request (for tracing and support)
699
- */
700
- request_id?: string;
701
-
702
- /**
703
- * Server timestamp when the response was generated
704
- */
705
- timestamp?: string;
742
+ legalName?: string | null;
706
743
 
707
- /**
708
- * API version used for this request
709
- */
710
- version?: string;
711
- }
712
- }
713
-
714
- /**
715
- * Standard API response envelope for all v3 endpoints
716
- */
717
- export interface ProfileRetrieveResponse {
718
744
  /**
719
- * Detailed profile response for v3 API
745
+ * Postal/ZIP code
720
746
  */
721
- data?: ProfileRetrieveResponse.Data | null;
747
+ postalCode?: string | null;
722
748
 
723
749
  /**
724
- * Error information
750
+ * State/province code
725
751
  */
726
- error?: ProfileRetrieveResponse.Error | null;
752
+ state?: string | null;
727
753
 
728
754
  /**
729
- * Request and response metadata
755
+ * Street address
730
756
  */
731
- meta?: ProfileRetrieveResponse.Meta;
757
+ street?: string | null;
732
758
 
733
759
  /**
734
- * Indicates whether the request was successful
760
+ * Tax ID/EIN number
735
761
  */
736
- success?: boolean;
737
- }
762
+ taxId?: string | null;
738
763
 
739
- export namespace ProfileRetrieveResponse {
740
764
  /**
741
- * Detailed profile response for v3 API
765
+ * Type of tax ID (e.g., us_ein, ca_bn)
742
766
  */
743
- export interface Data {
744
- /**
745
- * Profile unique identifier
746
- */
747
- id?: string;
748
-
749
- /**
750
- * Whether contacts are shared across profiles in the organization
751
- */
752
- allow_contact_sharing?: boolean;
753
-
754
- /**
755
- * Whether number changes are allowed during onboarding
756
- */
757
- allow_number_change_during_onboarding?: boolean | null;
758
-
759
- /**
760
- * Whether templates are shared across profiles in the organization
761
- */
762
- allow_template_sharing?: boolean;
763
-
764
- /**
765
- * Billing contact info returned in profile responses
766
- */
767
- billing_contact?: Data.BillingContact | null;
768
-
769
- /**
770
- * Billing model: profile, organization, or profile_and_organization
771
- */
772
- billing_model?: string;
773
-
774
- /**
775
- * Brand response with nested contact, business, and compliance sections — mirrors
776
- * the request structure.
777
- */
778
- brand?: Data.Brand | null;
779
-
780
- /**
781
- * When the profile was created
782
- */
783
- created_at?: string;
784
-
785
- /**
786
- * Profile description
787
- */
788
- description?: string | null;
789
-
790
- /**
791
- * Profile email (inherited from organization)
792
- */
793
- email?: string | null;
794
-
795
- /**
796
- * Profile icon URL
797
- */
798
- icon?: string | null;
799
-
800
- /**
801
- * Whether this profile inherits contacts from the organization
802
- */
803
- inherit_contacts?: boolean;
804
-
805
- /**
806
- * Whether this profile inherits TCR brand from the organization
807
- */
808
- inherit_tcr_brand?: boolean;
809
-
810
- /**
811
- * Whether this profile inherits TCR campaign from the organization
812
- */
813
- inherit_tcr_campaign?: boolean;
814
-
815
- /**
816
- * Whether this profile inherits templates from the organization
817
- */
818
- inherit_templates?: boolean;
819
-
820
- /**
821
- * Profile name
822
- */
823
- name?: string;
824
-
825
- /**
826
- * Parent organization ID
827
- */
828
- organization_id?: string | null;
829
-
830
- /**
831
- * Direct SMS phone number
832
- */
833
- sending_phone_number?: string | null;
834
-
835
- /**
836
- * Reference to another profile for SMS/Telnyx configuration
837
- */
838
- sending_phone_number_profile_id?: string | null;
839
-
840
- /**
841
- * Reference to another profile for WhatsApp configuration
842
- */
843
- sending_whatsapp_number_profile_id?: string | null;
844
-
845
- /**
846
- * Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
847
- * only, with at least one letter.
848
- */
849
- short_name?: string | null;
850
-
851
- /**
852
- * Profile setup status: incomplete, pending_review, approved, rejected
853
- */
854
- status?: string;
855
-
856
- /**
857
- * When the profile was last updated
858
- */
859
- updated_at?: string | null;
860
-
861
- /**
862
- * WhatsApp Business Account ID associated with this profile. Present whether the
863
- * WABA is inherited from the organization or configured directly.
864
- */
865
- waba_id?: string | null;
866
-
867
- /**
868
- * Direct WhatsApp phone number
869
- */
870
- whatsapp_phone_number?: string | null;
871
- }
872
-
873
- export namespace Data {
874
- /**
875
- * Billing contact info returned in profile responses
876
- */
877
- export interface BillingContact {
878
- address?: string | null;
879
-
880
- email?: string | null;
881
-
882
- name?: string | null;
883
-
884
- phone?: string | null;
885
- }
886
-
887
- /**
888
- * Brand response with nested contact, business, and compliance sections — mirrors
889
- * the request structure.
890
- */
891
- export interface Brand {
892
- /**
893
- * Unique identifier for the brand
894
- */
895
- id?: string;
896
-
897
- /**
898
- * Business details and address information
899
- */
900
- business?: Brand.Business | null;
901
-
902
- /**
903
- * Compliance and TCR-related information
904
- */
905
- compliance?: Brand.Compliance | null;
906
-
907
- /**
908
- * Contact information for the brand
909
- */
910
- contact?: Brand.Contact | null;
911
-
912
- /**
913
- * When the brand was created
914
- */
915
- created_at?: string;
916
-
917
- /**
918
- * CSP (Campaign Service Provider) ID
919
- */
920
- csp_id?: string | null;
921
-
922
- identity_status?: 'SELF_DECLARED' | 'UNVERIFIED' | 'VERIFIED' | 'VETTED_VERIFIED' | null;
923
-
924
- /**
925
- * Whether this brand is inherited from the parent organization
926
- */
927
- is_inherited?: boolean;
928
-
929
- status?: 'ACTIVE' | 'INACTIVE' | 'SUSPENDED' | null;
930
-
931
- /**
932
- * When the brand was submitted to TCR
933
- */
934
- submitted_at?: string | null;
935
-
936
- /**
937
- * Whether this brand has been submitted to TCR
938
- */
939
- submitted_to_tcr?: boolean;
940
-
941
- /**
942
- * TCR brand ID (populated after TCR submission)
943
- */
944
- tcr_brand_id?: string | null;
945
-
946
- /**
947
- * Universal EIN from TCR
948
- */
949
- universal_ein?: string | null;
950
-
951
- /**
952
- * When the brand was last updated
953
- */
954
- updated_at?: string | null;
955
- }
956
-
957
- export namespace Brand {
958
- /**
959
- * Business details and address information
960
- */
961
- export interface Business {
962
- /**
963
- * City
964
- */
965
- city?: string | null;
966
-
967
- /**
968
- * Country code (e.g., US, CA)
969
- */
970
- country?: string | null;
971
-
972
- /**
973
- * Country where the business is registered
974
- */
975
- country_of_registration?: string | null;
976
-
977
- /**
978
- * Business entity type
979
- */
980
- entity_type?: string | null;
981
-
982
- /**
983
- * Legal business name
984
- */
985
- legal_name?: string | null;
986
-
987
- /**
988
- * Postal/ZIP code
989
- */
990
- postal_code?: string | null;
991
-
992
- /**
993
- * State/province code
994
- */
995
- state?: string | null;
996
-
997
- /**
998
- * Street address
999
- */
1000
- street?: string | null;
1001
-
1002
- /**
1003
- * Tax ID/EIN number
1004
- */
1005
- tax_id?: string | null;
1006
-
1007
- /**
1008
- * Type of tax ID (e.g., us_ein, ca_bn)
1009
- */
1010
- tax_id_type?: string | null;
1011
-
1012
- /**
1013
- * Business website URL
1014
- */
1015
- url?: string | null;
1016
- }
1017
-
1018
- /**
1019
- * Compliance and TCR-related information
1020
- */
1021
- export interface Compliance {
1022
- brand_relationship?:
1023
- | 'BASIC_ACCOUNT'
1024
- | 'MEDIUM_ACCOUNT'
1025
- | 'LARGE_ACCOUNT'
1026
- | 'SMALL_ACCOUNT'
1027
- | 'KEY_ACCOUNT'
1028
- | null;
1029
-
1030
- /**
1031
- * List of destination countries for messaging
1032
- */
1033
- destination_countries?: Array<Compliance.DestinationCountry>;
1034
-
1035
- /**
1036
- * Expected daily messaging volume
1037
- */
1038
- expected_messaging_volume?: string | null;
1039
-
1040
- /**
1041
- * Whether this is a TCR (Campaign Registry) application
1042
- */
1043
- is_tcr_application?: boolean;
1044
-
1045
- /**
1046
- * Additional notes about the business or use case
1047
- */
1048
- notes?: string | null;
1049
-
1050
- /**
1051
- * Phone number prefix for messaging (e.g., "+1")
1052
- */
1053
- phone_number_prefix?: string | null;
1054
-
1055
- /**
1056
- * Primary messaging use case description
1057
- */
1058
- primary_use_case?: string | null;
1059
-
1060
- vertical?:
1061
- | 'PROFESSIONAL'
1062
- | 'REAL_ESTATE'
1063
- | 'HEALTHCARE'
1064
- | 'HUMAN_RESOURCES'
1065
- | 'ENERGY'
1066
- | 'ENTERTAINMENT'
1067
- | 'RETAIL'
1068
- | 'TRANSPORTATION'
1069
- | 'AGRICULTURE'
1070
- | 'INSURANCE'
1071
- | 'POSTAL'
1072
- | 'EDUCATION'
1073
- | 'HOSPITALITY'
1074
- | 'FINANCIAL'
1075
- | 'POLITICAL'
1076
- | 'GAMBLING'
1077
- | 'LEGAL'
1078
- | 'CONSTRUCTION'
1079
- | 'NGO'
1080
- | 'MANUFACTURING'
1081
- | 'GOVERNMENT'
1082
- | 'TECHNOLOGY'
1083
- | 'COMMUNICATION'
1084
- | null;
1085
- }
1086
-
1087
- export namespace Compliance {
1088
- export interface DestinationCountry {
1089
- id?: string;
1090
-
1091
- isMain?: boolean;
1092
- }
1093
- }
1094
-
1095
- /**
1096
- * Contact information for the brand
1097
- */
1098
- export interface Contact {
1099
- /**
1100
- * Business/brand name
1101
- */
1102
- business_name?: string | null;
1103
-
1104
- /**
1105
- * Contact email address
1106
- */
1107
- email?: string | null;
1108
-
1109
- /**
1110
- * Primary contact name
1111
- */
1112
- name?: string;
1113
-
1114
- /**
1115
- * Contact phone number in E.164 format
1116
- */
1117
- phone?: string | null;
1118
-
1119
- /**
1120
- * Contact phone country code (e.g., "1" for US)
1121
- */
1122
- phone_country_code?: string | null;
1123
-
1124
- /**
1125
- * Contact's role in the business
1126
- */
1127
- role?: string | null;
1128
- }
1129
- }
1130
- }
1131
-
1132
- /**
1133
- * Error information
1134
- */
1135
- export interface Error {
1136
- /**
1137
- * Machine-readable error code (e.g., "RESOURCE_001")
1138
- */
1139
- code?: string;
1140
-
1141
- /**
1142
- * Additional validation error details (field-level errors)
1143
- */
1144
- details?: { [key: string]: Array<string> } | null;
1145
-
1146
- /**
1147
- * URL to documentation about this error
1148
- */
1149
- doc_url?: string | null;
1150
-
1151
- /**
1152
- * Human-readable error message
1153
- */
1154
- message?: string;
1155
- }
767
+ taxIdType?: string | null;
1156
768
 
1157
769
  /**
1158
- * Request and response metadata
770
+ * Business website URL
1159
771
  */
1160
- export interface Meta {
1161
- /**
1162
- * Unique identifier for this request (for tracing and support)
1163
- */
1164
- request_id?: string;
1165
-
1166
- /**
1167
- * Server timestamp when the response was generated
1168
- */
1169
- timestamp?: string;
1170
-
1171
- /**
1172
- * API version used for this request
1173
- */
1174
- version?: string;
1175
- }
772
+ url?: string | null;
1176
773
  }
1177
774
 
1178
775
  /**
1179
- * Standard API response envelope for all v3 endpoints
776
+ * Compliance and TCR information for brand registration
1180
777
  */
1181
- export interface ProfileUpdateResponse {
1182
- /**
1183
- * Detailed profile response for v3 API
1184
- */
1185
- data?: ProfileUpdateResponse.Data | null;
778
+ export interface SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandComplianceInfo {
779
+ brandRelationship: TcrBrandRelationship;
780
+
781
+ vertical: TcrVertical;
1186
782
 
1187
783
  /**
1188
- * Error information
784
+ * List of destination countries for messaging
1189
785
  */
1190
- error?: ProfileUpdateResponse.Error | null;
786
+ destinationCountries?: Array<DestinationCountry> | null;
1191
787
 
1192
788
  /**
1193
- * Request and response metadata
789
+ * Expected daily messaging volume
1194
790
  */
1195
- meta?: ProfileUpdateResponse.Meta;
791
+ expectedMessagingVolume?: string | null;
1196
792
 
1197
793
  /**
1198
- * Indicates whether the request was successful
794
+ * Whether this is a TCR (Campaign Registry) application
1199
795
  */
1200
- success?: boolean;
1201
- }
796
+ isTcrApplication?: boolean | null;
1202
797
 
1203
- export namespace ProfileUpdateResponse {
1204
798
  /**
1205
- * Detailed profile response for v3 API
799
+ * Additional notes about the business or use case
1206
800
  */
1207
- export interface Data {
1208
- /**
1209
- * Profile unique identifier
1210
- */
1211
- id?: string;
1212
-
1213
- /**
1214
- * Whether contacts are shared across profiles in the organization
1215
- */
1216
- allow_contact_sharing?: boolean;
1217
-
1218
- /**
1219
- * Whether number changes are allowed during onboarding
1220
- */
1221
- allow_number_change_during_onboarding?: boolean | null;
1222
-
1223
- /**
1224
- * Whether templates are shared across profiles in the organization
1225
- */
1226
- allow_template_sharing?: boolean;
1227
-
1228
- /**
1229
- * Billing contact info returned in profile responses
1230
- */
1231
- billing_contact?: Data.BillingContact | null;
1232
-
1233
- /**
1234
- * Billing model: profile, organization, or profile_and_organization
1235
- */
1236
- billing_model?: string;
1237
-
1238
- /**
1239
- * Brand response with nested contact, business, and compliance sections — mirrors
1240
- * the request structure.
1241
- */
1242
- brand?: Data.Brand | null;
1243
-
1244
- /**
1245
- * When the profile was created
1246
- */
1247
- created_at?: string;
1248
-
1249
- /**
1250
- * Profile description
1251
- */
1252
- description?: string | null;
1253
-
1254
- /**
1255
- * Profile email (inherited from organization)
1256
- */
1257
- email?: string | null;
1258
-
1259
- /**
1260
- * Profile icon URL
1261
- */
1262
- icon?: string | null;
1263
-
1264
- /**
1265
- * Whether this profile inherits contacts from the organization
1266
- */
1267
- inherit_contacts?: boolean;
1268
-
1269
- /**
1270
- * Whether this profile inherits TCR brand from the organization
1271
- */
1272
- inherit_tcr_brand?: boolean;
1273
-
1274
- /**
1275
- * Whether this profile inherits TCR campaign from the organization
1276
- */
1277
- inherit_tcr_campaign?: boolean;
1278
-
1279
- /**
1280
- * Whether this profile inherits templates from the organization
1281
- */
1282
- inherit_templates?: boolean;
1283
-
1284
- /**
1285
- * Profile name
1286
- */
1287
- name?: string;
1288
-
1289
- /**
1290
- * Parent organization ID
1291
- */
1292
- organization_id?: string | null;
1293
-
1294
- /**
1295
- * Direct SMS phone number
1296
- */
1297
- sending_phone_number?: string | null;
1298
-
1299
- /**
1300
- * Reference to another profile for SMS/Telnyx configuration
1301
- */
1302
- sending_phone_number_profile_id?: string | null;
1303
-
1304
- /**
1305
- * Reference to another profile for WhatsApp configuration
1306
- */
1307
- sending_whatsapp_number_profile_id?: string | null;
1308
-
1309
- /**
1310
- * Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
1311
- * only, with at least one letter.
1312
- */
1313
- short_name?: string | null;
1314
-
1315
- /**
1316
- * Profile setup status: incomplete, pending_review, approved, rejected
1317
- */
1318
- status?: string;
1319
-
1320
- /**
1321
- * When the profile was last updated
1322
- */
1323
- updated_at?: string | null;
1324
-
1325
- /**
1326
- * WhatsApp Business Account ID associated with this profile. Present whether the
1327
- * WABA is inherited from the organization or configured directly.
1328
- */
1329
- waba_id?: string | null;
1330
-
1331
- /**
1332
- * Direct WhatsApp phone number
1333
- */
1334
- whatsapp_phone_number?: string | null;
1335
- }
1336
-
1337
- export namespace Data {
1338
- /**
1339
- * Billing contact info returned in profile responses
1340
- */
1341
- export interface BillingContact {
1342
- address?: string | null;
1343
-
1344
- email?: string | null;
1345
-
1346
- name?: string | null;
1347
-
1348
- phone?: string | null;
1349
- }
1350
-
1351
- /**
1352
- * Brand response with nested contact, business, and compliance sections — mirrors
1353
- * the request structure.
1354
- */
1355
- export interface Brand {
1356
- /**
1357
- * Unique identifier for the brand
1358
- */
1359
- id?: string;
1360
-
1361
- /**
1362
- * Business details and address information
1363
- */
1364
- business?: Brand.Business | null;
1365
-
1366
- /**
1367
- * Compliance and TCR-related information
1368
- */
1369
- compliance?: Brand.Compliance | null;
1370
-
1371
- /**
1372
- * Contact information for the brand
1373
- */
1374
- contact?: Brand.Contact | null;
1375
-
1376
- /**
1377
- * When the brand was created
1378
- */
1379
- created_at?: string;
1380
-
1381
- /**
1382
- * CSP (Campaign Service Provider) ID
1383
- */
1384
- csp_id?: string | null;
1385
-
1386
- identity_status?: 'SELF_DECLARED' | 'UNVERIFIED' | 'VERIFIED' | 'VETTED_VERIFIED' | null;
1387
-
1388
- /**
1389
- * Whether this brand is inherited from the parent organization
1390
- */
1391
- is_inherited?: boolean;
1392
-
1393
- status?: 'ACTIVE' | 'INACTIVE' | 'SUSPENDED' | null;
1394
-
1395
- /**
1396
- * When the brand was submitted to TCR
1397
- */
1398
- submitted_at?: string | null;
1399
-
1400
- /**
1401
- * Whether this brand has been submitted to TCR
1402
- */
1403
- submitted_to_tcr?: boolean;
1404
-
1405
- /**
1406
- * TCR brand ID (populated after TCR submission)
1407
- */
1408
- tcr_brand_id?: string | null;
1409
-
1410
- /**
1411
- * Universal EIN from TCR
1412
- */
1413
- universal_ein?: string | null;
1414
-
1415
- /**
1416
- * When the brand was last updated
1417
- */
1418
- updated_at?: string | null;
1419
- }
1420
-
1421
- export namespace Brand {
1422
- /**
1423
- * Business details and address information
1424
- */
1425
- export interface Business {
1426
- /**
1427
- * City
1428
- */
1429
- city?: string | null;
1430
-
1431
- /**
1432
- * Country code (e.g., US, CA)
1433
- */
1434
- country?: string | null;
1435
-
1436
- /**
1437
- * Country where the business is registered
1438
- */
1439
- country_of_registration?: string | null;
1440
-
1441
- /**
1442
- * Business entity type
1443
- */
1444
- entity_type?: string | null;
1445
-
1446
- /**
1447
- * Legal business name
1448
- */
1449
- legal_name?: string | null;
1450
-
1451
- /**
1452
- * Postal/ZIP code
1453
- */
1454
- postal_code?: string | null;
1455
-
1456
- /**
1457
- * State/province code
1458
- */
1459
- state?: string | null;
1460
-
1461
- /**
1462
- * Street address
1463
- */
1464
- street?: string | null;
1465
-
1466
- /**
1467
- * Tax ID/EIN number
1468
- */
1469
- tax_id?: string | null;
1470
-
1471
- /**
1472
- * Type of tax ID (e.g., us_ein, ca_bn)
1473
- */
1474
- tax_id_type?: string | null;
1475
-
1476
- /**
1477
- * Business website URL
1478
- */
1479
- url?: string | null;
1480
- }
1481
-
1482
- /**
1483
- * Compliance and TCR-related information
1484
- */
1485
- export interface Compliance {
1486
- brand_relationship?:
1487
- | 'BASIC_ACCOUNT'
1488
- | 'MEDIUM_ACCOUNT'
1489
- | 'LARGE_ACCOUNT'
1490
- | 'SMALL_ACCOUNT'
1491
- | 'KEY_ACCOUNT'
1492
- | null;
1493
-
1494
- /**
1495
- * List of destination countries for messaging
1496
- */
1497
- destination_countries?: Array<Compliance.DestinationCountry>;
1498
-
1499
- /**
1500
- * Expected daily messaging volume
1501
- */
1502
- expected_messaging_volume?: string | null;
1503
-
1504
- /**
1505
- * Whether this is a TCR (Campaign Registry) application
1506
- */
1507
- is_tcr_application?: boolean;
1508
-
1509
- /**
1510
- * Additional notes about the business or use case
1511
- */
1512
- notes?: string | null;
1513
-
1514
- /**
1515
- * Phone number prefix for messaging (e.g., "+1")
1516
- */
1517
- phone_number_prefix?: string | null;
1518
-
1519
- /**
1520
- * Primary messaging use case description
1521
- */
1522
- primary_use_case?: string | null;
1523
-
1524
- vertical?:
1525
- | 'PROFESSIONAL'
1526
- | 'REAL_ESTATE'
1527
- | 'HEALTHCARE'
1528
- | 'HUMAN_RESOURCES'
1529
- | 'ENERGY'
1530
- | 'ENTERTAINMENT'
1531
- | 'RETAIL'
1532
- | 'TRANSPORTATION'
1533
- | 'AGRICULTURE'
1534
- | 'INSURANCE'
1535
- | 'POSTAL'
1536
- | 'EDUCATION'
1537
- | 'HOSPITALITY'
1538
- | 'FINANCIAL'
1539
- | 'POLITICAL'
1540
- | 'GAMBLING'
1541
- | 'LEGAL'
1542
- | 'CONSTRUCTION'
1543
- | 'NGO'
1544
- | 'MANUFACTURING'
1545
- | 'GOVERNMENT'
1546
- | 'TECHNOLOGY'
1547
- | 'COMMUNICATION'
1548
- | null;
1549
- }
1550
-
1551
- export namespace Compliance {
1552
- export interface DestinationCountry {
1553
- id?: string;
1554
-
1555
- isMain?: boolean;
1556
- }
1557
- }
1558
-
1559
- /**
1560
- * Contact information for the brand
1561
- */
1562
- export interface Contact {
1563
- /**
1564
- * Business/brand name
1565
- */
1566
- business_name?: string | null;
1567
-
1568
- /**
1569
- * Contact email address
1570
- */
1571
- email?: string | null;
1572
-
1573
- /**
1574
- * Primary contact name
1575
- */
1576
- name?: string;
1577
-
1578
- /**
1579
- * Contact phone number in E.164 format
1580
- */
1581
- phone?: string | null;
1582
-
1583
- /**
1584
- * Contact phone country code (e.g., "1" for US)
1585
- */
1586
- phone_country_code?: string | null;
1587
-
1588
- /**
1589
- * Contact's role in the business
1590
- */
1591
- role?: string | null;
1592
- }
1593
- }
1594
- }
801
+ notes?: string | null;
1595
802
 
1596
803
  /**
1597
- * Error information
804
+ * Phone number prefix for messaging (e.g., "+1")
1598
805
  */
1599
- export interface Error {
1600
- /**
1601
- * Machine-readable error code (e.g., "RESOURCE_001")
1602
- */
1603
- code?: string;
1604
-
1605
- /**
1606
- * Additional validation error details (field-level errors)
1607
- */
1608
- details?: { [key: string]: Array<string> } | null;
1609
-
1610
- /**
1611
- * URL to documentation about this error
1612
- */
1613
- doc_url?: string | null;
1614
-
1615
- /**
1616
- * Human-readable error message
1617
- */
1618
- message?: string;
1619
- }
806
+ phoneNumberPrefix?: string | null;
1620
807
 
1621
808
  /**
1622
- * Request and response metadata
809
+ * Primary messaging use case description
1623
810
  */
1624
- export interface Meta {
1625
- /**
1626
- * Unique identifier for this request (for tracing and support)
1627
- */
1628
- request_id?: string;
1629
-
1630
- /**
1631
- * Server timestamp when the response was generated
1632
- */
1633
- timestamp?: string;
1634
-
1635
- /**
1636
- * API version used for this request
1637
- */
1638
- version?: string;
1639
- }
811
+ primaryUseCase?: string | null;
1640
812
  }
1641
813
 
1642
814
  /**
1643
- * Standard API response envelope for all v3 endpoints
815
+ * Contact information for brand KYC
1644
816
  */
1645
- export interface ProfileListResponse {
817
+ export interface SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandContactInfo {
1646
818
  /**
1647
- * List of profiles response
819
+ * Primary contact name (required)
1648
820
  */
1649
- data?: ProfileListResponse.Data | null;
821
+ name: string;
1650
822
 
1651
823
  /**
1652
- * Error information
824
+ * Business/brand name
1653
825
  */
1654
- error?: ProfileListResponse.Error | null;
826
+ businessName?: string | null;
1655
827
 
1656
828
  /**
1657
- * Request and response metadata
829
+ * Contact email address
1658
830
  */
1659
- meta?: ProfileListResponse.Meta;
831
+ email?: string | null;
1660
832
 
1661
833
  /**
1662
- * Indicates whether the request was successful
834
+ * Contact phone number in E.164 format
1663
835
  */
1664
- success?: boolean;
1665
- }
836
+ phone?: string | null;
1666
837
 
1667
- export namespace ProfileListResponse {
1668
838
  /**
1669
- * List of profiles response
839
+ * Contact phone country code (e.g., "1" for US)
1670
840
  */
1671
- export interface Data {
1672
- /**
1673
- * List of profiles in the organization
1674
- */
1675
- profiles?: Array<Data.Profile>;
1676
- }
1677
-
1678
- export namespace Data {
1679
- /**
1680
- * Detailed profile response for v3 API
1681
- */
1682
- export interface Profile {
1683
- /**
1684
- * Profile unique identifier
1685
- */
1686
- id?: string;
1687
-
1688
- /**
1689
- * Whether contacts are shared across profiles in the organization
1690
- */
1691
- allow_contact_sharing?: boolean;
1692
-
1693
- /**
1694
- * Whether number changes are allowed during onboarding
1695
- */
1696
- allow_number_change_during_onboarding?: boolean | null;
1697
-
1698
- /**
1699
- * Whether templates are shared across profiles in the organization
1700
- */
1701
- allow_template_sharing?: boolean;
1702
-
1703
- /**
1704
- * Billing contact info returned in profile responses
1705
- */
1706
- billing_contact?: Profile.BillingContact | null;
1707
-
1708
- /**
1709
- * Billing model: profile, organization, or profile_and_organization
1710
- */
1711
- billing_model?: string;
1712
-
1713
- /**
1714
- * Brand response with nested contact, business, and compliance sections — mirrors
1715
- * the request structure.
1716
- */
1717
- brand?: Profile.Brand | null;
1718
-
1719
- /**
1720
- * When the profile was created
1721
- */
1722
- created_at?: string;
1723
-
1724
- /**
1725
- * Profile description
1726
- */
1727
- description?: string | null;
1728
-
1729
- /**
1730
- * Profile email (inherited from organization)
1731
- */
1732
- email?: string | null;
841
+ phoneCountryCode?: string | null;
1733
842
 
1734
- /**
1735
- * Profile icon URL
1736
- */
1737
- icon?: string | null;
1738
-
1739
- /**
1740
- * Whether this profile inherits contacts from the organization
1741
- */
1742
- inherit_contacts?: boolean;
1743
-
1744
- /**
1745
- * Whether this profile inherits TCR brand from the organization
1746
- */
1747
- inherit_tcr_brand?: boolean;
1748
-
1749
- /**
1750
- * Whether this profile inherits TCR campaign from the organization
1751
- */
1752
- inherit_tcr_campaign?: boolean;
1753
-
1754
- /**
1755
- * Whether this profile inherits templates from the organization
1756
- */
1757
- inherit_templates?: boolean;
1758
-
1759
- /**
1760
- * Profile name
1761
- */
1762
- name?: string;
1763
-
1764
- /**
1765
- * Parent organization ID
1766
- */
1767
- organization_id?: string | null;
1768
-
1769
- /**
1770
- * Direct SMS phone number
1771
- */
1772
- sending_phone_number?: string | null;
1773
-
1774
- /**
1775
- * Reference to another profile for SMS/Telnyx configuration
1776
- */
1777
- sending_phone_number_profile_id?: string | null;
1778
-
1779
- /**
1780
- * Reference to another profile for WhatsApp configuration
1781
- */
1782
- sending_whatsapp_number_profile_id?: string | null;
1783
-
1784
- /**
1785
- * Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
1786
- * only, with at least one letter.
1787
- */
1788
- short_name?: string | null;
1789
-
1790
- /**
1791
- * Profile setup status: incomplete, pending_review, approved, rejected
1792
- */
1793
- status?: string;
1794
-
1795
- /**
1796
- * When the profile was last updated
1797
- */
1798
- updated_at?: string | null;
1799
-
1800
- /**
1801
- * WhatsApp Business Account ID associated with this profile. Present whether the
1802
- * WABA is inherited from the organization or configured directly.
1803
- */
1804
- waba_id?: string | null;
1805
-
1806
- /**
1807
- * Direct WhatsApp phone number
1808
- */
1809
- whatsapp_phone_number?: string | null;
1810
- }
1811
-
1812
- export namespace Profile {
1813
- /**
1814
- * Billing contact info returned in profile responses
1815
- */
1816
- export interface BillingContact {
1817
- address?: string | null;
1818
-
1819
- email?: string | null;
1820
-
1821
- name?: string | null;
843
+ /**
844
+ * Contact's role in the business
845
+ */
846
+ role?: string | null;
847
+ }
1822
848
 
1823
- phone?: string | null;
1824
- }
849
+ export type TcrBrandRelationship =
850
+ | 'BASIC_ACCOUNT'
851
+ | 'MEDIUM_ACCOUNT'
852
+ | 'LARGE_ACCOUNT'
853
+ | 'SMALL_ACCOUNT'
854
+ | 'KEY_ACCOUNT';
855
+
856
+ export type TcrVertical =
857
+ | 'PROFESSIONAL'
858
+ | 'REAL_ESTATE'
859
+ | 'HEALTHCARE'
860
+ | 'HUMAN_RESOURCES'
861
+ | 'ENERGY'
862
+ | 'ENTERTAINMENT'
863
+ | 'RETAIL'
864
+ | 'TRANSPORTATION'
865
+ | 'AGRICULTURE'
866
+ | 'INSURANCE'
867
+ | 'POSTAL'
868
+ | 'EDUCATION'
869
+ | 'HOSPITALITY'
870
+ | 'FINANCIAL'
871
+ | 'POLITICAL'
872
+ | 'GAMBLING'
873
+ | 'LEGAL'
874
+ | 'CONSTRUCTION'
875
+ | 'NGO'
876
+ | 'MANUFACTURING'
877
+ | 'GOVERNMENT'
878
+ | 'TECHNOLOGY'
879
+ | 'COMMUNICATION';
1825
880
 
1826
- /**
1827
- * Brand response with nested contact, business, and compliance sections — mirrors
1828
- * the request structure.
1829
- */
1830
- export interface Brand {
1831
- /**
1832
- * Unique identifier for the brand
1833
- */
1834
- id?: string;
1835
-
1836
- /**
1837
- * Business details and address information
1838
- */
1839
- business?: Brand.Business | null;
1840
-
1841
- /**
1842
- * Compliance and TCR-related information
1843
- */
1844
- compliance?: Brand.Compliance | null;
1845
-
1846
- /**
1847
- * Contact information for the brand
1848
- */
1849
- contact?: Brand.Contact | null;
1850
-
1851
- /**
1852
- * When the brand was created
1853
- */
1854
- created_at?: string;
1855
-
1856
- /**
1857
- * CSP (Campaign Service Provider) ID
1858
- */
1859
- csp_id?: string | null;
1860
-
1861
- identity_status?: 'SELF_DECLARED' | 'UNVERIFIED' | 'VERIFIED' | 'VETTED_VERIFIED' | null;
1862
-
1863
- /**
1864
- * Whether this brand is inherited from the parent organization
1865
- */
1866
- is_inherited?: boolean;
1867
-
1868
- status?: 'ACTIVE' | 'INACTIVE' | 'SUSPENDED' | null;
1869
-
1870
- /**
1871
- * When the brand was submitted to TCR
1872
- */
1873
- submitted_at?: string | null;
1874
-
1875
- /**
1876
- * Whether this brand has been submitted to TCR
1877
- */
1878
- submitted_to_tcr?: boolean;
1879
-
1880
- /**
1881
- * TCR brand ID (populated after TCR submission)
1882
- */
1883
- tcr_brand_id?: string | null;
1884
-
1885
- /**
1886
- * Universal EIN from TCR
1887
- */
1888
- universal_ein?: string | null;
1889
-
1890
- /**
1891
- * When the brand was last updated
1892
- */
1893
- updated_at?: string | null;
1894
- }
1895
-
1896
- export namespace Brand {
1897
- /**
1898
- * Business details and address information
1899
- */
1900
- export interface Business {
1901
- /**
1902
- * City
1903
- */
1904
- city?: string | null;
1905
-
1906
- /**
1907
- * Country code (e.g., US, CA)
1908
- */
1909
- country?: string | null;
1910
-
1911
- /**
1912
- * Country where the business is registered
1913
- */
1914
- country_of_registration?: string | null;
1915
-
1916
- /**
1917
- * Business entity type
1918
- */
1919
- entity_type?: string | null;
1920
-
1921
- /**
1922
- * Legal business name
1923
- */
1924
- legal_name?: string | null;
1925
-
1926
- /**
1927
- * Postal/ZIP code
1928
- */
1929
- postal_code?: string | null;
1930
-
1931
- /**
1932
- * State/province code
1933
- */
1934
- state?: string | null;
1935
-
1936
- /**
1937
- * Street address
1938
- */
1939
- street?: string | null;
1940
-
1941
- /**
1942
- * Tax ID/EIN number
1943
- */
1944
- tax_id?: string | null;
1945
-
1946
- /**
1947
- * Type of tax ID (e.g., us_ein, ca_bn)
1948
- */
1949
- tax_id_type?: string | null;
1950
-
1951
- /**
1952
- * Business website URL
1953
- */
1954
- url?: string | null;
1955
- }
1956
-
1957
- /**
1958
- * Compliance and TCR-related information
1959
- */
1960
- export interface Compliance {
1961
- brand_relationship?:
1962
- | 'BASIC_ACCOUNT'
1963
- | 'MEDIUM_ACCOUNT'
1964
- | 'LARGE_ACCOUNT'
1965
- | 'SMALL_ACCOUNT'
1966
- | 'KEY_ACCOUNT'
1967
- | null;
1968
-
1969
- /**
1970
- * List of destination countries for messaging
1971
- */
1972
- destination_countries?: Array<Compliance.DestinationCountry>;
1973
-
1974
- /**
1975
- * Expected daily messaging volume
1976
- */
1977
- expected_messaging_volume?: string | null;
1978
-
1979
- /**
1980
- * Whether this is a TCR (Campaign Registry) application
1981
- */
1982
- is_tcr_application?: boolean;
1983
-
1984
- /**
1985
- * Additional notes about the business or use case
1986
- */
1987
- notes?: string | null;
1988
-
1989
- /**
1990
- * Phone number prefix for messaging (e.g., "+1")
1991
- */
1992
- phone_number_prefix?: string | null;
1993
-
1994
- /**
1995
- * Primary messaging use case description
1996
- */
1997
- primary_use_case?: string | null;
1998
-
1999
- vertical?:
2000
- | 'PROFESSIONAL'
2001
- | 'REAL_ESTATE'
2002
- | 'HEALTHCARE'
2003
- | 'HUMAN_RESOURCES'
2004
- | 'ENERGY'
2005
- | 'ENTERTAINMENT'
2006
- | 'RETAIL'
2007
- | 'TRANSPORTATION'
2008
- | 'AGRICULTURE'
2009
- | 'INSURANCE'
2010
- | 'POSTAL'
2011
- | 'EDUCATION'
2012
- | 'HOSPITALITY'
2013
- | 'FINANCIAL'
2014
- | 'POLITICAL'
2015
- | 'GAMBLING'
2016
- | 'LEGAL'
2017
- | 'CONSTRUCTION'
2018
- | 'NGO'
2019
- | 'MANUFACTURING'
2020
- | 'GOVERNMENT'
2021
- | 'TECHNOLOGY'
2022
- | 'COMMUNICATION'
2023
- | null;
2024
- }
2025
-
2026
- export namespace Compliance {
2027
- export interface DestinationCountry {
2028
- id?: string;
2029
-
2030
- isMain?: boolean;
2031
- }
2032
- }
2033
-
2034
- /**
2035
- * Contact information for the brand
2036
- */
2037
- export interface Contact {
2038
- /**
2039
- * Business/brand name
2040
- */
2041
- business_name?: string | null;
2042
-
2043
- /**
2044
- * Contact email address
2045
- */
2046
- email?: string | null;
2047
-
2048
- /**
2049
- * Primary contact name
2050
- */
2051
- name?: string;
2052
-
2053
- /**
2054
- * Contact phone number in E.164 format
2055
- */
2056
- phone?: string | null;
2057
-
2058
- /**
2059
- * Contact phone country code (e.g., "1" for US)
2060
- */
2061
- phone_country_code?: string | null;
2062
-
2063
- /**
2064
- * Contact's role in the business
2065
- */
2066
- role?: string | null;
2067
- }
2068
- }
2069
- }
2070
- }
881
+ /**
882
+ * Standard API response envelope for all v3 endpoints
883
+ */
884
+ export interface ProfileListResponse {
885
+ /**
886
+ * List of profiles response
887
+ */
888
+ data?: ProfileListResponse.Data | null;
2071
889
 
2072
890
  /**
2073
891
  * Error information
2074
892
  */
2075
- export interface Error {
2076
- /**
2077
- * Machine-readable error code (e.g., "RESOURCE_001")
2078
- */
2079
- code?: string;
2080
-
2081
- /**
2082
- * Additional validation error details (field-level errors)
2083
- */
2084
- details?: { [key: string]: Array<string> } | null;
2085
-
2086
- /**
2087
- * URL to documentation about this error
2088
- */
2089
- doc_url?: string | null;
2090
-
2091
- /**
2092
- * Human-readable error message
2093
- */
2094
- message?: string;
2095
- }
893
+ error?: WebhooksAPI.ErrorDetail | null;
2096
894
 
2097
895
  /**
2098
896
  * Request and response metadata
2099
897
  */
2100
- export interface Meta {
2101
- /**
2102
- * Unique identifier for this request (for tracing and support)
2103
- */
2104
- request_id?: string;
898
+ meta?: WebhooksAPI.APIMeta;
2105
899
 
2106
- /**
2107
- * Server timestamp when the response was generated
2108
- */
2109
- timestamp?: string;
900
+ /**
901
+ * Indicates whether the request was successful
902
+ */
903
+ success?: boolean;
904
+ }
2110
905
 
906
+ export namespace ProfileListResponse {
907
+ /**
908
+ * List of profiles response
909
+ */
910
+ export interface Data {
2111
911
  /**
2112
- * API version used for this request
912
+ * List of profiles in the organization
2113
913
  */
2114
- version?: string;
914
+ profiles?: Array<ProfilesAPI.ProfileDetail>;
2115
915
  }
2116
916
  }
2117
917
 
@@ -2128,12 +928,12 @@ export interface ProfileCompleteResponse {
2128
928
  /**
2129
929
  * Error information
2130
930
  */
2131
- error?: ProfileCompleteResponse.Error | null;
931
+ error?: WebhooksAPI.ErrorDetail | null;
2132
932
 
2133
933
  /**
2134
934
  * Request and response metadata
2135
935
  */
2136
- meta?: ProfileCompleteResponse.Meta;
936
+ meta?: WebhooksAPI.APIMeta;
2137
937
 
2138
938
  /**
2139
939
  * Indicates whether the request was successful
@@ -2158,51 +958,6 @@ export namespace ProfileCompleteResponse {
2158
958
  */
2159
959
  status?: string;
2160
960
  }
2161
-
2162
- /**
2163
- * Error information
2164
- */
2165
- export interface Error {
2166
- /**
2167
- * Machine-readable error code (e.g., "RESOURCE_001")
2168
- */
2169
- code?: string;
2170
-
2171
- /**
2172
- * Additional validation error details (field-level errors)
2173
- */
2174
- details?: { [key: string]: Array<string> } | null;
2175
-
2176
- /**
2177
- * URL to documentation about this error
2178
- */
2179
- doc_url?: string | null;
2180
-
2181
- /**
2182
- * Human-readable error message
2183
- */
2184
- message?: string;
2185
- }
2186
-
2187
- /**
2188
- * Request and response metadata
2189
- */
2190
- export interface Meta {
2191
- /**
2192
- * Unique identifier for this request (for tracing and support)
2193
- */
2194
- request_id?: string;
2195
-
2196
- /**
2197
- * Server timestamp when the response was generated
2198
- */
2199
- timestamp?: string;
2200
-
2201
- /**
2202
- * API version used for this request
2203
- */
2204
- version?: string;
2205
- }
2206
961
  }
2207
962
 
2208
963
  export interface ProfileCreateParams {
@@ -2220,7 +975,7 @@ export interface ProfileCreateParams {
2220
975
  * Body param: Billing contact information for a profile. Required when
2221
976
  * billing_model is "profile" or "profile_and_organization".
2222
977
  */
2223
- billing_contact?: ProfileCreateParams.BillingContact | null;
978
+ billing_contact?: BillingContactInfo | null;
2224
979
 
2225
980
  /**
2226
981
  * Body param: Billing model: profile, organization, or profile_and_organization
@@ -2238,7 +993,7 @@ export interface ProfileCreateParams {
2238
993
  * Body param: Brand and KYC data grouped into contact, business, and compliance
2239
994
  * sections
2240
995
  */
2241
- brand?: ProfileCreateParams.Brand | null;
996
+ brand?: BrandsBrandData | null;
2242
997
 
2243
998
  /**
2244
999
  * Body param: Profile description (optional)
@@ -2250,329 +1005,80 @@ export interface ProfileCreateParams {
2250
1005
  */
2251
1006
  icon?: string | null;
2252
1007
 
2253
- /**
2254
- * Body param: Whether this profile inherits contacts from organization (default:
2255
- * true)
2256
- */
2257
- inherit_contacts?: boolean | null;
2258
-
2259
- /**
2260
- * Body param: Whether this profile inherits TCR brand from organization (default:
2261
- * true)
2262
- */
2263
- inherit_tcr_brand?: boolean | null;
2264
-
2265
- /**
2266
- * Body param: Whether this profile inherits TCR campaign from organization
2267
- * (default: true)
2268
- */
2269
- inherit_tcr_campaign?: boolean | null;
2270
-
2271
- /**
2272
- * Body param: Whether this profile inherits templates from organization (default:
2273
- * true)
2274
- */
2275
- inherit_templates?: boolean | null;
2276
-
2277
- /**
2278
- * Body param: Profile name (required)
2279
- */
2280
- name?: string;
2281
-
2282
- /**
2283
- * Body param: Payment card details for a profile. Accepted when billing_model is
2284
- * "profile" or "profile_and_organization". These details are not stored on our
2285
- * servers and will be forwarded to the payment processor.
2286
- */
2287
- payment_details?: ProfileCreateParams.PaymentDetails | null;
2288
-
2289
- /**
2290
- * Body param: Sandbox flag - when true, the operation is simulated without side
2291
- * effects Useful for testing integrations without actual execution
2292
- */
2293
- sandbox?: boolean;
2294
-
2295
- /**
2296
- * Body param: Profile short name/abbreviation (optional). Must be 3–11 characters,
2297
- * contain only letters, numbers, and spaces, and include at least one letter.
2298
- * Example: "SALES", "Mkt 2", "Support1".
2299
- */
2300
- short_name?: string | null;
2301
-
2302
- /**
2303
- * Body param: Direct WhatsApp Business Account credentials for a profile. Use this
2304
- * when the profile should have its own WhatsApp Business Account instead of
2305
- * inheriting from the organization. Credentials must be obtained from Meta
2306
- * Business Manager by creating a System User with whatsapp_business_messaging and
2307
- * whatsapp_business_management scopes.
2308
- */
2309
- whatsapp_business_account?: ProfileCreateParams.WhatsappBusinessAccount | null;
2310
-
2311
- /**
2312
- * Header param: Unique key to ensure idempotent request processing. Must be 1-255
2313
- * alphanumeric characters, hyphens, or underscores. Responses are cached for 24
2314
- * hours per key per customer.
2315
- */
2316
- 'Idempotency-Key'?: string;
2317
-
2318
- /**
2319
- * Header param: Profile UUID to scope the request to a child profile. Only
2320
- * organization API keys can use this header. The profile must belong to the
2321
- * calling organization.
2322
- */
2323
- 'x-profile-id'?: string;
2324
- }
2325
-
2326
- export namespace ProfileCreateParams {
2327
- /**
2328
- * Billing contact information for a profile. Required when billing_model is
2329
- * "profile" or "profile_and_organization".
2330
- */
2331
- export interface BillingContact {
2332
- /**
2333
- * Email address where invoices will be sent (required)
2334
- */
2335
- email: string;
2336
-
2337
- /**
2338
- * Full name of the billing contact or company (required)
2339
- */
2340
- name: string;
2341
-
2342
- /**
2343
- * Billing address (optional). Free-form text including street, city, state, postal
2344
- * code, and country.
2345
- */
2346
- address?: string | null;
2347
-
2348
- /**
2349
- * Phone number for the billing contact (optional)
2350
- */
2351
- phone?: string | null;
2352
- }
2353
-
2354
- /**
2355
- * Brand and KYC data grouped into contact, business, and compliance sections
2356
- */
2357
- export interface Brand {
2358
- /**
2359
- * Compliance and TCR information for brand registration
2360
- */
2361
- compliance: Brand.Compliance;
2362
-
2363
- /**
2364
- * Contact information for brand KYC
2365
- */
2366
- contact: Brand.Contact;
2367
-
2368
- /**
2369
- * Business details and address for brand KYC
2370
- */
2371
- business?: Brand.Business | null;
2372
- }
2373
-
2374
- export namespace Brand {
2375
- /**
2376
- * Compliance and TCR information for brand registration
2377
- */
2378
- export interface Compliance {
2379
- brandRelationship:
2380
- | 'BASIC_ACCOUNT'
2381
- | 'MEDIUM_ACCOUNT'
2382
- | 'LARGE_ACCOUNT'
2383
- | 'SMALL_ACCOUNT'
2384
- | 'KEY_ACCOUNT';
2385
-
2386
- vertical:
2387
- | 'PROFESSIONAL'
2388
- | 'REAL_ESTATE'
2389
- | 'HEALTHCARE'
2390
- | 'HUMAN_RESOURCES'
2391
- | 'ENERGY'
2392
- | 'ENTERTAINMENT'
2393
- | 'RETAIL'
2394
- | 'TRANSPORTATION'
2395
- | 'AGRICULTURE'
2396
- | 'INSURANCE'
2397
- | 'POSTAL'
2398
- | 'EDUCATION'
2399
- | 'HOSPITALITY'
2400
- | 'FINANCIAL'
2401
- | 'POLITICAL'
2402
- | 'GAMBLING'
2403
- | 'LEGAL'
2404
- | 'CONSTRUCTION'
2405
- | 'NGO'
2406
- | 'MANUFACTURING'
2407
- | 'GOVERNMENT'
2408
- | 'TECHNOLOGY'
2409
- | 'COMMUNICATION';
2410
-
2411
- /**
2412
- * List of destination countries for messaging
2413
- */
2414
- destinationCountries?: Array<Compliance.DestinationCountry> | null;
2415
-
2416
- /**
2417
- * Expected daily messaging volume
2418
- */
2419
- expectedMessagingVolume?: string | null;
2420
-
2421
- /**
2422
- * Whether this is a TCR (Campaign Registry) application
2423
- */
2424
- isTcrApplication?: boolean | null;
2425
-
2426
- /**
2427
- * Additional notes about the business or use case
2428
- */
2429
- notes?: string | null;
2430
-
2431
- /**
2432
- * Phone number prefix for messaging (e.g., "+1")
2433
- */
2434
- phoneNumberPrefix?: string | null;
2435
-
2436
- /**
2437
- * Primary messaging use case description
2438
- */
2439
- primaryUseCase?: string | null;
2440
- }
2441
-
2442
- export namespace Compliance {
2443
- export interface DestinationCountry {
2444
- id?: string;
2445
-
2446
- isMain?: boolean;
2447
- }
2448
- }
2449
-
2450
- /**
2451
- * Contact information for brand KYC
2452
- */
2453
- export interface Contact {
2454
- /**
2455
- * Primary contact name (required)
2456
- */
2457
- name: string;
2458
-
2459
- /**
2460
- * Business/brand name
2461
- */
2462
- businessName?: string | null;
2463
-
2464
- /**
2465
- * Contact email address
2466
- */
2467
- email?: string | null;
2468
-
2469
- /**
2470
- * Contact phone number in E.164 format
2471
- */
2472
- phone?: string | null;
2473
-
2474
- /**
2475
- * Contact phone country code (e.g., "1" for US)
2476
- */
2477
- phoneCountryCode?: string | null;
2478
-
2479
- /**
2480
- * Contact's role in the business
2481
- */
2482
- role?: string | null;
2483
- }
2484
-
2485
- /**
2486
- * Business details and address for brand KYC
2487
- */
2488
- export interface Business {
2489
- /**
2490
- * City
2491
- */
2492
- city?: string | null;
2493
-
2494
- /**
2495
- * Country code (e.g., US, CA)
2496
- */
2497
- country?: string | null;
2498
-
2499
- /**
2500
- * Country where the business is registered
2501
- */
2502
- countryOfRegistration?: string | null;
2503
-
2504
- entityType?:
2505
- | 'PRIVATE_PROFIT'
2506
- | 'PUBLIC_PROFIT'
2507
- | 'NON_PROFIT'
2508
- | 'SOLE_PROPRIETOR'
2509
- | 'GOVERNMENT'
2510
- | null;
2511
-
2512
- /**
2513
- * Legal business name
2514
- */
2515
- legalName?: string | null;
2516
-
2517
- /**
2518
- * Postal/ZIP code
2519
- */
2520
- postalCode?: string | null;
1008
+ /**
1009
+ * Body param: Whether this profile inherits contacts from organization (default:
1010
+ * true)
1011
+ */
1012
+ inherit_contacts?: boolean | null;
2521
1013
 
2522
- /**
2523
- * State/province code
2524
- */
2525
- state?: string | null;
1014
+ /**
1015
+ * Body param: Whether this profile inherits TCR brand from organization (default:
1016
+ * true)
1017
+ */
1018
+ inherit_tcr_brand?: boolean | null;
2526
1019
 
2527
- /**
2528
- * Street address
2529
- */
2530
- street?: string | null;
1020
+ /**
1021
+ * Body param: Whether this profile inherits TCR campaign from organization
1022
+ * (default: true)
1023
+ */
1024
+ inherit_tcr_campaign?: boolean | null;
2531
1025
 
2532
- /**
2533
- * Tax ID/EIN number
2534
- */
2535
- taxId?: string | null;
1026
+ /**
1027
+ * Body param: Whether this profile inherits templates from organization (default:
1028
+ * true)
1029
+ */
1030
+ inherit_templates?: boolean | null;
2536
1031
 
2537
- /**
2538
- * Type of tax ID (e.g., us_ein, ca_bn)
2539
- */
2540
- taxIdType?: string | null;
1032
+ /**
1033
+ * Body param: Profile name (required)
1034
+ */
1035
+ name?: string;
2541
1036
 
2542
- /**
2543
- * Business website URL
2544
- */
2545
- url?: string | null;
2546
- }
2547
- }
1037
+ /**
1038
+ * Body param: Payment card details for a profile. Accepted when billing_model is
1039
+ * "profile" or "profile_and_organization". These details are not stored on our
1040
+ * servers and will be forwarded to the payment processor.
1041
+ */
1042
+ payment_details?: PaymentDetails | null;
2548
1043
 
2549
1044
  /**
2550
- * Payment card details for a profile. Accepted when billing_model is "profile" or
2551
- * "profile_and_organization". These details are not stored on our servers and will
2552
- * be forwarded to the payment processor.
1045
+ * Body param: Sandbox flag - when true, the operation is simulated without side
1046
+ * effects Useful for testing integrations without actual execution
2553
1047
  */
2554
- export interface PaymentDetails {
2555
- /**
2556
- * Card number (digits only, 13–19 characters)
2557
- */
2558
- card_number: string;
1048
+ sandbox?: boolean;
2559
1049
 
2560
- /**
2561
- * Card security code (3–4 digits)
2562
- */
2563
- cvc: string;
1050
+ /**
1051
+ * Body param: Profile short name/abbreviation (optional). Must be 3–11 characters,
1052
+ * contain only letters, numbers, and spaces, and include at least one letter.
1053
+ * Example: "SALES", "Mkt 2", "Support1".
1054
+ */
1055
+ short_name?: string | null;
2564
1056
 
2565
- /**
2566
- * Card expiry date in MM/YY format (e.g. "09/27")
2567
- */
2568
- expiry: string;
1057
+ /**
1058
+ * Body param: Direct WhatsApp Business Account credentials for a profile. Use this
1059
+ * when the profile should have its own WhatsApp Business Account instead of
1060
+ * inheriting from the organization. Credentials must be obtained from Meta
1061
+ * Business Manager by creating a System User with whatsapp_business_messaging and
1062
+ * whatsapp_business_management scopes.
1063
+ */
1064
+ whatsapp_business_account?: ProfileCreateParams.WhatsappBusinessAccount | null;
2569
1065
 
2570
- /**
2571
- * Billing ZIP / postal code associated with the card
2572
- */
2573
- zip_code: string;
2574
- }
1066
+ /**
1067
+ * Header param: Unique key to ensure idempotent request processing. Must be 1-255
1068
+ * alphanumeric characters, hyphens, or underscores. Responses are cached for 24
1069
+ * hours per key per customer.
1070
+ */
1071
+ 'Idempotency-Key'?: string;
1072
+
1073
+ /**
1074
+ * Header param: Profile UUID to scope the request to a child profile. Only
1075
+ * organization API keys can use this header. The profile must belong to the
1076
+ * calling organization.
1077
+ */
1078
+ 'x-profile-id'?: string;
1079
+ }
2575
1080
 
1081
+ export namespace ProfileCreateParams {
2576
1082
  /**
2577
1083
  * Direct WhatsApp Business Account credentials for a profile. Use this when the
2578
1084
  * profile should have its own WhatsApp Business Account instead of inheriting from
@@ -2631,7 +1137,7 @@ export interface ProfileUpdateParams {
2631
1137
  * Body param: Billing contact information for a profile. Required when
2632
1138
  * billing_model is "profile" or "profile_and_organization".
2633
1139
  */
2634
- billing_contact?: ProfileUpdateParams.BillingContact | null;
1140
+ billing_contact?: BillingContactInfo | null;
2635
1141
 
2636
1142
  /**
2637
1143
  * Body param: Billing model: profile, organization, or profile_and_organization
@@ -2649,7 +1155,7 @@ export interface ProfileUpdateParams {
2649
1155
  * Body param: Brand and KYC data grouped into contact, business, and compliance
2650
1156
  * sections
2651
1157
  */
2652
- brand?: ProfileUpdateParams.Brand | null;
1158
+ brand?: BrandsBrandData | null;
2653
1159
 
2654
1160
  /**
2655
1161
  * Body param: Profile description (optional)
@@ -2692,7 +1198,7 @@ export interface ProfileUpdateParams {
2692
1198
  * "profile" or "profile_and_organization". These details are not stored on our
2693
1199
  * servers and will be forwarded to the payment processor.
2694
1200
  */
2695
- payment_details?: ProfileUpdateParams.PaymentDetails | null;
1201
+ payment_details?: PaymentDetails | null;
2696
1202
 
2697
1203
  /**
2698
1204
  * Body param: Sandbox flag - when true, the operation is simulated without side
@@ -2744,257 +1250,6 @@ export interface ProfileUpdateParams {
2744
1250
  'x-profile-id'?: string;
2745
1251
  }
2746
1252
 
2747
- export namespace ProfileUpdateParams {
2748
- /**
2749
- * Billing contact information for a profile. Required when billing_model is
2750
- * "profile" or "profile_and_organization".
2751
- */
2752
- export interface BillingContact {
2753
- /**
2754
- * Email address where invoices will be sent (required)
2755
- */
2756
- email: string;
2757
-
2758
- /**
2759
- * Full name of the billing contact or company (required)
2760
- */
2761
- name: string;
2762
-
2763
- /**
2764
- * Billing address (optional). Free-form text including street, city, state, postal
2765
- * code, and country.
2766
- */
2767
- address?: string | null;
2768
-
2769
- /**
2770
- * Phone number for the billing contact (optional)
2771
- */
2772
- phone?: string | null;
2773
- }
2774
-
2775
- /**
2776
- * Brand and KYC data grouped into contact, business, and compliance sections
2777
- */
2778
- export interface Brand {
2779
- /**
2780
- * Compliance and TCR information for brand registration
2781
- */
2782
- compliance: Brand.Compliance;
2783
-
2784
- /**
2785
- * Contact information for brand KYC
2786
- */
2787
- contact: Brand.Contact;
2788
-
2789
- /**
2790
- * Business details and address for brand KYC
2791
- */
2792
- business?: Brand.Business | null;
2793
- }
2794
-
2795
- export namespace Brand {
2796
- /**
2797
- * Compliance and TCR information for brand registration
2798
- */
2799
- export interface Compliance {
2800
- brandRelationship:
2801
- | 'BASIC_ACCOUNT'
2802
- | 'MEDIUM_ACCOUNT'
2803
- | 'LARGE_ACCOUNT'
2804
- | 'SMALL_ACCOUNT'
2805
- | 'KEY_ACCOUNT';
2806
-
2807
- vertical:
2808
- | 'PROFESSIONAL'
2809
- | 'REAL_ESTATE'
2810
- | 'HEALTHCARE'
2811
- | 'HUMAN_RESOURCES'
2812
- | 'ENERGY'
2813
- | 'ENTERTAINMENT'
2814
- | 'RETAIL'
2815
- | 'TRANSPORTATION'
2816
- | 'AGRICULTURE'
2817
- | 'INSURANCE'
2818
- | 'POSTAL'
2819
- | 'EDUCATION'
2820
- | 'HOSPITALITY'
2821
- | 'FINANCIAL'
2822
- | 'POLITICAL'
2823
- | 'GAMBLING'
2824
- | 'LEGAL'
2825
- | 'CONSTRUCTION'
2826
- | 'NGO'
2827
- | 'MANUFACTURING'
2828
- | 'GOVERNMENT'
2829
- | 'TECHNOLOGY'
2830
- | 'COMMUNICATION';
2831
-
2832
- /**
2833
- * List of destination countries for messaging
2834
- */
2835
- destinationCountries?: Array<Compliance.DestinationCountry> | null;
2836
-
2837
- /**
2838
- * Expected daily messaging volume
2839
- */
2840
- expectedMessagingVolume?: string | null;
2841
-
2842
- /**
2843
- * Whether this is a TCR (Campaign Registry) application
2844
- */
2845
- isTcrApplication?: boolean | null;
2846
-
2847
- /**
2848
- * Additional notes about the business or use case
2849
- */
2850
- notes?: string | null;
2851
-
2852
- /**
2853
- * Phone number prefix for messaging (e.g., "+1")
2854
- */
2855
- phoneNumberPrefix?: string | null;
2856
-
2857
- /**
2858
- * Primary messaging use case description
2859
- */
2860
- primaryUseCase?: string | null;
2861
- }
2862
-
2863
- export namespace Compliance {
2864
- export interface DestinationCountry {
2865
- id?: string;
2866
-
2867
- isMain?: boolean;
2868
- }
2869
- }
2870
-
2871
- /**
2872
- * Contact information for brand KYC
2873
- */
2874
- export interface Contact {
2875
- /**
2876
- * Primary contact name (required)
2877
- */
2878
- name: string;
2879
-
2880
- /**
2881
- * Business/brand name
2882
- */
2883
- businessName?: string | null;
2884
-
2885
- /**
2886
- * Contact email address
2887
- */
2888
- email?: string | null;
2889
-
2890
- /**
2891
- * Contact phone number in E.164 format
2892
- */
2893
- phone?: string | null;
2894
-
2895
- /**
2896
- * Contact phone country code (e.g., "1" for US)
2897
- */
2898
- phoneCountryCode?: string | null;
2899
-
2900
- /**
2901
- * Contact's role in the business
2902
- */
2903
- role?: string | null;
2904
- }
2905
-
2906
- /**
2907
- * Business details and address for brand KYC
2908
- */
2909
- export interface Business {
2910
- /**
2911
- * City
2912
- */
2913
- city?: string | null;
2914
-
2915
- /**
2916
- * Country code (e.g., US, CA)
2917
- */
2918
- country?: string | null;
2919
-
2920
- /**
2921
- * Country where the business is registered
2922
- */
2923
- countryOfRegistration?: string | null;
2924
-
2925
- entityType?:
2926
- | 'PRIVATE_PROFIT'
2927
- | 'PUBLIC_PROFIT'
2928
- | 'NON_PROFIT'
2929
- | 'SOLE_PROPRIETOR'
2930
- | 'GOVERNMENT'
2931
- | null;
2932
-
2933
- /**
2934
- * Legal business name
2935
- */
2936
- legalName?: string | null;
2937
-
2938
- /**
2939
- * Postal/ZIP code
2940
- */
2941
- postalCode?: string | null;
2942
-
2943
- /**
2944
- * State/province code
2945
- */
2946
- state?: string | null;
2947
-
2948
- /**
2949
- * Street address
2950
- */
2951
- street?: string | null;
2952
-
2953
- /**
2954
- * Tax ID/EIN number
2955
- */
2956
- taxId?: string | null;
2957
-
2958
- /**
2959
- * Type of tax ID (e.g., us_ein, ca_bn)
2960
- */
2961
- taxIdType?: string | null;
2962
-
2963
- /**
2964
- * Business website URL
2965
- */
2966
- url?: string | null;
2967
- }
2968
- }
2969
-
2970
- /**
2971
- * Payment card details for a profile. Accepted when billing_model is "profile" or
2972
- * "profile_and_organization". These details are not stored on our servers and will
2973
- * be forwarded to the payment processor.
2974
- */
2975
- export interface PaymentDetails {
2976
- /**
2977
- * Card number (digits only, 13–19 characters)
2978
- */
2979
- card_number: string;
2980
-
2981
- /**
2982
- * Card security code (3–4 digits)
2983
- */
2984
- cvc: string;
2985
-
2986
- /**
2987
- * Card expiry date in MM/YY format (e.g. "09/27")
2988
- */
2989
- expiry: string;
2990
-
2991
- /**
2992
- * Billing ZIP / postal code associated with the card
2993
- */
2994
- zip_code: string;
2995
- }
2996
- }
2997
-
2998
1253
  export interface ProfileListParams {
2999
1254
  /**
3000
1255
  * Profile UUID to scope the request to a child profile. Only organization API keys
@@ -3050,9 +1305,17 @@ Profiles.Campaigns = Campaigns;
3050
1305
 
3051
1306
  export declare namespace Profiles {
3052
1307
  export {
3053
- type ProfileCreateResponse as ProfileCreateResponse,
3054
- type ProfileRetrieveResponse as ProfileRetrieveResponse,
3055
- type ProfileUpdateResponse as ProfileUpdateResponse,
1308
+ type APIResponseOfProfileDetail as APIResponseOfProfileDetail,
1309
+ type BillingContactInfo as BillingContactInfo,
1310
+ type BrandsBrandData as BrandsBrandData,
1311
+ type DestinationCountry as DestinationCountry,
1312
+ type PaymentDetails as PaymentDetails,
1313
+ type ProfileDetail as ProfileDetail,
1314
+ type SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo as SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo,
1315
+ type SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandComplianceInfo as SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandComplianceInfo,
1316
+ type SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandContactInfo as SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandContactInfo,
1317
+ type TcrBrandRelationship as TcrBrandRelationship,
1318
+ type TcrVertical as TcrVertical,
3056
1319
  type ProfileListResponse as ProfileListResponse,
3057
1320
  type ProfileCompleteResponse as ProfileCompleteResponse,
3058
1321
  type ProfileCreateParams as ProfileCreateParams,
@@ -3065,8 +1328,12 @@ export declare namespace Profiles {
3065
1328
 
3066
1329
  export {
3067
1330
  Campaigns as Campaigns,
3068
- type CampaignCreateResponse as CampaignCreateResponse,
3069
- type CampaignUpdateResponse as CampaignUpdateResponse,
1331
+ type APIResponseOfTcrCampaignWithUseCases as APIResponseOfTcrCampaignWithUseCases,
1332
+ type BaseDto as BaseDto,
1333
+ type CampaignData as CampaignData,
1334
+ type MessagingUseCaseUs as MessagingUseCaseUs,
1335
+ type SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData as SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData,
1336
+ type TcrCampaignWithUseCases as TcrCampaignWithUseCases,
3070
1337
  type CampaignListResponse as CampaignListResponse,
3071
1338
  type CampaignCreateParams as CampaignCreateParams,
3072
1339
  type CampaignUpdateParams as CampaignUpdateParams,