Page Summary
-
A billing setup links a Google Ads account to a Payments account, determining who is billed for costs.
-
Each billing setup identifies a Payments account which is associated with a Payments profile responsible for charges.
-
Billing setups contain fields for the Payments account ID, name, and the Payments profile ID.
-
You can create new billing setups using an existing Payments account or by creating a new one simultaneously.
-
New billing setups are subject to approval and can be in various statuses including PENDING, APPROVED_HELD, APPROVED, or CANCELLED.
A billing setup is an account-level link between a Google Ads account and a Payments account (also known as an invoice setup), which effectively determines who is billed for costs incurred by the billing setup's account budgets. Each Payments account corresponds to a single invoice.
About Payments accounts
Each BillingSetup identifies a Payments account
that gets invoiced for costs incurred by its account budgets. This Payments
account is associated with a Payments profile that is
ultimately responsible for charges.
Billing setups contain both a
payments_account field and a group of
payments_account_info fields that identify the
Payments account in use, including the following:
payments_account_info.payments_account_id: A 16-digit ID formatted as a hyphenated string (for example,"1234-5678-9012-3456") used to identify the Payments account associated with the billing setup.payments_account_info.payments_account_name: The name of the Payments account associated with the billing setup. This name is printed on monthly invoices.payments_account_info.payments_profile_id: A 12-digit ID formatted as a hyphenated string (for example,"1234-5678-9012") used to identify the Payments profile associated with the billing setup.
If a Payments account is eligible for consolidated billing, then multiple Google Ads accounts can be grouped in the same invoice by setting their billing setups to use the same underlying Payments account.
Create new billing setups
You can link new billing setups to existing Payments accounts or ones created at the same time.
Use an existing Payments account
To link with an existing Payments account, set
payments_account to the resource name of a valid
Payments account (for example,
customers/{customer_id}/paymentsAccounts/{payments_account_id}). However,
don't modify payments_account_info.
You can list available Payments accounts with the
PaymentsAccountService.ListPaymentsAccounts method.
The PaymentsAccount objects returned depend on
the manager account you use for authentication.
For each PaymentsAccount, the resource name of
its paying manager is in the
paying_manager_customer field.
Use a new Payments account
To link with a new Payments account, set the following fields in
payments_account_info (don't set
payments_account):
The following example shows how to create a new billing setup from an existing
Payments profile ID. As previously indicated, this also creates a new Payments
account with the name My New Payments Account.
BillingSetup billingSetup =
BillingSetup.newBuilder()
.setPaymentsAccountInfo(
PaymentsAccountInfo.newBuilder()
.setPaymentsAccountName("My New Payments Account")
.setPaymentsProfileId("1234-5678-9012")
.build())
.setStartTimeType(TimeTypeEnum.TimeType.NOW)
.build();
BillingSetupOperation operation =
BillingSetupOperation.newBuilder().setCreate(billingSetup).build();
try (BillingSetupServiceClient billingSetupServiceClient =
googleAdsClient.getBillingSetupServiceClient()) {
MutateBillingSetupResponse response =
billingSetupServiceClient.mutateBillingSetup(
Long.toString(customerId), operation);
}
If this is the first billing setup being added to a Google Ads account, this will effectively sign the customer up for billing using the referenced Payments profile.
Billing setup status
New BillingSetup instances are subject to approval before
they go into effect. Until then, their status is
in a PENDING state.
A BillingSetup can have one of the following
status values:
BillingSetupStatus |
Description |
|---|---|
PENDING |
Pending approval. |
APPROVED_HELD |
Approved, but the corresponding first budget has not been approved. This can only occur for billing setups configured for monthly invoicing. |
APPROVED |
Setup was approved. |
CANCELLED |
Setup was cancelled by the user prior to approval. |
Retrieve an account's billing setup
Like most other entities in the Google Ads API, a BillingSetup is
fetched by querying GoogleAdsService.Search or
GoogleAdsService.SearchStream using a Google Ads Query Language
(GAQL) query that specifies which fields to return:
SELECT
billing_setup.resource_name,
billing_setup.id,
billing_setup.status,
billing_setup.payments_account,
billing_setup.payments_account_info.payments_account_id,
billing_setup.payments_account_info.payments_account_name,
billing_setup.payments_account_info.payments_profile_id,
billing_setup.payments_account_info.payments_profile_name,
billing_setup.start_date_time,
billing_setup.end_date_time,
billing_setup.end_time_type
FROM billing_setup
Once you obtain a reference to a BillingSetup,
you can use it to create an AccountBudgetProposal
as described in Account budgets.
Cancel a pending billing setup
A BillingSetup that has not yet taken effect can be canceled
by sending a BillingSetupOperation with its
remove field set to the resource name of the billing
setup (customers/{customer_id}/billingSetups/{billing_setup_id}). Billing
setups can be canceled only if their status is
PENDING or if they are APPROVED to
start some time in the future.