@getlatedev/node 0.2.1240 → 0.2.1242

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/dist/index.js CHANGED
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(index_exports);
36
36
  // package.json
37
37
  var package_default = {
38
38
  name: "@getlatedev/node",
39
- version: "0.2.1240",
39
+ version: "0.2.1242",
40
40
  description: "The official Node.js library for the Zernio API",
41
41
  main: "dist/index.js",
42
42
  module: "dist/index.mjs",
package/dist/index.mjs CHANGED
@@ -5,7 +5,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5
5
  // package.json
6
6
  var package_default = {
7
7
  name: "@getlatedev/node",
8
- version: "0.2.1240",
8
+ version: "0.2.1242",
9
9
  description: "The official Node.js library for the Zernio API",
10
10
  main: "dist/index.js",
11
11
  module: "dist/index.mjs",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getlatedev/node",
3
- "version": "0.2.1240",
3
+ "version": "0.2.1242",
4
4
  "description": "The official Node.js library for the Zernio API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -3285,7 +3285,7 @@ export const updateRedditSubreddits = <ThrowOnError extends boolean = false>(opt
3285
3285
  * Returns a subreddit's posting rules plus Reddit's site-wide rules, so you can check
3286
3286
  * them before submitting and avoid a removal.
3287
3287
  *
3288
- * Use this alongside `POST /v1/tools/validate/subreddit`, which only confirms that a
3288
+ * Use this alongside `GET /v1/tools/validate/subreddit`, which only confirms that a
3289
3289
  * subreddit exists and reports its basic posting settings.
3290
3290
  *
3291
3291
  */
@@ -8569,7 +8569,7 @@ export const deleteWhatsAppSandboxSession = <ThrowOnError extends boolean = fals
8569
8569
  * List active WhatsApp group chats for a business phone number.
8570
8570
  * These are actual WhatsApp group conversations on the platform.
8571
8571
  *
8572
- * Not available on [Coexistence](/platforms/whatsapp/connection#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8572
+ * Not available on [Coexistence](/platforms/whatsapp/connect#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8573
8573
  *
8574
8574
  */
8575
8575
  export const listWhatsAppGroupChats = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListWhatsAppGroupChatsData, ThrowOnError>) => {
@@ -8583,7 +8583,7 @@ export const listWhatsAppGroupChats = <ThrowOnError extends boolean = false>(opt
8583
8583
  * Create group
8584
8584
  * Create a new WhatsApp group chat. Returns the group ID and optionally an invite link.
8585
8585
  *
8586
- * Not available on [Coexistence](/platforms/whatsapp/connection#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8586
+ * Not available on [Coexistence](/platforms/whatsapp/connect#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8587
8587
  *
8588
8588
  */
8589
8589
  export const createWhatsAppGroupChat = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateWhatsAppGroupChatData, ThrowOnError>) => {
@@ -8598,7 +8598,7 @@ export const createWhatsAppGroupChat = <ThrowOnError extends boolean = false>(op
8598
8598
  * Retrieve metadata about a WhatsApp group including subject, description,
8599
8599
  * participants, and settings.
8600
8600
  *
8601
- * Not available on [Coexistence](/platforms/whatsapp/connection#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8601
+ * Not available on [Coexistence](/platforms/whatsapp/connect#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8602
8602
  *
8603
8603
  */
8604
8604
  export const getWhatsAppGroupChat = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetWhatsAppGroupChatData, ThrowOnError>) => {
@@ -8612,7 +8612,7 @@ export const getWhatsAppGroupChat = <ThrowOnError extends boolean = false>(optio
8612
8612
  * Update group settings
8613
8613
  * Update the subject, description, or join approval mode of a WhatsApp group.
8614
8614
  *
8615
- * Not available on [Coexistence](/platforms/whatsapp/connection#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8615
+ * Not available on [Coexistence](/platforms/whatsapp/connect#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8616
8616
  *
8617
8617
  */
8618
8618
  export const updateWhatsAppGroupChat = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateWhatsAppGroupChatData, ThrowOnError>) => {
@@ -8626,7 +8626,7 @@ export const updateWhatsAppGroupChat = <ThrowOnError extends boolean = false>(op
8626
8626
  * Delete group
8627
8627
  * Delete a WhatsApp group and remove all participants.
8628
8628
  *
8629
- * Not available on [Coexistence](/platforms/whatsapp/connection#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8629
+ * Not available on [Coexistence](/platforms/whatsapp/connect#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8630
8630
  *
8631
8631
  */
8632
8632
  export const deleteWhatsAppGroupChat = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteWhatsAppGroupChatData, ThrowOnError>) => {
@@ -8640,7 +8640,7 @@ export const deleteWhatsAppGroupChat = <ThrowOnError extends boolean = false>(op
8640
8640
  * Add participants
8641
8641
  * Add participants to a WhatsApp group. Maximum 8 participants per request. A group holds at most 8 participants in total (a Meta limit), so later requests cannot grow a group past 8. Meta documents groups as invite-only, so people normally join through the group's invite link.
8642
8642
  *
8643
- * Not available on [Coexistence](/platforms/whatsapp/connection#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8643
+ * Not available on [Coexistence](/platforms/whatsapp/connect#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8644
8644
  *
8645
8645
  */
8646
8646
  export const addWhatsAppGroupParticipants = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<AddWhatsAppGroupParticipantsData, ThrowOnError>) => {
@@ -8654,7 +8654,7 @@ export const addWhatsAppGroupParticipants = <ThrowOnError extends boolean = fals
8654
8654
  * Remove participants
8655
8655
  * Remove participants from a WhatsApp group.
8656
8656
  *
8657
- * Not available on [Coexistence](/platforms/whatsapp/connection#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8657
+ * Not available on [Coexistence](/platforms/whatsapp/connect#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8658
8658
  *
8659
8659
  */
8660
8660
  export const removeWhatsAppGroupParticipants = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveWhatsAppGroupParticipantsData, ThrowOnError>) => {
@@ -8668,7 +8668,7 @@ export const removeWhatsAppGroupParticipants = <ThrowOnError extends boolean = f
8668
8668
  * Create invite link
8669
8669
  * Create a new invite link for a WhatsApp group. The previous link is revoked.
8670
8670
  *
8671
- * Not available on [Coexistence](/platforms/whatsapp/connection#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8671
+ * Not available on [Coexistence](/platforms/whatsapp/connect#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8672
8672
  *
8673
8673
  */
8674
8674
  export const createWhatsAppGroupInviteLink = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateWhatsAppGroupInviteLinkData, ThrowOnError>) => {
@@ -8682,7 +8682,7 @@ export const createWhatsAppGroupInviteLink = <ThrowOnError extends boolean = fal
8682
8682
  * List join requests
8683
8683
  * List pending join requests for a WhatsApp group (only for groups with approval_required mode).
8684
8684
  *
8685
- * Not available on [Coexistence](/platforms/whatsapp/connection#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8685
+ * Not available on [Coexistence](/platforms/whatsapp/connect#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8686
8686
  *
8687
8687
  */
8688
8688
  export const listWhatsAppGroupJoinRequests = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListWhatsAppGroupJoinRequestsData, ThrowOnError>) => {
@@ -8696,7 +8696,7 @@ export const listWhatsAppGroupJoinRequests = <ThrowOnError extends boolean = fal
8696
8696
  * Approve join requests
8697
8697
  * Approve pending join requests for a WhatsApp group.
8698
8698
  *
8699
- * Not available on [Coexistence](/platforms/whatsapp/connection#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8699
+ * Not available on [Coexistence](/platforms/whatsapp/connect#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8700
8700
  *
8701
8701
  */
8702
8702
  export const approveWhatsAppGroupJoinRequests = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ApproveWhatsAppGroupJoinRequestsData, ThrowOnError>) => {
@@ -8710,7 +8710,7 @@ export const approveWhatsAppGroupJoinRequests = <ThrowOnError extends boolean =
8710
8710
  * Reject join requests
8711
8711
  * Reject pending join requests for a WhatsApp group.
8712
8712
  *
8713
- * Not available on [Coexistence](/platforms/whatsapp/connection#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8713
+ * Not available on [Coexistence](/platforms/whatsapp/connect#whatsapp-business-app-coexistence) numbers. Requires a Cloud API-only number.
8714
8714
  *
8715
8715
  */
8716
8716
  export const rejectWhatsAppGroupJoinRequests = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RejectWhatsAppGroupJoinRequestsData, ThrowOnError>) => {
@@ -10641,8 +10641,8 @@ export const getAdSetDetails = <ThrowOnError extends boolean = false>(options: O
10641
10641
  * incompatible combinations (e.g. a billingEvent the optimization goal
10642
10642
  * doesn't allow) surface as 400s from Meta.
10643
10643
  *
10644
- * When updating `budget` on an ABO campaign: if the parent campaign is
10645
- * CBO, the response is 409 with code BUDGET_LEVEL_MISMATCH. Route to
10644
+ * When updating `budget` on an ad set whose campaign holds the budget
10645
+ * (CBO), the response is 409 with code `invalid_field_value`. Send it to
10646
10646
  * PUT /v1/ads/campaigns/{campaignId} instead.
10647
10647
  *
10648
10648
  * Reddit Ads: `budget` changes the ad group's amount; an ad group that spends its
@@ -12620,8 +12620,10 @@ export const getAdAccountLiveEntities = <ThrowOnError extends boolean = false>(o
12620
12620
  };
12621
12621
 
12622
12622
  /**
12623
- * Create Meta ad account
12624
- * Creates a new Meta ad account in the user's own business portfolio (a payment method must then be added in Ads Manager).
12623
+ * Create ad account
12624
+ * Creates a new Meta ad account in the user's own business portfolio, or a Google Ads client account under a manager (MCC) account the connection reaches. Billing must then be set up on the platform.
12625
+ *
12626
+ * **Meta** (omit `platform` or send `meta`).
12625
12627
  *
12626
12628
  * Creates a durable Meta ad account in the end user's own business portfolio using
12627
12629
  * their connected Meta Ads token. Requires an active metaads accountId, Ads access,
@@ -12646,12 +12648,31 @@ export const getAdAccountLiveEntities = <ThrowOnError extends boolean = false>(o
12646
12648
  * immediately. Use the returned adAccountId with the existing ads endpoints.
12647
12649
  *
12648
12650
  * This operation is not idempotent and Zernio never automatically retries it.
12649
- * Unknown body fields are rejected. No validateOnly or dry-run option is supported.
12651
+ * Unknown body fields are rejected. The Meta flow has no validateOnly or dry-run option.
12650
12652
  * After a timeout or a 502 with details.creationStatus=unknown, check the business
12651
12653
  * in Ads Manager before attempting another creation. A 201 with connectionUpdated=false
12652
12654
  * means the account exists but needs reconnecting with adAccountIds containing the returned ID and the previous
12653
12655
  * scoped IDs via GET /v1/connect/facebook/ads. Do not repeat the create call.
12654
12656
  *
12657
+ * **Google** (send `platform: google`).
12658
+ *
12659
+ * Google only creates accounts through a manager account, so the new client account
12660
+ * is created under `managerCustomerId`, which must be a manager the Google user behind
12661
+ * the googleads `accountId` reaches (directly or as a sub-manager). List them with
12662
+ * GET /v1/ads/accounts/hierarchy. Whose manager it is (the integrator's or the end
12663
+ * user's) is the caller's choice: pass the connection that reaches it.
12664
+ *
12665
+ * `currency` (ISO 4217) and `timeZone` (IANA name, for example Europe/Madrid) cannot be
12666
+ * changed after creation. The account starts without billing: set it up in Google Ads
12667
+ * before ads can serve. Google caps how many accounts a manager can create and how
12668
+ * many active client accounts it can hold.
12669
+ *
12670
+ * The new customer is added to the connection (and to a scoped connection's allowlist),
12671
+ * discovery is nudged immediately, and the returned adAccountId works with every other
12672
+ * ads endpoint. `validateOnly: true` asks Google to validate the request without creating
12673
+ * anything and returns 200. A real create is not idempotent: after a 502 with
12674
+ * details.creationStatus=unknown, check the manager in Google Ads before trying again.
12675
+ *
12655
12676
  */
12656
12677
  export const createAdAccount = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateAdAccountData, ThrowOnError>) => {
12657
12678
  return (options?.client ?? client).post<CreateAdAccountResponse, CreateAdAccountError, ThrowOnError>({
@@ -4666,6 +4666,169 @@ export type ConversionEvent = {
4666
4666
  */
4667
4667
  export type actionSource = 'web' | 'app' | 'offline' | 'crm' | 'phone_call' | 'system_generated';
4668
4668
 
4669
+ export type CreatedGoogleAdAccount = {
4670
+ platform: 'google';
4671
+ /**
4672
+ * New Google Ads customer id for subsequent ads calls.
4673
+ */
4674
+ adAccountId: string;
4675
+ /**
4676
+ * Manager the account was created under.
4677
+ */
4678
+ managerCustomerId: string;
4679
+ /**
4680
+ * Whether the customer was added to the connection and discovery was scheduled. When false the account exists: reconnect Google Ads instead of creating it again.
4681
+ */
4682
+ connectionUpdated: boolean;
4683
+ /**
4684
+ * Recovery instructions if the account could not be attached to the connection.
4685
+ */
4686
+ warnings: Array<(string)>;
4687
+ /**
4688
+ * Always true. The account has no billing until it is set up in Google Ads.
4689
+ */
4690
+ paymentMethodRequired: boolean;
4691
+ /**
4692
+ * Billing setup instructions for the user.
4693
+ */
4694
+ nextSteps: string;
4695
+ /**
4696
+ * Always false on a 201.
4697
+ */
4698
+ validateOnly: boolean;
4699
+ };
4700
+
4701
+ export type CreatedMetaAdAccount = {
4702
+ /**
4703
+ * New Meta ad account ID for subsequent ads calls.
4704
+ */
4705
+ adAccountId: string;
4706
+ /**
4707
+ * Owning business portfolio ID.
4708
+ */
4709
+ businessId: string;
4710
+ /**
4711
+ * Whether the connection scope and discovery schedule were updated.
4712
+ */
4713
+ connectionUpdated: boolean;
4714
+ /**
4715
+ * Always true as a delivery prerequisite. This is not a live funding-source check. Confirm payment or invoicing in Ads Manager.
4716
+ */
4717
+ paymentMethodRequired: boolean;
4718
+ /**
4719
+ * Open the created account in Ads Manager.
4720
+ */
4721
+ adsManagerUrl: string;
4722
+ /**
4723
+ * Payment setup instructions for the user.
4724
+ */
4725
+ nextSteps: string;
4726
+ /**
4727
+ * Recovery instructions if the account could not be attached to the connection.
4728
+ */
4729
+ warnings: Array<(string)>;
4730
+ };
4731
+
4732
+ export type CreateGoogleAdAccountRequest = {
4733
+ platform: 'google';
4734
+ /**
4735
+ * Zernio googleads SocialAccount ID whose Google user reaches the manager.
4736
+ */
4737
+ accountId: string;
4738
+ /**
4739
+ * Manager (MCC) customer id without dashes. The new account is created under it. List reachable managers with GET /v1/ads/accounts/hierarchy.
4740
+ */
4741
+ managerCustomerId: string;
4742
+ /**
4743
+ * Account name. Whitespace is trimmed.
4744
+ */
4745
+ name: string;
4746
+ /**
4747
+ * Uppercase ISO 4217 currency. Cannot be changed after creation.
4748
+ */
4749
+ currency: string;
4750
+ /**
4751
+ * IANA time zone name, for example Europe/Madrid. Cannot be changed after creation.
4752
+ */
4753
+ timeZone: string;
4754
+ /**
4755
+ * Ask Google to validate the request without creating the account.
4756
+ */
4757
+ validateOnly?: boolean;
4758
+ };
4759
+
4760
+ export type CreateMetaAdAccountRequest = {
4761
+ /**
4762
+ * Optional. Omit it or send meta for a Meta ad account.
4763
+ */
4764
+ platform?: 'meta';
4765
+ /**
4766
+ * Zernio metaads SocialAccount ID.
4767
+ */
4768
+ accountId: string;
4769
+ /**
4770
+ * Business portfolio that will own the account.
4771
+ */
4772
+ businessId: string;
4773
+ /**
4774
+ * Ad account name. Whitespace is trimmed.
4775
+ */
4776
+ name: string;
4777
+ /**
4778
+ * Uppercase ISO 4217 currency supported by Meta.
4779
+ */
4780
+ currency: string;
4781
+ /**
4782
+ * Numeric Meta timezone ID from the linked timezone list. For example 1 is America/Los_Angeles.
4783
+ */
4784
+ timezoneId: number;
4785
+ /**
4786
+ * End advertiser business or page ID. NONE uses the owning business.
4787
+ */
4788
+ endAdvertiser?: string;
4789
+ /**
4790
+ * Media agency business or page ID. NONE for self-serve customers.
4791
+ */
4792
+ mediaAgency?: string;
4793
+ /**
4794
+ * Partner business or page ID. NONE for self-serve customers.
4795
+ */
4796
+ partner?: string;
4797
+ /**
4798
+ * Request Meta invoicing. Eligibility is determined by Meta.
4799
+ */
4800
+ invoice?: boolean;
4801
+ /**
4802
+ * Existing Meta invoice group ID.
4803
+ */
4804
+ invoiceGroupId?: string;
4805
+ /**
4806
+ * Addresses for Meta invoices.
4807
+ */
4808
+ invoicingEmails?: Array<(string)>;
4809
+ /**
4810
+ * Meta insertion-order invoicing option.
4811
+ */
4812
+ io?: boolean;
4813
+ /**
4814
+ * Purchase order number.
4815
+ */
4816
+ poNumber?: string;
4817
+ /**
4818
+ * Existing Meta funding reference. Does not add a payment method.
4819
+ */
4820
+ fundingId?: string;
4821
+ /**
4822
+ * Meta Business Manager creation flag.
4823
+ */
4824
+ adAccountCreatedFromBmFlag?: boolean;
4825
+ };
4826
+
4827
+ /**
4828
+ * Optional. Omit it or send meta for a Meta ad account.
4829
+ */
4830
+ export type platform6 = 'meta';
4831
+
4669
4832
  /**
4670
4833
  * In addition to the `required` list, the request must use
4671
4834
  * EXACTLY ONE of the two shapes:
@@ -7378,7 +7541,7 @@ export type HubSpotSettings = {
7378
7541
  logMessages: boolean;
7379
7542
  };
7380
7543
 
7381
- export type platform6 = 'hubspot';
7544
+ export type platform7 = 'hubspot';
7382
7545
 
7383
7546
  export type ImessageAudienceContact = {
7384
7547
  conversationId?: string;
@@ -7458,7 +7621,7 @@ export type ImessageSender = {
7458
7621
  isActive?: boolean;
7459
7622
  };
7460
7623
 
7461
- export type platform7 = 'imessage';
7624
+ export type platform8 = 'imessage';
7462
7625
 
7463
7626
  /**
7464
7627
  * A provisioned iMessage sender order and its lifecycle. Activation is asynchronous: poll GET /v1/imessage/senders/{senderId} or subscribe to account.connected.
@@ -7611,7 +7774,7 @@ export type InboxWebhookConversationDetail = {
7611
7774
  contactId?: string;
7612
7775
  };
7613
7776
 
7614
- export type platform8 = 'instagram' | 'facebook' | 'telegram' | 'whatsapp' | 'twitter' | 'reddit' | 'bluesky' | 'sms' | 'rcs' | 'slack' | 'tiktok' | 'imessage';
7777
+ export type platform9 = 'instagram' | 'facebook' | 'telegram' | 'whatsapp' | 'twitter' | 'reddit' | 'bluesky' | 'sms' | 'rcs' | 'slack' | 'tiktok' | 'imessage';
7615
7778
 
7616
7779
  /**
7617
7780
  * The message object included in inbox webhook payloads.
@@ -7730,7 +7893,7 @@ export type InboxWebhookMessage = {
7730
7893
  isRead: boolean;
7731
7894
  };
7732
7895
 
7733
- export type platform9 = 'instagram' | 'facebook' | 'telegram' | 'whatsapp' | 'sms';
7896
+ export type platform10 = 'instagram' | 'facebook' | 'telegram' | 'whatsapp' | 'sms';
7734
7897
 
7735
7898
  export type direction2 = 'incoming' | 'outgoing';
7736
7899
 
@@ -7858,7 +8021,7 @@ export type InstagramAccountInsightsResponse = {
7858
8021
  /**
7859
8022
  * Platform that served this response.
7860
8023
  */
7861
- export type platform10 = 'facebook' | 'instagram' | 'youtube' | 'linkedin' | 'tiktok';
8024
+ export type platform11 = 'facebook' | 'instagram' | 'youtube' | 'linkedin' | 'tiktok';
7862
8025
 
7863
8026
  export type metricType = 'time_series' | 'total_value';
7864
8027
 
@@ -9632,7 +9795,7 @@ export type PlatformTarget = {
9632
9795
  [key: string]: unknown;
9633
9796
  };
9634
9797
  /**
9635
- * Platform-specific status: pending, processing, uploading, published, failed, cancelled (removed from the platform via DELETE /v1/posts/{postId}/unpublish)
9798
+ * Platform-specific status: pending, processing, uploading, published, failed, cancelled (removed from the platform via POST /v1/posts/{postId}/unpublish)
9636
9799
  */
9637
9800
  status?: string;
9638
9801
  /**
@@ -9759,7 +9922,7 @@ export type Post = {
9759
9922
  scheduledFor?: string;
9760
9923
  timezone?: string;
9761
9924
  /**
9762
- * `cancelled` is set by DELETE /v1/posts/{postId}/unpublish once every platform entry has been removed from its platform (a post with published entries left becomes `partial`); cancelled posts can be edited and rescheduled like drafts.
9925
+ * `cancelled` is set by POST /v1/posts/{postId}/unpublish once every platform entry has been removed from its platform (a post with published entries left becomes `partial`); cancelled posts can be edited and rescheduled like drafts.
9763
9926
  */
9764
9927
  status?: 'draft' | 'scheduled' | 'publishing' | 'published' | 'partial' | 'failed' | 'cancelled';
9765
9928
  /**
@@ -10847,7 +11010,7 @@ export type ReviewWebhookReview = {
10847
11010
  /**
10848
11011
  * Platform the review originated on. Currently Google Business Profile only.
10849
11012
  */
10850
- export type platform11 = 'googlebusiness';
11013
+ export type platform12 = 'googlebusiness';
10851
11014
 
10852
11015
  /**
10853
11016
  * A Meta Reach & Frequency prediction. Money values in whole units of the ad account currency.
@@ -11081,7 +11244,7 @@ export type SocialAccount = {
11081
11244
  };
11082
11245
  };
11083
11246
 
11084
- export type platform12 = 'tiktok' | 'instagram' | 'facebook' | 'youtube' | 'linkedin' | 'twitter' | 'threads' | 'pinterest' | 'reddit' | 'bluesky' | 'googlebusiness' | 'telegram' | 'snapchat' | 'discord' | 'slack' | 'whatsapp' | 'shopify' | 'wordpress' | 'wix' | 'linkedinads' | 'metaads' | 'pinterestads' | 'tiktokads' | 'xads' | 'googleads' | 'openaiads' | 'redditads' | 'sms' | 'phone' | 'rcs' | 'whopads' | 'hubspot';
11247
+ export type platform13 = 'tiktok' | 'instagram' | 'facebook' | 'youtube' | 'linkedin' | 'twitter' | 'threads' | 'pinterest' | 'reddit' | 'bluesky' | 'googlebusiness' | 'telegram' | 'snapchat' | 'discord' | 'slack' | 'whatsapp' | 'shopify' | 'wordpress' | 'wix' | 'linkedinads' | 'metaads' | 'pinterestads' | 'tiktokads' | 'xads' | 'googleads' | 'openaiads' | 'redditads' | 'sms' | 'phone' | 'rcs' | 'whopads' | 'hubspot';
11085
11248
 
11086
11249
  /**
11087
11250
  * TikTok accounts only. The account type TikTok reported when the account was connected. `personal` accounts cannot use TikTok direct messages through the API (TikTok limits Business Messaging to Business Accounts): skip the inbox for them and tell the user to switch to a Business Account in the TikTok app, then reconnect. `business` is the prerequisite, not a guarantee; messaging also needs the messaging scopes granted and TikTok's regional availability. `unknown` on accounts connected before this was captured or whose grant left out the account-type scope.
@@ -11161,7 +11324,7 @@ export type StorePixelInstall = {
11161
11324
  /**
11162
11325
  * The store platform.
11163
11326
  */
11164
- export type platform13 = 'shopify' | 'wordpress';
11327
+ export type platform14 = 'shopify' | 'wordpress';
11165
11328
 
11166
11329
  /**
11167
11330
  * WordPress only.
@@ -11842,7 +12005,7 @@ export type TrackingTag = {
11842
12005
  autoTagging?: boolean;
11843
12006
  };
11844
12007
 
11845
- export type platform14 = 'metaads' | 'openaiads' | 'tiktokads' | 'googleads' | 'xads' | 'linkedinads' | 'pinterestads' | 'whopads';
12008
+ export type platform15 = 'metaads' | 'openaiads' | 'tiktokads' | 'googleads' | 'xads' | 'linkedinads' | 'pinterestads' | 'whopads';
11846
12009
 
11847
12010
  /**
11848
12011
  * Platform-native flavor of the tag (Meta: `pixel`).
@@ -13758,7 +13921,7 @@ export type WebhookPayloadComment = {
13758
13921
 
13759
13922
  export type event14 = 'comment.received';
13760
13923
 
13761
- export type platform15 = 'instagram' | 'facebook' | 'threads' | 'youtube' | 'linkedin' | 'bluesky' | 'reddit' | 'tiktok';
13924
+ export type platform16 = 'instagram' | 'facebook' | 'threads' | 'youtube' | 'linkedin' | 'bluesky' | 'reddit' | 'tiktok';
13762
13925
 
13763
13926
  export type WebhookPayloadCommerceOrder = {
13764
13927
  /**
@@ -14120,7 +14283,7 @@ export type WebhookPayloadLead = {
14120
14283
 
14121
14284
  export type event22 = 'lead.received';
14122
14285
 
14123
- export type platform16 = 'facebook';
14286
+ export type platform17 = 'facebook';
14124
14287
 
14125
14288
  /**
14126
14289
  * Webhook payload for message received events
@@ -15137,7 +15300,7 @@ export type event27 = 'message.sent';
15137
15300
  /**
15138
15301
  * Every platform whose outgoing messages Zernio observes. sms is absent on purpose: its carrier receipts update delivery status and never raise message.sent.
15139
15302
  */
15140
- export type platform17 = 'instagram' | 'facebook' | 'telegram' | 'whatsapp' | 'twitter' | 'reddit' | 'bluesky' | 'slack' | 'tiktok' | 'imessage';
15303
+ export type platform18 = 'instagram' | 'facebook' | 'telegram' | 'whatsapp' | 'twitter' | 'reddit' | 'bluesky' | 'slack' | 'tiktok' | 'imessage';
15141
15304
 
15142
15305
  /**
15143
15306
  * WhatsApp send origin. whatsapp_business_app when sent from the WhatsApp Business phone app on a Coexistence number; cloud_api when sent through Zernio (dashboard, API, or broadcasts); meta_business_agent when Meta Business Agent answered on the number. Absent on non-WhatsApp platforms. Says where WhatsApp saw the send come from, not which Zernio surface produced it: read sentVia for that.
@@ -15712,7 +15875,7 @@ export type WebhookPayloadWhatsAppAccountAlertReceived = {
15712
15875
 
15713
15876
  export type event38 = 'whatsapp.account.alert_received';
15714
15877
 
15715
- export type platform18 = 'whatsapp';
15878
+ export type platform19 = 'whatsapp';
15716
15879
 
15717
15880
  /**
15718
15881
  * Webhook payload for the `whatsapp.account.name_status_updated` event.
@@ -33780,7 +33943,7 @@ export type UpdateBrandedCallingIdentityData = {
33780
33943
  };
33781
33944
  references?: BrandedCallingReferences;
33782
33945
  /**
33783
- * One entry per point id of the open reviewRequest. A text point takes text; a link point takes url; file and link_or_file points take url set to the URL of a file you uploaded first (POST /v1/media/upload). A point id that is not on the open request is a 422.
33946
+ * One entry per point id of the open reviewRequest. A text point takes text; a link point takes url; file and link_or_file points take url set to the URL of a file you uploaded first (POST /v1/media/presign). A point id that is not on the open request is a 422.
33784
33947
  */
33785
33948
  reviewAnswers?: {
33786
33949
  [key: string]: {
@@ -47813,100 +47976,17 @@ export type GetAdAccountLiveEntitiesResponse = ({
47813
47976
  export type GetAdAccountLiveEntitiesError = (ErrorResponse | unknown);
47814
47977
 
47815
47978
  export type CreateAdAccountData = {
47816
- body: {
47817
- /**
47818
- * Zernio metaads SocialAccount ID.
47819
- */
47820
- accountId: string;
47821
- /**
47822
- * Business portfolio that will own the account.
47823
- */
47824
- businessId: string;
47825
- /**
47826
- * Ad account name. Whitespace is trimmed.
47827
- */
47828
- name: string;
47829
- /**
47830
- * Uppercase ISO 4217 currency supported by Meta.
47831
- */
47832
- currency: string;
47833
- /**
47834
- * Numeric Meta timezone ID from the linked timezone list. For example 1 is America/Los_Angeles.
47835
- */
47836
- timezoneId: number;
47837
- /**
47838
- * End advertiser business or page ID. NONE uses the owning business.
47839
- */
47840
- endAdvertiser?: string;
47841
- /**
47842
- * Media agency business or page ID. NONE for self-serve customers.
47843
- */
47844
- mediaAgency?: string;
47845
- /**
47846
- * Partner business or page ID. NONE for self-serve customers.
47847
- */
47848
- partner?: string;
47849
- /**
47850
- * Request Meta invoicing. Eligibility is determined by Meta.
47851
- */
47852
- invoice?: boolean;
47853
- /**
47854
- * Existing Meta invoice group ID.
47855
- */
47856
- invoiceGroupId?: string;
47857
- /**
47858
- * Addresses for Meta invoices.
47859
- */
47860
- invoicingEmails?: Array<(string)>;
47861
- /**
47862
- * Meta insertion-order invoicing option.
47863
- */
47864
- io?: boolean;
47865
- /**
47866
- * Purchase order number.
47867
- */
47868
- poNumber?: string;
47869
- /**
47870
- * Existing Meta funding reference. Does not add a payment method.
47871
- */
47872
- fundingId?: string;
47873
- /**
47874
- * Meta Business Manager creation flag.
47875
- */
47876
- adAccountCreatedFromBmFlag?: boolean;
47877
- };
47979
+ body: (CreateMetaAdAccountRequest | CreateGoogleAdAccountRequest);
47878
47980
  };
47879
47981
 
47880
47982
  export type CreateAdAccountResponse = ({
47983
+ platform: 'google';
47984
+ managerCustomerId: string;
47881
47985
  /**
47882
- * New Meta ad account ID for subsequent ads calls.
47986
+ * Always true on a 200.
47883
47987
  */
47884
- adAccountId: string;
47885
- /**
47886
- * Owning business portfolio ID.
47887
- */
47888
- businessId: string;
47889
- /**
47890
- * Whether the connection scope and discovery schedule were updated.
47891
- */
47892
- connectionUpdated: boolean;
47893
- /**
47894
- * Always true as a delivery prerequisite. This is not a live funding-source check. Confirm payment or invoicing in Ads Manager.
47895
- */
47896
- paymentMethodRequired: boolean;
47897
- /**
47898
- * Open the created account in Ads Manager.
47899
- */
47900
- adsManagerUrl: string;
47901
- /**
47902
- * Payment setup instructions for the user.
47903
- */
47904
- nextSteps: string;
47905
- /**
47906
- * Recovery instructions if the account could not be attached to the connection.
47907
- */
47908
- warnings: Array<(string)>;
47909
- });
47988
+ validateOnly: boolean;
47989
+ } | (CreatedMetaAdAccount | CreatedGoogleAdAccount));
47910
47990
 
47911
47991
  export type CreateAdAccountError = (ErrorResponse);
47912
47992