Agentic commerce Beta
Agentic commerce represents a transformative approach to commerce, where AI agents handle the entire shopping experience for a shopper, from product discovery to checkout.
To increase the value of agentic commerce, Talon.One offers the Unified Incentives Protocol (UIP). UIP is a set of platform-agnostic standards that expose loyalty and promotion data in a unified way, in all phases of the shopping lifecycle.
Universal Commerce Protocol (UCP)
UCP is Google's approach to establishing a framework for seamless, secure, and standardized interactions between businesses and AI agents such as Gemini.
Talon.One provides the following UCP extensions to enhance agentic commerce experiences:
| Extension | Description | Latest version |
|---|---|---|
| Loyalty extension | Enables businesses to expose loyalty program data to AI agents, allowing them to manage loyalty points, tiers, and memberships on behalf of shoppers. | 2026-01-23 |
| Promotions extension | Enables businesses to expose discount and promotions data to AI agents, allowing them to manage promotions on behalf of shoppers. | 2026-01-28 |
Prerequisites
Before you use Talon.One's UCP extensions, ensure the following:
- You have read the UCP core concepts and the UCP specification.
- You have created a UCP profile located at
/.well-known/ucpto let AI agents discover and interact with your business.
Loyalty extension
Use Talon.One's UCP loyalty extension to let AI agents support complex profile or card-based loyalty scenarios involving loyalty program memberships, multi-wallet programs, tiers, and more.
Enable the required UCP capabilities
Google offers a number of UCP capabilities that the Talon.One loyalty extension requires:
- Enable the
dev.ucp.shopping.checkoutcapability. Talon.One relies on this capability to be aware of the session data. - Enable the
dev.ucp.common.identity_linkingcapability. Talon.One's loyalty extension requires identity information to link a shopper to their loyalty profile. - This guide focuses on REST endpoints to handle UCP requests for these capabilities, so ensure you reference an endpoint in your UCP profile.
{
"ucp": {
"version": "2026-01-11",
"services": {
"dev.ucp.shopping": {
"version": "2026-01-11",
"spec": "https://ucp.dev/specification/overview",
"rest": {
"schema": "https://ucp.dev/services/shopping/rest.openapi.json",
"endpoint": "https://business.example.com/ucp/v1"
},
},
...
},
"capabilities": [
{
"name": "dev.ucp.shopping.checkout",
"version": "2026-01-11",
"spec": "https://ucp.dev/specification/checkout",
"schema": "https://ucp.dev/schemas/shopping/checkout.json"
},
{
"name": "dev.ucp.common.identity_linking",
"version": "2026-01-11",
"specs": {
...
}
},
...
]
},
"payment": {
...
},
...
}
Enable the Talon.One UCP loyalty extension
To enable the loyalty extension, reference it in your UCP profile's capabilities array:
{
"capabilities": [
{
"name": "dev.uip.shopping.loyalty",
"version": "2026-01-23",
"extends": "dev.ucp.shopping.checkout",
"spec": "https://uip.dev/specification/ucp/loyalty",
"schema": "https://uip.dev/schemas/ucp/shopping/loyalty.json"
}
]
}
Inject loyalty data in your UCP responses
Once your UCP profile includes Talon.One's loyalty extension, implement extra logic in your backend services to include loyalty-related data in your responses for relevant UCP operations. Retrieve loyalty data with the Integration API's loyalty endpoints and structure that data according to the loyalty extension schema.
For example, for the Create checkout operation,
you can fetch the user's loyalty point balance from Talon.One and include it in the
checkout session creation response:
- Request
- Response
POST /checkout-sessions HTTP/1.1
UCP-Agent: profile="https://platform.example/profile"
Content-Type: application/json
{
"line_items": [
{
"item": {
"id": "item_123",
"title": "Red T-Shirt",
"price": 2500
},
"id": "li_1",
"quantity": 2
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"ucp": {
"version": "2026-01-11",
"capabilities": [
{
"name": "dev.ucp.shopping.checkout",
"version": "2026-01-11"
},
{
"name": "dev.uip.shopping.loyalty",
"version": "2026-01-23"
}
]
},
"id": "chk_1234567890",
"status": "incomplete",
"currency": "USD",
"line_items": [
{
"id": "li_1",
"item": {
"id": "item_123",
"title": "Red T-Shirt",
"price": 2500
},
"quantity": 2,
"totals": [
{
"type": "subtotal",
"amount": 5000
},
{
"type": "total",
"amount": 5000
}
]
}
],
"totals": [
{
"type": "subtotal",
"amount": 5000
},
{
"type": "tax",
"amount": 400
},
{
"type": "total",
"amount": 5400
}
],
"loyalty": {
"memberships": [
{
"type": "profile",
"id": "PROFILE_123"
},
],
"programs": [
{
"id": "program_id1",
"name": "My Program",
"membership": "$.loyalty.memberships[0]",
"wallets": [
{
"id": "main_wallet",
"unit": "points",
"balances": {
"active": 130,
"pending": 30,
"total": 160
},
"earnings": {
"active": 30,
"pending": 30,
"total": 60
},
"tier": {
"current": {
"id": 123,
"name": "Obsidian"
},
"next": {
"id": 125,
"name": "Purple"
},
"unitsToNext": 40
}
},
{
"id": "support_wallet",
"unit": "points",
"balances": {
"active": 1000,
"pending": 0
}
}
]
}
],
"earnings": [
{
"title": "20 points",
"target": "items",
"method": "each",
"amount": 20,
"allocations": [
{
"path": "$.line_items[0]",
"amount": 20
}
],
"wallet": "$.loyalty.programs[0].wallets[0]",
"activeFrom": "2026-01-24T11:00:22Z"
},
]
}
}
Promotions extension
Use Talon.One's UCP promotions extension to let AI agents use discounts, coupons, gift cards, and other promotions on behalf of shoppers.
Enable the required UCP capabilities
Google offers a number of UCP capabilities that the Talon.One promotions extension requires:
- Enable the
dev.ucp.shopping.checkoutcapability. Talon.One relies on this capability to be aware of the session data. - This guide focuses on REST endpoints to handle UCP requests for this capability, so ensure you reference an endpoint in your UCP profile.
{
"ucp": {
"version": "2026-01-11",
"services": {
"dev.ucp.shopping": {
"version": "2026-01-11",
"spec": "https://ucp.dev/specification/overview",
"rest": {
"schema": "https://ucp.dev/services/shopping/rest.openapi.json",
"endpoint": "https://business.example.com/ucp/v1"
},
},
...
},
"capabilities": [
{
"name": "dev.ucp.shopping.checkout",
"version": "2026-01-11",
"spec": "https://ucp.dev/specification/checkout",
"schema": "https://ucp.dev/schemas/shopping/checkout.json"
},
...
]
},
"payment": {
...
},
...
}
Enable the Talon.One UCP promotions extension
To enable the promotions extension, reference it in your UCP profile's capabilities array:
{
"capabilities": [
{
"name": "dev.uip.shopping.promotions",
"version": "2026-01-28",
"extends": "dev.ucp.shopping.checkout",
"spec": "https://uip.dev/specification/ucp/promotions",
"schema": "https://uip.dev/schemas/ucp/shopping/promotions.json"
}
]
}
Inject promotion data in your UCP responses
Once your UCP profile includes Talon.One's promotions extension, implement extra logic in your backend services to include promotion-related data in your responses for relevant UCP operations.
For example, you can do the following:
- Retrieve code data with the List customer data endpoint.
- Retrieve the applied discounts and the value of codes with the Update customer session endpoint.
For example, for the Create checkout operation,
you can fetch the user's applied discounts and return this data as UCP:
- Request
- Response
POST /checkout-sessions HTTP/1.1
UCP-Agent: profile="https://platform.example/profile"
Content-Type: application/json
{
"line_items": [
{
"item": {
"id": "item_123",
"title": "Red T-Shirt",
"price": 2500
},
"id": "li_1",
"quantity": 2
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
{{
"ucp": {
"version": "2026-01-11",
"capabilities": [
{
"name": "dev.ucp.shopping.checkout",
"version": "2026-01-11"
},
{
"name": "dev.uip.shopping.loyalty",
"version": "2026-01-23"
}
]
},
"id": "chk_1234567890",
"status": "incomplete",
"currency": "USD",
"line_items": [
{
"id": "li_1",
"item": {
"id": "item_123",
"title": "Red T-Shirt",
"price": 2500
},
"quantity": 2,
"totals": [
{
"type": "subtotal",
"amount": 5000
},
{
"type": "total",
"amount": 5000
}
]
},
{
"id": "li_2",
"item": {
"id": "item_456",
"title": "Blue T-Shirt",
"price": 2000
},
"quantity": 1,
"totals": [
{
"type": "subtotal",
"amount": 2000
},
{
"type": "total",
"amount": 2000
}
]
}
],
"totals": [
{
"type": "subtotal",
"amount": 7000
},
{
"type": "tax",
"amount": 560
},
{
"type": "total",
"amount": 7560
}
],
"promotions": {
"codes": [
{
"type": "referral",
"code": "123456"
}
],
"discounts": [
{
"title": "10€ session discount",
"target": "cart",
"amount": 100
},
{
"title": "10€ per item discount",
"target": "item",
"method": "each",
"amount": 200,
"allocations": [
{
"path": "$.line_items[0]",
"amount": 100
},
{
"path": "$.line_items[1]",
"amount": 100
}
]
},
{
"title": "10€ bundle prorata discount",
"target": "bundle",
"method": "across",
"amount": 100,
"allocations": [
{
"path": "$.line_items[0]",
"amount": 60
},
{
"path": "$.line_items[1]",
"amount": 40
}
]
}
],
"free_items": [
{
"title": "Free item with referral",
"code": "$.promotions.codes[0]",
"path": "$.line_items[0]",
"quantity": 1,
"amount": 200
}
]
}
}
Upgrade a Talon.One UCP extension
When a new version of an extension is released, update the version field in your UCP
profile accordingly. You can find the latest version on uip.dev.