@sentdm/sentdm 0.25.4 → 0.26.0

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