@zernio/node 0.2.187 → 0.2.189
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.
- package/README.md +20 -0
- package/dist/index.d.mts +501 -16
- package/dist/index.d.ts +501 -16
- package/dist/index.js +95 -1
- package/dist/index.mjs +95 -1
- package/package.json +1 -1
- package/src/client.ts +36 -0
- package/src/generated/sdk.gen.ts +190 -1
- package/src/generated/types.gen.ts +526 -15
|
@@ -3687,6 +3687,155 @@ export type event4 = 'ad.status_changed';
|
|
|
3687
3687
|
*/
|
|
3688
3688
|
export type level = 'CAMPAIGN' | 'AD_SET' | 'AD';
|
|
3689
3689
|
|
|
3690
|
+
/**
|
|
3691
|
+
* Webhook payload for the `call.ended` event. Fires on call hangup
|
|
3692
|
+
* with the duration and a zero-markup billing breakdown.
|
|
3693
|
+
*
|
|
3694
|
+
*/
|
|
3695
|
+
export type WebhookPayloadCallEnded = {
|
|
3696
|
+
id: string;
|
|
3697
|
+
event: 'call.ended';
|
|
3698
|
+
call: {
|
|
3699
|
+
id?: string;
|
|
3700
|
+
metaCallId?: (string) | null;
|
|
3701
|
+
accountId?: string;
|
|
3702
|
+
phoneNumberId?: string;
|
|
3703
|
+
direction?: 'inbound' | 'outbound';
|
|
3704
|
+
from?: string;
|
|
3705
|
+
to?: string;
|
|
3706
|
+
startedAt?: string;
|
|
3707
|
+
endedAt?: string;
|
|
3708
|
+
durationSeconds?: number;
|
|
3709
|
+
endReason?: 'hangup' | 'no_answer' | 'rejected' | 'error';
|
|
3710
|
+
recordingUrl?: string;
|
|
3711
|
+
recordingExpiresAt?: string;
|
|
3712
|
+
billing?: {
|
|
3713
|
+
metaCostUSD?: number;
|
|
3714
|
+
telnyxCostUSD?: number;
|
|
3715
|
+
recordingCostUSD?: number;
|
|
3716
|
+
totalCostUSD?: number;
|
|
3717
|
+
};
|
|
3718
|
+
};
|
|
3719
|
+
account: InboxWebhookAccount;
|
|
3720
|
+
timestamp: string;
|
|
3721
|
+
};
|
|
3722
|
+
|
|
3723
|
+
export type event5 = 'call.ended';
|
|
3724
|
+
|
|
3725
|
+
export type direction2 = 'inbound' | 'outbound';
|
|
3726
|
+
|
|
3727
|
+
export type endReason = 'hangup' | 'no_answer' | 'rejected' | 'error';
|
|
3728
|
+
|
|
3729
|
+
/**
|
|
3730
|
+
* Webhook payload for the `call.failed` event. Fired when a call
|
|
3731
|
+
* setup or in-progress call fails.
|
|
3732
|
+
*
|
|
3733
|
+
*/
|
|
3734
|
+
export type WebhookPayloadCallFailed = {
|
|
3735
|
+
id: string;
|
|
3736
|
+
event: 'call.failed';
|
|
3737
|
+
call: {
|
|
3738
|
+
id?: string;
|
|
3739
|
+
metaCallId?: (string) | null;
|
|
3740
|
+
accountId?: string;
|
|
3741
|
+
phoneNumberId?: string;
|
|
3742
|
+
direction?: 'inbound' | 'outbound';
|
|
3743
|
+
from?: string;
|
|
3744
|
+
to?: string;
|
|
3745
|
+
failedAt?: string;
|
|
3746
|
+
error?: {
|
|
3747
|
+
code?: number;
|
|
3748
|
+
message?: string;
|
|
3749
|
+
};
|
|
3750
|
+
};
|
|
3751
|
+
account: InboxWebhookAccount;
|
|
3752
|
+
timestamp: string;
|
|
3753
|
+
};
|
|
3754
|
+
|
|
3755
|
+
export type event6 = 'call.failed';
|
|
3756
|
+
|
|
3757
|
+
/**
|
|
3758
|
+
* Webhook payload for the `call.permission_request` event. Fires
|
|
3759
|
+
* when a consumer accepts or rejects an interactive
|
|
3760
|
+
* `call_permission_request` message.
|
|
3761
|
+
*
|
|
3762
|
+
*/
|
|
3763
|
+
export type WebhookPayloadCallPermissionRequest = {
|
|
3764
|
+
id: string;
|
|
3765
|
+
event: 'call.permission_request';
|
|
3766
|
+
permission: {
|
|
3767
|
+
/**
|
|
3768
|
+
* Consumer wa_id who replied
|
|
3769
|
+
*/
|
|
3770
|
+
from?: string;
|
|
3771
|
+
response?: 'accept' | 'reject';
|
|
3772
|
+
isPermanent?: boolean;
|
|
3773
|
+
/**
|
|
3774
|
+
* Present only when temporary
|
|
3775
|
+
*/
|
|
3776
|
+
expirationTimestamp?: string;
|
|
3777
|
+
/**
|
|
3778
|
+
* Meta's response source, typically `user_action`
|
|
3779
|
+
*/
|
|
3780
|
+
responseSource?: string;
|
|
3781
|
+
};
|
|
3782
|
+
account: InboxWebhookAccount;
|
|
3783
|
+
timestamp: string;
|
|
3784
|
+
};
|
|
3785
|
+
|
|
3786
|
+
export type event7 = 'call.permission_request';
|
|
3787
|
+
|
|
3788
|
+
export type response = 'accept' | 'reject';
|
|
3789
|
+
|
|
3790
|
+
/**
|
|
3791
|
+
* Webhook payload for the `call.received` event. Fires for both
|
|
3792
|
+
* inbound (UIC) and outbound (BIC) calls; branch on
|
|
3793
|
+
* `call.direction` to tell them apart.
|
|
3794
|
+
*
|
|
3795
|
+
*/
|
|
3796
|
+
export type WebhookPayloadCallReceived = {
|
|
3797
|
+
/**
|
|
3798
|
+
* Stable webhook event ID
|
|
3799
|
+
*/
|
|
3800
|
+
id: string;
|
|
3801
|
+
event: 'call.received';
|
|
3802
|
+
call: {
|
|
3803
|
+
/**
|
|
3804
|
+
* Internal Zernio Call doc id
|
|
3805
|
+
*/
|
|
3806
|
+
id?: string;
|
|
3807
|
+
/**
|
|
3808
|
+
* Meta wacid.* call id when known
|
|
3809
|
+
*/
|
|
3810
|
+
metaCallId?: (string) | null;
|
|
3811
|
+
accountId?: string;
|
|
3812
|
+
/**
|
|
3813
|
+
* Meta phone_number_id
|
|
3814
|
+
*/
|
|
3815
|
+
phoneNumberId?: string;
|
|
3816
|
+
direction?: 'inbound' | 'outbound';
|
|
3817
|
+
/**
|
|
3818
|
+
* Consumer wa_id / E.164
|
|
3819
|
+
*/
|
|
3820
|
+
from?: string;
|
|
3821
|
+
/**
|
|
3822
|
+
* Business number (E.164)
|
|
3823
|
+
*/
|
|
3824
|
+
to?: string;
|
|
3825
|
+
/**
|
|
3826
|
+
* Destination snapshot at routing time
|
|
3827
|
+
*/
|
|
3828
|
+
forwardTo?: string;
|
|
3829
|
+
contactId?: string;
|
|
3830
|
+
conversationId?: string;
|
|
3831
|
+
startedAt?: string;
|
|
3832
|
+
};
|
|
3833
|
+
account: InboxWebhookAccount;
|
|
3834
|
+
timestamp: string;
|
|
3835
|
+
};
|
|
3836
|
+
|
|
3837
|
+
export type event8 = 'call.received';
|
|
3838
|
+
|
|
3690
3839
|
/**
|
|
3691
3840
|
* Webhook payload for comment received events (Instagram, Facebook, Twitter/X, YouTube, LinkedIn, Bluesky, Reddit)
|
|
3692
3841
|
*/
|
|
@@ -3778,7 +3927,7 @@ export type WebhookPayloadComment = {
|
|
|
3778
3927
|
timestamp: string;
|
|
3779
3928
|
};
|
|
3780
3929
|
|
|
3781
|
-
export type
|
|
3930
|
+
export type event9 = 'comment.received';
|
|
3782
3931
|
|
|
3783
3932
|
export type platform7 = 'instagram' | 'facebook' | 'twitter' | 'youtube' | 'linkedin' | 'bluesky' | 'reddit';
|
|
3784
3933
|
|
|
@@ -3832,7 +3981,7 @@ export type WebhookPayloadConversationStarted = {
|
|
|
3832
3981
|
timestamp: string;
|
|
3833
3982
|
};
|
|
3834
3983
|
|
|
3835
|
-
export type
|
|
3984
|
+
export type event10 = 'conversation.started';
|
|
3836
3985
|
|
|
3837
3986
|
export type platform8 = 'instagram' | 'facebook' | 'telegram' | 'whatsapp' | 'twitter' | 'reddit' | 'bluesky';
|
|
3838
3987
|
|
|
@@ -3894,7 +4043,7 @@ export type WebhookPayloadLead = {
|
|
|
3894
4043
|
timestamp: string;
|
|
3895
4044
|
};
|
|
3896
4045
|
|
|
3897
|
-
export type
|
|
4046
|
+
export type event11 = 'lead.received';
|
|
3898
4047
|
|
|
3899
4048
|
export type platform9 = 'facebook';
|
|
3900
4049
|
|
|
@@ -4170,7 +4319,7 @@ export type WebhookPayloadMessage = {
|
|
|
4170
4319
|
timestamp: string;
|
|
4171
4320
|
};
|
|
4172
4321
|
|
|
4173
|
-
export type
|
|
4322
|
+
export type event12 = 'message.received';
|
|
4174
4323
|
|
|
4175
4324
|
/**
|
|
4176
4325
|
* WhatsApp only. Which kind of interactive reply the user sent:
|
|
@@ -4202,7 +4351,7 @@ export type WebhookPayloadMessageDeleted = {
|
|
|
4202
4351
|
timestamp: string;
|
|
4203
4352
|
};
|
|
4204
4353
|
|
|
4205
|
-
export type
|
|
4354
|
+
export type event13 = 'message.deleted';
|
|
4206
4355
|
|
|
4207
4356
|
/**
|
|
4208
4357
|
* Shared payload for message.delivered, message.read, and
|
|
@@ -4237,7 +4386,7 @@ export type WebhookPayloadMessageDeliveryStatus = {
|
|
|
4237
4386
|
timestamp: string;
|
|
4238
4387
|
};
|
|
4239
4388
|
|
|
4240
|
-
export type
|
|
4389
|
+
export type event14 = 'message.delivered' | 'message.read' | 'message.failed';
|
|
4241
4390
|
|
|
4242
4391
|
/**
|
|
4243
4392
|
* Webhook payload for message.edited events. Fires when the sender
|
|
@@ -4279,7 +4428,7 @@ export type WebhookPayloadMessageEdited = {
|
|
|
4279
4428
|
timestamp: string;
|
|
4280
4429
|
};
|
|
4281
4430
|
|
|
4282
|
-
export type
|
|
4431
|
+
export type event15 = 'message.edited';
|
|
4283
4432
|
|
|
4284
4433
|
/**
|
|
4285
4434
|
* Webhook payload for message sent events (fired when a message is sent via the API)
|
|
@@ -4343,7 +4492,7 @@ export type WebhookPayloadMessageSent = {
|
|
|
4343
4492
|
timestamp: string;
|
|
4344
4493
|
};
|
|
4345
4494
|
|
|
4346
|
-
export type
|
|
4495
|
+
export type event16 = 'message.sent';
|
|
4347
4496
|
|
|
4348
4497
|
/**
|
|
4349
4498
|
* Webhook payload for post events
|
|
@@ -4371,7 +4520,7 @@ export type WebhookPayloadPost = {
|
|
|
4371
4520
|
timestamp: string;
|
|
4372
4521
|
};
|
|
4373
4522
|
|
|
4374
|
-
export type
|
|
4523
|
+
export type event17 = 'post.scheduled' | 'post.published' | 'post.failed' | 'post.partial' | 'post.cancelled' | 'post.recycled';
|
|
4375
4524
|
|
|
4376
4525
|
/**
|
|
4377
4526
|
* Webhook payload for the per-platform terminal events
|
|
@@ -4447,7 +4596,7 @@ export type WebhookPayloadPostPlatform = {
|
|
|
4447
4596
|
timestamp: string;
|
|
4448
4597
|
};
|
|
4449
4598
|
|
|
4450
|
-
export type
|
|
4599
|
+
export type event18 = 'post.platform.published' | 'post.platform.failed';
|
|
4451
4600
|
|
|
4452
4601
|
/**
|
|
4453
4602
|
* Webhook payload for reaction received events (WhatsApp, Telegram)
|
|
@@ -4498,7 +4647,7 @@ export type WebhookPayloadReaction = {
|
|
|
4498
4647
|
timestamp: string;
|
|
4499
4648
|
};
|
|
4500
4649
|
|
|
4501
|
-
export type
|
|
4650
|
+
export type event19 = 'reaction.received';
|
|
4502
4651
|
|
|
4503
4652
|
export type action = 'added' | 'removed';
|
|
4504
4653
|
|
|
@@ -4520,7 +4669,7 @@ export type WebhookPayloadReviewNew = {
|
|
|
4520
4669
|
timestamp: string;
|
|
4521
4670
|
};
|
|
4522
4671
|
|
|
4523
|
-
export type
|
|
4672
|
+
export type event20 = 'review.new';
|
|
4524
4673
|
|
|
4525
4674
|
/**
|
|
4526
4675
|
* Webhook payload for the review.updated event. Fired when the reviewer edits
|
|
@@ -4544,7 +4693,7 @@ export type WebhookPayloadReviewUpdated = {
|
|
|
4544
4693
|
timestamp: string;
|
|
4545
4694
|
};
|
|
4546
4695
|
|
|
4547
|
-
export type
|
|
4696
|
+
export type event21 = 'review.updated';
|
|
4548
4697
|
|
|
4549
4698
|
/**
|
|
4550
4699
|
* Webhook payload for test deliveries
|
|
@@ -4562,7 +4711,7 @@ export type WebhookPayloadTest = {
|
|
|
4562
4711
|
timestamp: string;
|
|
4563
4712
|
};
|
|
4564
4713
|
|
|
4565
|
-
export type
|
|
4714
|
+
export type event22 = 'webhook.test';
|
|
4566
4715
|
|
|
4567
4716
|
/**
|
|
4568
4717
|
* Webhook payload for the `whatsapp.template.status_updated` event.
|
|
@@ -4617,7 +4766,7 @@ export type WebhookPayloadWhatsAppTemplateStatusUpdated = {
|
|
|
4617
4766
|
timestamp: string;
|
|
4618
4767
|
};
|
|
4619
4768
|
|
|
4620
|
-
export type
|
|
4769
|
+
export type event23 = 'whatsapp.template.status_updated';
|
|
4621
4770
|
|
|
4622
4771
|
export type platform10 = 'whatsapp';
|
|
4623
4772
|
|
|
@@ -4687,6 +4836,49 @@ export type WhatsAppHeaderComponent = {
|
|
|
4687
4836
|
|
|
4688
4837
|
export type format = 'text' | 'image' | 'video' | 'gif' | 'document' | 'location';
|
|
4689
4838
|
|
|
4839
|
+
/**
|
|
4840
|
+
* A per-user activation session against the shared WhatsApp sandbox number.
|
|
4841
|
+
* Transitions `pending → active` when the inbound webhook receives a reply
|
|
4842
|
+
* from the matching phone (the reply itself proves ownership).
|
|
4843
|
+
*
|
|
4844
|
+
*/
|
|
4845
|
+
export type WhatsAppSandboxSession = {
|
|
4846
|
+
/**
|
|
4847
|
+
* Session id. Use this to revoke via DELETE.
|
|
4848
|
+
*/
|
|
4849
|
+
id: string;
|
|
4850
|
+
/**
|
|
4851
|
+
* Digits-only E.164 form (no +, spaces, or dashes).
|
|
4852
|
+
*/
|
|
4853
|
+
phoneE164: string;
|
|
4854
|
+
/**
|
|
4855
|
+
* `pending` until the phone replies to the activation template, then
|
|
4856
|
+
* `active`. Expired sessions are pruned by TTL and never appear in
|
|
4857
|
+
* list responses.
|
|
4858
|
+
*
|
|
4859
|
+
*/
|
|
4860
|
+
status: 'pending' | 'active';
|
|
4861
|
+
/**
|
|
4862
|
+
* UTC timestamp at which the session becomes invalid. Pending sessions
|
|
4863
|
+
* get a 24h window; activated sessions get 7 days.
|
|
4864
|
+
*
|
|
4865
|
+
*/
|
|
4866
|
+
expiresAt: string;
|
|
4867
|
+
/**
|
|
4868
|
+
* When the session transitioned `pending → active`, or null.
|
|
4869
|
+
*/
|
|
4870
|
+
activatedAt?: (string) | null;
|
|
4871
|
+
createdAt?: (string) | null;
|
|
4872
|
+
};
|
|
4873
|
+
|
|
4874
|
+
/**
|
|
4875
|
+
* `pending` until the phone replies to the activation template, then
|
|
4876
|
+
* `active`. Expired sessions are pruned by TTL and never appear in
|
|
4877
|
+
* list responses.
|
|
4878
|
+
*
|
|
4879
|
+
*/
|
|
4880
|
+
export type status9 = 'pending' | 'active';
|
|
4881
|
+
|
|
4690
4882
|
export type WhatsAppTemplateButton = {
|
|
4691
4883
|
type: 'quick_reply' | 'url' | 'phone_number' | 'otp' | 'flow' | 'mpm' | 'catalog';
|
|
4692
4884
|
text: string;
|
|
@@ -12642,6 +12834,262 @@ export type DeleteWhatsAppTemplateError = (unknown | {
|
|
|
12642
12834
|
error?: string;
|
|
12643
12835
|
});
|
|
12644
12836
|
|
|
12837
|
+
export type GetWhatsAppCallingConfigData = {
|
|
12838
|
+
query: {
|
|
12839
|
+
/**
|
|
12840
|
+
* WhatsApp social account ID
|
|
12841
|
+
*/
|
|
12842
|
+
accountId: string;
|
|
12843
|
+
};
|
|
12844
|
+
};
|
|
12845
|
+
|
|
12846
|
+
export type GetWhatsAppCallingConfigResponse = ({
|
|
12847
|
+
/**
|
|
12848
|
+
* WhatsAppPhoneNumber Mongo ID (use on /v1/whatsapp/phone-numbers/{id}/calling)
|
|
12849
|
+
*/
|
|
12850
|
+
phoneNumberDocId?: string;
|
|
12851
|
+
phoneNumber?: string;
|
|
12852
|
+
callingEnabled?: boolean;
|
|
12853
|
+
/**
|
|
12854
|
+
* tel:+E164 / sip:... / wss://... destination
|
|
12855
|
+
*/
|
|
12856
|
+
forwardTo?: (string) | null;
|
|
12857
|
+
recordingEnabled?: boolean;
|
|
12858
|
+
sipAuthUsername?: (string) | null;
|
|
12859
|
+
/**
|
|
12860
|
+
* True when a SIP digest password is stored. The plaintext is never returned.
|
|
12861
|
+
*/
|
|
12862
|
+
sipAuthPasswordConfigured?: boolean;
|
|
12863
|
+
callIconCountries?: Array<(string)> | null;
|
|
12864
|
+
});
|
|
12865
|
+
|
|
12866
|
+
export type GetWhatsAppCallingConfigError = ({
|
|
12867
|
+
error?: string;
|
|
12868
|
+
} | unknown);
|
|
12869
|
+
|
|
12870
|
+
export type EnableWhatsAppCallingData = {
|
|
12871
|
+
body: {
|
|
12872
|
+
accountId: string;
|
|
12873
|
+
/**
|
|
12874
|
+
* tel:+E164 / sip:... / wss://... destination
|
|
12875
|
+
*/
|
|
12876
|
+
forwardTo: string;
|
|
12877
|
+
sipAuthUsername?: string;
|
|
12878
|
+
/**
|
|
12879
|
+
* Stored encrypted
|
|
12880
|
+
*/
|
|
12881
|
+
sipAuthPassword?: string;
|
|
12882
|
+
recordingEnabled?: boolean;
|
|
12883
|
+
callIconCountries?: Array<(string)>;
|
|
12884
|
+
};
|
|
12885
|
+
path: {
|
|
12886
|
+
/**
|
|
12887
|
+
* WhatsAppPhoneNumber Mongo ID
|
|
12888
|
+
*/
|
|
12889
|
+
id: string;
|
|
12890
|
+
};
|
|
12891
|
+
};
|
|
12892
|
+
|
|
12893
|
+
export type EnableWhatsAppCallingResponse = ({
|
|
12894
|
+
success?: boolean;
|
|
12895
|
+
callingEnabled?: boolean;
|
|
12896
|
+
sipHostname?: string;
|
|
12897
|
+
forwardTo?: string;
|
|
12898
|
+
});
|
|
12899
|
+
|
|
12900
|
+
export type EnableWhatsAppCallingError = ({
|
|
12901
|
+
error?: string;
|
|
12902
|
+
} | unknown);
|
|
12903
|
+
|
|
12904
|
+
export type UpdateWhatsAppCallingData = {
|
|
12905
|
+
body: {
|
|
12906
|
+
accountId: string;
|
|
12907
|
+
forwardTo?: string;
|
|
12908
|
+
sipAuthUsername?: (string) | null;
|
|
12909
|
+
sipAuthPassword?: (string) | null;
|
|
12910
|
+
recordingEnabled?: boolean;
|
|
12911
|
+
callIconCountries?: Array<(string)> | null;
|
|
12912
|
+
};
|
|
12913
|
+
path: {
|
|
12914
|
+
id: string;
|
|
12915
|
+
};
|
|
12916
|
+
};
|
|
12917
|
+
|
|
12918
|
+
export type UpdateWhatsAppCallingResponse = (unknown);
|
|
12919
|
+
|
|
12920
|
+
export type UpdateWhatsAppCallingError = ({
|
|
12921
|
+
error?: string;
|
|
12922
|
+
} | unknown);
|
|
12923
|
+
|
|
12924
|
+
export type DisableWhatsAppCallingData = {
|
|
12925
|
+
path: {
|
|
12926
|
+
id: string;
|
|
12927
|
+
};
|
|
12928
|
+
query: {
|
|
12929
|
+
accountId: string;
|
|
12930
|
+
};
|
|
12931
|
+
};
|
|
12932
|
+
|
|
12933
|
+
export type DisableWhatsAppCallingResponse = (unknown);
|
|
12934
|
+
|
|
12935
|
+
export type DisableWhatsAppCallingError = ({
|
|
12936
|
+
error?: string;
|
|
12937
|
+
} | unknown);
|
|
12938
|
+
|
|
12939
|
+
export type GetWhatsAppCallPermissionsData = {
|
|
12940
|
+
query: {
|
|
12941
|
+
accountId: string;
|
|
12942
|
+
/**
|
|
12943
|
+
* Consumer wa_id (E.164
|
|
12944
|
+
*/
|
|
12945
|
+
to: string;
|
|
12946
|
+
};
|
|
12947
|
+
};
|
|
12948
|
+
|
|
12949
|
+
export type GetWhatsAppCallPermissionsResponse = ({
|
|
12950
|
+
permission?: {
|
|
12951
|
+
status?: 'temporary' | 'no_permission' | 'permanent';
|
|
12952
|
+
/**
|
|
12953
|
+
* Unix seconds when temporary
|
|
12954
|
+
*/
|
|
12955
|
+
expiration_time?: number;
|
|
12956
|
+
};
|
|
12957
|
+
actions?: Array<{
|
|
12958
|
+
action_name?: 'send_call_permission_request' | 'start_call';
|
|
12959
|
+
can_perform_action?: boolean;
|
|
12960
|
+
}>;
|
|
12961
|
+
});
|
|
12962
|
+
|
|
12963
|
+
export type GetWhatsAppCallPermissionsError = ({
|
|
12964
|
+
error?: string;
|
|
12965
|
+
} | unknown);
|
|
12966
|
+
|
|
12967
|
+
export type InitiateWhatsAppCallData = {
|
|
12968
|
+
body: {
|
|
12969
|
+
accountId: string;
|
|
12970
|
+
/**
|
|
12971
|
+
* Consumer wa_id (E.164
|
|
12972
|
+
*/
|
|
12973
|
+
to: string;
|
|
12974
|
+
/**
|
|
12975
|
+
* Per-call destination override. Same accepted shape as the
|
|
12976
|
+
* number's stored forwardTo (tel:+E164, sip:..., wss://...).
|
|
12977
|
+
*
|
|
12978
|
+
*/
|
|
12979
|
+
forwardTo?: string;
|
|
12980
|
+
recordOverride?: boolean;
|
|
12981
|
+
/**
|
|
12982
|
+
* Accepted for forward compatibility. Not currently echoed
|
|
12983
|
+
* back in webhook payloads (SIP-first flow does not pass
|
|
12984
|
+
* through Meta's Graph API where Meta would echo this).
|
|
12985
|
+
*
|
|
12986
|
+
*/
|
|
12987
|
+
biz_opaque_callback_data?: string;
|
|
12988
|
+
};
|
|
12989
|
+
};
|
|
12990
|
+
|
|
12991
|
+
export type InitiateWhatsAppCallResponse = ({
|
|
12992
|
+
success?: boolean;
|
|
12993
|
+
/**
|
|
12994
|
+
* Internal Call doc ID
|
|
12995
|
+
*/
|
|
12996
|
+
callId?: string;
|
|
12997
|
+
/**
|
|
12998
|
+
* Telnyx call_control_id of the outbound leg
|
|
12999
|
+
*/
|
|
13000
|
+
telnyxCallControlId?: string;
|
|
13001
|
+
status?: 'dialing';
|
|
13002
|
+
direction?: 'outbound';
|
|
13003
|
+
to?: string;
|
|
13004
|
+
forwardTo?: (string) | null;
|
|
13005
|
+
recordingEnabled?: boolean;
|
|
13006
|
+
});
|
|
13007
|
+
|
|
13008
|
+
export type InitiateWhatsAppCallError = ({
|
|
13009
|
+
error?: string;
|
|
13010
|
+
} | unknown);
|
|
13011
|
+
|
|
13012
|
+
export type ListWhatsAppCallsData = {
|
|
13013
|
+
query: {
|
|
13014
|
+
accountId: string;
|
|
13015
|
+
direction?: 'inbound' | 'outbound';
|
|
13016
|
+
limit?: number;
|
|
13017
|
+
since?: string;
|
|
13018
|
+
status?: 'ringing' | 'answered' | 'ended' | 'failed';
|
|
13019
|
+
until?: string;
|
|
13020
|
+
};
|
|
13021
|
+
};
|
|
13022
|
+
|
|
13023
|
+
export type ListWhatsAppCallsResponse = ({
|
|
13024
|
+
calls?: Array<{
|
|
13025
|
+
_id?: string;
|
|
13026
|
+
direction?: 'inbound' | 'outbound';
|
|
13027
|
+
from?: string;
|
|
13028
|
+
to?: string;
|
|
13029
|
+
status?: 'ringing' | 'answered' | 'ended' | 'failed';
|
|
13030
|
+
startedAt?: string;
|
|
13031
|
+
endedAt?: string;
|
|
13032
|
+
durationSeconds?: number;
|
|
13033
|
+
endReason?: 'hangup' | 'no_answer' | 'rejected' | 'error';
|
|
13034
|
+
recordingUrl?: string;
|
|
13035
|
+
billing?: {
|
|
13036
|
+
metaCostUSD?: number;
|
|
13037
|
+
telnyxCostUSD?: number;
|
|
13038
|
+
recordingCostUSD?: number;
|
|
13039
|
+
totalCostUSD?: number;
|
|
13040
|
+
currency?: string;
|
|
13041
|
+
};
|
|
13042
|
+
}>;
|
|
13043
|
+
});
|
|
13044
|
+
|
|
13045
|
+
export type ListWhatsAppCallsError = ({
|
|
13046
|
+
error?: string;
|
|
13047
|
+
});
|
|
13048
|
+
|
|
13049
|
+
export type GetWhatsAppCallData = {
|
|
13050
|
+
path: {
|
|
13051
|
+
callId: string;
|
|
13052
|
+
};
|
|
13053
|
+
query: {
|
|
13054
|
+
accountId: string;
|
|
13055
|
+
};
|
|
13056
|
+
};
|
|
13057
|
+
|
|
13058
|
+
export type GetWhatsAppCallResponse = ({
|
|
13059
|
+
call?: {
|
|
13060
|
+
[key: string]: unknown;
|
|
13061
|
+
};
|
|
13062
|
+
});
|
|
13063
|
+
|
|
13064
|
+
export type GetWhatsAppCallError = ({
|
|
13065
|
+
error?: string;
|
|
13066
|
+
} | unknown);
|
|
13067
|
+
|
|
13068
|
+
export type GetWhatsAppCallEstimateData = {
|
|
13069
|
+
query: {
|
|
13070
|
+
accountId: string;
|
|
13071
|
+
minutes?: number;
|
|
13072
|
+
recording?: boolean;
|
|
13073
|
+
to: string;
|
|
13074
|
+
};
|
|
13075
|
+
};
|
|
13076
|
+
|
|
13077
|
+
export type GetWhatsAppCallEstimateResponse = ({
|
|
13078
|
+
destinationCountry?: (string) | null;
|
|
13079
|
+
perMinuteUsd?: number;
|
|
13080
|
+
breakdown?: {
|
|
13081
|
+
metaMinutes?: number;
|
|
13082
|
+
metaCostUSD?: number;
|
|
13083
|
+
telnyxCostUSD?: number;
|
|
13084
|
+
recordingCostUSD?: number;
|
|
13085
|
+
totalCostUSD?: number;
|
|
13086
|
+
};
|
|
13087
|
+
});
|
|
13088
|
+
|
|
13089
|
+
export type GetWhatsAppCallEstimateError = ({
|
|
13090
|
+
error?: string;
|
|
13091
|
+
});
|
|
13092
|
+
|
|
12645
13093
|
export type GetWhatsAppLibraryTemplateData = {
|
|
12646
13094
|
query: {
|
|
12647
13095
|
/**
|
|
@@ -12974,6 +13422,22 @@ export type GetWhatsAppPhoneNumbersResponse = ({
|
|
|
12974
13422
|
metaVerificationStatus?: string;
|
|
12975
13423
|
createdAt?: string;
|
|
12976
13424
|
}>;
|
|
13425
|
+
/**
|
|
13426
|
+
* The shared WhatsApp sandbox (one Zernio-owned number, all users test
|
|
13427
|
+
* against it). Present when the sandbox is configured; null otherwise.
|
|
13428
|
+
* The `accountId` lets you address the sandbox in compose endpoints.
|
|
13429
|
+
* `template` is the only template a sandbox send is allowed to use.
|
|
13430
|
+
*
|
|
13431
|
+
*/
|
|
13432
|
+
sandbox?: {
|
|
13433
|
+
phoneNumber?: string;
|
|
13434
|
+
accountId?: (string) | null;
|
|
13435
|
+
template?: {
|
|
13436
|
+
name?: string;
|
|
13437
|
+
language?: string;
|
|
13438
|
+
};
|
|
13439
|
+
isSandbox?: boolean;
|
|
13440
|
+
} | null;
|
|
12977
13441
|
});
|
|
12978
13442
|
|
|
12979
13443
|
export type GetWhatsAppPhoneNumbersError = ({
|
|
@@ -13060,6 +13524,53 @@ export type ReleaseWhatsAppPhoneNumberError = (unknown | {
|
|
|
13060
13524
|
error?: string;
|
|
13061
13525
|
});
|
|
13062
13526
|
|
|
13527
|
+
export type ListWhatsAppSandboxSessionsResponse = ({
|
|
13528
|
+
sessions?: Array<WhatsAppSandboxSession>;
|
|
13529
|
+
/**
|
|
13530
|
+
* The shared sandbox phone number in E.164 form.
|
|
13531
|
+
*/
|
|
13532
|
+
sandboxNumber?: (string) | null;
|
|
13533
|
+
});
|
|
13534
|
+
|
|
13535
|
+
export type ListWhatsAppSandboxSessionsError = ({
|
|
13536
|
+
error?: string;
|
|
13537
|
+
} | unknown);
|
|
13538
|
+
|
|
13539
|
+
export type CreateWhatsAppSandboxSessionData = {
|
|
13540
|
+
body: {
|
|
13541
|
+
/**
|
|
13542
|
+
* Recipient phone in international format. Digits, spaces, dashes and a leading `+` are all accepted; the server normalizes to E.164 digits-only.
|
|
13543
|
+
*/
|
|
13544
|
+
phone: string;
|
|
13545
|
+
};
|
|
13546
|
+
};
|
|
13547
|
+
|
|
13548
|
+
export type CreateWhatsAppSandboxSessionResponse = ({
|
|
13549
|
+
session?: WhatsAppSandboxSession;
|
|
13550
|
+
sandboxNumber?: string;
|
|
13551
|
+
});
|
|
13552
|
+
|
|
13553
|
+
export type CreateWhatsAppSandboxSessionError = (unknown | {
|
|
13554
|
+
error?: string;
|
|
13555
|
+
});
|
|
13556
|
+
|
|
13557
|
+
export type DeleteWhatsAppSandboxSessionData = {
|
|
13558
|
+
path: {
|
|
13559
|
+
/**
|
|
13560
|
+
* The session id returned by POST /v1/whatsapp/sandbox/sessions.
|
|
13561
|
+
*/
|
|
13562
|
+
sessionId: string;
|
|
13563
|
+
};
|
|
13564
|
+
};
|
|
13565
|
+
|
|
13566
|
+
export type DeleteWhatsAppSandboxSessionResponse = ({
|
|
13567
|
+
success?: boolean;
|
|
13568
|
+
});
|
|
13569
|
+
|
|
13570
|
+
export type DeleteWhatsAppSandboxSessionError = (unknown | {
|
|
13571
|
+
error?: string;
|
|
13572
|
+
});
|
|
13573
|
+
|
|
13063
13574
|
export type ListWhatsAppGroupChatsData = {
|
|
13064
13575
|
query: {
|
|
13065
13576
|
/**
|