Set up ad account billing (monthly invoicing)
Bills a Google Ads account to a monthly invoicing payments account of a manager above it, and proposes its account budget, so the account can serve without anyone opening Google Ads.
Monthly invoicing only. Google's API cannot add a card or other payment method, so paymentsAccountId must be one of the manager's monthly invoicing (consolidated billing) payments accounts listed by GET /v1/ads/accounts/billing. A manager without monthly invoicing has none, and billing has to be added in Google Ads instead.
Creates a billing setup (Google's BillingSetupService) that starts now on that payments account, then an account budget proposal that starts now and never ends: unlimited by default, or capped at spendingLimit in the account currency. Google reviews the budget offline, usually within an hour; until then the setup reads APPROVED_HELD and ads do not serve. A customer whose current billing setup already has a budget is refused with 409, and so is one billed to another payments account: this call never replaces existing billing. A current setup on the same payments account without a budget (for example after a budget rejection) is reused, so resending the same request finishes it.
Not idempotent and never retried: after a 502 with details.creationStatus=unknown, read GET /v1/ads/accounts/billing before retrying. Google has no dry run for billing setups, so validateOnly: true checks the payments account and the existing billing without creating anything (and asks Google to validate the budget when a setup would be reused).
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.adaccounts.setUpAdAccountBilling({ body: { accountId: 'account_abc123', adAccountId: 'adaccount_abc123', paymentsAccountId: 'paymentsaccount_abc123', },});console.log(data);{ "customerId": "string", "paymentsAccountId": "string", "paymentsAccountName": "string", "billingSetupId": "string", "reusedBillingSetup": true, "accountBudgetProposalId": "string", "validateOnly": true}Revoke a user access invitation
Withdraws an email invitation to a Google Ads account that has not been accepted yet. Removes the invitation `invitationId` (from GET on this path) from `adAccountId`. It no longer works from the email, and the address can be invited again.
Withdraw an invitation awaiting multi-party approval
Cancels an email invitation that Google is still holding for a second admin's approval, so the same address can be invited again right away. Resolves the review `multiPartyAuthReviewId` (from POST /v1/ads/accounts/user-invitations or GET on this path) to `REVOKED` through Google's MultiPartyAuthReviewService. Only the Google user who sent the invitation can withdraw it, and only while no admin has approved or rejected it; otherwise Google refuses and this returns a 400. Without a withdrawal, Google refuses a new invitation to the address until the review is resolved or expires.