@sentdm/sentdm 0.25.3 → 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 (110) hide show
  1. package/CHANGELOG.md +22 -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/internal/utils/log.d.mts.map +1 -1
  9. package/internal/utils/log.d.ts.map +1 -1
  10. package/internal/utils/log.js +3 -2
  11. package/internal/utils/log.js.map +1 -1
  12. package/internal/utils/log.mjs +3 -2
  13. package/internal/utils/log.mjs.map +1 -1
  14. package/package.json +1 -1
  15. package/resources/contacts.d.mts +488 -68
  16. package/resources/contacts.d.mts.map +1 -1
  17. package/resources/contacts.d.ts +488 -68
  18. package/resources/contacts.d.ts.map +1 -1
  19. package/resources/contacts.js +3 -3
  20. package/resources/contacts.js.map +1 -1
  21. package/resources/contacts.mjs +3 -3
  22. package/resources/contacts.mjs.map +1 -1
  23. package/resources/index.d.mts +6 -6
  24. package/resources/index.d.mts.map +1 -1
  25. package/resources/index.d.ts +6 -6
  26. package/resources/index.d.ts.map +1 -1
  27. package/resources/index.js.map +1 -1
  28. package/resources/index.mjs.map +1 -1
  29. package/resources/me.d.mts +113 -40
  30. package/resources/me.d.mts.map +1 -1
  31. package/resources/me.d.ts +113 -40
  32. package/resources/me.d.ts.map +1 -1
  33. package/resources/me.js.map +1 -1
  34. package/resources/me.mjs.map +1 -1
  35. package/resources/messages.d.mts +130 -9
  36. package/resources/messages.d.mts.map +1 -1
  37. package/resources/messages.d.ts +130 -9
  38. package/resources/messages.d.ts.map +1 -1
  39. package/resources/messages.js.map +1 -1
  40. package/resources/messages.mjs.map +1 -1
  41. package/resources/numbers.d.mts +42 -3
  42. package/resources/numbers.d.mts.map +1 -1
  43. package/resources/numbers.d.ts +42 -3
  44. package/resources/numbers.d.ts.map +1 -1
  45. package/resources/numbers.js.map +1 -1
  46. package/resources/numbers.mjs.map +1 -1
  47. package/resources/profiles/campaigns.d.mts +480 -147
  48. package/resources/profiles/campaigns.d.mts.map +1 -1
  49. package/resources/profiles/campaigns.d.ts +480 -147
  50. package/resources/profiles/campaigns.d.ts.map +1 -1
  51. package/resources/profiles/campaigns.js +39 -41
  52. package/resources/profiles/campaigns.js.map +1 -1
  53. package/resources/profiles/campaigns.mjs +39 -41
  54. package/resources/profiles/campaigns.mjs.map +1 -1
  55. package/resources/profiles/index.d.mts +2 -2
  56. package/resources/profiles/index.d.mts.map +1 -1
  57. package/resources/profiles/index.d.ts +2 -2
  58. package/resources/profiles/index.d.ts.map +1 -1
  59. package/resources/profiles/index.js.map +1 -1
  60. package/resources/profiles/index.mjs.map +1 -1
  61. package/resources/profiles/profiles.d.mts +1699 -391
  62. package/resources/profiles/profiles.d.mts.map +1 -1
  63. package/resources/profiles/profiles.d.ts +1699 -391
  64. package/resources/profiles/profiles.d.ts.map +1 -1
  65. package/resources/profiles/profiles.js +3 -6
  66. package/resources/profiles/profiles.js.map +1 -1
  67. package/resources/profiles/profiles.mjs +3 -6
  68. package/resources/profiles/profiles.mjs.map +1 -1
  69. package/resources/templates.d.mts +993 -172
  70. package/resources/templates.d.mts.map +1 -1
  71. package/resources/templates.d.ts +993 -172
  72. package/resources/templates.d.ts.map +1 -1
  73. package/resources/templates.js +3 -3
  74. package/resources/templates.js.map +1 -1
  75. package/resources/templates.mjs +3 -3
  76. package/resources/templates.mjs.map +1 -1
  77. package/resources/users.d.mts +373 -46
  78. package/resources/users.d.mts.map +1 -1
  79. package/resources/users.d.ts +373 -46
  80. package/resources/users.d.ts.map +1 -1
  81. package/resources/users.js +3 -7
  82. package/resources/users.js.map +1 -1
  83. package/resources/users.mjs +3 -7
  84. package/resources/users.mjs.map +1 -1
  85. package/resources/webhooks.d.mts +624 -110
  86. package/resources/webhooks.d.mts.map +1 -1
  87. package/resources/webhooks.d.ts +624 -110
  88. package/resources/webhooks.d.ts.map +1 -1
  89. package/resources/webhooks.js +6 -7
  90. package/resources/webhooks.js.map +1 -1
  91. package/resources/webhooks.mjs +6 -7
  92. package/resources/webhooks.mjs.map +1 -1
  93. package/src/client.ts +33 -68
  94. package/src/internal/utils/log.ts +2 -1
  95. package/src/resources/contacts.ts +567 -66
  96. package/src/resources/index.ts +17 -34
  97. package/src/resources/me.ts +132 -51
  98. package/src/resources/messages.ts +147 -9
  99. package/src/resources/numbers.ts +47 -3
  100. package/src/resources/profiles/campaigns.ts +668 -169
  101. package/src/resources/profiles/index.ts +5 -17
  102. package/src/resources/profiles/profiles.ts +2278 -545
  103. package/src/resources/templates.ts +1261 -206
  104. package/src/resources/users.ts +430 -47
  105. package/src/resources/webhooks.ts +742 -120
  106. package/src/version.ts +1 -1
  107. package/version.d.mts +1 -1
  108. package/version.d.ts +1 -1
  109. package/version.js +1 -1
  110. package/version.mjs +1 -1
@@ -1,8 +1,6 @@
1
1
  import { APIResource } from "../../core/resource.mjs";
2
- import * as ProfilesAPI from "./profiles.mjs";
3
- import * as WebhooksAPI from "../webhooks.mjs";
4
2
  import * as CampaignsAPI from "./campaigns.mjs";
5
- import { APIResponseOfTcrCampaignWithUseCases, BaseDto, CampaignCreateParams, CampaignData, CampaignDeleteParams, CampaignListParams, CampaignListResponse, CampaignUpdateParams, Campaigns, MessagingUseCaseUs, SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData, TcrCampaignWithUseCases } from "./campaigns.mjs";
3
+ import { CampaignCreateParams, CampaignCreateResponse, CampaignDeleteParams, CampaignListParams, CampaignListResponse, CampaignUpdateParams, CampaignUpdateResponse, Campaigns } from "./campaigns.mjs";
6
4
  import { APIPromise } from "../../core/api-promise.mjs";
7
5
  import { RequestOptions } from "../../internal/request-options.mjs";
8
6
  /**
@@ -50,11 +48,10 @@ export declare class Profiles extends APIResource {
50
48
  *
51
49
  * @example
52
50
  * ```ts
53
- * const apiResponseOfProfileDetail =
54
- * await client.profiles.create();
51
+ * const profile = await client.profiles.create();
55
52
  * ```
56
53
  */
57
- create(params: ProfileCreateParams, options?: RequestOptions): APIPromise<APIResponseOfProfileDetail>;
54
+ create(params: ProfileCreateParams, options?: RequestOptions): APIPromise<ProfileCreateResponse>;
58
55
  /**
59
56
  * Retrieves detailed information about a specific sender profile within an
60
57
  * organization, including brand and KYC information if a brand has been
@@ -62,11 +59,10 @@ export declare class Profiles extends APIResource {
62
59
  *
63
60
  * @example
64
61
  * ```ts
65
- * const apiResponseOfProfileDetail =
66
- * await client.profiles.retrieve('profileId');
62
+ * const profile = await client.profiles.retrieve('profileId');
67
63
  * ```
68
64
  */
69
- retrieve(profileID: string, params?: ProfileRetrieveParams | null | undefined, options?: RequestOptions): APIPromise<APIResponseOfProfileDetail>;
65
+ retrieve(profileID: string, params?: ProfileRetrieveParams | null | undefined, options?: RequestOptions): APIPromise<ProfileRetrieveResponse>;
70
66
  /**
71
67
  * Updates a profile's configuration and settings. Requires admin role in the
72
68
  * organization. Only provided fields will be updated (partial update).
@@ -89,11 +85,10 @@ export declare class Profiles extends APIResource {
89
85
  *
90
86
  * @example
91
87
  * ```ts
92
- * const apiResponseOfProfileDetail =
93
- * await client.profiles.update('profileId');
88
+ * const profile = await client.profiles.update('profileId');
94
89
  * ```
95
90
  */
96
- update(profileID: string, params: ProfileUpdateParams, options?: RequestOptions): APIPromise<APIResponseOfProfileDetail>;
91
+ update(profileID: string, params: ProfileUpdateParams, options?: RequestOptions): APIPromise<ProfileUpdateResponse>;
97
92
  /**
98
93
  * Retrieves all sender profiles within an organization, including brand
99
94
  * information for each profile. Profiles represent different brands, departments,
@@ -152,485 +147,1068 @@ export declare class Profiles extends APIResource {
152
147
  /**
153
148
  * Standard API response envelope for all v3 endpoints
154
149
  */
155
- export interface APIResponseOfProfileDetail {
150
+ export interface ProfileCreateResponse {
156
151
  /**
157
152
  * Detailed profile response for v3 API
158
153
  */
159
- data?: ProfileDetail | null;
154
+ data?: ProfileCreateResponse.Data | null;
160
155
  /**
161
156
  * Error information
162
157
  */
163
- error?: WebhooksAPI.ErrorDetail | null;
158
+ error?: ProfileCreateResponse.Error | null;
164
159
  /**
165
160
  * Request and response metadata
166
161
  */
167
- meta?: WebhooksAPI.APIMeta;
162
+ meta?: ProfileCreateResponse.Meta;
168
163
  /**
169
164
  * Indicates whether the request was successful
170
165
  */
171
166
  success?: boolean;
172
167
  }
173
- /**
174
- * Billing contact information for a profile. Required when billing_model is
175
- * "profile" or "profile_and_organization".
176
- */
177
- export interface BillingContactInfo {
178
- /**
179
- * Email address where invoices will be sent (required)
180
- */
181
- email: string;
168
+ export declare namespace ProfileCreateResponse {
182
169
  /**
183
- * Full name of the billing contact or company (required)
170
+ * Detailed profile response for v3 API
184
171
  */
185
- name: string;
172
+ interface Data {
173
+ /**
174
+ * Profile unique identifier
175
+ */
176
+ id?: string;
177
+ /**
178
+ * Whether contacts are shared across profiles in the organization
179
+ */
180
+ allow_contact_sharing?: boolean;
181
+ /**
182
+ * Whether number changes are allowed during onboarding
183
+ */
184
+ allow_number_change_during_onboarding?: boolean | null;
185
+ /**
186
+ * Whether templates are shared across profiles in the organization
187
+ */
188
+ allow_template_sharing?: boolean;
189
+ /**
190
+ * Billing contact info returned in profile responses
191
+ */
192
+ billing_contact?: Data.BillingContact | null;
193
+ /**
194
+ * Billing model: profile, organization, or profile_and_organization
195
+ */
196
+ billing_model?: string;
197
+ /**
198
+ * Brand response with nested contact, business, and compliance sections — mirrors
199
+ * the request structure.
200
+ */
201
+ brand?: Data.Brand | null;
202
+ /**
203
+ * When the profile was created
204
+ */
205
+ created_at?: string;
206
+ /**
207
+ * Profile description
208
+ */
209
+ description?: string | null;
210
+ /**
211
+ * Profile email (inherited from organization)
212
+ */
213
+ email?: string | null;
214
+ /**
215
+ * Profile icon URL
216
+ */
217
+ icon?: string | null;
218
+ /**
219
+ * Whether this profile inherits contacts from the organization
220
+ */
221
+ inherit_contacts?: boolean;
222
+ /**
223
+ * Whether this profile inherits TCR brand from the organization
224
+ */
225
+ inherit_tcr_brand?: boolean;
226
+ /**
227
+ * Whether this profile inherits TCR campaign from the organization
228
+ */
229
+ inherit_tcr_campaign?: boolean;
230
+ /**
231
+ * Whether this profile inherits templates from the organization
232
+ */
233
+ inherit_templates?: boolean;
234
+ /**
235
+ * Profile name
236
+ */
237
+ name?: string;
238
+ /**
239
+ * Parent organization ID
240
+ */
241
+ organization_id?: string | null;
242
+ /**
243
+ * Direct SMS phone number
244
+ */
245
+ sending_phone_number?: string | null;
246
+ /**
247
+ * Reference to another profile for SMS/Telnyx configuration
248
+ */
249
+ sending_phone_number_profile_id?: string | null;
250
+ /**
251
+ * Reference to another profile for WhatsApp configuration
252
+ */
253
+ sending_whatsapp_number_profile_id?: string | null;
254
+ /**
255
+ * Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
256
+ * only, with at least one letter.
257
+ */
258
+ short_name?: string | null;
259
+ /**
260
+ * Profile setup status: incomplete, pending_review, approved, rejected
261
+ */
262
+ status?: string;
263
+ /**
264
+ * When the profile was last updated
265
+ */
266
+ updated_at?: string | null;
267
+ /**
268
+ * WhatsApp Business Account ID associated with this profile. Present whether the
269
+ * WABA is inherited from the organization or configured directly.
270
+ */
271
+ waba_id?: string | null;
272
+ /**
273
+ * Direct WhatsApp phone number
274
+ */
275
+ whatsapp_phone_number?: string | null;
276
+ }
277
+ namespace Data {
278
+ /**
279
+ * Billing contact info returned in profile responses
280
+ */
281
+ interface BillingContact {
282
+ address?: string | null;
283
+ email?: string | null;
284
+ name?: string | null;
285
+ phone?: string | null;
286
+ }
287
+ /**
288
+ * Brand response with nested contact, business, and compliance sections — mirrors
289
+ * the request structure.
290
+ */
291
+ interface Brand {
292
+ /**
293
+ * Unique identifier for the brand
294
+ */
295
+ id?: string;
296
+ /**
297
+ * Business details and address information
298
+ */
299
+ business?: Brand.Business | null;
300
+ /**
301
+ * Compliance and TCR-related information
302
+ */
303
+ compliance?: Brand.Compliance | null;
304
+ /**
305
+ * Contact information for the brand
306
+ */
307
+ contact?: Brand.Contact | null;
308
+ /**
309
+ * When the brand was created
310
+ */
311
+ created_at?: string;
312
+ /**
313
+ * CSP (Campaign Service Provider) ID
314
+ */
315
+ csp_id?: string | null;
316
+ identity_status?: 'SELF_DECLARED' | 'UNVERIFIED' | 'VERIFIED' | 'VETTED_VERIFIED' | null;
317
+ /**
318
+ * Whether this brand is inherited from the parent organization
319
+ */
320
+ is_inherited?: boolean;
321
+ status?: 'ACTIVE' | 'INACTIVE' | 'SUSPENDED' | null;
322
+ /**
323
+ * When the brand was submitted to TCR
324
+ */
325
+ submitted_at?: string | null;
326
+ /**
327
+ * Whether this brand has been submitted to TCR
328
+ */
329
+ submitted_to_tcr?: boolean;
330
+ /**
331
+ * TCR brand ID (populated after TCR submission)
332
+ */
333
+ tcr_brand_id?: string | null;
334
+ /**
335
+ * Universal EIN from TCR
336
+ */
337
+ universal_ein?: string | null;
338
+ /**
339
+ * When the brand was last updated
340
+ */
341
+ updated_at?: string | null;
342
+ }
343
+ namespace Brand {
344
+ /**
345
+ * Business details and address information
346
+ */
347
+ interface Business {
348
+ /**
349
+ * City
350
+ */
351
+ city?: string | null;
352
+ /**
353
+ * Country code (e.g., US, CA)
354
+ */
355
+ country?: string | null;
356
+ /**
357
+ * Country where the business is registered
358
+ */
359
+ country_of_registration?: string | null;
360
+ /**
361
+ * Business entity type
362
+ */
363
+ entity_type?: string | null;
364
+ /**
365
+ * Legal business name
366
+ */
367
+ legal_name?: string | null;
368
+ /**
369
+ * Postal/ZIP code
370
+ */
371
+ postal_code?: string | null;
372
+ /**
373
+ * State/province code
374
+ */
375
+ state?: string | null;
376
+ /**
377
+ * Street address
378
+ */
379
+ street?: string | null;
380
+ /**
381
+ * Tax ID/EIN number
382
+ */
383
+ tax_id?: string | null;
384
+ /**
385
+ * Type of tax ID (e.g., us_ein, ca_bn)
386
+ */
387
+ tax_id_type?: string | null;
388
+ /**
389
+ * Business website URL
390
+ */
391
+ url?: string | null;
392
+ }
393
+ /**
394
+ * Compliance and TCR-related information
395
+ */
396
+ interface Compliance {
397
+ brand_relationship?: 'BASIC_ACCOUNT' | 'MEDIUM_ACCOUNT' | 'LARGE_ACCOUNT' | 'SMALL_ACCOUNT' | 'KEY_ACCOUNT' | null;
398
+ /**
399
+ * List of destination countries for messaging
400
+ */
401
+ destination_countries?: Array<Compliance.DestinationCountry>;
402
+ /**
403
+ * Expected daily messaging volume
404
+ */
405
+ expected_messaging_volume?: string | null;
406
+ /**
407
+ * Whether this is a TCR (Campaign Registry) application
408
+ */
409
+ is_tcr_application?: boolean;
410
+ /**
411
+ * Additional notes about the business or use case
412
+ */
413
+ notes?: string | null;
414
+ /**
415
+ * Phone number prefix for messaging (e.g., "+1")
416
+ */
417
+ phone_number_prefix?: string | null;
418
+ /**
419
+ * Primary messaging use case description
420
+ */
421
+ primary_use_case?: string | null;
422
+ vertical?: 'PROFESSIONAL' | 'REAL_ESTATE' | 'HEALTHCARE' | 'HUMAN_RESOURCES' | 'ENERGY' | 'ENTERTAINMENT' | 'RETAIL' | 'TRANSPORTATION' | 'AGRICULTURE' | 'INSURANCE' | 'POSTAL' | 'EDUCATION' | 'HOSPITALITY' | 'FINANCIAL' | 'POLITICAL' | 'GAMBLING' | 'LEGAL' | 'CONSTRUCTION' | 'NGO' | 'MANUFACTURING' | 'GOVERNMENT' | 'TECHNOLOGY' | 'COMMUNICATION' | null;
423
+ }
424
+ namespace Compliance {
425
+ interface DestinationCountry {
426
+ id?: string;
427
+ isMain?: boolean;
428
+ }
429
+ }
430
+ /**
431
+ * Contact information for the brand
432
+ */
433
+ interface Contact {
434
+ /**
435
+ * Business/brand name
436
+ */
437
+ business_name?: string | null;
438
+ /**
439
+ * Contact email address
440
+ */
441
+ email?: string | null;
442
+ /**
443
+ * Primary contact name
444
+ */
445
+ name?: string;
446
+ /**
447
+ * Contact phone number in E.164 format
448
+ */
449
+ phone?: string | null;
450
+ /**
451
+ * Contact phone country code (e.g., "1" for US)
452
+ */
453
+ phone_country_code?: string | null;
454
+ /**
455
+ * Contact's role in the business
456
+ */
457
+ role?: string | null;
458
+ }
459
+ }
460
+ }
186
461
  /**
187
- * Billing address (optional). Free-form text including street, city, state, postal
188
- * code, and country.
462
+ * Error information
189
463
  */
190
- address?: string | null;
464
+ interface Error {
465
+ /**
466
+ * Machine-readable error code (e.g., "RESOURCE_001")
467
+ */
468
+ code?: string;
469
+ /**
470
+ * Additional validation error details (field-level errors)
471
+ */
472
+ details?: {
473
+ [key: string]: Array<string>;
474
+ } | null;
475
+ /**
476
+ * URL to documentation about this error
477
+ */
478
+ doc_url?: string | null;
479
+ /**
480
+ * Human-readable error message
481
+ */
482
+ message?: string;
483
+ }
191
484
  /**
192
- * Phone number for the billing contact (optional)
485
+ * Request and response metadata
193
486
  */
194
- phone?: string | null;
487
+ interface Meta {
488
+ /**
489
+ * Unique identifier for this request (for tracing and support)
490
+ */
491
+ request_id?: string;
492
+ /**
493
+ * Server timestamp when the response was generated
494
+ */
495
+ timestamp?: string;
496
+ /**
497
+ * API version used for this request
498
+ */
499
+ version?: string;
500
+ }
195
501
  }
196
502
  /**
197
- * Brand and KYC data grouped into contact, business, and compliance sections
503
+ * Standard API response envelope for all v3 endpoints
198
504
  */
199
- export interface BrandsBrandData {
505
+ export interface ProfileRetrieveResponse {
200
506
  /**
201
- * Compliance and TCR information for brand registration
507
+ * Detailed profile response for v3 API
202
508
  */
203
- compliance: SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandComplianceInfo;
509
+ data?: ProfileRetrieveResponse.Data | null;
204
510
  /**
205
- * Contact information for brand KYC
511
+ * Error information
206
512
  */
207
- contact: SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandContactInfo;
513
+ error?: ProfileRetrieveResponse.Error | null;
208
514
  /**
209
- * Business details and address for brand KYC
515
+ * Request and response metadata
210
516
  */
211
- business?: SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo | null;
212
- }
213
- export interface DestinationCountry {
214
- id?: string;
215
- isMain?: boolean;
216
- }
217
- /**
218
- * Payment card details for a profile. Accepted when billing_model is "profile" or
219
- * "profile_and_organization". These details are not stored on our servers and will
220
- * be forwarded to the payment processor.
221
- */
222
- export interface PaymentDetails {
517
+ meta?: ProfileRetrieveResponse.Meta;
223
518
  /**
224
- * Card number (digits only, 13–19 characters)
519
+ * Indicates whether the request was successful
225
520
  */
226
- card_number: string;
521
+ success?: boolean;
522
+ }
523
+ export declare namespace ProfileRetrieveResponse {
227
524
  /**
228
- * Card security code (3–4 digits)
525
+ * Detailed profile response for v3 API
229
526
  */
230
- cvc: string;
527
+ interface Data {
528
+ /**
529
+ * Profile unique identifier
530
+ */
531
+ id?: string;
532
+ /**
533
+ * Whether contacts are shared across profiles in the organization
534
+ */
535
+ allow_contact_sharing?: boolean;
536
+ /**
537
+ * Whether number changes are allowed during onboarding
538
+ */
539
+ allow_number_change_during_onboarding?: boolean | null;
540
+ /**
541
+ * Whether templates are shared across profiles in the organization
542
+ */
543
+ allow_template_sharing?: boolean;
544
+ /**
545
+ * Billing contact info returned in profile responses
546
+ */
547
+ billing_contact?: Data.BillingContact | null;
548
+ /**
549
+ * Billing model: profile, organization, or profile_and_organization
550
+ */
551
+ billing_model?: string;
552
+ /**
553
+ * Brand response with nested contact, business, and compliance sections — mirrors
554
+ * the request structure.
555
+ */
556
+ brand?: Data.Brand | null;
557
+ /**
558
+ * When the profile was created
559
+ */
560
+ created_at?: string;
561
+ /**
562
+ * Profile description
563
+ */
564
+ description?: string | null;
565
+ /**
566
+ * Profile email (inherited from organization)
567
+ */
568
+ email?: string | null;
569
+ /**
570
+ * Profile icon URL
571
+ */
572
+ icon?: string | null;
573
+ /**
574
+ * Whether this profile inherits contacts from the organization
575
+ */
576
+ inherit_contacts?: boolean;
577
+ /**
578
+ * Whether this profile inherits TCR brand from the organization
579
+ */
580
+ inherit_tcr_brand?: boolean;
581
+ /**
582
+ * Whether this profile inherits TCR campaign from the organization
583
+ */
584
+ inherit_tcr_campaign?: boolean;
585
+ /**
586
+ * Whether this profile inherits templates from the organization
587
+ */
588
+ inherit_templates?: boolean;
589
+ /**
590
+ * Profile name
591
+ */
592
+ name?: string;
593
+ /**
594
+ * Parent organization ID
595
+ */
596
+ organization_id?: string | null;
597
+ /**
598
+ * Direct SMS phone number
599
+ */
600
+ sending_phone_number?: string | null;
601
+ /**
602
+ * Reference to another profile for SMS/Telnyx configuration
603
+ */
604
+ sending_phone_number_profile_id?: string | null;
605
+ /**
606
+ * Reference to another profile for WhatsApp configuration
607
+ */
608
+ sending_whatsapp_number_profile_id?: string | null;
609
+ /**
610
+ * Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
611
+ * only, with at least one letter.
612
+ */
613
+ short_name?: string | null;
614
+ /**
615
+ * Profile setup status: incomplete, pending_review, approved, rejected
616
+ */
617
+ status?: string;
618
+ /**
619
+ * When the profile was last updated
620
+ */
621
+ updated_at?: string | null;
622
+ /**
623
+ * WhatsApp Business Account ID associated with this profile. Present whether the
624
+ * WABA is inherited from the organization or configured directly.
625
+ */
626
+ waba_id?: string | null;
627
+ /**
628
+ * Direct WhatsApp phone number
629
+ */
630
+ whatsapp_phone_number?: string | null;
631
+ }
632
+ namespace Data {
633
+ /**
634
+ * Billing contact info returned in profile responses
635
+ */
636
+ interface BillingContact {
637
+ address?: string | null;
638
+ email?: string | null;
639
+ name?: string | null;
640
+ phone?: string | null;
641
+ }
642
+ /**
643
+ * Brand response with nested contact, business, and compliance sections — mirrors
644
+ * the request structure.
645
+ */
646
+ interface Brand {
647
+ /**
648
+ * Unique identifier for the brand
649
+ */
650
+ id?: string;
651
+ /**
652
+ * Business details and address information
653
+ */
654
+ business?: Brand.Business | null;
655
+ /**
656
+ * Compliance and TCR-related information
657
+ */
658
+ compliance?: Brand.Compliance | null;
659
+ /**
660
+ * Contact information for the brand
661
+ */
662
+ contact?: Brand.Contact | null;
663
+ /**
664
+ * When the brand was created
665
+ */
666
+ created_at?: string;
667
+ /**
668
+ * CSP (Campaign Service Provider) ID
669
+ */
670
+ csp_id?: string | null;
671
+ identity_status?: 'SELF_DECLARED' | 'UNVERIFIED' | 'VERIFIED' | 'VETTED_VERIFIED' | null;
672
+ /**
673
+ * Whether this brand is inherited from the parent organization
674
+ */
675
+ is_inherited?: boolean;
676
+ status?: 'ACTIVE' | 'INACTIVE' | 'SUSPENDED' | null;
677
+ /**
678
+ * When the brand was submitted to TCR
679
+ */
680
+ submitted_at?: string | null;
681
+ /**
682
+ * Whether this brand has been submitted to TCR
683
+ */
684
+ submitted_to_tcr?: boolean;
685
+ /**
686
+ * TCR brand ID (populated after TCR submission)
687
+ */
688
+ tcr_brand_id?: string | null;
689
+ /**
690
+ * Universal EIN from TCR
691
+ */
692
+ universal_ein?: string | null;
693
+ /**
694
+ * When the brand was last updated
695
+ */
696
+ updated_at?: string | null;
697
+ }
698
+ namespace Brand {
699
+ /**
700
+ * Business details and address information
701
+ */
702
+ interface Business {
703
+ /**
704
+ * City
705
+ */
706
+ city?: string | null;
707
+ /**
708
+ * Country code (e.g., US, CA)
709
+ */
710
+ country?: string | null;
711
+ /**
712
+ * Country where the business is registered
713
+ */
714
+ country_of_registration?: string | null;
715
+ /**
716
+ * Business entity type
717
+ */
718
+ entity_type?: string | null;
719
+ /**
720
+ * Legal business name
721
+ */
722
+ legal_name?: string | null;
723
+ /**
724
+ * Postal/ZIP code
725
+ */
726
+ postal_code?: string | null;
727
+ /**
728
+ * State/province code
729
+ */
730
+ state?: string | null;
731
+ /**
732
+ * Street address
733
+ */
734
+ street?: string | null;
735
+ /**
736
+ * Tax ID/EIN number
737
+ */
738
+ tax_id?: string | null;
739
+ /**
740
+ * Type of tax ID (e.g., us_ein, ca_bn)
741
+ */
742
+ tax_id_type?: string | null;
743
+ /**
744
+ * Business website URL
745
+ */
746
+ url?: string | null;
747
+ }
748
+ /**
749
+ * Compliance and TCR-related information
750
+ */
751
+ interface Compliance {
752
+ brand_relationship?: 'BASIC_ACCOUNT' | 'MEDIUM_ACCOUNT' | 'LARGE_ACCOUNT' | 'SMALL_ACCOUNT' | 'KEY_ACCOUNT' | null;
753
+ /**
754
+ * List of destination countries for messaging
755
+ */
756
+ destination_countries?: Array<Compliance.DestinationCountry>;
757
+ /**
758
+ * Expected daily messaging volume
759
+ */
760
+ expected_messaging_volume?: string | null;
761
+ /**
762
+ * Whether this is a TCR (Campaign Registry) application
763
+ */
764
+ is_tcr_application?: boolean;
765
+ /**
766
+ * Additional notes about the business or use case
767
+ */
768
+ notes?: string | null;
769
+ /**
770
+ * Phone number prefix for messaging (e.g., "+1")
771
+ */
772
+ phone_number_prefix?: string | null;
773
+ /**
774
+ * Primary messaging use case description
775
+ */
776
+ primary_use_case?: string | null;
777
+ vertical?: 'PROFESSIONAL' | 'REAL_ESTATE' | 'HEALTHCARE' | 'HUMAN_RESOURCES' | 'ENERGY' | 'ENTERTAINMENT' | 'RETAIL' | 'TRANSPORTATION' | 'AGRICULTURE' | 'INSURANCE' | 'POSTAL' | 'EDUCATION' | 'HOSPITALITY' | 'FINANCIAL' | 'POLITICAL' | 'GAMBLING' | 'LEGAL' | 'CONSTRUCTION' | 'NGO' | 'MANUFACTURING' | 'GOVERNMENT' | 'TECHNOLOGY' | 'COMMUNICATION' | null;
778
+ }
779
+ namespace Compliance {
780
+ interface DestinationCountry {
781
+ id?: string;
782
+ isMain?: boolean;
783
+ }
784
+ }
785
+ /**
786
+ * Contact information for the brand
787
+ */
788
+ interface Contact {
789
+ /**
790
+ * Business/brand name
791
+ */
792
+ business_name?: string | null;
793
+ /**
794
+ * Contact email address
795
+ */
796
+ email?: string | null;
797
+ /**
798
+ * Primary contact name
799
+ */
800
+ name?: string;
801
+ /**
802
+ * Contact phone number in E.164 format
803
+ */
804
+ phone?: string | null;
805
+ /**
806
+ * Contact phone country code (e.g., "1" for US)
807
+ */
808
+ phone_country_code?: string | null;
809
+ /**
810
+ * Contact's role in the business
811
+ */
812
+ role?: string | null;
813
+ }
814
+ }
815
+ }
231
816
  /**
232
- * Card expiry date in MM/YY format (e.g. "09/27")
817
+ * Error information
233
818
  */
234
- expiry: string;
819
+ interface Error {
820
+ /**
821
+ * Machine-readable error code (e.g., "RESOURCE_001")
822
+ */
823
+ code?: string;
824
+ /**
825
+ * Additional validation error details (field-level errors)
826
+ */
827
+ details?: {
828
+ [key: string]: Array<string>;
829
+ } | null;
830
+ /**
831
+ * URL to documentation about this error
832
+ */
833
+ doc_url?: string | null;
834
+ /**
835
+ * Human-readable error message
836
+ */
837
+ message?: string;
838
+ }
235
839
  /**
236
- * Billing ZIP / postal code associated with the card
840
+ * Request and response metadata
237
841
  */
238
- zip_code: string;
842
+ interface Meta {
843
+ /**
844
+ * Unique identifier for this request (for tracing and support)
845
+ */
846
+ request_id?: string;
847
+ /**
848
+ * Server timestamp when the response was generated
849
+ */
850
+ timestamp?: string;
851
+ /**
852
+ * API version used for this request
853
+ */
854
+ version?: string;
855
+ }
239
856
  }
240
857
  /**
241
- * Detailed profile response for v3 API
858
+ * Standard API response envelope for all v3 endpoints
242
859
  */
243
- export interface ProfileDetail {
860
+ export interface ProfileUpdateResponse {
244
861
  /**
245
- * Profile unique identifier
246
- */
247
- id?: string;
248
- /**
249
- * Whether contacts are shared across profiles in the organization
250
- */
251
- allow_contact_sharing?: boolean;
252
- /**
253
- * Whether number changes are allowed during onboarding
254
- */
255
- allow_number_change_during_onboarding?: boolean | null;
256
- /**
257
- * Whether templates are shared across profiles in the organization
258
- */
259
- allow_template_sharing?: boolean;
260
- /**
261
- * Billing contact info returned in profile responses
262
- */
263
- billing_contact?: ProfileDetail.BillingContact | null;
264
- /**
265
- * Billing model: profile, organization, or profile_and_organization
266
- */
267
- billing_model?: string;
268
- /**
269
- * Brand response with nested contact, business, and compliance sections — mirrors
270
- * the request structure.
271
- */
272
- brand?: ProfileDetail.Brand | null;
273
- /**
274
- * When the profile was created
275
- */
276
- created_at?: string;
277
- /**
278
- * Profile description
279
- */
280
- description?: string | null;
281
- /**
282
- * Profile email (inherited from organization)
283
- */
284
- email?: string | null;
285
- /**
286
- * Profile icon URL
287
- */
288
- icon?: string | null;
289
- /**
290
- * Whether this profile inherits contacts from the organization
291
- */
292
- inherit_contacts?: boolean;
293
- /**
294
- * Whether this profile inherits TCR brand from the organization
295
- */
296
- inherit_tcr_brand?: boolean;
297
- /**
298
- * Whether this profile inherits TCR campaign from the organization
299
- */
300
- inherit_tcr_campaign?: boolean;
301
- /**
302
- * Whether this profile inherits templates from the organization
303
- */
304
- inherit_templates?: boolean;
305
- /**
306
- * Profile name
307
- */
308
- name?: string;
309
- /**
310
- * Parent organization ID
311
- */
312
- organization_id?: string | null;
313
- /**
314
- * Direct SMS phone number
315
- */
316
- sending_phone_number?: string | null;
317
- /**
318
- * Reference to another profile for SMS/Telnyx configuration
319
- */
320
- sending_phone_number_profile_id?: string | null;
321
- /**
322
- * Reference to another profile for WhatsApp configuration
323
- */
324
- sending_whatsapp_number_profile_id?: string | null;
325
- /**
326
- * Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
327
- * only, with at least one letter.
328
- */
329
- short_name?: string | null;
330
- /**
331
- * Profile setup status: incomplete, pending_review, approved, rejected
862
+ * Detailed profile response for v3 API
332
863
  */
333
- status?: string;
864
+ data?: ProfileUpdateResponse.Data | null;
334
865
  /**
335
- * When the profile was last updated
866
+ * Error information
336
867
  */
337
- updated_at?: string | null;
868
+ error?: ProfileUpdateResponse.Error | null;
338
869
  /**
339
- * WhatsApp Business Account ID associated with this profile. Present whether the
340
- * WABA is inherited from the organization or configured directly.
870
+ * Request and response metadata
341
871
  */
342
- waba_id?: string | null;
872
+ meta?: ProfileUpdateResponse.Meta;
343
873
  /**
344
- * Direct WhatsApp phone number
874
+ * Indicates whether the request was successful
345
875
  */
346
- whatsapp_phone_number?: string | null;
876
+ success?: boolean;
347
877
  }
348
- export declare namespace ProfileDetail {
878
+ export declare namespace ProfileUpdateResponse {
349
879
  /**
350
- * Billing contact info returned in profile responses
880
+ * Detailed profile response for v3 API
351
881
  */
352
- interface BillingContact {
353
- address?: string | null;
882
+ interface Data {
883
+ /**
884
+ * Profile unique identifier
885
+ */
886
+ id?: string;
887
+ /**
888
+ * Whether contacts are shared across profiles in the organization
889
+ */
890
+ allow_contact_sharing?: boolean;
891
+ /**
892
+ * Whether number changes are allowed during onboarding
893
+ */
894
+ allow_number_change_during_onboarding?: boolean | null;
895
+ /**
896
+ * Whether templates are shared across profiles in the organization
897
+ */
898
+ allow_template_sharing?: boolean;
899
+ /**
900
+ * Billing contact info returned in profile responses
901
+ */
902
+ billing_contact?: Data.BillingContact | null;
903
+ /**
904
+ * Billing model: profile, organization, or profile_and_organization
905
+ */
906
+ billing_model?: string;
907
+ /**
908
+ * Brand response with nested contact, business, and compliance sections — mirrors
909
+ * the request structure.
910
+ */
911
+ brand?: Data.Brand | null;
912
+ /**
913
+ * When the profile was created
914
+ */
915
+ created_at?: string;
916
+ /**
917
+ * Profile description
918
+ */
919
+ description?: string | null;
920
+ /**
921
+ * Profile email (inherited from organization)
922
+ */
354
923
  email?: string | null;
355
- name?: string | null;
356
- phone?: string | null;
357
- }
358
- /**
359
- * Brand response with nested contact, business, and compliance sections — mirrors
360
- * the request structure.
361
- */
362
- interface Brand {
363
924
  /**
364
- * Unique identifier for the brand
925
+ * Profile icon URL
365
926
  */
366
- id?: string;
927
+ icon?: string | null;
367
928
  /**
368
- * Business details and address information
929
+ * Whether this profile inherits contacts from the organization
369
930
  */
370
- business?: Brand.Business | null;
931
+ inherit_contacts?: boolean;
371
932
  /**
372
- * Compliance and TCR-related information
933
+ * Whether this profile inherits TCR brand from the organization
373
934
  */
374
- compliance?: Brand.Compliance | null;
935
+ inherit_tcr_brand?: boolean;
375
936
  /**
376
- * Contact information for the brand
937
+ * Whether this profile inherits TCR campaign from the organization
377
938
  */
378
- contact?: Brand.Contact | null;
939
+ inherit_tcr_campaign?: boolean;
379
940
  /**
380
- * When the brand was created
941
+ * Whether this profile inherits templates from the organization
381
942
  */
382
- created_at?: string;
943
+ inherit_templates?: boolean;
383
944
  /**
384
- * CSP (Campaign Service Provider) ID
945
+ * Profile name
385
946
  */
386
- csp_id?: string | null;
387
- identity_status?: 'SELF_DECLARED' | 'UNVERIFIED' | 'VERIFIED' | 'VETTED_VERIFIED' | null;
947
+ name?: string;
388
948
  /**
389
- * Whether this brand is inherited from the parent organization
949
+ * Parent organization ID
390
950
  */
391
- is_inherited?: boolean;
392
- status?: 'ACTIVE' | 'INACTIVE' | 'SUSPENDED' | null;
951
+ organization_id?: string | null;
393
952
  /**
394
- * When the brand was submitted to TCR
953
+ * Direct SMS phone number
395
954
  */
396
- submitted_at?: string | null;
955
+ sending_phone_number?: string | null;
397
956
  /**
398
- * Whether this brand has been submitted to TCR
957
+ * Reference to another profile for SMS/Telnyx configuration
399
958
  */
400
- submitted_to_tcr?: boolean;
959
+ sending_phone_number_profile_id?: string | null;
401
960
  /**
402
- * TCR brand ID (populated after TCR submission)
961
+ * Reference to another profile for WhatsApp configuration
403
962
  */
404
- tcr_brand_id?: string | null;
963
+ sending_whatsapp_number_profile_id?: string | null;
405
964
  /**
406
- * Universal EIN from TCR
965
+ * Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
966
+ * only, with at least one letter.
407
967
  */
408
- universal_ein?: string | null;
968
+ short_name?: string | null;
409
969
  /**
410
- * When the brand was last updated
970
+ * Profile setup status: incomplete, pending_review, approved, rejected
971
+ */
972
+ status?: string;
973
+ /**
974
+ * When the profile was last updated
411
975
  */
412
976
  updated_at?: string | null;
977
+ /**
978
+ * WhatsApp Business Account ID associated with this profile. Present whether the
979
+ * WABA is inherited from the organization or configured directly.
980
+ */
981
+ waba_id?: string | null;
982
+ /**
983
+ * Direct WhatsApp phone number
984
+ */
985
+ whatsapp_phone_number?: string | null;
413
986
  }
414
- namespace Brand {
987
+ namespace Data {
415
988
  /**
416
- * Business details and address information
989
+ * Billing contact info returned in profile responses
417
990
  */
418
- interface Business {
419
- /**
420
- * City
421
- */
422
- city?: string | null;
423
- /**
424
- * Country code (e.g., US, CA)
425
- */
426
- country?: string | null;
427
- /**
428
- * Country where the business is registered
429
- */
430
- country_of_registration?: string | null;
431
- /**
432
- * Business entity type
433
- */
434
- entity_type?: string | null;
435
- /**
436
- * Legal business name
437
- */
438
- legal_name?: string | null;
991
+ interface BillingContact {
992
+ address?: string | null;
993
+ email?: string | null;
994
+ name?: string | null;
995
+ phone?: string | null;
996
+ }
997
+ /**
998
+ * Brand response with nested contact, business, and compliance sections — mirrors
999
+ * the request structure.
1000
+ */
1001
+ interface Brand {
439
1002
  /**
440
- * Postal/ZIP code
1003
+ * Unique identifier for the brand
441
1004
  */
442
- postal_code?: string | null;
1005
+ id?: string;
443
1006
  /**
444
- * State/province code
1007
+ * Business details and address information
445
1008
  */
446
- state?: string | null;
1009
+ business?: Brand.Business | null;
447
1010
  /**
448
- * Street address
1011
+ * Compliance and TCR-related information
449
1012
  */
450
- street?: string | null;
1013
+ compliance?: Brand.Compliance | null;
451
1014
  /**
452
- * Tax ID/EIN number
1015
+ * Contact information for the brand
453
1016
  */
454
- tax_id?: string | null;
1017
+ contact?: Brand.Contact | null;
455
1018
  /**
456
- * Type of tax ID (e.g., us_ein, ca_bn)
1019
+ * When the brand was created
457
1020
  */
458
- tax_id_type?: string | null;
1021
+ created_at?: string;
459
1022
  /**
460
- * Business website URL
1023
+ * CSP (Campaign Service Provider) ID
461
1024
  */
462
- url?: string | null;
463
- }
464
- /**
465
- * Compliance and TCR-related information
466
- */
467
- interface Compliance {
468
- brand_relationship?: ProfilesAPI.TcrBrandRelationship | null;
1025
+ csp_id?: string | null;
1026
+ identity_status?: 'SELF_DECLARED' | 'UNVERIFIED' | 'VERIFIED' | 'VETTED_VERIFIED' | null;
469
1027
  /**
470
- * List of destination countries for messaging
1028
+ * Whether this brand is inherited from the parent organization
471
1029
  */
472
- destination_countries?: Array<ProfilesAPI.DestinationCountry>;
1030
+ is_inherited?: boolean;
1031
+ status?: 'ACTIVE' | 'INACTIVE' | 'SUSPENDED' | null;
473
1032
  /**
474
- * Expected daily messaging volume
1033
+ * When the brand was submitted to TCR
475
1034
  */
476
- expected_messaging_volume?: string | null;
1035
+ submitted_at?: string | null;
477
1036
  /**
478
- * Whether this is a TCR (Campaign Registry) application
1037
+ * Whether this brand has been submitted to TCR
479
1038
  */
480
- is_tcr_application?: boolean;
1039
+ submitted_to_tcr?: boolean;
481
1040
  /**
482
- * Additional notes about the business or use case
1041
+ * TCR brand ID (populated after TCR submission)
483
1042
  */
484
- notes?: string | null;
1043
+ tcr_brand_id?: string | null;
485
1044
  /**
486
- * Phone number prefix for messaging (e.g., "+1")
1045
+ * Universal EIN from TCR
487
1046
  */
488
- phone_number_prefix?: string | null;
1047
+ universal_ein?: string | null;
489
1048
  /**
490
- * Primary messaging use case description
1049
+ * When the brand was last updated
491
1050
  */
492
- primary_use_case?: string | null;
493
- vertical?: ProfilesAPI.TcrVertical | null;
1051
+ updated_at?: string | null;
494
1052
  }
495
- /**
496
- * Contact information for the brand
497
- */
498
- interface Contact {
499
- /**
500
- * Business/brand name
501
- */
502
- business_name?: string | null;
1053
+ namespace Brand {
503
1054
  /**
504
- * Contact email address
505
- */
506
- email?: string | null;
507
- /**
508
- * Primary contact name
509
- */
510
- name?: string;
511
- /**
512
- * Contact phone number in E.164 format
1055
+ * Business details and address information
513
1056
  */
514
- phone?: string | null;
1057
+ interface Business {
1058
+ /**
1059
+ * City
1060
+ */
1061
+ city?: string | null;
1062
+ /**
1063
+ * Country code (e.g., US, CA)
1064
+ */
1065
+ country?: string | null;
1066
+ /**
1067
+ * Country where the business is registered
1068
+ */
1069
+ country_of_registration?: string | null;
1070
+ /**
1071
+ * Business entity type
1072
+ */
1073
+ entity_type?: string | null;
1074
+ /**
1075
+ * Legal business name
1076
+ */
1077
+ legal_name?: string | null;
1078
+ /**
1079
+ * Postal/ZIP code
1080
+ */
1081
+ postal_code?: string | null;
1082
+ /**
1083
+ * State/province code
1084
+ */
1085
+ state?: string | null;
1086
+ /**
1087
+ * Street address
1088
+ */
1089
+ street?: string | null;
1090
+ /**
1091
+ * Tax ID/EIN number
1092
+ */
1093
+ tax_id?: string | null;
1094
+ /**
1095
+ * Type of tax ID (e.g., us_ein, ca_bn)
1096
+ */
1097
+ tax_id_type?: string | null;
1098
+ /**
1099
+ * Business website URL
1100
+ */
1101
+ url?: string | null;
1102
+ }
515
1103
  /**
516
- * Contact phone country code (e.g., "1" for US)
1104
+ * Compliance and TCR-related information
517
1105
  */
518
- phone_country_code?: string | null;
1106
+ interface Compliance {
1107
+ brand_relationship?: 'BASIC_ACCOUNT' | 'MEDIUM_ACCOUNT' | 'LARGE_ACCOUNT' | 'SMALL_ACCOUNT' | 'KEY_ACCOUNT' | null;
1108
+ /**
1109
+ * List of destination countries for messaging
1110
+ */
1111
+ destination_countries?: Array<Compliance.DestinationCountry>;
1112
+ /**
1113
+ * Expected daily messaging volume
1114
+ */
1115
+ expected_messaging_volume?: string | null;
1116
+ /**
1117
+ * Whether this is a TCR (Campaign Registry) application
1118
+ */
1119
+ is_tcr_application?: boolean;
1120
+ /**
1121
+ * Additional notes about the business or use case
1122
+ */
1123
+ notes?: string | null;
1124
+ /**
1125
+ * Phone number prefix for messaging (e.g., "+1")
1126
+ */
1127
+ phone_number_prefix?: string | null;
1128
+ /**
1129
+ * Primary messaging use case description
1130
+ */
1131
+ primary_use_case?: string | null;
1132
+ vertical?: 'PROFESSIONAL' | 'REAL_ESTATE' | 'HEALTHCARE' | 'HUMAN_RESOURCES' | 'ENERGY' | 'ENTERTAINMENT' | 'RETAIL' | 'TRANSPORTATION' | 'AGRICULTURE' | 'INSURANCE' | 'POSTAL' | 'EDUCATION' | 'HOSPITALITY' | 'FINANCIAL' | 'POLITICAL' | 'GAMBLING' | 'LEGAL' | 'CONSTRUCTION' | 'NGO' | 'MANUFACTURING' | 'GOVERNMENT' | 'TECHNOLOGY' | 'COMMUNICATION' | null;
1133
+ }
1134
+ namespace Compliance {
1135
+ interface DestinationCountry {
1136
+ id?: string;
1137
+ isMain?: boolean;
1138
+ }
1139
+ }
519
1140
  /**
520
- * Contact's role in the business
1141
+ * Contact information for the brand
521
1142
  */
522
- role?: string | null;
1143
+ interface Contact {
1144
+ /**
1145
+ * Business/brand name
1146
+ */
1147
+ business_name?: string | null;
1148
+ /**
1149
+ * Contact email address
1150
+ */
1151
+ email?: string | null;
1152
+ /**
1153
+ * Primary contact name
1154
+ */
1155
+ name?: string;
1156
+ /**
1157
+ * Contact phone number in E.164 format
1158
+ */
1159
+ phone?: string | null;
1160
+ /**
1161
+ * Contact phone country code (e.g., "1" for US)
1162
+ */
1163
+ phone_country_code?: string | null;
1164
+ /**
1165
+ * Contact's role in the business
1166
+ */
1167
+ role?: string | null;
1168
+ }
523
1169
  }
524
1170
  }
525
- }
526
- /**
527
- * Business details and address for brand KYC
528
- */
529
- export interface SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo {
530
- /**
531
- * City
532
- */
533
- city?: string | null;
534
- /**
535
- * Country code (e.g., US, CA)
536
- */
537
- country?: string | null;
538
- /**
539
- * Country where the business is registered
540
- */
541
- countryOfRegistration?: string | null;
542
- entityType?: 'PRIVATE_PROFIT' | 'PUBLIC_PROFIT' | 'NON_PROFIT' | 'SOLE_PROPRIETOR' | 'GOVERNMENT' | null;
543
- /**
544
- * Legal business name
545
- */
546
- legalName?: string | null;
547
- /**
548
- * Postal/ZIP code
549
- */
550
- postalCode?: string | null;
551
- /**
552
- * State/province code
553
- */
554
- state?: string | null;
555
- /**
556
- * Street address
557
- */
558
- street?: string | null;
559
- /**
560
- * Tax ID/EIN number
561
- */
562
- taxId?: string | null;
563
- /**
564
- * Type of tax ID (e.g., us_ein, ca_bn)
565
- */
566
- taxIdType?: string | null;
567
- /**
568
- * Business website URL
569
- */
570
- url?: string | null;
571
- }
572
- /**
573
- * Compliance and TCR information for brand registration
574
- */
575
- export interface SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandComplianceInfo {
576
- brandRelationship: TcrBrandRelationship;
577
- vertical: TcrVertical;
578
- /**
579
- * List of destination countries for messaging
580
- */
581
- destinationCountries?: Array<DestinationCountry> | null;
582
- /**
583
- * Expected daily messaging volume
584
- */
585
- expectedMessagingVolume?: string | null;
586
- /**
587
- * Whether this is a TCR (Campaign Registry) application
588
- */
589
- isTcrApplication?: boolean | null;
590
- /**
591
- * Additional notes about the business or use case
592
- */
593
- notes?: string | null;
594
- /**
595
- * Phone number prefix for messaging (e.g., "+1")
596
- */
597
- phoneNumberPrefix?: string | null;
598
1171
  /**
599
- * Primary messaging use case description
600
- */
601
- primaryUseCase?: string | null;
602
- }
603
- /**
604
- * Contact information for brand KYC
605
- */
606
- export interface SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandContactInfo {
607
- /**
608
- * Primary contact name (required)
609
- */
610
- name: string;
611
- /**
612
- * Business/brand name
613
- */
614
- businessName?: string | null;
615
- /**
616
- * Contact email address
617
- */
618
- email?: string | null;
619
- /**
620
- * Contact phone number in E.164 format
621
- */
622
- phone?: string | null;
623
- /**
624
- * Contact phone country code (e.g., "1" for US)
1172
+ * Error information
625
1173
  */
626
- phoneCountryCode?: string | null;
1174
+ interface Error {
1175
+ /**
1176
+ * Machine-readable error code (e.g., "RESOURCE_001")
1177
+ */
1178
+ code?: string;
1179
+ /**
1180
+ * Additional validation error details (field-level errors)
1181
+ */
1182
+ details?: {
1183
+ [key: string]: Array<string>;
1184
+ } | null;
1185
+ /**
1186
+ * URL to documentation about this error
1187
+ */
1188
+ doc_url?: string | null;
1189
+ /**
1190
+ * Human-readable error message
1191
+ */
1192
+ message?: string;
1193
+ }
627
1194
  /**
628
- * Contact's role in the business
1195
+ * Request and response metadata
629
1196
  */
630
- role?: string | null;
1197
+ interface Meta {
1198
+ /**
1199
+ * Unique identifier for this request (for tracing and support)
1200
+ */
1201
+ request_id?: string;
1202
+ /**
1203
+ * Server timestamp when the response was generated
1204
+ */
1205
+ timestamp?: string;
1206
+ /**
1207
+ * API version used for this request
1208
+ */
1209
+ version?: string;
1210
+ }
631
1211
  }
632
- export type TcrBrandRelationship = 'BASIC_ACCOUNT' | 'MEDIUM_ACCOUNT' | 'LARGE_ACCOUNT' | 'SMALL_ACCOUNT' | 'KEY_ACCOUNT';
633
- export type TcrVertical = 'PROFESSIONAL' | 'REAL_ESTATE' | 'HEALTHCARE' | 'HUMAN_RESOURCES' | 'ENERGY' | 'ENTERTAINMENT' | 'RETAIL' | 'TRANSPORTATION' | 'AGRICULTURE' | 'INSURANCE' | 'POSTAL' | 'EDUCATION' | 'HOSPITALITY' | 'FINANCIAL' | 'POLITICAL' | 'GAMBLING' | 'LEGAL' | 'CONSTRUCTION' | 'NGO' | 'MANUFACTURING' | 'GOVERNMENT' | 'TECHNOLOGY' | 'COMMUNICATION';
634
1212
  /**
635
1213
  * Standard API response envelope for all v3 endpoints
636
1214
  */
@@ -642,11 +1220,11 @@ export interface ProfileListResponse {
642
1220
  /**
643
1221
  * Error information
644
1222
  */
645
- error?: WebhooksAPI.ErrorDetail | null;
1223
+ error?: ProfileListResponse.Error | null;
646
1224
  /**
647
1225
  * Request and response metadata
648
1226
  */
649
- meta?: WebhooksAPI.APIMeta;
1227
+ meta?: ProfileListResponse.Meta;
650
1228
  /**
651
1229
  * Indicates whether the request was successful
652
1230
  */
@@ -660,7 +1238,341 @@ export declare namespace ProfileListResponse {
660
1238
  /**
661
1239
  * List of profiles in the organization
662
1240
  */
663
- profiles?: Array<ProfilesAPI.ProfileDetail>;
1241
+ profiles?: Array<Data.Profile>;
1242
+ }
1243
+ namespace Data {
1244
+ /**
1245
+ * Detailed profile response for v3 API
1246
+ */
1247
+ interface Profile {
1248
+ /**
1249
+ * Profile unique identifier
1250
+ */
1251
+ id?: string;
1252
+ /**
1253
+ * Whether contacts are shared across profiles in the organization
1254
+ */
1255
+ allow_contact_sharing?: boolean;
1256
+ /**
1257
+ * Whether number changes are allowed during onboarding
1258
+ */
1259
+ allow_number_change_during_onboarding?: boolean | null;
1260
+ /**
1261
+ * Whether templates are shared across profiles in the organization
1262
+ */
1263
+ allow_template_sharing?: boolean;
1264
+ /**
1265
+ * Billing contact info returned in profile responses
1266
+ */
1267
+ billing_contact?: Profile.BillingContact | null;
1268
+ /**
1269
+ * Billing model: profile, organization, or profile_and_organization
1270
+ */
1271
+ billing_model?: string;
1272
+ /**
1273
+ * Brand response with nested contact, business, and compliance sections — mirrors
1274
+ * the request structure.
1275
+ */
1276
+ brand?: Profile.Brand | null;
1277
+ /**
1278
+ * When the profile was created
1279
+ */
1280
+ created_at?: string;
1281
+ /**
1282
+ * Profile description
1283
+ */
1284
+ description?: string | null;
1285
+ /**
1286
+ * Profile email (inherited from organization)
1287
+ */
1288
+ email?: string | null;
1289
+ /**
1290
+ * Profile icon URL
1291
+ */
1292
+ icon?: string | null;
1293
+ /**
1294
+ * Whether this profile inherits contacts from the organization
1295
+ */
1296
+ inherit_contacts?: boolean;
1297
+ /**
1298
+ * Whether this profile inherits TCR brand from the organization
1299
+ */
1300
+ inherit_tcr_brand?: boolean;
1301
+ /**
1302
+ * Whether this profile inherits TCR campaign from the organization
1303
+ */
1304
+ inherit_tcr_campaign?: boolean;
1305
+ /**
1306
+ * Whether this profile inherits templates from the organization
1307
+ */
1308
+ inherit_templates?: boolean;
1309
+ /**
1310
+ * Profile name
1311
+ */
1312
+ name?: string;
1313
+ /**
1314
+ * Parent organization ID
1315
+ */
1316
+ organization_id?: string | null;
1317
+ /**
1318
+ * Direct SMS phone number
1319
+ */
1320
+ sending_phone_number?: string | null;
1321
+ /**
1322
+ * Reference to another profile for SMS/Telnyx configuration
1323
+ */
1324
+ sending_phone_number_profile_id?: string | null;
1325
+ /**
1326
+ * Reference to another profile for WhatsApp configuration
1327
+ */
1328
+ sending_whatsapp_number_profile_id?: string | null;
1329
+ /**
1330
+ * Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
1331
+ * only, with at least one letter.
1332
+ */
1333
+ short_name?: string | null;
1334
+ /**
1335
+ * Profile setup status: incomplete, pending_review, approved, rejected
1336
+ */
1337
+ status?: string;
1338
+ /**
1339
+ * When the profile was last updated
1340
+ */
1341
+ updated_at?: string | null;
1342
+ /**
1343
+ * WhatsApp Business Account ID associated with this profile. Present whether the
1344
+ * WABA is inherited from the organization or configured directly.
1345
+ */
1346
+ waba_id?: string | null;
1347
+ /**
1348
+ * Direct WhatsApp phone number
1349
+ */
1350
+ whatsapp_phone_number?: string | null;
1351
+ }
1352
+ namespace Profile {
1353
+ /**
1354
+ * Billing contact info returned in profile responses
1355
+ */
1356
+ interface BillingContact {
1357
+ address?: string | null;
1358
+ email?: string | null;
1359
+ name?: string | null;
1360
+ phone?: string | null;
1361
+ }
1362
+ /**
1363
+ * Brand response with nested contact, business, and compliance sections — mirrors
1364
+ * the request structure.
1365
+ */
1366
+ interface Brand {
1367
+ /**
1368
+ * Unique identifier for the brand
1369
+ */
1370
+ id?: string;
1371
+ /**
1372
+ * Business details and address information
1373
+ */
1374
+ business?: Brand.Business | null;
1375
+ /**
1376
+ * Compliance and TCR-related information
1377
+ */
1378
+ compliance?: Brand.Compliance | null;
1379
+ /**
1380
+ * Contact information for the brand
1381
+ */
1382
+ contact?: Brand.Contact | null;
1383
+ /**
1384
+ * When the brand was created
1385
+ */
1386
+ created_at?: string;
1387
+ /**
1388
+ * CSP (Campaign Service Provider) ID
1389
+ */
1390
+ csp_id?: string | null;
1391
+ identity_status?: 'SELF_DECLARED' | 'UNVERIFIED' | 'VERIFIED' | 'VETTED_VERIFIED' | null;
1392
+ /**
1393
+ * Whether this brand is inherited from the parent organization
1394
+ */
1395
+ is_inherited?: boolean;
1396
+ status?: 'ACTIVE' | 'INACTIVE' | 'SUSPENDED' | null;
1397
+ /**
1398
+ * When the brand was submitted to TCR
1399
+ */
1400
+ submitted_at?: string | null;
1401
+ /**
1402
+ * Whether this brand has been submitted to TCR
1403
+ */
1404
+ submitted_to_tcr?: boolean;
1405
+ /**
1406
+ * TCR brand ID (populated after TCR submission)
1407
+ */
1408
+ tcr_brand_id?: string | null;
1409
+ /**
1410
+ * Universal EIN from TCR
1411
+ */
1412
+ universal_ein?: string | null;
1413
+ /**
1414
+ * When the brand was last updated
1415
+ */
1416
+ updated_at?: string | null;
1417
+ }
1418
+ namespace Brand {
1419
+ /**
1420
+ * Business details and address information
1421
+ */
1422
+ interface Business {
1423
+ /**
1424
+ * City
1425
+ */
1426
+ city?: string | null;
1427
+ /**
1428
+ * Country code (e.g., US, CA)
1429
+ */
1430
+ country?: string | null;
1431
+ /**
1432
+ * Country where the business is registered
1433
+ */
1434
+ country_of_registration?: string | null;
1435
+ /**
1436
+ * Business entity type
1437
+ */
1438
+ entity_type?: string | null;
1439
+ /**
1440
+ * Legal business name
1441
+ */
1442
+ legal_name?: string | null;
1443
+ /**
1444
+ * Postal/ZIP code
1445
+ */
1446
+ postal_code?: string | null;
1447
+ /**
1448
+ * State/province code
1449
+ */
1450
+ state?: string | null;
1451
+ /**
1452
+ * Street address
1453
+ */
1454
+ street?: string | null;
1455
+ /**
1456
+ * Tax ID/EIN number
1457
+ */
1458
+ tax_id?: string | null;
1459
+ /**
1460
+ * Type of tax ID (e.g., us_ein, ca_bn)
1461
+ */
1462
+ tax_id_type?: string | null;
1463
+ /**
1464
+ * Business website URL
1465
+ */
1466
+ url?: string | null;
1467
+ }
1468
+ /**
1469
+ * Compliance and TCR-related information
1470
+ */
1471
+ interface Compliance {
1472
+ brand_relationship?: 'BASIC_ACCOUNT' | 'MEDIUM_ACCOUNT' | 'LARGE_ACCOUNT' | 'SMALL_ACCOUNT' | 'KEY_ACCOUNT' | null;
1473
+ /**
1474
+ * List of destination countries for messaging
1475
+ */
1476
+ destination_countries?: Array<Compliance.DestinationCountry>;
1477
+ /**
1478
+ * Expected daily messaging volume
1479
+ */
1480
+ expected_messaging_volume?: string | null;
1481
+ /**
1482
+ * Whether this is a TCR (Campaign Registry) application
1483
+ */
1484
+ is_tcr_application?: boolean;
1485
+ /**
1486
+ * Additional notes about the business or use case
1487
+ */
1488
+ notes?: string | null;
1489
+ /**
1490
+ * Phone number prefix for messaging (e.g., "+1")
1491
+ */
1492
+ phone_number_prefix?: string | null;
1493
+ /**
1494
+ * Primary messaging use case description
1495
+ */
1496
+ primary_use_case?: string | null;
1497
+ vertical?: 'PROFESSIONAL' | 'REAL_ESTATE' | 'HEALTHCARE' | 'HUMAN_RESOURCES' | 'ENERGY' | 'ENTERTAINMENT' | 'RETAIL' | 'TRANSPORTATION' | 'AGRICULTURE' | 'INSURANCE' | 'POSTAL' | 'EDUCATION' | 'HOSPITALITY' | 'FINANCIAL' | 'POLITICAL' | 'GAMBLING' | 'LEGAL' | 'CONSTRUCTION' | 'NGO' | 'MANUFACTURING' | 'GOVERNMENT' | 'TECHNOLOGY' | 'COMMUNICATION' | null;
1498
+ }
1499
+ namespace Compliance {
1500
+ interface DestinationCountry {
1501
+ id?: string;
1502
+ isMain?: boolean;
1503
+ }
1504
+ }
1505
+ /**
1506
+ * Contact information for the brand
1507
+ */
1508
+ interface Contact {
1509
+ /**
1510
+ * Business/brand name
1511
+ */
1512
+ business_name?: string | null;
1513
+ /**
1514
+ * Contact email address
1515
+ */
1516
+ email?: string | null;
1517
+ /**
1518
+ * Primary contact name
1519
+ */
1520
+ name?: string;
1521
+ /**
1522
+ * Contact phone number in E.164 format
1523
+ */
1524
+ phone?: string | null;
1525
+ /**
1526
+ * Contact phone country code (e.g., "1" for US)
1527
+ */
1528
+ phone_country_code?: string | null;
1529
+ /**
1530
+ * Contact's role in the business
1531
+ */
1532
+ role?: string | null;
1533
+ }
1534
+ }
1535
+ }
1536
+ }
1537
+ /**
1538
+ * Error information
1539
+ */
1540
+ interface Error {
1541
+ /**
1542
+ * Machine-readable error code (e.g., "RESOURCE_001")
1543
+ */
1544
+ code?: string;
1545
+ /**
1546
+ * Additional validation error details (field-level errors)
1547
+ */
1548
+ details?: {
1549
+ [key: string]: Array<string>;
1550
+ } | null;
1551
+ /**
1552
+ * URL to documentation about this error
1553
+ */
1554
+ doc_url?: string | null;
1555
+ /**
1556
+ * Human-readable error message
1557
+ */
1558
+ message?: string;
1559
+ }
1560
+ /**
1561
+ * Request and response metadata
1562
+ */
1563
+ interface Meta {
1564
+ /**
1565
+ * Unique identifier for this request (for tracing and support)
1566
+ */
1567
+ request_id?: string;
1568
+ /**
1569
+ * Server timestamp when the response was generated
1570
+ */
1571
+ timestamp?: string;
1572
+ /**
1573
+ * API version used for this request
1574
+ */
1575
+ version?: string;
664
1576
  }
665
1577
  }
666
1578
  /**
@@ -675,11 +1587,11 @@ export interface ProfileCompleteResponse {
675
1587
  /**
676
1588
  * Error information
677
1589
  */
678
- error?: WebhooksAPI.ErrorDetail | null;
1590
+ error?: ProfileCompleteResponse.Error | null;
679
1591
  /**
680
1592
  * Request and response metadata
681
1593
  */
682
- meta?: WebhooksAPI.APIMeta;
1594
+ meta?: ProfileCompleteResponse.Meta;
683
1595
  /**
684
1596
  * Indicates whether the request was successful
685
1597
  */
@@ -692,14 +1604,54 @@ export declare namespace ProfileCompleteResponse {
692
1604
  */
693
1605
  interface Data {
694
1606
  /**
695
- * Human-readable message describing the result.
1607
+ * Human-readable message describing the result.
1608
+ */
1609
+ message?: string;
1610
+ /**
1611
+ * Current process status of the profile (e.g., "completed", "submitted",
1612
+ * "in_progress").
1613
+ */
1614
+ status?: string;
1615
+ }
1616
+ /**
1617
+ * Error information
1618
+ */
1619
+ interface Error {
1620
+ /**
1621
+ * Machine-readable error code (e.g., "RESOURCE_001")
1622
+ */
1623
+ code?: string;
1624
+ /**
1625
+ * Additional validation error details (field-level errors)
1626
+ */
1627
+ details?: {
1628
+ [key: string]: Array<string>;
1629
+ } | null;
1630
+ /**
1631
+ * URL to documentation about this error
1632
+ */
1633
+ doc_url?: string | null;
1634
+ /**
1635
+ * Human-readable error message
1636
+ */
1637
+ message?: string;
1638
+ }
1639
+ /**
1640
+ * Request and response metadata
1641
+ */
1642
+ interface Meta {
1643
+ /**
1644
+ * Unique identifier for this request (for tracing and support)
1645
+ */
1646
+ request_id?: string;
1647
+ /**
1648
+ * Server timestamp when the response was generated
696
1649
  */
697
- message?: string;
1650
+ timestamp?: string;
698
1651
  /**
699
- * Current process status of the profile (e.g., "completed", "submitted",
700
- * "in_progress").
1652
+ * API version used for this request
701
1653
  */
702
- status?: string;
1654
+ version?: string;
703
1655
  }
704
1656
  }
705
1657
  export interface ProfileCreateParams {
@@ -715,7 +1667,7 @@ export interface ProfileCreateParams {
715
1667
  * Body param: Billing contact information for a profile. Required when
716
1668
  * billing_model is "profile" or "profile_and_organization".
717
1669
  */
718
- billing_contact?: BillingContactInfo | null;
1670
+ billing_contact?: ProfileCreateParams.BillingContact | null;
719
1671
  /**
720
1672
  * Body param: Billing model: profile, organization, or profile_and_organization
721
1673
  * (default: profile).
@@ -731,7 +1683,7 @@ export interface ProfileCreateParams {
731
1683
  * Body param: Brand and KYC data grouped into contact, business, and compliance
732
1684
  * sections
733
1685
  */
734
- brand?: BrandsBrandData | null;
1686
+ brand?: ProfileCreateParams.Brand | null;
735
1687
  /**
736
1688
  * Body param: Profile description (optional)
737
1689
  */
@@ -769,7 +1721,7 @@ export interface ProfileCreateParams {
769
1721
  * "profile" or "profile_and_organization". These details are not stored on our
770
1722
  * servers and will be forwarded to the payment processor.
771
1723
  */
772
- payment_details?: PaymentDetails | null;
1724
+ payment_details?: ProfileCreateParams.PaymentDetails | null;
773
1725
  /**
774
1726
  * Body param: Sandbox flag - when true, the operation is simulated without side
775
1727
  * effects Useful for testing integrations without actual execution
@@ -803,6 +1755,183 @@ export interface ProfileCreateParams {
803
1755
  'x-profile-id'?: string;
804
1756
  }
805
1757
  export declare namespace ProfileCreateParams {
1758
+ /**
1759
+ * Billing contact information for a profile. Required when billing_model is
1760
+ * "profile" or "profile_and_organization".
1761
+ */
1762
+ interface BillingContact {
1763
+ /**
1764
+ * Email address where invoices will be sent (required)
1765
+ */
1766
+ email: string;
1767
+ /**
1768
+ * Full name of the billing contact or company (required)
1769
+ */
1770
+ name: string;
1771
+ /**
1772
+ * Billing address (optional). Free-form text including street, city, state, postal
1773
+ * code, and country.
1774
+ */
1775
+ address?: string | null;
1776
+ /**
1777
+ * Phone number for the billing contact (optional)
1778
+ */
1779
+ phone?: string | null;
1780
+ }
1781
+ /**
1782
+ * Brand and KYC data grouped into contact, business, and compliance sections
1783
+ */
1784
+ interface Brand {
1785
+ /**
1786
+ * Compliance and TCR information for brand registration
1787
+ */
1788
+ compliance: Brand.Compliance;
1789
+ /**
1790
+ * Contact information for brand KYC
1791
+ */
1792
+ contact: Brand.Contact;
1793
+ /**
1794
+ * Business details and address for brand KYC
1795
+ */
1796
+ business?: Brand.Business | null;
1797
+ }
1798
+ namespace Brand {
1799
+ /**
1800
+ * Compliance and TCR information for brand registration
1801
+ */
1802
+ interface Compliance {
1803
+ brandRelationship: 'BASIC_ACCOUNT' | 'MEDIUM_ACCOUNT' | 'LARGE_ACCOUNT' | 'SMALL_ACCOUNT' | 'KEY_ACCOUNT';
1804
+ vertical: 'PROFESSIONAL' | 'REAL_ESTATE' | 'HEALTHCARE' | 'HUMAN_RESOURCES' | 'ENERGY' | 'ENTERTAINMENT' | 'RETAIL' | 'TRANSPORTATION' | 'AGRICULTURE' | 'INSURANCE' | 'POSTAL' | 'EDUCATION' | 'HOSPITALITY' | 'FINANCIAL' | 'POLITICAL' | 'GAMBLING' | 'LEGAL' | 'CONSTRUCTION' | 'NGO' | 'MANUFACTURING' | 'GOVERNMENT' | 'TECHNOLOGY' | 'COMMUNICATION';
1805
+ /**
1806
+ * List of destination countries for messaging
1807
+ */
1808
+ destinationCountries?: Array<Compliance.DestinationCountry> | null;
1809
+ /**
1810
+ * Expected daily messaging volume
1811
+ */
1812
+ expectedMessagingVolume?: string | null;
1813
+ /**
1814
+ * Whether this is a TCR (Campaign Registry) application
1815
+ */
1816
+ isTcrApplication?: boolean | null;
1817
+ /**
1818
+ * Additional notes about the business or use case
1819
+ */
1820
+ notes?: string | null;
1821
+ /**
1822
+ * Phone number prefix for messaging (e.g., "+1")
1823
+ */
1824
+ phoneNumberPrefix?: string | null;
1825
+ /**
1826
+ * Primary messaging use case description
1827
+ */
1828
+ primaryUseCase?: string | null;
1829
+ }
1830
+ namespace Compliance {
1831
+ interface DestinationCountry {
1832
+ id?: string;
1833
+ isMain?: boolean;
1834
+ }
1835
+ }
1836
+ /**
1837
+ * Contact information for brand KYC
1838
+ */
1839
+ interface Contact {
1840
+ /**
1841
+ * Primary contact name (required)
1842
+ */
1843
+ name: string;
1844
+ /**
1845
+ * Business/brand name
1846
+ */
1847
+ businessName?: string | null;
1848
+ /**
1849
+ * Contact email address
1850
+ */
1851
+ email?: string | null;
1852
+ /**
1853
+ * Contact phone number in E.164 format
1854
+ */
1855
+ phone?: string | null;
1856
+ /**
1857
+ * Contact phone country code (e.g., "1" for US)
1858
+ */
1859
+ phoneCountryCode?: string | null;
1860
+ /**
1861
+ * Contact's role in the business
1862
+ */
1863
+ role?: string | null;
1864
+ }
1865
+ /**
1866
+ * Business details and address for brand KYC
1867
+ */
1868
+ interface Business {
1869
+ /**
1870
+ * City
1871
+ */
1872
+ city?: string | null;
1873
+ /**
1874
+ * Country code (e.g., US, CA)
1875
+ */
1876
+ country?: string | null;
1877
+ /**
1878
+ * Country where the business is registered
1879
+ */
1880
+ countryOfRegistration?: string | null;
1881
+ entityType?: 'PRIVATE_PROFIT' | 'PUBLIC_PROFIT' | 'NON_PROFIT' | 'SOLE_PROPRIETOR' | 'GOVERNMENT' | null;
1882
+ /**
1883
+ * Legal business name
1884
+ */
1885
+ legalName?: string | null;
1886
+ /**
1887
+ * Postal/ZIP code
1888
+ */
1889
+ postalCode?: string | null;
1890
+ /**
1891
+ * State/province code
1892
+ */
1893
+ state?: string | null;
1894
+ /**
1895
+ * Street address
1896
+ */
1897
+ street?: string | null;
1898
+ /**
1899
+ * Tax ID/EIN number
1900
+ */
1901
+ taxId?: string | null;
1902
+ /**
1903
+ * Type of tax ID (e.g., us_ein, ca_bn)
1904
+ */
1905
+ taxIdType?: string | null;
1906
+ /**
1907
+ * Business website URL
1908
+ */
1909
+ url?: string | null;
1910
+ }
1911
+ }
1912
+ /**
1913
+ * Payment card details for a profile. Accepted when billing_model is "profile" or
1914
+ * "profile_and_organization". These details are not stored on our servers and will
1915
+ * be forwarded to the payment processor.
1916
+ */
1917
+ interface PaymentDetails {
1918
+ /**
1919
+ * Card number (digits only, 13–19 characters)
1920
+ */
1921
+ card_number: string;
1922
+ /**
1923
+ * Card security code (3–4 digits)
1924
+ */
1925
+ cvc: string;
1926
+ /**
1927
+ * Card expiry date in MM/YY format (e.g. "09/27")
1928
+ */
1929
+ expiry: string;
1930
+ /**
1931
+ * Billing ZIP / postal code associated with the card
1932
+ */
1933
+ zip_code: string;
1934
+ }
806
1935
  /**
807
1936
  * Direct WhatsApp Business Account credentials for a profile. Use this when the
808
1937
  * profile should have its own WhatsApp Business Account instead of inheriting from
@@ -854,7 +1983,7 @@ export interface ProfileUpdateParams {
854
1983
  * Body param: Billing contact information for a profile. Required when
855
1984
  * billing_model is "profile" or "profile_and_organization".
856
1985
  */
857
- billing_contact?: BillingContactInfo | null;
1986
+ billing_contact?: ProfileUpdateParams.BillingContact | null;
858
1987
  /**
859
1988
  * Body param: Billing model: profile, organization, or profile_and_organization
860
1989
  * (optional).
@@ -870,7 +1999,7 @@ export interface ProfileUpdateParams {
870
1999
  * Body param: Brand and KYC data grouped into contact, business, and compliance
871
2000
  * sections
872
2001
  */
873
- brand?: BrandsBrandData | null;
2002
+ brand?: ProfileUpdateParams.Brand | null;
874
2003
  /**
875
2004
  * Body param: Profile description (optional)
876
2005
  */
@@ -905,7 +2034,7 @@ export interface ProfileUpdateParams {
905
2034
  * "profile" or "profile_and_organization". These details are not stored on our
906
2035
  * servers and will be forwarded to the payment processor.
907
2036
  */
908
- payment_details?: PaymentDetails | null;
2037
+ payment_details?: ProfileUpdateParams.PaymentDetails | null;
909
2038
  /**
910
2039
  * Body param: Sandbox flag - when true, the operation is simulated without side
911
2040
  * effects Useful for testing integrations without actual execution
@@ -948,6 +2077,185 @@ export interface ProfileUpdateParams {
948
2077
  */
949
2078
  'x-profile-id'?: string;
950
2079
  }
2080
+ export declare namespace ProfileUpdateParams {
2081
+ /**
2082
+ * Billing contact information for a profile. Required when billing_model is
2083
+ * "profile" or "profile_and_organization".
2084
+ */
2085
+ interface BillingContact {
2086
+ /**
2087
+ * Email address where invoices will be sent (required)
2088
+ */
2089
+ email: string;
2090
+ /**
2091
+ * Full name of the billing contact or company (required)
2092
+ */
2093
+ name: string;
2094
+ /**
2095
+ * Billing address (optional). Free-form text including street, city, state, postal
2096
+ * code, and country.
2097
+ */
2098
+ address?: string | null;
2099
+ /**
2100
+ * Phone number for the billing contact (optional)
2101
+ */
2102
+ phone?: string | null;
2103
+ }
2104
+ /**
2105
+ * Brand and KYC data grouped into contact, business, and compliance sections
2106
+ */
2107
+ interface Brand {
2108
+ /**
2109
+ * Compliance and TCR information for brand registration
2110
+ */
2111
+ compliance: Brand.Compliance;
2112
+ /**
2113
+ * Contact information for brand KYC
2114
+ */
2115
+ contact: Brand.Contact;
2116
+ /**
2117
+ * Business details and address for brand KYC
2118
+ */
2119
+ business?: Brand.Business | null;
2120
+ }
2121
+ namespace Brand {
2122
+ /**
2123
+ * Compliance and TCR information for brand registration
2124
+ */
2125
+ interface Compliance {
2126
+ brandRelationship: 'BASIC_ACCOUNT' | 'MEDIUM_ACCOUNT' | 'LARGE_ACCOUNT' | 'SMALL_ACCOUNT' | 'KEY_ACCOUNT';
2127
+ vertical: 'PROFESSIONAL' | 'REAL_ESTATE' | 'HEALTHCARE' | 'HUMAN_RESOURCES' | 'ENERGY' | 'ENTERTAINMENT' | 'RETAIL' | 'TRANSPORTATION' | 'AGRICULTURE' | 'INSURANCE' | 'POSTAL' | 'EDUCATION' | 'HOSPITALITY' | 'FINANCIAL' | 'POLITICAL' | 'GAMBLING' | 'LEGAL' | 'CONSTRUCTION' | 'NGO' | 'MANUFACTURING' | 'GOVERNMENT' | 'TECHNOLOGY' | 'COMMUNICATION';
2128
+ /**
2129
+ * List of destination countries for messaging
2130
+ */
2131
+ destinationCountries?: Array<Compliance.DestinationCountry> | null;
2132
+ /**
2133
+ * Expected daily messaging volume
2134
+ */
2135
+ expectedMessagingVolume?: string | null;
2136
+ /**
2137
+ * Whether this is a TCR (Campaign Registry) application
2138
+ */
2139
+ isTcrApplication?: boolean | null;
2140
+ /**
2141
+ * Additional notes about the business or use case
2142
+ */
2143
+ notes?: string | null;
2144
+ /**
2145
+ * Phone number prefix for messaging (e.g., "+1")
2146
+ */
2147
+ phoneNumberPrefix?: string | null;
2148
+ /**
2149
+ * Primary messaging use case description
2150
+ */
2151
+ primaryUseCase?: string | null;
2152
+ }
2153
+ namespace Compliance {
2154
+ interface DestinationCountry {
2155
+ id?: string;
2156
+ isMain?: boolean;
2157
+ }
2158
+ }
2159
+ /**
2160
+ * Contact information for brand KYC
2161
+ */
2162
+ interface Contact {
2163
+ /**
2164
+ * Primary contact name (required)
2165
+ */
2166
+ name: string;
2167
+ /**
2168
+ * Business/brand name
2169
+ */
2170
+ businessName?: string | null;
2171
+ /**
2172
+ * Contact email address
2173
+ */
2174
+ email?: string | null;
2175
+ /**
2176
+ * Contact phone number in E.164 format
2177
+ */
2178
+ phone?: string | null;
2179
+ /**
2180
+ * Contact phone country code (e.g., "1" for US)
2181
+ */
2182
+ phoneCountryCode?: string | null;
2183
+ /**
2184
+ * Contact's role in the business
2185
+ */
2186
+ role?: string | null;
2187
+ }
2188
+ /**
2189
+ * Business details and address for brand KYC
2190
+ */
2191
+ interface Business {
2192
+ /**
2193
+ * City
2194
+ */
2195
+ city?: string | null;
2196
+ /**
2197
+ * Country code (e.g., US, CA)
2198
+ */
2199
+ country?: string | null;
2200
+ /**
2201
+ * Country where the business is registered
2202
+ */
2203
+ countryOfRegistration?: string | null;
2204
+ entityType?: 'PRIVATE_PROFIT' | 'PUBLIC_PROFIT' | 'NON_PROFIT' | 'SOLE_PROPRIETOR' | 'GOVERNMENT' | null;
2205
+ /**
2206
+ * Legal business name
2207
+ */
2208
+ legalName?: string | null;
2209
+ /**
2210
+ * Postal/ZIP code
2211
+ */
2212
+ postalCode?: string | null;
2213
+ /**
2214
+ * State/province code
2215
+ */
2216
+ state?: string | null;
2217
+ /**
2218
+ * Street address
2219
+ */
2220
+ street?: string | null;
2221
+ /**
2222
+ * Tax ID/EIN number
2223
+ */
2224
+ taxId?: string | null;
2225
+ /**
2226
+ * Type of tax ID (e.g., us_ein, ca_bn)
2227
+ */
2228
+ taxIdType?: string | null;
2229
+ /**
2230
+ * Business website URL
2231
+ */
2232
+ url?: string | null;
2233
+ }
2234
+ }
2235
+ /**
2236
+ * Payment card details for a profile. Accepted when billing_model is "profile" or
2237
+ * "profile_and_organization". These details are not stored on our servers and will
2238
+ * be forwarded to the payment processor.
2239
+ */
2240
+ interface PaymentDetails {
2241
+ /**
2242
+ * Card number (digits only, 13–19 characters)
2243
+ */
2244
+ card_number: string;
2245
+ /**
2246
+ * Card security code (3–4 digits)
2247
+ */
2248
+ cvc: string;
2249
+ /**
2250
+ * Card expiry date in MM/YY format (e.g. "09/27")
2251
+ */
2252
+ expiry: string;
2253
+ /**
2254
+ * Billing ZIP / postal code associated with the card
2255
+ */
2256
+ zip_code: string;
2257
+ }
2258
+ }
951
2259
  export interface ProfileListParams {
952
2260
  /**
953
2261
  * Profile UUID to scope the request to a child profile. Only organization API keys
@@ -993,7 +2301,7 @@ export interface ProfileCompleteParams {
993
2301
  'x-profile-id'?: string;
994
2302
  }
995
2303
  export declare namespace Profiles {
996
- export { type APIResponseOfProfileDetail as APIResponseOfProfileDetail, type BillingContactInfo as BillingContactInfo, type BrandsBrandData as BrandsBrandData, type DestinationCountry as DestinationCountry, type PaymentDetails as PaymentDetails, type ProfileDetail as ProfileDetail, type SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo as SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo, type SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandComplianceInfo as SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandComplianceInfo, type SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandContactInfo as SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandContactInfo, type TcrBrandRelationship as TcrBrandRelationship, type TcrVertical as TcrVertical, type ProfileListResponse as ProfileListResponse, type ProfileCompleteResponse as ProfileCompleteResponse, type ProfileCreateParams as ProfileCreateParams, type ProfileRetrieveParams as ProfileRetrieveParams, type ProfileUpdateParams as ProfileUpdateParams, type ProfileListParams as ProfileListParams, type ProfileDeleteParams as ProfileDeleteParams, type ProfileCompleteParams as ProfileCompleteParams, };
997
- export { Campaigns as Campaigns, type APIResponseOfTcrCampaignWithUseCases as APIResponseOfTcrCampaignWithUseCases, type BaseDto as BaseDto, type CampaignData as CampaignData, type MessagingUseCaseUs as MessagingUseCaseUs, type SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData as SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData, type TcrCampaignWithUseCases as TcrCampaignWithUseCases, type CampaignListResponse as CampaignListResponse, type CampaignCreateParams as CampaignCreateParams, type CampaignUpdateParams as CampaignUpdateParams, type CampaignListParams as CampaignListParams, type CampaignDeleteParams as CampaignDeleteParams, };
2304
+ export { type ProfileCreateResponse as ProfileCreateResponse, type ProfileRetrieveResponse as ProfileRetrieveResponse, type ProfileUpdateResponse as ProfileUpdateResponse, type ProfileListResponse as ProfileListResponse, type ProfileCompleteResponse as ProfileCompleteResponse, type ProfileCreateParams as ProfileCreateParams, type ProfileRetrieveParams as ProfileRetrieveParams, type ProfileUpdateParams as ProfileUpdateParams, type ProfileListParams as ProfileListParams, type ProfileDeleteParams as ProfileDeleteParams, type ProfileCompleteParams as ProfileCompleteParams, };
2305
+ export { Campaigns as Campaigns, type CampaignCreateResponse as CampaignCreateResponse, type CampaignUpdateResponse as CampaignUpdateResponse, type CampaignListResponse as CampaignListResponse, type CampaignCreateParams as CampaignCreateParams, type CampaignUpdateParams as CampaignUpdateParams, type CampaignListParams as CampaignListParams, type CampaignDeleteParams as CampaignDeleteParams, };
998
2306
  }
999
2307
  //# sourceMappingURL=profiles.d.mts.map