Product catalogPrivate preview
Learn how to share structured product and inventory data with Stripe for AI agent discovery.
Use the product and inventory feed specification to share structured product and stock data with Stripe and distribute your catalog to AI agents for search and shopping. You can begin with a full product feed submission, then send incremental inventory feed updates to keep stock levels and availability current.
Product feed specification
Use the product feed to provide your complete structured catalog (for example, titles, descriptions, identifiers, pricing, fulfillment, and media). Each row represents a product or variant.
Prepare your feed: Format your catalog using the field reference in this document. Each field includes sample values, validation rules, and whether it’s required, recommended, or optional.
Deliver the feed: Send the feed securely using the Stripe API in CSV format (integration details to come). Each row represents one product or variant. Submit a full initial feed to the sandbox endpoint to validate that your data parses correctly and meets all field requirements before pushing to production.
Index and clean your data: We validate and clean your data, index it into the Stripe Catalog, and convert it to the format each agent requires.
Keep your data current: Refresh your feed frequently. Any changes to product attributes, pricing, or fulfillment details should be updated as soon as they occur to maintain customer trust and prevent stale listings.
Feed processing mode
Product feed uploads use upsert mode, where each row represents an insert or update for a product identified by its id.
- If the
iddoesn’t exist, we create the product. - If the
idalready exists, we update the product with the values provided in that row. - Products not included in the file remain unchanged.
Deletion behavior
To remove a product or variant through the feed, include the optional delete column in your CSV. Set true for any products you want to delete. For products you want to keep, set false or leave the field blank.
Product catalog field reference
Review the full schema used by the Stripe catalog in the following sections. Each table lists data types, examples, and requirements.
Basic product data
Provide the essential identifiers and descriptive text that uniquely define each product.
| Field | Data type | Example | Requirement | Notes |
|---|---|---|---|---|
id | String (alphanumeric) |
| Required | Your product’s unique identifier
|
title | String (UTF-8 text) |
| Required | Your product’s title
|
description | String (UTF-8 text) |
| Required | Your product’s description
|
link | URL (RFC 1738) |
| Required | Your product’s landing page
|
Product identifiers
Use these globally recognized identifiers to help differentiate your products for search and matching.
| Field | Data type | Example | Requirement | Notes |
|---|---|---|---|---|
| brand | String | Stripe | Required for all excluding movies, books, and musical recording brands | Your product’s brand name
|
gtin | String (Numeric GTIN, UPC, ISBN) |
| Recommended | Your product’s global trade item number (GTIN)
|
mpn | String (alphanumeric) |
| Required if GTIN is missing | Your product’s manufacturer part number (MPN)
|
Media
Provide visual and optional rich media to represent the product accurately.
| Field | Data type | Example | Requirement | Notes |
|---|---|---|---|---|
image_link | URL (RFC 1738) |
| Required | The URL of your product’s main image
|
additional_image_link | URL array (RFC 1738) |
| Optional | The URLs of additional images for your product
|
video_link | URL (RFC 1738) |
| Optional | A product video showcasing your product in use or during unboxing
|
model_3d_link | URL (RFC 1738) |
| Optional | Additional link to show a 3D model of your product
|
Item information
Describe physical characteristics and classification for accurate filtering and taxonomy placement.
| Field | Data type | Example | Requirement | Notes |
|---|---|---|---|---|
condition | Enum ( |
| Required if product condition differs from new | The condition of your product at time of sale
|
google_product_category | String (Value from the Google product taxonomy. The numerical category ID, or the full path of the category.) |
| Recommended | Predefined Google product category
|
product_category | String (Category taxonomy) |
| Required if | Product category that you define for your product
|
age_group | Enum ( |
| Optional | The demographic for which your product is intended
|
| material | String | leather | Required if it’s relevant for distinguishing different products in a set of variants | Your product’s primary fabric or material
|
length | Number and unit ( |
| Optional | Your product’s length
|
width | Number and unit ( |
| Optional | Your product’s width
|
height | Number and unit ( |
| Optional | Your product’s height
|
weight | Number and unit ( |
| Optional | Your product’s weight
|
Variants
Define variant relationships, such as color and size, so that related SKUs group under one parent. If you submit variants, you must include the same item_ for every variant.
| Field | Data type | Example | Requirement | Notes |
|---|---|---|---|---|
| item_group_id | String | Shoe1234 | Required if variants exist | ID for a group of products that come in different variants
|
item_group_title | String (UTF-8 text) |
| Optional | Your product group’s title
|
| color | String | Black | Recommended (apparel) | Your product’s color
|
| size | String | 10 | Recommended (apparel) | Your product’s size
|
size_system | Country code (ISO 3166) |
| Recommended (apparel) | Size system
|
gender | Enum ( |
| Recommended (apparel) | Your product’s intended gender |
Availability and inventory
Provide live stock status and quantities to maintain purchase accuracy.
| Field | Data type | Example | Requirement | Notes |
|---|---|---|---|---|
availability | Enum ( |
| Required for all products | Your product’s availability |
availability_date | Date (ISO 8601) |
| Required if product availability is set to | The date a pre-ordered product becomes available for delivery |
expiration_date | Date (ISO 8601) |
| Optional | The date your product stops showing |
inventory_not_tracked | Boolean ( |
| Optional | Specifies whether your product’s inventory is tracked.
|
inventory_quantity | Integer (Non-negative integer) |
| Required if | Sellable units available for this item. Leave blank if |
Price and promotions
Specify pricing information for display and promotional logic.
| Field | Data type | Example | Requirement | Notes |
|---|---|---|---|---|
price | Number and currency (ISO 4217) |
| Required for all products | Your product’s price |
sale_price | Number and currency (ISO 4217) |
| Optional | Discounted price |
sale_price_effective_date | Date (ISO 8601) |
| Required if you provided | Sale window
|
stripe_product_tax_code | String (Stripe Product Tax Code (PTC)) |
| Required if using Stripe Tax for tax calculation | Use Stripe’s Product Tax Codes to classify your product for accurate tax calculation. These codes help Stripe determine the correct tax rate based on product type and jurisdiction. |
tax_behavior | Enum ( |
| Optional | Specifies whether your product’s price includes applicable taxes (inclusive) or excludes them (exclusive). If omitted, the default value is exclusive. |
applicable_fees | String ( |
| Optional (required where regulatory or regional fees apply) | Use this field to specify per-unit fees and surcharges that apply based on product type and region.
|
Fulfillment
Provide shipping options, rates, and estimated delivery times.
| Field | Data type | Example | Requirement | Notes |
|---|---|---|---|---|
shipping | String ( |
| Required if the product is shippable (for example, a physical good) | Your product’s shipping cost, shipping speeds, and the locations your product ships to.
|
free_shipping_threshold | String ( |
| Optional | Order total at or above which shipping is free
|
Performance and review signals
Share performance and review signals to help AI agents and ranking systems identify high-quality, trusted products.
- These fields are optional but recommended. They improve discovery, ranking, and personalization on across agentic interfaces.
- Provide only aggregated metrics and exclude any user-level data or personally identifiable information.
- Update these metrics periodically (for example, weekly) to maintain accuracy.
| Field | Data type | Example | Requirement | Notes |
|---|---|---|---|---|
popularity_score | Number (0–5 scale) |
| Recommended | Aggregate popularity indicator for this product or variant
|
return_rate | Number (0–100 (don’t include the |
| Recommended | Percentage of units returned for this product or variant
|
product_review_count | Integer (Non-negative integer) |
| Recommended | Total number of reviews associated with this product or variant
|
product_review_rating | Number (1–5 scale) |
| Required if | Average review rating for this product or variant
|
Feed processing instructions
Defines operational fields that control how the system processes each row in the feed.
| Field | Data Type | Example | Requirement | Notes |
|---|---|---|---|---|
delete | Boolean ( |
| Optional | Marks the product or variant for permanent removal
|
Use the inventory feed specification
Use the inventory feed to refresh product availability and stock quantities without resubmitting your full catalog. Send frequent updates from your warehouse, point of sale, or fulfillment systems so your products reflect accurate in-stock status across agentic interfaces.
- Keep your product feed in sync: The
idvalues in your inventory file must already exist in the main catalog feed. - Send frequent inventory files: Push updates through the Stripe API in CSV format.
- Send partial updates: Include only changed SKUs—missing SKUs retain their last known inventory state.
Inventory feed field reference
Inventory feed fields
Provide live stock status and quantities to maintain purchase accuracy.
| Field | Data type | Example | Requirement | Notes |
|---|---|---|---|---|
id | String (alphanumeric) |
| Required | Must match the |
availability | Enum ( |
| Required for all products | Your product’s availability |
availability_date | Date (ISO 8601) |
| Required if product availability is set to | The date a preordered product becomes available for delivery |
inventory_quantity | Integer (Non-negative integer) |
| Required for all products | Sellable units |