Method: monetization.onetimeproducts.purchaseOptions.offers.batchUpdate
Stay organized with collections
Save and categorize content based on your preferences.
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 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:
Fields |
requests[] |
object (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:
Fields |
oneTimeProductOffers[] |
object (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.
Fields |
oneTimeProductOffer |
object (OneTimeProductOffer )
Required. The one-time product offer to update.
|
updateMask |
string (FieldMask 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 (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 (ProductUpdateLatencyTolerance )
Optional. The latency tolerance for the propagation of this offer update. Defaults to latency-sensitive.
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-07-16 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-07-16 UTC."],[],[],null,["# Method: monetization.onetimeproducts.purchaseOptions.offers.batchUpdate\n\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Request body](#body.request_body)\n - [JSON representation](#body.request_body.SCHEMA_REPRESENTATION)\n- [Response body](#body.response_body)\n - [JSON representation](#body.BatchUpdateOneTimeProductOffersResponse.SCHEMA_REPRESENTATION)\n- [Authorization scopes](#body.aspect)\n- [UpdateOneTimeProductOfferRequest](#UpdateOneTimeProductOfferRequest)\n - [JSON representation](#UpdateOneTimeProductOfferRequest.SCHEMA_REPRESENTATION)\n- [Try it!](#try-it)\n\nCreates or updates one or more one-time product offers.\n\n### HTTP request\n\n`POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/oneTimeProducts/{productId}/purchaseOptions/{purchaseOptionId}/offers:batchUpdate`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n| Parameters ||\n|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `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. |\n| `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 \"-\". |\n| `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. |\n\n### Request body\n\nThe request body contains data with the following structure:\n\n| JSON representation |\n|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"requests\": [ { object (/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers/batchUpdate#UpdateOneTimeProductOfferRequest) } ] } ``` |\n\n| Fields ||\n|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `requests[]` | `object (`[UpdateOneTimeProductOfferRequest](/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. |\n\n### Response body\n\nResponse message for offers.batchUpdate.\n\nIf successful, the response body contains data with the following structure:\n\n| JSON representation |\n|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"oneTimeProductOffers\": [ { object (/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers#OneTimeProductOffer) } ] } ``` |\n\n| Fields ||\n|--------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `oneTimeProductOffers[]` | `object (`[OneTimeProductOffer](/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. |\n\n### Authorization scopes\n\nRequires the following OAuth scope:\n\n- `https://www.googleapis.com/auth/androidpublisher`\n\nUpdateOneTimeProductOfferRequest\n--------------------------------\n\nRequest message for UpdateOneTimeProductOffer.\n\n| JSON representation |\n|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"oneTimeProductOffer\": { object (/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers#OneTimeProductOffer) }, \"updateMask\": string, \"regionsVersion\": { object (/android-publisher/api-ref/rest/v3/RegionsVersion) }, \"allowMissing\": boolean, \"latencyTolerance\": enum (/android-publisher/api-ref/rest/v3/ProductUpdateLatencyTolerance) } ``` |\n\n| Fields ||\n|-----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `oneTimeProductOffer` | `object (`[OneTimeProductOffer](/android-publisher/api-ref/rest/v3/monetization.onetimeproducts.purchaseOptions.offers#OneTimeProductOffer)`)` Required. The one-time product offer to update. |\n| `updateMask` | `string (`[FieldMask](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\"`. |\n| `regionsVersion` | `object (`[RegionsVersion](/android-publisher/api-ref/rest/v3/RegionsVersion)`)` Required. The version of the available regions being used for the offer. |\n| `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. |\n| `latencyTolerance` | `enum (`[ProductUpdateLatencyTolerance](/android-publisher/api-ref/rest/v3/ProductUpdateLatencyTolerance)`)` Optional. The latency tolerance for the propagation of this offer update. Defaults to latency-sensitive. |"]]