---
title: "POST /v23/customers/{+customerId}/accountBudgetProposals:mutate"
method: POST
path: "/v23/customers/{+customerId}/accountBudgetProposals:mutate"
tags: ["customers"]
---

# POST /v23/customers/{+customerId}/accountBudgetProposals:mutate

`POST /v23/customers/{+customerId}/accountBudgetProposals:mutate`

Creates, updates, or removes account budget proposals. Operation statuses are returned. List of thrown errors: [AccountBudgetProposalError]() [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DateError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]() [StringLengthError]()

## Path parameters

- `customerId` string, required

## Request body

- GoogleAdsSearchads360V23ServicesMutateAccountBudgetProposalRequest — Request message for AccountBudgetProposalService.MutateAccountBudgetProposal.
  - `operation` GoogleAdsSearchads360V23ServicesAccountBudgetProposalOperation — A single operation to propose the creation of a new account-level budget or edit/end/remove an existing one.
    - `updateMask` string, google-fieldmask — FieldMask that determines which budget fields are modified. While budgets may be modified, proposals that propose such modifications are final. Therefore, update operations are not supported for proposals. Proposals that modify budgets have the 'update' proposal type. Specifying a mask for any other proposal type is considered an error.
    - `remove` string — Remove operation: A resource name for the removed proposal is expected, in this format: `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` A request may be cancelled iff it is pending.
    - `create` GoogleAdsSearchads360V23ResourcesAccountBudgetProposal — An account-level budget proposal. All fields prefixed with 'proposed' may not necessarily be applied directly. For example, proposed spending limits may be adjusted before their application. This is true if the 'proposed' field has an 'approved' counterpart, for example, spending limits. Note that the proposal type (proposal_type) changes which fields are required and which must remain empty.
      - `proposedStartDateTime` string — Immutable. The proposed start date time in yyyy-mm-dd hh:mm:ss format.
      - `billingSetup` string — Immutable. The resource name of the billing setup associated with this proposal.
      - `proposalType` 'UNSPECIFIED' | 'UNKNOWN' | 'CREATE' | 'UPDATE' | 'END' | 'REMOVE' — Immutable. The type of this proposal, for example, END to end the budget associated with this proposal.
      - `proposedSpendingLimitType` 'UNSPECIFIED' | 'UNKNOWN' | 'INFINITE' — Immutable. The proposed spending limit as a well-defined type, for example, INFINITE.
      - `proposedNotes` string — Immutable. Notes associated with this budget.
      - `resourceName` string — Immutable. The resource name of the proposal. AccountBudgetProposal resource names have the form: `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}`
      - `approvedStartDateTime` string — Output only. The approved start date time in yyyy-mm-dd hh:mm:ss format.
      - `creationDateTime` string — Output only. The date time when this account-level budget proposal was created, which is not the same as its approval date time, if applicable.
      - `approvedSpendingLimitMicros` string, int64 — Output only. The approved spending limit in micros. One million is equivalent to one unit.
      - `proposedEndDateTime` string — Immutable. The proposed end date time in yyyy-mm-dd hh:mm:ss format.
      - `proposedPurchaseOrderNumber` string — Immutable. A purchase order number is a value that enables the user to help them reference this budget in their monthly invoices.
      - `proposedName` string — Immutable. The name to assign to the account-level budget.
      - `proposedSpendingLimitMicros` string, int64 — Immutable. The proposed spending limit in micros. One million is equivalent to one unit.
      - `approvedSpendingLimitType` 'UNSPECIFIED' | 'UNKNOWN' | 'INFINITE' — Output only. The approved spending limit as a well-defined type, for example, INFINITE.
      - `status` 'UNSPECIFIED' | 'UNKNOWN' | 'PENDING' | 'APPROVED_HELD' | 'APPROVED' | 'CANCELLED' | 'REJECTED' — Output only. The status of this proposal. When a new proposal is created, the status defaults to PENDING.
      - `approvedEndDateTime` string — Output only. The approved end date time in yyyy-mm-dd hh:mm:ss format.
      - `accountBudget` string — Immutable. The resource name of the account-level budget associated with this proposal.
      - `proposedStartTimeType` 'UNSPECIFIED' | 'UNKNOWN' | 'NOW' | 'FOREVER' — Immutable. The proposed start date time as a well-defined type, for example, NOW.
      - `approvedEndTimeType` 'UNSPECIFIED' | 'UNKNOWN' | 'NOW' | 'FOREVER' — Output only. The approved end date time as a well-defined type, for example, FOREVER.
      - `proposedEndTimeType` 'UNSPECIFIED' | 'UNKNOWN' | 'NOW' | 'FOREVER' — Immutable. The proposed end date time as a well-defined type, for example, FOREVER.
      - `id` string, int64 — Output only. The ID of the proposal.
      - `approvalDateTime` string — Output only. The date time when this account-level budget was approved, if applicable.
  - `validateOnly` boolean — If true, the request is validated but not executed. Only errors are returned, not results.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/searchads360.md) · [All operations](https://skmtc.net/google/apis/searchads360/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/searchads360/revisions/40d087435afd/schema)
