В этом руководстве представлена техническая справочная информация по API и схемы полезной нагрузки для отправки полных обновлений статуса заказа, событий выполнения и корректировок в Google с помощью веб-хуков для версии 2026-01-23 протокола Universal Commerce Protocol (UCP).
Прежде чем создавать конечные точки, убедитесь, что вы ознакомились с обзором жизненного цикла заказа , где изложены основные концепции, обязательные события и подробная информация о конечных точках веб-перехватчика.
Аутентификация и подписание запросов
Вы можете использовать симметричную подпись с помощью ключа HMAC, предоставленного вам компанией Google.
ИЛИ вы можете воспользоваться следующими инструкциями для создания асимметричной подписи:
- Выберите ключ из массива
signing_keysв профиле UCP. - Создайте отсоединенный JWT ( RFC 7797 ) над телом запроса, используя выбранный ключ.
- Включите JWT в заголовок
Request-Signature. - Включите идентификатор ключа в утверждение
kidв заголовке JWT, чтобы получатель мог определить, какой ключ использовать для проверки.
Проверка временной метки
При проверке того, является ли обновление заказа более старым, чем последнее зарегистрированное обновление (что приводит к отклонению обновления заказа), Google проверяет метку времени, используя свойство created_time в полезной нагрузке.
Событие создания заказа
- Триггер: Сразу после подтверждения заказа (
status: processing).
Пример: В этом примере показан заказ, созданный после того, как покупатель завершил оформление заказа.
{
"ucp": {
"version": "2026-01-23",
"capabilities": {
"dev.ucp.shopping.order": [{"version": "2026-01-23"}]
}
},
"id": "order_01",
"checkout_id": "checkout_01",
"created_time": "2026-03-23T19:00:00Z",
// Full line items must be included
"line_items": [
{
"id": "line_1",
"item":
{
"id": "product_123",
"title": "Running Shoes",
"price": 10000
},
"quantity": { "total": 1, "fulfilled": 0 },
"totals": [
{"type": "subtotal", "amount": 10000},
{"type": "total", "amount": 10000}
],
// The status of a line item must match total and fulfilled quantities (e.g., total 1, fulfilled 0 -> status: processing).
"status": "processing"
}
],
"totals": [
{"type": "subtotal", "amount": 10000},
{"type": "total", "amount": 10000}
],
"fulfillment": {
"expectations": [
{
"id": "exp_1",
"line_items": [{ "id": "line_1", "quantity": 1 }],
"method_type": "shipping",
"destination": {
"first_name": "Alice",
"last_name": "Example",
"street_address": "123 Main St",
"address_locality": "Austin",
"address_region": "TX",
"address_country": "US",
"postal_code": "78701"
},
"description": "Arrives in 2-3 business days",
"fulfillable_on": "now"
}
]
},
"permalink_url": "https://merchant.example.com/orders/789"
}
События, связанные с исполнением желаний
Эти события отправляются как часть массива fulfillment.events .
Заказ отправлен
Когда товары в заказе отправлены. Поля tracking_number и tracking_url обязательны для отслеживания отправленных товаров, поскольку они необходимы для корректной группировки товаров на странице «Мои заказы».
Заказ доставлен
Когда товары из заказа будут доставлены.
Пример ( shipped и delivered ): В этом примере показано обновление заказа после того, как товар был отправлен, а затем доставлен.
{
"ucp": {
"version": "2026-01-23",
"capabilities": {
"dev.ucp.shopping.order": [{"version": "2026-01-23"}]
}
},
"id": "order_01",
"checkout_id": "checkout_01",
"created_time": "2026-03-23T19:00:00Z",
"line_items": [
{
"id": "line_1",
"item":
{
"id": "product_123",
"title": "Running Shoes",
"price": 10000
},
"quantity": { "total": 1, "fulfilled": 1 },
"totals": [
{"type": "subtotal", "amount": 10000},
{"type": "total", "amount": 10000}
],
"status": "fulfilled"
}
],
"totals": [
{"type": "subtotal", "amount": 10000},
{"type": "total", "amount": 10000}
],
// Updated fulfillment details.
"fulfillment": {
"events": [
{
"id": "fulfill_evt_1",
"occurred_at": "2026-02-08T10:30:00Z",
"type": "shipped",
"line_items": [{ "id": "line_1", "quantity": 1 }],
"tracking_number": "123456789",
"tracking_url": "https://fedex.com/track/123456789",
"carrier": "FedEx",
"description": "Shipping departed from warehouse"
},
{
"id": "fulfill_evt_2",
"occurred_at": "2026-02-10T14:00:00Z",
"type": "delivered",
"line_items": [{ "id": "line_1", "quantity": 1 }],
"tracking_number": "123456789",
"tracking_url": "https://fedex.com/track/123456789",
"carrier": "FedEx",
"description": "Package delivered"
}
],
"expectations": [{ "...": "..." }]
},
"permalink_url": "https://merchant.example.com/orders/123"
}
Примеры заказов, содержащих несколько товаров.
Приведенные ниже примеры демонстрируют, как структурировать обновления для заказов, содержащих несколько товаров, и для раздельных отправок. Правила определения статуса посылки см. в разделе «Как определяется статус посылки» .
Заказ нескольких товаров, доставка в одной посылке.
В этом примере показано обновление заказа для одной посылки, содержащей несколько товаров. Все позиции сгруппированы в рамках одного события shipped и имеют один и тот же номер отслеживания.
{
"ucp": {
"version": "2026-01-23",
"capabilities": {
"dev.ucp.shopping.order": [{"version": "2026-01-23"}]
}
},
"id": "order_multi_01",
"checkout_id": "checkout_multi_01",
"created_time": "2026-02-07T09:00:00Z",
"line_items": [
{
"id": "line_1",
"item": { "id": "product_1", "title": "Item 1", "price": 5000 },
"quantity": { "total": 1, "fulfilled": 1 },
"totals": [
{"type": "subtotal", "amount": 5000},
{"type": "total", "amount": 5000}
],
"status": "fulfilled"
},
{
"id": "line_2",
"item": { "id": "product_2", "title": "Item 2", "price": 5000 },
"quantity": { "total": 1, "fulfilled": 1 },
"totals": [
{"type": "subtotal", "amount": 5000},
{"type": "total", "amount": 5000}
],
"status": "fulfilled"
}
],
"totals": [
{"type": "subtotal", "amount": 10000},
{"type": "fee", "amount": 500},
{"type": "total", "amount": 10500}
],
"fulfillment": {
"expectations": [
{
"id": "exp_1",
"line_items": [
{ "id": "line_1", "quantity": 1 },
{ "id": "line_2", "quantity": 1 }
],
"method_type": "shipping",
"destination": {
"first_name": "Alice",
"last_name": "Example",
"street_address": "123 Main St",
"address_locality": "Austin",
"address_region": "TX",
"address_country": "US",
"postal_code": "78701"
},
"description": "Standard Shipping",
"fulfillable_on": "now"
}
],
"events": [
{
"id": "fulfill_evt_1",
"occurred_at": "2026-02-08T10:30:00Z",
"type": "shipped",
"line_items": [
{ "id": "line_1", "quantity": 1 },
{ "id": "line_2", "quantity": 1 }
],
"tracking_number": "123456789",
"tracking_url": "https://fedex.com/track/123456789",
"carrier": "FedEx",
"description": "Both items shipped together"
}
]
},
"permalink_url": "https://merchant.example.com/orders/456"
}
Заказ из нескольких товаров, раздельная отправка.
В этом примере показано обновление заказа для разделенных отправок. Имеется несколько событий shipped , каждое из которых ссылается на конкретные line_items в соответствующей посылке с различными номерами отслеживания. Поскольку каждая посылка представляет собой отдельное обязательство по выполнению заказа (например, разные скорости и стоимость при оформлении заказа с несколькими группами товаров), expectations также разделены.
{
"ucp": {
"version": "2026-01-23",
"capabilities": {
"dev.ucp.shopping.order": [{"version": "2026-01-23"}]
}
},
"id": "order_multi_02",
"checkout_id": "checkout_multi_02",
"created_time": "2026-02-07T09:00:00Z",
"line_items": [
{
"id": "line_1",
"item": { "id": "product_1", "title": "Item 1", "price": 5000 },
"quantity": { "total": 1, "fulfilled": 1 },
"totals": [
{"type": "subtotal", "amount": 5000},
{"type": "total", "amount": 5000}
],
"status": "fulfilled"
},
{
"id": "line_2",
"item": { "id": "product_2", "title": "Item 2", "price": 5000 },
"quantity": { "total": 1, "fulfilled": 1 },
"totals": [
{"type": "subtotal", "amount": 5000},
{"type": "total", "amount": 5000}
],
"status": "fulfilled"
}
],
"totals": [
{"type": "subtotal", "amount": 10000},
{"type": "fee", "amount": 1500},
{"type": "total", "amount": 11500}
],
"fulfillment": {
"expectations": [
{
"id": "exp_1",
"line_items": [{ "id": "line_1", "quantity": 1 }],
"method_type": "shipping",
"destination": {
"first_name": "Alice",
"last_name": "Example",
"street_address": "123 Main St",
"address_locality": "Austin",
"address_region": "TX",
"address_country": "US",
"postal_code": "78701"
},
"description": "Standard Shipping",
"fulfillable_on": "now"
},
{
"id": "exp_2",
"line_items": [{ "id": "line_2", "quantity": 1 }],
"method_type": "shipping",
"destination": {
"first_name": "Alice",
"last_name": "Example",
"street_address": "123 Main St",
"address_locality": "Austin",
"address_region": "TX",
"address_country": "US",
"postal_code": "78701"
},
"description": "Express Shipping",
"fulfillable_on": "now"
}
],
"events": [
{
"id": "fulfill_evt_1",
"occurred_at": "2026-02-08T10:30:00Z",
"type": "shipped",
"line_items": [{ "id": "line_1", "quantity": 1 }],
"tracking_number": "PKG1_TRACKING",
"tracking_url": "https://fedex.com/track/PKG1_TRACKING",
"carrier": "FedEx",
"description": "First item shipped in package 1"
},
{
"id": "fulfill_evt_2",
"occurred_at": "2026-02-09T14:00:00Z",
"type": "shipped",
"line_items": [{ "id": "line_2", "quantity": 1 }],
"tracking_number": "PKG2_TRACKING",
"tracking_url": "https://fedex.com/track/PKG2_TRACKING",
"carrier": "FedEx",
"description": "Second item shipped in package 2"
}
]
},
"permalink_url": "https://merchant.example.com/orders/457"
}
Примеры событий корректировки
Приведенные ниже примеры демонстрируют, как структурировать обновления для возвратов, отмен и возвратов средств. Список поддерживаемых событий и их определений см. в разделе «События корректировки» в обзоре жизненного цикла заказа.
Отмена заказа и возврат средств
В этом примере показан заказ, в котором товар был отменен, а деньги возвращены вскоре после оформления заказа.
{
"ucp": {
"version": "2026-01-23",
"capabilities": {
"dev.ucp.shopping.order": [{"version": "2026-01-23"}]
}
},
"id": "order_02",
"checkout_id": "checkout_02",
"created_time": "2026-03-23T19:00:00Z",
"line_items": [
{
"id": "line_2",
"item": {
"id": "product_456",
"title": "Smart Watch",
"price": 29900
},
"quantity": { "total": 1, "fulfilled": 0 },
"totals": [
{"type": "subtotal", "amount": 29900},
{"type": "tax", "amount": 2400},
{"type": "total", "amount": 32300}
],
"status": "processing"
}
],
"totals": [
{"type": "subtotal", "amount": 29900},
{"type": "tax", "amount": 2400},
{"type": "total", "amount": 32300}
],
"adjustments": [
{
"id": "adj_cancel_1",
"type": "cancellation",
"description": "Customer changed mind",
"line_items": [{ "id": "line_2", "quantity": 1 }],
"occurred_at": "2026-02-09T11:00:00Z",
"status": "completed"
},
{
"id": "adj_refund_1",
"type": "refund",
"description": "Refund for cancelled item",
"line_items": [{ "id": "line_2", "quantity": 1 }],
"amount": 32300,
"occurred_at": "2026-02-09T11:05:00Z",
"status": "completed"
}
],
"permalink_url": "https://merchant.example.com/orders/12345"
}
Возврат заказа и возмещение средств
В этом примере показан заказ, в котором товар был отправлен, доставлен, а затем возвращен, и деньги были возвращены.
{
"ucp": {
"version": "2026-01-23",
"capabilities": {
"dev.ucp.shopping.order": [{"version": "2026-01-23"}]
}
},
"id": "order_03",
"checkout_id": "checkout_03",
"created_time": "2026-03-23T19:00:00Z",
"line_items": [
{
"id": "line_3",
"item": {
"id": "product_789",
"title": "Wireless Earbuds",
"price": 14900
},
"quantity": { "total": 1, "fulfilled": 1 },
"totals": [
{"type": "subtotal", "amount": 14900},
{"type": "tax", "amount": 1200},
{"type": "total", "amount": 16100}
],
"status": "fulfilled"
}
],
"totals": [
{"type": "subtotal", "amount": 14900},
{"type": "tax", "amount": 1200},
{"type": "total", "amount": 16100}
],
"fulfillment": {
"events": [
{
"id": "fulfill_evt_1",
"occurred_at": "2026-02-05T09:00:00Z",
"type": "shipped",
"line_items": [{ "id": "line_3", "quantity": 1 }],
"tracking_number": "987654321",
"tracking_url": "https://fedex.com/track/987654321",
"carrier": "FedEx",
"description": "Item shipped"
},
{
"id": "fulfill_evt_2",
"occurred_at": "2026-02-07T16:00:00Z",
"type": "delivered",
"line_items": [{ "id": "line_3", "quantity": 1 }],
"tracking_number": "987654321",
"tracking_url": "https://fedex.com/track/987654321",
"carrier": "FedEx",
"description": "Item delivered"
},
{
"id": "fulfill_evt_3",
"occurred_at": "2026-02-09T09:00:00Z",
"type": "returned",
"line_items": [{ "id": "line_3", "quantity": 1 }],
"tracking_number": "987654321",
"tracking_url": "https://fedex.com/track/987654321",
"carrier": "FedEx",
"description": "Item returned"
}
],
"expectations": [{ "...": "..." }]
},
"adjustments": [
{
"id": "adj_return_1",
"type": "return",
"description": "Item not compatible",
"line_items": [{ "id": "line_3", "quantity": 1 }],
"occurred_at": "2026-02-09T09:00:00Z",
"status": "completed"
},
{
"id": "adj_refund_2",
"type": "refund",
"description": "Refund for returned item",
"line_items": [{ "id": "line_3", "quantity": 1 }],
"amount": 16100,
"occurred_at": "2026-02-10T10:00:00Z",
"status": "completed"
}
],
"permalink_url": "https://merchant.example.com/orders/67890"
}
В этом руководстве представлена техническая справочная информация по API и схемы полезной нагрузки для отправки полных обновлений статуса заказа, событий выполнения и корректировок в Google с помощью веб-хуков для версии 2026-01-23 протокола Universal Commerce Protocol (UCP).
Прежде чем создавать конечные точки, убедитесь, что вы ознакомились с обзором жизненного цикла заказа , где изложены основные концепции, обязательные события и подробная информация о конечных точках веб-перехватчика.
Аутентификация и подписание запросов
Вы можете использовать симметричную подпись с помощью ключа HMAC, предоставленного вам компанией Google.
ИЛИ вы можете воспользоваться следующими инструкциями для создания асимметричной подписи:
- Выберите ключ из массива
signing_keysв профиле UCP. - Создайте отсоединенный JWT ( RFC 7797 ) над телом запроса, используя выбранный ключ.
- Включите JWT в заголовок
Request-Signature. - Включите идентификатор ключа в утверждение
kidв заголовке JWT, чтобы получатель мог определить, какой ключ использовать для проверки.
Проверка временной метки
При проверке того, является ли обновление заказа более старым, чем последнее зарегистрированное обновление (что приводит к отклонению обновления заказа), Google проверяет метку времени, используя свойство created_time в полезной нагрузке.
Событие создания заказа
- Триггер: Сразу после подтверждения заказа (
status: processing).
Пример: В этом примере показан заказ, созданный после того, как покупатель завершил оформление заказа.
{
"ucp": {
"version": "2026-01-23",
"capabilities": {
"dev.ucp.shopping.order": [{"version": "2026-01-23"}]
}
},
"id": "order_01",
"checkout_id": "checkout_01",
"created_time": "2026-03-23T19:00:00Z",
// Full line items must be included
"line_items": [
{
"id": "line_1",
"item":
{
"id": "product_123",
"title": "Running Shoes",
"price": 10000
},
"quantity": { "total": 1, "fulfilled": 0 },
"totals": [
{"type": "subtotal", "amount": 10000},
{"type": "total", "amount": 10000}
],
// The status of a line item must match total and fulfilled quantities (e.g., total 1, fulfilled 0 -> status: processing).
"status": "processing"
}
],
"totals": [
{"type": "subtotal", "amount": 10000},
{"type": "total", "amount": 10000}
],
"fulfillment": {
"expectations": [
{
"id": "exp_1",
"line_items": [{ "id": "line_1", "quantity": 1 }],
"method_type": "shipping",
"destination": {
"first_name": "Alice",
"last_name": "Example",
"street_address": "123 Main St",
"address_locality": "Austin",
"address_region": "TX",
"address_country": "US",
"postal_code": "78701"
},
"description": "Arrives in 2-3 business days",
"fulfillable_on": "now"
}
]
},
"permalink_url": "https://merchant.example.com/orders/789"
}
События, связанные с исполнением желаний
Эти события отправляются как часть массива fulfillment.events .
Заказ отправлен
Когда товары в заказе отправлены. Поля tracking_number и tracking_url обязательны для отслеживания отправленных товаров, поскольку они необходимы для корректной группировки товаров на странице «Мои заказы».
Заказ доставлен
Когда товары из заказа будут доставлены.
Пример ( shipped и delivered ): В этом примере показано обновление заказа после того, как товар был отправлен, а затем доставлен.
{
"ucp": {
"version": "2026-01-23",
"capabilities": {
"dev.ucp.shopping.order": [{"version": "2026-01-23"}]
}
},
"id": "order_01",
"checkout_id": "checkout_01",
"created_time": "2026-03-23T19:00:00Z",
"line_items": [
{
"id": "line_1",
"item":
{
"id": "product_123",
"title": "Running Shoes",
"price": 10000
},
"quantity": { "total": 1, "fulfilled": 1 },
"totals": [
{"type": "subtotal", "amount": 10000},
{"type": "total", "amount": 10000}
],
"status": "fulfilled"
}
],
"totals": [
{"type": "subtotal", "amount": 10000},
{"type": "total", "amount": 10000}
],
// Updated fulfillment details.
"fulfillment": {
"events": [
{
"id": "fulfill_evt_1",
"occurred_at": "2026-02-08T10:30:00Z",
"type": "shipped",
"line_items": [{ "id": "line_1", "quantity": 1 }],
"tracking_number": "123456789",
"tracking_url": "https://fedex.com/track/123456789",
"carrier": "FedEx",
"description": "Shipping departed from warehouse"
},
{
"id": "fulfill_evt_2",
"occurred_at": "2026-02-10T14:00:00Z",
"type": "delivered",
"line_items": [{ "id": "line_1", "quantity": 1 }],
"tracking_number": "123456789",
"tracking_url": "https://fedex.com/track/123456789",
"carrier": "FedEx",
"description": "Package delivered"
}
],
"expectations": [{ "...": "..." }]
},
"permalink_url": "https://merchant.example.com/orders/123"
}
Примеры заказов, содержащих несколько товаров.
Приведенные ниже примеры демонстрируют, как структурировать обновления для заказов, содержащих несколько товаров, и для раздельных отправок. Правила определения статуса посылки см. в разделе «Как определяется статус посылки» .
Заказ нескольких товаров, доставка в одной посылке.
В этом примере показано обновление заказа для одной посылки, содержащей несколько товаров. Все позиции сгруппированы в рамках одного события shipped и имеют один и тот же номер отслеживания.
{
"ucp": {
"version": "2026-01-23",
"capabilities": {
"dev.ucp.shopping.order": [{"version": "2026-01-23"}]
}
},
"id": "order_multi_01",
"checkout_id": "checkout_multi_01",
"created_time": "2026-02-07T09:00:00Z",
"line_items": [
{
"id": "line_1",
"item": { "id": "product_1", "title": "Item 1", "price": 5000 },
"quantity": { "total": 1, "fulfilled": 1 },
"totals": [
{"type": "subtotal", "amount": 5000},
{"type": "total", "amount": 5000}
],
"status": "fulfilled"
},
{
"id": "line_2",
"item": { "id": "product_2", "title": "Item 2", "price": 5000 },
"quantity": { "total": 1, "fulfilled": 1 },
"totals": [
{"type": "subtotal", "amount": 5000},
{"type": "total", "amount": 5000}
],
"status": "fulfilled"
}
],
"totals": [
{"type": "subtotal", "amount": 10000},
{"type": "fee", "amount": 500},
{"type": "total", "amount": 10500}
],
"fulfillment": {
"expectations": [
{
"id": "exp_1",
"line_items": [
{ "id": "line_1", "quantity": 1 },
{ "id": "line_2", "quantity": 1 }
],
"method_type": "shipping",
"destination": {
"first_name": "Alice",
"last_name": "Example",
"street_address": "123 Main St",
"address_locality": "Austin",
"address_region": "TX",
"address_country": "US",
"postal_code": "78701"
},
"description": "Standard Shipping",
"fulfillable_on": "now"
}
],
"events": [
{
"id": "fulfill_evt_1",
"occurred_at": "2026-02-08T10:30:00Z",
"type": "shipped",
"line_items": [
{ "id": "line_1", "quantity": 1 },
{ "id": "line_2", "quantity": 1 }
],
"tracking_number": "123456789",
"tracking_url": "https://fedex.com/track/123456789",
"carrier": "FedEx",
"description": "Both items shipped together"
}
]
},
"permalink_url": "https://merchant.example.com/orders/456"
}
Заказ из нескольких товаров, раздельная отправка.
В этом примере показано обновление заказа для разделенных отправок. Имеется несколько событий shipped , каждое из которых ссылается на конкретные line_items в соответствующей посылке с различными номерами отслеживания. Поскольку каждая посылка представляет собой отдельное обязательство по выполнению заказа (например, разные скорости и стоимость при оформлении заказа с несколькими группами товаров), expectations также разделены.
{
"ucp": {
"version": "2026-01-23",
"capabilities": {
"dev.ucp.shopping.order": [{"version": "2026-01-23"}]
}
},
"id": "order_multi_02",
"checkout_id": "checkout_multi_02",
"created_time": "2026-02-07T09:00:00Z",
"line_items": [
{
"id": "line_1",
"item": { "id": "product_1", "title": "Item 1", "price": 5000 },
"quantity": { "total": 1, "fulfilled": 1 },
"totals": [
{"type": "subtotal", "amount": 5000},
{"type": "total", "amount": 5000}
],
"status": "fulfilled"
},
{
"id": "line_2",
"item": { "id": "product_2", "title": "Item 2", "price": 5000 },
"quantity": { "total": 1, "fulfilled": 1 },
"totals": [
{"type": "subtotal", "amount": 5000},
{"type": "total", "amount": 5000}
],
"status": "fulfilled"
}
],
"totals": [
{"type": "subtotal", "amount": 10000},
{"type": "fee", "amount": 1500},
{"type": "total", "amount": 11500}
],
"fulfillment": {
"expectations": [
{
"id": "exp_1",
"line_items": [{ "id": "line_1", "quantity": 1 }],
"method_type": "shipping",
"destination": {
"first_name": "Alice",
"last_name": "Example",
"street_address": "123 Main St",
"address_locality": "Austin",
"address_region": "TX",
"address_country": "US",
"postal_code": "78701"
},
"description": "Standard Shipping",
"fulfillable_on": "now"
},
{
"id": "exp_2",
"line_items": [{ "id": "line_2", "quantity": 1 }],
"method_type": "shipping",
"destination": {
"first_name": "Alice",
"last_name": "Example",
"street_address": "123 Main St",
"address_locality": "Austin",
"address_region": "TX",
"address_country": "US",
"postal_code": "78701"
},
"description": "Express Shipping",
"fulfillable_on": "now"
}
],
"events": [
{
"id": "fulfill_evt_1",
"occurred_at": "2026-02-08T10:30:00Z",
"type": "shipped",
"line_items": [{ "id": "line_1", "quantity": 1 }],
"tracking_number": "PKG1_TRACKING",
"tracking_url": "https://fedex.com/track/PKG1_TRACKING",
"carrier": "FedEx",
"description": "First item shipped in package 1"
},
{
"id": "fulfill_evt_2",
"occurred_at": "2026-02-09T14:00:00Z",
"type": "shipped",
"line_items": [{ "id": "line_2", "quantity": 1 }],
"tracking_number": "PKG2_TRACKING",
"tracking_url": "https://fedex.com/track/PKG2_TRACKING",
"carrier": "FedEx",
"description": "Second item shipped in package 2"
}
]
},
"permalink_url": "https://merchant.example.com/orders/457"
}
Примеры событий корректировки
Приведенные ниже примеры демонстрируют, как структурировать обновления для возвратов, отмен и возвратов средств. Список поддерживаемых событий и их определений см. в разделе «События корректировки» в обзоре жизненного цикла заказа.
Отмена заказа и возврат средств
В этом примере показан заказ, в котором товар был отменен, а деньги возвращены вскоре после оформления заказа.
{
"ucp": {
"version": "2026-01-23",
"capabilities": {
"dev.ucp.shopping.order": [{"version": "2026-01-23"}]
}
},
"id": "order_02",
"checkout_id": "checkout_02",
"created_time": "2026-03-23T19:00:00Z",
"line_items": [
{
"id": "line_2",
"item": {
"id": "product_456",
"title": "Smart Watch",
"price": 29900
},
"quantity": { "total": 1, "fulfilled": 0 },
"totals": [
{"type": "subtotal", "amount": 29900},
{"type": "tax", "amount": 2400},
{"type": "total", "amount": 32300}
],
"status": "processing"
}
],
"totals": [
{"type": "subtotal", "amount": 29900},
{"type": "tax", "amount": 2400},
{"type": "total", "amount": 32300}
],
"adjustments": [
{
"id": "adj_cancel_1",
"type": "cancellation",
"description": "Customer changed mind",
"line_items": [{ "id": "line_2", "quantity": 1 }],
"occurred_at": "2026-02-09T11:00:00Z",
"status": "completed"
},
{
"id": "adj_refund_1",
"type": "refund",
"description": "Refund for cancelled item",
"line_items": [{ "id": "line_2", "quantity": 1 }],
"amount": 32300,
"occurred_at": "2026-02-09T11:05:00Z",
"status": "completed"
}
],
"permalink_url": "https://merchant.example.com/orders/12345"
}
Возврат заказа и возмещение средств
В этом примере показан заказ, в котором товар был отправлен, доставлен, а затем возвращен, и деньги были возвращены.
{
"ucp": {
"version": "2026-01-23",
"capabilities": {
"dev.ucp.shopping.order": [{"version": "2026-01-23"}]
}
},
"id": "order_03",
"checkout_id": "checkout_03",
"created_time": "2026-03-23T19:00:00Z",
"line_items": [
{
"id": "line_3",
"item": {
"id": "product_789",
"title": "Wireless Earbuds",
"price": 14900
},
"quantity": { "total": 1, "fulfilled": 1 },
"totals": [
{"type": "subtotal", "amount": 14900},
{"type": "tax", "amount": 1200},
{"type": "total", "amount": 16100}
],
"status": "fulfilled"
}
],
"totals": [
{"type": "subtotal", "amount": 14900},
{"type": "tax", "amount": 1200},
{"type": "total", "amount": 16100}
],
"fulfillment": {
"events": [
{
"id": "fulfill_evt_1",
"occurred_at": "2026-02-05T09:00:00Z",
"type": "shipped",
"line_items": [{ "id": "line_3", "quantity": 1 }],
"tracking_number": "987654321",
"tracking_url": "https://fedex.com/track/987654321",
"carrier": "FedEx",
"description": "Item shipped"
},
{
"id": "fulfill_evt_2",
"occurred_at": "2026-02-07T16:00:00Z",
"type": "delivered",
"line_items": [{ "id": "line_3", "quantity": 1 }],
"tracking_number": "987654321",
"tracking_url": "https://fedex.com/track/987654321",
"carrier": "FedEx",
"description": "Item delivered"
},
{
"id": "fulfill_evt_3",
"occurred_at": "2026-02-09T09:00:00Z",
"type": "returned",
"line_items": [{ "id": "line_3", "quantity": 1 }],
"tracking_number": "987654321",
"tracking_url": "https://fedex.com/track/987654321",
"carrier": "FedEx",
"description": "Item returned"
}
],
"expectations": [{ "...": "..." }]
},
"adjustments": [
{
"id": "adj_return_1",
"type": "return",
"description": "Item not compatible",
"line_items": [{ "id": "line_3", "quantity": 1 }],
"occurred_at": "2026-02-09T09:00:00Z",
"status": "completed"
},
{
"id": "adj_refund_2",
"type": "refund",
"description": "Refund for returned item",
"line_items": [{ "id": "line_3", "quantity": 1 }],
"amount": 16100,
"occurred_at": "2026-02-10T10:00:00Z",
"status": "completed"
}
],
"permalink_url": "https://merchant.example.com/orders/67890"
}