To sign up with an existing Payments account, set the payments_account to the resource ID of a valid Payments account (payments_account_info should not be set).
from __future__ import absolute_import
import argparseimport siximport sysimport osimport google.ads.google_ads.client
GG_DEVELOP_TOKEN = "GG_DEVELOP_TOKEN"
def main(client, customer_id): billing_setup_service = client.get_service('BillingSetupService', version='v2')
# Create billing setup operation. billing_setup_operation = client.get_type('BillingSetupOperation', version='v2') setup = billing_setup_operation.create payments_accounts_path = "customers/{}/paymentsAccounts/{}".format(customer_id, "payments_account_id")
setup.payments_account.value = payments_accounts_path setup.start_time_type = client.get_type("TimeTypeEnum").NOW
try: billing_setup_response = billing_setup_service.mutate_billing_setup( customer_id, billing_setup_operation) print(billing_setup_response) except google.ads.google_ads.errors.GoogleAdsException as ex: print(ex)
if __name__ == '__main__': # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified.
credentials_dict_lb = {"token_uri": "https://oauth2.googleapis.com/token", "token": None, "scopes": ["https://www.googleapis.com/auth/adwords", "https://www.googleapis.com/auth/userinfo.profile", "https://www.googleapis.com/auth/userinfo.email", "openid"], "client_id": "client_id", "refresh_token": "refresh_token", "client_secret": "client_secret"}
credentials_m = google.oauth2.credentials.Credentials(**credentials_dict_lb)
google_ads_client = google.ads.google_ads.client.GoogleAdsClient(credentials_m, GG_DEVELOP_TOKEN, login_customer_id='123456789')
parser = argparse.ArgumentParser( description=('Removes billing setup for specified customer and billing ' 'setup ID.')) # The following argument(s) should be provided to run the example. parser.add_argument('-c', '--customer_id', type=six.text_type, required=True, help='The Google Ads customer ID.') args = parser.parse_args()
main(google_ads_client, args.customer_id)
Request made: ClientCustomerId: 6384836037, Host: googleads.googleapis.com:443, Method: /google.ads.googleads.v2.services.Bil lingSetupService/MutateBillingSetup, RequestId: pG9Dfss2kjObc5P4Cjazpw, IsFault: True, FaultMessage: The customer does not ha ve permission to signup for billing.(<_Rendezvous of RPC that terminated with: status = StatusCode.INVALID_ARGUMENT details = "Request contains an invalid argument." debug_error_string = "{"created":"@1568360172.261203468","description":"Error received from peer ipv4:10.0.0.19:8118" ,"file":"src/core/lib/surface/call.cc","file_line":1052,"grpc_message":"Request contains an invalid argument.","grpc_status": 3}">, <_Rendezvous of RPC that terminated with: status = StatusCode.INVALID_ARGUMENT details = "Request contains an invalid argument." debug_error_string = "{"created":"@1568360172.261203468","description":"Error received from peer ipv4:10.0.0.19:8118" ,"file":"src/core/lib/surface/call.cc","file_line":1052,"grpc_message":"Request contains an invalid argument.","grpc_status": 3}">, errors { error_code { billing_setup_error: NO_SIGNUP_PERMISSION } message: "The customer does not have permission to signup for billing."}, 'pG9Dfss2kjObc5P4Cjazpw')
Billing setup with ID "568283111", status "PENDING", payments_account "customers/6384836037/paymentsAccounts/payments_account_id", payments_account_id "payments_account_id", payments_account_name "", payments_profile_id "payments_profile_id", payments_profile_name "", secondary_payments_profile_id "".
With regards to your concern, it looks like we have a separate thread for this issue. We can keep correspondence related to this issue on the other thread to limit any confusion.
Thanks,
|
||||||