# Method: monetization.onetimeproducts.purchaseOptions.offers.batchUpdate

- [HTTP request](https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers/batchUpdate#body.HTTP_TEMPLATE)
- [Path parameters](https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers/batchUpdate#body.PATH_PARAMETERS)
- [Request body](https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers/batchUpdate#body.request_body)
  - [JSON representation](https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers/batchUpdate#body.request_body.SCHEMA_REPRESENTATION)
- [Response body](https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers/batchUpdate#body.response_body)
  - [JSON representation](https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers/batchUpdate#body.BatchUpdateOneTimeProductOffersResponse.SCHEMA_REPRESENTATION)
- [Authorization scopes](https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers/batchUpdate#body.aspect)
- [UpdateOneTimeProductOfferRequest](https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers/batchUpdate#UpdateOneTimeProductOfferRequest)
  - [JSON representation](https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers/batchUpdate#UpdateOneTimeProductOfferRequest.SCHEMA_REPRESENTATION)
- [Try it!](https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers/batchUpdate#try-it)

Creates or updates one or more one-time product offers.

### HTTP request

`POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/oneTimeProducts/{productId}/purchaseOptions/{purchaseOptionId}/offers:batchUpdate`

The URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.

### Path parameters

| Parameters ||
|---|---|
| `packageName` | `string` Required. The parent app (package name) of the updated offers. Must be equal to the packageName field on all the updated OneTimeProductOffer resources. |
| `productId` | `string` Required. The product ID of the parent one-time product, if all updated offers belong to the same product. If this request spans multiple one-time products, set this field to "-". |
| `purchaseOptionId` | `string` Required. The parent purchase option (ID) for which the offers should be updated. May be specified as '-' to update offers from multiple purchase options. |

### Request body

The request body contains data with the following structure:

| JSON representation |
|---|
| ``` { "requests": [ { object (`https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers/batchUpdate#UpdateOneTimeProductOfferRequest`) } ] } ``` |

| Fields ||
|---|---|
| `requests[]` | ``object (`https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers/batchUpdate#UpdateOneTimeProductOfferRequest`)`` Required. A list of update requests of up to 100 elements. All requests must update different offers. |

### Response body

Response message for offers.batchUpdate.

If successful, the response body contains data with the following structure:

| JSON representation |
|---|
| ``` { "oneTimeProductOffers": [ { object (`https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers#OneTimeProductOffer`) } ] } ``` |

| Fields ||
|---|---|
| `oneTimeProductOffers[]` | ``object (`https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers#OneTimeProductOffer`)`` The list of updated one-time product offers, in the same order as the request. |

### Authorization scopes

Requires the following OAuth scope:

- `https://www.googleapis.com/auth/androidpublisher`

## UpdateOneTimeProductOfferRequest

Request message for UpdateOneTimeProductOffer.

| JSON representation |
|---|
| ``` { "oneTimeProductOffer": { object (`https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers#OneTimeProductOffer`) }, "updateMask": string, "regionsVersion": { object (`https://developers.google.com/android-publisher/api-ref/rest/v3/RegionsVersion`) }, "allowMissing": boolean, "latencyTolerance": enum (`https://developers.google.com/android-publisher/api-ref/rest/v3/ProductUpdateLatencyTolerance`) } ``` |

| Fields ||
|---|---|
| `oneTimeProductOffer` | ``object (`https://developers.google.com/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers#OneTimeProductOffer`)`` Required. The one-time product offer to update. |
| `updateMask` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#field-mask` format)`` Required. The list of fields to be updated. This is a comma-separated list of fully qualified names of fields. Example: `"user.displayName,photo"`. |
| `regionsVersion` | ``object (`https://developers.google.com/android-publisher/api-ref/rest/v3/RegionsVersion`)`` Required. The version of the available regions being used for the offer. |
| `allowMissing` | `boolean` Optional. If set to true, and the offer with the given packageName, productId, purchaseOptionId and offerId doesn't exist, an offer will be created. If a new offer is created, the updateMask is ignored. |
| `latencyTolerance` | ``enum (`https://developers.google.com/android-publisher/api-ref/rest/v3/ProductUpdateLatencyTolerance`)`` Optional. The latency tolerance for the propagation of this offer update. Defaults to latency-sensitive. |