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