You must have a Merchant Center account in good standing and approved products for free listings in your account. To get started, see these Help Center articles:
- Get started with Google Merchant Center
- How to upload products to your Merchant Center
- Free listings for products
Once you have your Merchant Center set up with products, you must complete requirements in this section before building the API integration.
1. Merchant Center settings
Ensure the following settings are configured in your Google Merchant Center account:
1.1. Return policy
You must define your return policies in Merchant Center, as it is a Merchant of
Record requirement and will be referenced on the checkout screen. The configured
policies apply globally to your account, although you can use the
return_policy_label feed attribute to restrict a given return policy to a
subset of products.
If your Merchant Center account is an advanced account, your return policies must be configured at each individual sub-account.
You must include return cost, return speed (window), and a link to the full policy. Read more about configuring returns here.
1.2. Customer support info
You must set your customer support information in Merchant Center. It will be used to generate the "Contact Merchant" link on the order confirmation page. Read more about setting customer support info here.
2. Product data
You must update your product feed to signal eligibility and provide compliance data. This information is required to enable checkout through UCP with Google, as it allows agents to determine product eligibility, calculate accurate total costs, and display mandatory legal warnings to the user.
2.1. Agentic checkout eligibility
This opts a product into the checkout experience on Google.
This is provided using a product attribute native_commerce containing a single
boolean. If set to false or missing, the product won't be eligible for checkout.
2.2. Product warnings
This is mandatory for items with regulatory warning requirements (e.g., California Proposition 65). You are responsible for compliance with all applicable laws, including product warning requirements. These warnings are displayed prominently on the Checkout screen when you provide them.
Provide the consumer_notice attribute group with two sub-attributes:
consumer_notice_type: Must be one oflegal_disclaimer,safety_warning, orprop_65.consumer_notice_message: String (max 1000 chars). HTML tags<b>,<br>, and<i>are accepted.
2.3. Product identifier
The id in your product feed must match the product ID expected by your
Checkout API. If they match, no action is required. Otherwise, use the
merchant_item_id custom attribute to map them.
2.4. How to add the attributes to your products
The following examples outline different options to provide the product to Merchant Center.
2.4.1. Feeds
We recommend that you create a supplemental data source (instructions here). You can add this to your primary feed, but proceed with caution as incorrect formatting may impact regular product ingestion.
Note on Syntax: Ensure complex strings (like the Prop 65 message) don't contain characters that break your file format (like extra commas in a CSV) unless properly escaped.
Text file format:
| ID | native_commerce | consumer_notice |
|---|---|---|
| 11111 | TRUE | prop_65:This product can expose you... |
| 22222 | TRUE | |
| 33333 | FALSE |
XML format:
<item>
<g:id>11111</g:id>
<g:native_commerce>TRUE</g:native_commerce>
<g:consumer_notice>
<g:consumer_notice_type>prop_65</g:consumer_notice_type>
<g:consumer_notice_message>
This product can expose you to chemicals...
</g:consumer_notice_message>
</g:consumer_notice>
</item>
<item>
<g:id>22222</g:id>
<g:native_commerce>TRUE</g:native_commerce>
</item>
<item>
<g:id>33333</g:id>
<g:native_commerce>FALSE</g:native_commerce>
</item>
2.4.2. Content API
Provide the attributes as custom attributes. They must be included in a products.insert containing the full product, because products.update does not support updating customAttributes.
Example:
"customAttributes": [
{
"name": "native commerce",
"groupValues": [
{
"name": "checkout eligibility",
"value": "true"
}
]
},
{
"name": "consumer notice",
"groupValues": [
{
"name": "notice type",
"value": "prop_65"
},
{
"name": "notice message",
"value": "This product can expose you to chemicals..."
}
]
},
{
"name": "merchant item id",
"value": "some_checkout_item_id_1"
}
]
2.4.2. Merchant API
Provide the attributes as custom attributes. You can add them to your existing accounts.productInputs.insert, or update them directly using accounts.productInputs.patch.
Example for insert:
"customAttributes": [
{
"name": "native commerce",
"groupValues": [
{
"name": "checkout eligibility",
"value": "true"
}
]
},
{
"name": "consumer notice",
"groupValues": [
{
"name": "notice type",
"value": "prop_65"
},
{
"name": "notice message",
"value": "This product can expose you to chemicals..."
}
]
},
{
"name": "merchant item id",
"value": "some_checkout_item_id_1"
}
]
Example for update:
| Type | Name | Value |
|---|---|---|
| Path parameters | productInput.name |
accounts/{account}/productInputs/en~US~11111 |
| Query parameters | updateMask |
customAttributes.native%20commerce,customAttributes.consumer%20notice,customAttributes.product%20fee,customAttributes.merchant%20item%20id |
dataSource |
dataSources/{datasource} |
{
"offerId": "11111",
"contentLanguage": "en",
"feedLabel": "US",
"customAttributes": [
{
"name": "native commerce",
"groupValues": [
{
"name": "checkout eligibility",
"value": "true"
}
]
},
{
"name": "consumer notice",
"groupValues": [
{
"name": "notice type",
"value": "prop_65"
},
{
"name": "notice message",
"value": "This product can expose you to chemicals..."
}
]
},
{
"name": "product fee",
"groupValues": [
{
"name": "product fee type",
"value": "US_AZ_TIRE_FEE"
},
{
"name": "product fee amount",
"value": "2.75 USD"
}
]
},
{
"name": "merchant item id",
"value": "some_checkout_item_id_1"
}
]
}
3. Product Restrictions
The following categories of products are ineligible for checkout. Ensure these
items have native_commerce empty or set to false.
Financial products and recurring billing models
- Subscriptions: products requiring recurring billing cycles.
- Installments: transactions requiring merchant-mandated payment plans or financing.
Customized goods and fulfillment options
- Personalized goods: items requiring custom design decisions (e.g., engravings, monograms).
- Non-new or final sale items: refurbished goods, used items, and items marked as "Final Sale" (no returns).
- Pre-order items: products with future release dates and deferred fulfillment.
- Bundled services: items requiring additional contracts, such as warranties, installation, or setup.
- Special shipping: items requiring non-standard delivery fees (e.g., freight, premium delivery).
- Gifting: transactions requiring split-invoice logistics or hidden pricing for recipients.
- In-store activation: products that must be physically activated at a retail location.
Policy and safety restrictions
- Age restricted: items requiring ID verification (e.g., Alcohol, Tobacco).
- Prohibited content: weapons, adult content, healthcare/pharmaceuticals, counterfeits, or any other category blocked by standard Google Shopping Policy.
Digital goods and services
- Services: lessons, online classes, and travel packages (unless integrated using specific Travel rails).
- Rentals: movie rentals, equipment rentals, or leasing.
- Virtual items: in-game currency, MMORPG goods, or skins.
- Software dependencies: goods that require the user to install specific software prior to completing the purchase.