@reactionary/ucp 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +154 -0
- package/index.js +1 -0
- package/lib/reactionary-ucp-capabilities.js +19 -0
- package/lib/reactionary-ucp-common.js +0 -0
- package/lib/reactionary-ucp-http.js +79 -0
- package/lib/reactionary-ucp-profile.js +72 -0
- package/lib/reactionary-ucp-rest.js +715 -0
- package/lib/reactionary-ucp-server.js +102 -0
- package/lib/reactionary-ucp-session-store.js +63 -0
- package/lib/ucp-shopping.openapi.js +0 -0
- package/package.json +19 -0
- package/src/index.d.ts +1 -0
- package/src/lib/reactionary-ucp-capabilities.d.ts +4 -0
- package/src/lib/reactionary-ucp-common.d.ts +71 -0
- package/src/lib/reactionary-ucp-http.d.ts +12 -0
- package/src/lib/reactionary-ucp-profile.d.ts +5 -0
- package/src/lib/reactionary-ucp-rest.d.ts +8 -0
- package/src/lib/reactionary-ucp-server.d.ts +14 -0
- package/src/lib/reactionary-ucp-session-store.d.ts +23 -0
- package/src/lib/ucp-shopping.openapi.d.ts +2632 -0
|
@@ -0,0 +1,2632 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was auto-generated by openapi-typescript.
|
|
3
|
+
* Do not make direct changes to the file.
|
|
4
|
+
*/
|
|
5
|
+
export interface paths {
|
|
6
|
+
"/checkout-sessions": {
|
|
7
|
+
parameters: {
|
|
8
|
+
query?: never;
|
|
9
|
+
header?: never;
|
|
10
|
+
path?: never;
|
|
11
|
+
cookie?: never;
|
|
12
|
+
};
|
|
13
|
+
get?: never;
|
|
14
|
+
put?: never;
|
|
15
|
+
/**
|
|
16
|
+
* Create Checkout
|
|
17
|
+
* @description Create a new checkout session.
|
|
18
|
+
*/
|
|
19
|
+
post: operations["create_checkout"];
|
|
20
|
+
delete?: never;
|
|
21
|
+
options?: never;
|
|
22
|
+
head?: never;
|
|
23
|
+
patch?: never;
|
|
24
|
+
trace?: never;
|
|
25
|
+
};
|
|
26
|
+
"/checkout-sessions/{id}": {
|
|
27
|
+
parameters: {
|
|
28
|
+
query?: never;
|
|
29
|
+
header?: never;
|
|
30
|
+
path: {
|
|
31
|
+
/** @description The unique identifier of the checkout session. */
|
|
32
|
+
id: components["parameters"]["checkout_session_id_path"];
|
|
33
|
+
};
|
|
34
|
+
cookie?: never;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Get Checkout
|
|
38
|
+
* @description Get the latest state of a checkout session.
|
|
39
|
+
*/
|
|
40
|
+
get: operations["get_checkout"];
|
|
41
|
+
/**
|
|
42
|
+
* Update Checkout
|
|
43
|
+
* @description Update Checkout is a full replacement operation. A new Update Checkout operation is not permitted while Checkout status is `complete_in_progress`. Duplicate requests remain subject to Replay Protection. If the Business receives a new Update Checkout request in that state, it leaves the Checkout unchanged and returns the current Checkout with a recoverable error Message.
|
|
44
|
+
*/
|
|
45
|
+
put: operations["update_checkout"];
|
|
46
|
+
post?: never;
|
|
47
|
+
delete?: never;
|
|
48
|
+
options?: never;
|
|
49
|
+
head?: never;
|
|
50
|
+
patch?: never;
|
|
51
|
+
trace?: never;
|
|
52
|
+
};
|
|
53
|
+
"/checkout-sessions/{id}/complete": {
|
|
54
|
+
parameters: {
|
|
55
|
+
query?: never;
|
|
56
|
+
header?: never;
|
|
57
|
+
path: {
|
|
58
|
+
/** @description The unique identifier of the checkout session. */
|
|
59
|
+
id: components["parameters"]["checkout_session_id_path"];
|
|
60
|
+
};
|
|
61
|
+
cookie?: never;
|
|
62
|
+
};
|
|
63
|
+
get?: never;
|
|
64
|
+
put?: never;
|
|
65
|
+
/**
|
|
66
|
+
* Complete Checkout
|
|
67
|
+
* @description Place the order
|
|
68
|
+
*/
|
|
69
|
+
post: operations["complete_checkout"];
|
|
70
|
+
delete?: never;
|
|
71
|
+
options?: never;
|
|
72
|
+
head?: never;
|
|
73
|
+
patch?: never;
|
|
74
|
+
trace?: never;
|
|
75
|
+
};
|
|
76
|
+
"/checkout-sessions/{id}/cancel": {
|
|
77
|
+
parameters: {
|
|
78
|
+
query?: never;
|
|
79
|
+
header?: never;
|
|
80
|
+
path: {
|
|
81
|
+
/** @description The unique identifier of the checkout session. */
|
|
82
|
+
id: components["parameters"]["checkout_session_id_path"];
|
|
83
|
+
};
|
|
84
|
+
cookie?: never;
|
|
85
|
+
};
|
|
86
|
+
get?: never;
|
|
87
|
+
put?: never;
|
|
88
|
+
/**
|
|
89
|
+
* Cancel Checkout
|
|
90
|
+
* @description Cancel a checkout session
|
|
91
|
+
*/
|
|
92
|
+
post: operations["cancel_checkout"];
|
|
93
|
+
delete?: never;
|
|
94
|
+
options?: never;
|
|
95
|
+
head?: never;
|
|
96
|
+
patch?: never;
|
|
97
|
+
trace?: never;
|
|
98
|
+
};
|
|
99
|
+
"/carts": {
|
|
100
|
+
parameters: {
|
|
101
|
+
query?: never;
|
|
102
|
+
header?: never;
|
|
103
|
+
path?: never;
|
|
104
|
+
cookie?: never;
|
|
105
|
+
};
|
|
106
|
+
get?: never;
|
|
107
|
+
put?: never;
|
|
108
|
+
/**
|
|
109
|
+
* Create Cart
|
|
110
|
+
* @description Create a new cart session.
|
|
111
|
+
*/
|
|
112
|
+
post: operations["create_cart"];
|
|
113
|
+
delete?: never;
|
|
114
|
+
options?: never;
|
|
115
|
+
head?: never;
|
|
116
|
+
patch?: never;
|
|
117
|
+
trace?: never;
|
|
118
|
+
};
|
|
119
|
+
"/carts/{id}": {
|
|
120
|
+
parameters: {
|
|
121
|
+
query?: never;
|
|
122
|
+
header?: never;
|
|
123
|
+
path: {
|
|
124
|
+
/** @description The unique identifier of the cart. */
|
|
125
|
+
id: components["parameters"]["cart_id_path"];
|
|
126
|
+
};
|
|
127
|
+
cookie?: never;
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Get Cart
|
|
131
|
+
* @description Get the latest state of a cart session.
|
|
132
|
+
*/
|
|
133
|
+
get: operations["get_cart"];
|
|
134
|
+
/**
|
|
135
|
+
* Update Cart
|
|
136
|
+
* @description Update a cart session.
|
|
137
|
+
*/
|
|
138
|
+
put: operations["update_cart"];
|
|
139
|
+
post?: never;
|
|
140
|
+
delete?: never;
|
|
141
|
+
options?: never;
|
|
142
|
+
head?: never;
|
|
143
|
+
patch?: never;
|
|
144
|
+
trace?: never;
|
|
145
|
+
};
|
|
146
|
+
"/carts/{id}/cancel": {
|
|
147
|
+
parameters: {
|
|
148
|
+
query?: never;
|
|
149
|
+
header?: never;
|
|
150
|
+
path: {
|
|
151
|
+
/** @description The unique identifier of the cart. */
|
|
152
|
+
id: components["parameters"]["cart_id_path"];
|
|
153
|
+
};
|
|
154
|
+
cookie?: never;
|
|
155
|
+
};
|
|
156
|
+
get?: never;
|
|
157
|
+
put?: never;
|
|
158
|
+
/**
|
|
159
|
+
* Cancel Cart
|
|
160
|
+
* @description Cancel a cart session. Returns the cart state at time of cancellation.
|
|
161
|
+
*/
|
|
162
|
+
post: operations["cancel_cart"];
|
|
163
|
+
delete?: never;
|
|
164
|
+
options?: never;
|
|
165
|
+
head?: never;
|
|
166
|
+
patch?: never;
|
|
167
|
+
trace?: never;
|
|
168
|
+
};
|
|
169
|
+
"/catalog/search": {
|
|
170
|
+
parameters: {
|
|
171
|
+
query?: never;
|
|
172
|
+
header?: never;
|
|
173
|
+
path?: never;
|
|
174
|
+
cookie?: never;
|
|
175
|
+
};
|
|
176
|
+
get?: never;
|
|
177
|
+
put?: never;
|
|
178
|
+
/**
|
|
179
|
+
* Search Catalog
|
|
180
|
+
* @description Search for products in the business's catalog.
|
|
181
|
+
*/
|
|
182
|
+
post: operations["search_catalog"];
|
|
183
|
+
delete?: never;
|
|
184
|
+
options?: never;
|
|
185
|
+
head?: never;
|
|
186
|
+
patch?: never;
|
|
187
|
+
trace?: never;
|
|
188
|
+
};
|
|
189
|
+
"/catalog/lookup": {
|
|
190
|
+
parameters: {
|
|
191
|
+
query?: never;
|
|
192
|
+
header?: never;
|
|
193
|
+
path?: never;
|
|
194
|
+
cookie?: never;
|
|
195
|
+
};
|
|
196
|
+
get?: never;
|
|
197
|
+
put?: never;
|
|
198
|
+
/**
|
|
199
|
+
* Batch Lookup Catalog Items
|
|
200
|
+
* @description Lookup one or more products by ID with explicit market context. Supports batch lookups of multiple items in a single request.
|
|
201
|
+
*/
|
|
202
|
+
post: operations["lookup_catalog"];
|
|
203
|
+
delete?: never;
|
|
204
|
+
options?: never;
|
|
205
|
+
head?: never;
|
|
206
|
+
patch?: never;
|
|
207
|
+
trace?: never;
|
|
208
|
+
};
|
|
209
|
+
"/orders/{id}": {
|
|
210
|
+
parameters: {
|
|
211
|
+
query?: never;
|
|
212
|
+
header?: never;
|
|
213
|
+
path: {
|
|
214
|
+
/** @description The unique identifier of the order. */
|
|
215
|
+
id: components["parameters"]["order_id_path"];
|
|
216
|
+
};
|
|
217
|
+
cookie?: never;
|
|
218
|
+
};
|
|
219
|
+
/**
|
|
220
|
+
* Get Order
|
|
221
|
+
* @description Get the current state of an order. Returns the full order entity as a current-state snapshot. The business verifies the requesting platform created the checkout that produced this order.
|
|
222
|
+
*/
|
|
223
|
+
get: operations["get_order"];
|
|
224
|
+
put?: never;
|
|
225
|
+
post?: never;
|
|
226
|
+
delete?: never;
|
|
227
|
+
options?: never;
|
|
228
|
+
head?: never;
|
|
229
|
+
patch?: never;
|
|
230
|
+
trace?: never;
|
|
231
|
+
};
|
|
232
|
+
"/catalog/product": {
|
|
233
|
+
parameters: {
|
|
234
|
+
query?: never;
|
|
235
|
+
header?: never;
|
|
236
|
+
path?: never;
|
|
237
|
+
cookie?: never;
|
|
238
|
+
};
|
|
239
|
+
get?: never;
|
|
240
|
+
put?: never;
|
|
241
|
+
/**
|
|
242
|
+
* Get Product Details
|
|
243
|
+
* @description Retrieve complete product detail by identifier. Returns a singular product with a relevant set of variants, exact pricing, and real-time availability. Supports interactive option selection via `selected` and `preferences` parameters for variant narrowing and availability signals.
|
|
244
|
+
*/
|
|
245
|
+
post: operations["get_product"];
|
|
246
|
+
delete?: never;
|
|
247
|
+
options?: never;
|
|
248
|
+
head?: never;
|
|
249
|
+
patch?: never;
|
|
250
|
+
trace?: never;
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
export interface webhooks {
|
|
254
|
+
orderEvent: {
|
|
255
|
+
parameters: {
|
|
256
|
+
query?: never;
|
|
257
|
+
header?: never;
|
|
258
|
+
path?: never;
|
|
259
|
+
cookie?: never;
|
|
260
|
+
};
|
|
261
|
+
get?: never;
|
|
262
|
+
put?: never;
|
|
263
|
+
/**
|
|
264
|
+
* Order Event Webhook
|
|
265
|
+
* @description Merchant sends order lifecycle events to the platform's registered webhook URL. The platform provides the webhook URL during partner onboarding.
|
|
266
|
+
*/
|
|
267
|
+
post: operations["order_event_webhook"];
|
|
268
|
+
delete?: never;
|
|
269
|
+
options?: never;
|
|
270
|
+
head?: never;
|
|
271
|
+
patch?: never;
|
|
272
|
+
trace?: never;
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
export interface components {
|
|
276
|
+
schemas: {
|
|
277
|
+
/**
|
|
278
|
+
* Checkout
|
|
279
|
+
* @description Base checkout schema. Extensions compose onto this using allOf.
|
|
280
|
+
*/
|
|
281
|
+
checkout: {
|
|
282
|
+
ucp: components["schemas"]["response_checkout_schema"];
|
|
283
|
+
/** @description Unique identifier of the checkout session. */
|
|
284
|
+
id: string;
|
|
285
|
+
/** @description List of line items being checked out. */
|
|
286
|
+
line_items: components["schemas"]["line_item"][];
|
|
287
|
+
/** @description Representation of the buyer. */
|
|
288
|
+
buyer?: components["schemas"]["buyer"];
|
|
289
|
+
context?: components["schemas"]["context"];
|
|
290
|
+
signals?: components["schemas"]["signals"];
|
|
291
|
+
attribution?: components["schemas"]["attribution"];
|
|
292
|
+
/**
|
|
293
|
+
* @description Checkout state indicating the current phase and required processing. See Checkout Status lifecycle documentation for state transition details.
|
|
294
|
+
* @enum {string}
|
|
295
|
+
*/
|
|
296
|
+
status: "incomplete" | "requires_escalation" | "ready_for_complete" | "complete_in_progress" | "completed" | "canceled";
|
|
297
|
+
/** @description ISO 4217 currency code reflecting the merchant's market determination. Derived from address, context, and geo IP—buyers provide signals, merchants determine currency. */
|
|
298
|
+
currency: string;
|
|
299
|
+
/** @description Different cart totals. */
|
|
300
|
+
totals: components["schemas"]["totals"];
|
|
301
|
+
/** @description Outstanding extension-defined Actions for this checkout. */
|
|
302
|
+
actions?: components["schemas"]["actions"];
|
|
303
|
+
/** @description List of messages with error and info about the checkout session state. */
|
|
304
|
+
messages?: components["schemas"]["message"][];
|
|
305
|
+
/** @description Links to be displayed by the platform (Privacy Policy, TOS). Mandatory for legal compliance. */
|
|
306
|
+
links: components["schemas"]["link"][];
|
|
307
|
+
/** @description Policies (e.g., return/refund terms) that apply to the items in this checkout. `applies_to` targets are relative to the response root; when absent or empty, refer to the URLs in `links[]`. */
|
|
308
|
+
policies?: components["schemas"]["policy"][];
|
|
309
|
+
/**
|
|
310
|
+
* Format: date-time
|
|
311
|
+
* @description RFC 3339 expiry timestamp. Default TTL is 6 hours from creation if not sent.
|
|
312
|
+
*/
|
|
313
|
+
expires_at?: string;
|
|
314
|
+
/**
|
|
315
|
+
* Format: uri
|
|
316
|
+
* @description URL for checkout handoff and session recovery. MUST be provided when status is requires_escalation. See specification for format and availability requirements.
|
|
317
|
+
*/
|
|
318
|
+
continue_url?: string;
|
|
319
|
+
payment?: components["schemas"]["payment"];
|
|
320
|
+
/** @description Details about an order created for this checkout session. */
|
|
321
|
+
order?: components["schemas"]["order_confirmation"];
|
|
322
|
+
} & {
|
|
323
|
+
[key: string]: unknown;
|
|
324
|
+
};
|
|
325
|
+
checkout_response: components["schemas"]["checkout"] | components["schemas"]["error_response"];
|
|
326
|
+
/**
|
|
327
|
+
* Cart
|
|
328
|
+
* @description Shopping cart with estimated pricing before checkout. Lightweight pre-purchase exploration with no payment info or complex status states.
|
|
329
|
+
*/
|
|
330
|
+
cart: {
|
|
331
|
+
ucp: components["schemas"]["response_cart_schema"];
|
|
332
|
+
/** @description Unique cart identifier. */
|
|
333
|
+
id: string;
|
|
334
|
+
/** @description Cart line items. Same structure as checkout. Full replacement on update. */
|
|
335
|
+
line_items: components["schemas"]["line_item"][];
|
|
336
|
+
/** @description Buyer signals for localization (country, region, postal_code). Merchant uses for pricing, availability, currency. Falls back to geo-IP if omitted. */
|
|
337
|
+
context?: components["schemas"]["context"];
|
|
338
|
+
signals?: components["schemas"]["signals"];
|
|
339
|
+
attribution?: components["schemas"]["attribution"];
|
|
340
|
+
/** @description Optional buyer information for personalized estimates. */
|
|
341
|
+
buyer?: components["schemas"]["buyer"];
|
|
342
|
+
/** @description ISO 4217 currency code. Determined by merchant based on context or geo-IP. */
|
|
343
|
+
currency: string;
|
|
344
|
+
/** @description Estimated cost breakdown. May be partial if shipping/tax not yet calculable. */
|
|
345
|
+
totals: components["schemas"]["totals"];
|
|
346
|
+
/** @description Outstanding extension-defined Actions for this cart. */
|
|
347
|
+
actions?: components["schemas"]["actions"];
|
|
348
|
+
/** @description Validation messages, warnings, or informational notices. */
|
|
349
|
+
messages?: components["schemas"]["message"][];
|
|
350
|
+
/** @description Optional merchant links (policies, FAQs). */
|
|
351
|
+
links?: components["schemas"]["link"][];
|
|
352
|
+
/** @description Policies (e.g., return/refund terms) that apply to the items in this cart. `applies_to` targets are relative to the response root; when absent or empty, refer to the URLs in `links[]`. */
|
|
353
|
+
policies?: components["schemas"]["policy"][];
|
|
354
|
+
/**
|
|
355
|
+
* Format: uri
|
|
356
|
+
* @description URL for cart handoff and session recovery. Enables sharing and human-in-the-loop flows.
|
|
357
|
+
*/
|
|
358
|
+
continue_url?: string;
|
|
359
|
+
/**
|
|
360
|
+
* Format: date-time
|
|
361
|
+
* @description Cart expiry timestamp (RFC 3339). Optional.
|
|
362
|
+
*/
|
|
363
|
+
expires_at?: string;
|
|
364
|
+
$defs: {
|
|
365
|
+
/**
|
|
366
|
+
* Checkout with Cart
|
|
367
|
+
* @description Checkout extended with cart capability. Adds cart_id to create_checkout for cart-to-checkout conversion.
|
|
368
|
+
*/
|
|
369
|
+
checkout: components["schemas"]["checkout"] & {
|
|
370
|
+
/** @description Cart ID to convert to checkout. Business MUST use cart contents (line_items, context, buyer) and MUST ignore overlapping fields in checkout payload. */
|
|
371
|
+
cart_id?: string;
|
|
372
|
+
};
|
|
373
|
+
};
|
|
374
|
+
} & {
|
|
375
|
+
[key: string]: unknown;
|
|
376
|
+
};
|
|
377
|
+
cart_response: components["schemas"]["cart"] | components["schemas"]["error_response"];
|
|
378
|
+
/**
|
|
379
|
+
* Order
|
|
380
|
+
* @description Order schema with line items, buyer-facing fulfillment expectations, and event logs.
|
|
381
|
+
*/
|
|
382
|
+
order: {
|
|
383
|
+
ucp: components["schemas"]["response_order_schema"];
|
|
384
|
+
/** @description Unique order identifier. */
|
|
385
|
+
id: string;
|
|
386
|
+
/** @description Human-readable label for identifying the order. MUST only be provided by the business. */
|
|
387
|
+
label?: string;
|
|
388
|
+
/** @description Associated checkout ID for reconciliation. */
|
|
389
|
+
checkout_id: string;
|
|
390
|
+
/**
|
|
391
|
+
* Format: uri
|
|
392
|
+
* @description Permalink to access the order on merchant site.
|
|
393
|
+
*/
|
|
394
|
+
permalink_url: string;
|
|
395
|
+
/** @description Line items representing what was purchased — can change post-order via edits or exchanges. */
|
|
396
|
+
line_items: components["schemas"]["order_line_item"][];
|
|
397
|
+
/** @description Fulfillment data: buyer expectations and what actually happened. */
|
|
398
|
+
fulfillment: {
|
|
399
|
+
/** @description Buyer-facing groups representing when/how items will be delivered. Can be split, merged, or adjusted post-order. */
|
|
400
|
+
expectations?: components["schemas"]["expectation"][];
|
|
401
|
+
/** @description Append-only event log of actual shipments. Each event references line items by ID. */
|
|
402
|
+
events?: components["schemas"]["fulfillment_event"][];
|
|
403
|
+
};
|
|
404
|
+
/** @description Post-order events (refunds, returns, credits, disputes, cancellations, etc.) that exist independently of fulfillment. */
|
|
405
|
+
adjustments?: components["schemas"]["adjustment"][];
|
|
406
|
+
/** @description ISO 4217 currency code. MUST match the currency from the originating checkout session. */
|
|
407
|
+
currency: string;
|
|
408
|
+
/** @description Different totals for the order. */
|
|
409
|
+
totals: components["schemas"]["totals"];
|
|
410
|
+
/** @description Snapshot of the policies that applied to the items at checkout, captured on the order as a durable record. `applies_to` targets are relative to the response root. */
|
|
411
|
+
policies?: components["schemas"]["policy"][];
|
|
412
|
+
/** @description Business outcome messages (errors, warnings, informational). Present when the business needs to communicate status or issues to the platform. */
|
|
413
|
+
messages?: components["schemas"]["message"][];
|
|
414
|
+
/** @description Snapshot of the attribution associated with the originating checkout. Read-only on the order. */
|
|
415
|
+
attribution?: components["schemas"]["attribution"];
|
|
416
|
+
$defs: {
|
|
417
|
+
/**
|
|
418
|
+
* Platform Order Schema
|
|
419
|
+
* @description Platform's order capability configuration.
|
|
420
|
+
*/
|
|
421
|
+
platform_schema: {
|
|
422
|
+
/**
|
|
423
|
+
* Format: uri
|
|
424
|
+
* @description URL where merchant sends order lifecycle events (webhooks).
|
|
425
|
+
*/
|
|
426
|
+
webhook_url: string;
|
|
427
|
+
};
|
|
428
|
+
};
|
|
429
|
+
};
|
|
430
|
+
order_response: components["schemas"]["order"] | components["schemas"]["error_response"];
|
|
431
|
+
/**
|
|
432
|
+
* Payment
|
|
433
|
+
* @description Payment configuration containing handlers.
|
|
434
|
+
*/
|
|
435
|
+
payment: {
|
|
436
|
+
/** @description The payment instruments available for this payment. Each instrument is associated with a specific handler via the handler_id field. Handlers can extend the base payment_instrument schema to add handler-specific fields. */
|
|
437
|
+
instruments?: components["schemas"]["selected_payment_instrument"][];
|
|
438
|
+
};
|
|
439
|
+
/**
|
|
440
|
+
* UCP Metadata
|
|
441
|
+
* @description Protocol metadata for discovery profiles and responses. Uses slim schema pattern with context-specific required fields.
|
|
442
|
+
*/
|
|
443
|
+
ucp: {
|
|
444
|
+
$defs: {
|
|
445
|
+
/** @description Version identifier in YYYY-MM-DD format. */
|
|
446
|
+
version: string;
|
|
447
|
+
/** @description Version range requirement with minimum and optional maximum. */
|
|
448
|
+
version_constraint: {
|
|
449
|
+
/** @description Minimum required version (inclusive). */
|
|
450
|
+
min: components["schemas"]["version"];
|
|
451
|
+
/** @description Maximum compatible version (inclusive). When absent, no upper bound. */
|
|
452
|
+
max?: components["schemas"]["version"];
|
|
453
|
+
} & {
|
|
454
|
+
[key: string]: unknown;
|
|
455
|
+
};
|
|
456
|
+
/** @description Version requirements for extension schemas. Declares minimum (and optionally maximum) protocol and capability versions needed for correct operation. */
|
|
457
|
+
requires: {
|
|
458
|
+
/** @description Required range for the selected `ucp.version`. */
|
|
459
|
+
protocol?: components["schemas"]["version_constraint"];
|
|
460
|
+
/** @description Required capability versions, keyed by capability name. Keys must be a subset of the extension's $defs keys. */
|
|
461
|
+
capabilities?: {
|
|
462
|
+
[key: string]: components["schemas"]["version_constraint"];
|
|
463
|
+
};
|
|
464
|
+
} & {
|
|
465
|
+
[key: string]: unknown;
|
|
466
|
+
};
|
|
467
|
+
/** @description Preferred key order for map-valued fields in the scope annotated by the containing `ucp` member. Each property names a target map, and its array lists target keys in preferred order. Lists may be partial and are not allowlists. */
|
|
468
|
+
map_order: {
|
|
469
|
+
[key: string]: string[];
|
|
470
|
+
};
|
|
471
|
+
/** @description Members defined inside the reserved `ucp` protocol object. The object is open for forward compatibility: consumers MUST ignore unrecognized members. Only UCP core defines members, and every defined member MUST be safe to ignore. */
|
|
472
|
+
members: {
|
|
473
|
+
map_order?: components["schemas"]["map_order"];
|
|
474
|
+
request_constraints?: components["schemas"]["request_constraints"];
|
|
475
|
+
} & {
|
|
476
|
+
[key: string]: unknown;
|
|
477
|
+
};
|
|
478
|
+
/** @description Shared foundation for all UCP entities. */
|
|
479
|
+
entity: {
|
|
480
|
+
/** @description Entity version in YYYY-MM-DD format. */
|
|
481
|
+
version: components["schemas"]["version"];
|
|
482
|
+
/**
|
|
483
|
+
* Format: uri
|
|
484
|
+
* @description URL to human-readable specification document.
|
|
485
|
+
*/
|
|
486
|
+
spec?: string;
|
|
487
|
+
/**
|
|
488
|
+
* Format: uri
|
|
489
|
+
* @description URL to JSON Schema defining this entity's structure and payloads.
|
|
490
|
+
*/
|
|
491
|
+
schema?: string;
|
|
492
|
+
/** @description Unique identifier for this entity instance. Used to disambiguate when multiple instances exist. */
|
|
493
|
+
id?: string;
|
|
494
|
+
/** @description Entity-specific configuration. Structure defined by each entity's schema. */
|
|
495
|
+
config?: {
|
|
496
|
+
[key: string]: unknown;
|
|
497
|
+
};
|
|
498
|
+
};
|
|
499
|
+
/** @description Base UCP metadata with shared properties for all schema types. */
|
|
500
|
+
base: {
|
|
501
|
+
version: components["schemas"]["version"];
|
|
502
|
+
/** @description Preferred key-traversal order for sibling registry fields inside the root `ucp` envelope (`services`, `capabilities`, and `payment_handlers`). */
|
|
503
|
+
map_order?: components["schemas"]["map_order"];
|
|
504
|
+
/**
|
|
505
|
+
* @description Application-level status of the UCP operation.
|
|
506
|
+
* @default success
|
|
507
|
+
* @enum {string}
|
|
508
|
+
*/
|
|
509
|
+
status: "success" | "error";
|
|
510
|
+
/** @description Service registry keyed by reverse-domain name. */
|
|
511
|
+
services?: {
|
|
512
|
+
[key: string]: components["schemas"]["base"][];
|
|
513
|
+
};
|
|
514
|
+
/** @description Capability registry keyed by reverse-domain name. */
|
|
515
|
+
capabilities?: {
|
|
516
|
+
[key: string]: components["schemas"]["$defs-base"][];
|
|
517
|
+
};
|
|
518
|
+
/** @description Payment handler registry keyed by reverse-domain name. */
|
|
519
|
+
payment_handlers?: {
|
|
520
|
+
[key: string]: components["schemas"]["payment_handler_$defs-base"][];
|
|
521
|
+
};
|
|
522
|
+
};
|
|
523
|
+
/** @description UCP metadata with status 'success'. Use for response branches that carry the expected payload. */
|
|
524
|
+
success: components["schemas"]["ucp_$defs-base"] & {
|
|
525
|
+
/** @constant */
|
|
526
|
+
status: "success";
|
|
527
|
+
};
|
|
528
|
+
/** @description UCP metadata with status 'error'. Use for response branches that carry error information. */
|
|
529
|
+
error: components["schemas"]["ucp_$defs-base"] & {
|
|
530
|
+
/** @constant */
|
|
531
|
+
status: "error";
|
|
532
|
+
};
|
|
533
|
+
/**
|
|
534
|
+
* UCP Platform Schema
|
|
535
|
+
* @description Full UCP metadata for platform-level configuration. Hosted at a URI advertised by the platform in request headers.
|
|
536
|
+
*/
|
|
537
|
+
platform_schema: components["schemas"]["ucp_$defs-base"] & {
|
|
538
|
+
services: {
|
|
539
|
+
[key: string]: unknown;
|
|
540
|
+
};
|
|
541
|
+
capabilities?: {
|
|
542
|
+
[key: string]: unknown;
|
|
543
|
+
};
|
|
544
|
+
payment_handlers: {
|
|
545
|
+
[key: string]: unknown;
|
|
546
|
+
};
|
|
547
|
+
};
|
|
548
|
+
/**
|
|
549
|
+
* UCP Business Schema
|
|
550
|
+
* @description UCP metadata for business/merchant-level configuration. Subset of platform schema with business-specific settings.
|
|
551
|
+
*/
|
|
552
|
+
business_schema: components["schemas"]["ucp_$defs-base"] & {
|
|
553
|
+
/** @description Previous protocol versions this business supports, mapped to profile URIs. Businesses that support older protocol versions SHOULD advertise each version and link to its profile. Each URI points to a complete, self-contained profile for that version. When omitted, only `version` is supported. */
|
|
554
|
+
supported_versions?: {
|
|
555
|
+
[key: string]: string;
|
|
556
|
+
};
|
|
557
|
+
services: {
|
|
558
|
+
[key: string]: unknown;
|
|
559
|
+
};
|
|
560
|
+
capabilities?: {
|
|
561
|
+
[key: string]: unknown;
|
|
562
|
+
};
|
|
563
|
+
payment_handlers: {
|
|
564
|
+
[key: string]: unknown;
|
|
565
|
+
};
|
|
566
|
+
};
|
|
567
|
+
/**
|
|
568
|
+
* UCP Checkout Response Schema
|
|
569
|
+
* @description UCP metadata for checkout responses.
|
|
570
|
+
*/
|
|
571
|
+
response_checkout_schema: components["schemas"]["ucp_$defs-base"] & {
|
|
572
|
+
services?: {
|
|
573
|
+
[key: string]: unknown;
|
|
574
|
+
};
|
|
575
|
+
capabilities?: {
|
|
576
|
+
[key: string]: unknown;
|
|
577
|
+
};
|
|
578
|
+
payment_handlers: {
|
|
579
|
+
[key: string]: unknown;
|
|
580
|
+
};
|
|
581
|
+
};
|
|
582
|
+
/**
|
|
583
|
+
* UCP Order Response Schema
|
|
584
|
+
* @description UCP metadata for order responses. No payment handlers needed post-purchase.
|
|
585
|
+
*/
|
|
586
|
+
response_order_schema: components["schemas"]["ucp_$defs-base"] & {
|
|
587
|
+
capabilities?: {
|
|
588
|
+
[key: string]: unknown;
|
|
589
|
+
};
|
|
590
|
+
};
|
|
591
|
+
/**
|
|
592
|
+
* UCP Cart Response Schema
|
|
593
|
+
* @description UCP metadata for cart responses. No payment handlers needed pre-checkout.
|
|
594
|
+
*/
|
|
595
|
+
response_cart_schema: components["schemas"]["ucp_$defs-base"] & {
|
|
596
|
+
capabilities?: {
|
|
597
|
+
[key: string]: unknown;
|
|
598
|
+
};
|
|
599
|
+
};
|
|
600
|
+
/**
|
|
601
|
+
* UCP Catalog Response Schema
|
|
602
|
+
* @description UCP metadata for catalog responses.
|
|
603
|
+
*/
|
|
604
|
+
response_catalog_schema: components["schemas"]["ucp_$defs-base"] & {
|
|
605
|
+
capabilities?: {
|
|
606
|
+
[key: string]: unknown;
|
|
607
|
+
};
|
|
608
|
+
};
|
|
609
|
+
/**
|
|
610
|
+
* UCP Location Response Schema
|
|
611
|
+
* @description UCP metadata for location responses.
|
|
612
|
+
*/
|
|
613
|
+
response_location_schema: components["schemas"]["ucp_$defs-base"] & {
|
|
614
|
+
capabilities?: {
|
|
615
|
+
[key: string]: unknown;
|
|
616
|
+
};
|
|
617
|
+
};
|
|
618
|
+
};
|
|
619
|
+
};
|
|
620
|
+
catalog_search_request: components["schemas"]["search_request"];
|
|
621
|
+
catalog_search_response: components["schemas"]["search_response"];
|
|
622
|
+
catalog_lookup_request: components["schemas"]["lookup_request"];
|
|
623
|
+
catalog_lookup_response: components["schemas"]["lookup_response"];
|
|
624
|
+
catalog_get_product_request: components["schemas"]["get_product_request"];
|
|
625
|
+
catalog_get_product_response: components["schemas"]["get_product_response"] | components["schemas"]["error_response"];
|
|
626
|
+
/** @description Version identifier in YYYY-MM-DD format. */
|
|
627
|
+
version: string;
|
|
628
|
+
/** @description Preferred key order for map-valued fields in the scope annotated by the containing `ucp` member. Each property names a target map, and its array lists target keys in preferred order. Lists may be partial and are not allowlists. */
|
|
629
|
+
map_order: {
|
|
630
|
+
[key: string]: string[];
|
|
631
|
+
};
|
|
632
|
+
/**
|
|
633
|
+
* Reverse Domain Name
|
|
634
|
+
* @description Reverse-domain identifier used for collision-safe namespacing of capabilities, services, handlers, eligibility claims, and extension-contributed keys. Must contain at least two dot-separated segments (e.g., 'dev.ucp.shopping.checkout', 'com.example.loyalty_gold'). Segments after the first are domain- or identifier-derived: they may contain interior hyphens, may start with a digit, and may contain underscores (e.g., 'com.example-shop.checkout', 'com.2example.cart', 'dev.ucp.common.identity_linking'), but must not start or end with a hyphen. The first segment (the reversed top-level domain) is letters and digits, and may contain interior hyphens to support internationalized (punycode) top-level domains such as 'xn--p1ai'.
|
|
635
|
+
* @example dev.ucp.shopping.checkout
|
|
636
|
+
* @example dev.ucp.common.identity_linking
|
|
637
|
+
* @example com.example.loyalty_gold
|
|
638
|
+
* @example com.example-shop.checkout
|
|
639
|
+
* @example com.2example.cart
|
|
640
|
+
* @example uk.co.example-shop.checkout
|
|
641
|
+
* @example xn--p1ai.example.checkout
|
|
642
|
+
*/
|
|
643
|
+
reverse_domain_name: string;
|
|
644
|
+
/** @description Shared foundation for all UCP entities. */
|
|
645
|
+
entity: {
|
|
646
|
+
/** @description Entity version in YYYY-MM-DD format. */
|
|
647
|
+
version: components["schemas"]["version"];
|
|
648
|
+
/**
|
|
649
|
+
* Format: uri
|
|
650
|
+
* @description URL to human-readable specification document.
|
|
651
|
+
*/
|
|
652
|
+
spec?: string;
|
|
653
|
+
/**
|
|
654
|
+
* Format: uri
|
|
655
|
+
* @description URL to JSON Schema defining this entity's structure and payloads.
|
|
656
|
+
*/
|
|
657
|
+
schema?: string;
|
|
658
|
+
/** @description Unique identifier for this entity instance. Used to disambiguate when multiple instances exist. */
|
|
659
|
+
id?: string;
|
|
660
|
+
/** @description Entity-specific configuration. Structure defined by each entity's schema. */
|
|
661
|
+
config?: {
|
|
662
|
+
[key: string]: unknown;
|
|
663
|
+
};
|
|
664
|
+
};
|
|
665
|
+
base: components["schemas"]["entity"] & {
|
|
666
|
+
/**
|
|
667
|
+
* @description Transport protocol for this service binding.
|
|
668
|
+
* @enum {string}
|
|
669
|
+
*/
|
|
670
|
+
transport: "rest" | "mcp" | "a2a" | "embedded";
|
|
671
|
+
/**
|
|
672
|
+
* Format: uri
|
|
673
|
+
* @description Endpoint URL for this transport binding.
|
|
674
|
+
*/
|
|
675
|
+
endpoint?: string;
|
|
676
|
+
};
|
|
677
|
+
"$defs-base": components["schemas"]["entity"] & {
|
|
678
|
+
/** @description Parent capability(s) this extends. Present for extensions, absent for root capabilities. Use array for multi-parent extensions. */
|
|
679
|
+
extends?: components["schemas"]["reverse_domain_name"] | components["schemas"]["reverse_domain_name"][];
|
|
680
|
+
};
|
|
681
|
+
/**
|
|
682
|
+
* Constraint Expression
|
|
683
|
+
* @description A closed JSON Schema Draft 2020-12 constraint expression with Object and Value Constraint positions.
|
|
684
|
+
*/
|
|
685
|
+
constraint_expression: {
|
|
686
|
+
/** @description Property names required by the constrained object. Must be non-empty: an empty array applies no constraint. */
|
|
687
|
+
required?: string[];
|
|
688
|
+
/** @description Constraints keyed by property name. Must be non-empty: an empty object applies no constraint. */
|
|
689
|
+
properties?: {
|
|
690
|
+
[key: string]: components["schemas"]["constraint_expression"] | components["schemas"]["value_constraint"];
|
|
691
|
+
};
|
|
692
|
+
/** @description Alternative Object Constraints. The constrained object must satisfy at least one. A branch must be non-empty: an empty branch is satisfied by every object and neutralizes the alternation. */
|
|
693
|
+
anyOf?: components["schemas"]["constraint_expression"][];
|
|
694
|
+
$defs: {
|
|
695
|
+
/** @description A Value Constraint containing `enum`, `const`, or both. */
|
|
696
|
+
value_constraint: {
|
|
697
|
+
/** @description A non-empty array of unique JSON values. */
|
|
698
|
+
enum?: unknown[];
|
|
699
|
+
const?: unknown;
|
|
700
|
+
} | unknown | unknown;
|
|
701
|
+
};
|
|
702
|
+
};
|
|
703
|
+
/** @description A Value Constraint containing `enum`, `const`, or both. */
|
|
704
|
+
value_constraint: {
|
|
705
|
+
/** @description A non-empty array of unique JSON values. */
|
|
706
|
+
enum?: unknown[];
|
|
707
|
+
const?: unknown;
|
|
708
|
+
} | unknown | unknown;
|
|
709
|
+
/**
|
|
710
|
+
* Available Payment Instrument
|
|
711
|
+
* @description An instrument type available from a payment handler with optional constraints.
|
|
712
|
+
*/
|
|
713
|
+
available_payment_instrument: {
|
|
714
|
+
/** @description The instrument type identifier (e.g., 'card', 'gift_card'). References an instrument schema's type constant. */
|
|
715
|
+
type: string;
|
|
716
|
+
/** @description A Constraint Expression describing the instrument this entry makes available. Keys in `properties` name members of the `constraint_target` declared by the instrument schema for this `type`. Requirements on submitted request data belong in `ucp.request_constraints` instead. */
|
|
717
|
+
constraints?: components["schemas"]["constraint_expression"];
|
|
718
|
+
};
|
|
719
|
+
"payment_handler_$defs-base": components["schemas"]["entity"] & Record<string, never> & {
|
|
720
|
+
/** @description Instrument types this handler supports, with optional constraints. When absent, every instrument should be considered available. */
|
|
721
|
+
available_instruments?: components["schemas"]["available_payment_instrument"][];
|
|
722
|
+
};
|
|
723
|
+
/** @description Base UCP metadata with shared properties for all schema types. */
|
|
724
|
+
"ucp_$defs-base": {
|
|
725
|
+
version: components["schemas"]["version"];
|
|
726
|
+
/** @description Preferred key-traversal order for sibling registry fields inside the root `ucp` envelope (`services`, `capabilities`, and `payment_handlers`). */
|
|
727
|
+
map_order?: components["schemas"]["map_order"];
|
|
728
|
+
/**
|
|
729
|
+
* @description Application-level status of the UCP operation.
|
|
730
|
+
* @default success
|
|
731
|
+
* @enum {string}
|
|
732
|
+
*/
|
|
733
|
+
status: "success" | "error";
|
|
734
|
+
/** @description Service registry keyed by reverse-domain name. */
|
|
735
|
+
services?: {
|
|
736
|
+
[key: string]: components["schemas"]["base"][];
|
|
737
|
+
};
|
|
738
|
+
/** @description Capability registry keyed by reverse-domain name. */
|
|
739
|
+
capabilities?: {
|
|
740
|
+
[key: string]: components["schemas"]["$defs-base"][];
|
|
741
|
+
};
|
|
742
|
+
/** @description Payment handler registry keyed by reverse-domain name. */
|
|
743
|
+
payment_handlers?: {
|
|
744
|
+
[key: string]: components["schemas"]["payment_handler_$defs-base"][];
|
|
745
|
+
};
|
|
746
|
+
};
|
|
747
|
+
/**
|
|
748
|
+
* Embedded Transport Config
|
|
749
|
+
* @description Per-session configuration for embedded transport binding. Allows businesses to vary EP availability and delegations based on cart contents, agent authorization, or policy.
|
|
750
|
+
*/
|
|
751
|
+
embedded_config: {
|
|
752
|
+
/** @description Delegations the business allows. At service-level, declares available delegations. In UCP responses, confirms accepted delegations for this session. */
|
|
753
|
+
delegate?: string[];
|
|
754
|
+
/** @description Color schemes the business supports. Hosts use ec_color_scheme query parameter to request a scheme from this list. */
|
|
755
|
+
color_scheme?: ("light" | "dark")[];
|
|
756
|
+
};
|
|
757
|
+
/**
|
|
758
|
+
* Service (Response Schema)
|
|
759
|
+
* @description Service binding in API responses. Includes per-resource transport configuration via typed config.
|
|
760
|
+
*/
|
|
761
|
+
response_schema: components["schemas"]["base"] & ({
|
|
762
|
+
/** @constant */
|
|
763
|
+
transport?: "rest";
|
|
764
|
+
} | {
|
|
765
|
+
/** @constant */
|
|
766
|
+
transport?: "mcp";
|
|
767
|
+
} | {
|
|
768
|
+
/** @constant */
|
|
769
|
+
transport?: "a2a";
|
|
770
|
+
} | {
|
|
771
|
+
/** @constant */
|
|
772
|
+
transport?: "embedded";
|
|
773
|
+
config?: components["schemas"]["embedded_config"];
|
|
774
|
+
});
|
|
775
|
+
/**
|
|
776
|
+
* Capability (Response Schema)
|
|
777
|
+
* @description Capability reference in responses. Only name/version required to confirm active capabilities.
|
|
778
|
+
*/
|
|
779
|
+
"$defs-response_schema": components["schemas"]["$defs-base"];
|
|
780
|
+
/**
|
|
781
|
+
* Payment Handler (Response Schema)
|
|
782
|
+
* @description Handler reference in responses. May include full config state for runtime usage of the handler.
|
|
783
|
+
*/
|
|
784
|
+
"payment_handler_$defs-response_schema": components["schemas"]["payment_handler_$defs-base"];
|
|
785
|
+
/**
|
|
786
|
+
* UCP Checkout Response Schema
|
|
787
|
+
* @description UCP metadata for checkout responses.
|
|
788
|
+
*/
|
|
789
|
+
response_checkout_schema: components["schemas"]["ucp_$defs-base"] & {
|
|
790
|
+
services?: {
|
|
791
|
+
[key: string]: unknown;
|
|
792
|
+
};
|
|
793
|
+
capabilities?: {
|
|
794
|
+
[key: string]: unknown;
|
|
795
|
+
};
|
|
796
|
+
payment_handlers: {
|
|
797
|
+
[key: string]: unknown;
|
|
798
|
+
};
|
|
799
|
+
};
|
|
800
|
+
/**
|
|
801
|
+
* Amount
|
|
802
|
+
* @description Monetary amount in the currency's minor unit as defined by ISO 4217. Refer to the currency's exponent to determine minor-to-major ratio (e.g., 2 for USD, 0 for JPY, 3 for KWD).
|
|
803
|
+
*/
|
|
804
|
+
amount: number;
|
|
805
|
+
/**
|
|
806
|
+
* Unit
|
|
807
|
+
* @description A reusable unit descriptor for quantities and measures. Its unit-descriptor machine identity is (`unit`, effective `scale`), where effective `scale` is the provided `scale` or 0; `display_text` is excluded.
|
|
808
|
+
*/
|
|
809
|
+
unit: {
|
|
810
|
+
/** @description Stable machine identifier. The Business SHOULD use the exact UN/CEFACT Rec20 Common Code when one accurately identifies the unit. Otherwise, the Business MAY use a custom unit identifier and MUST use it consistently for the same unit. The Platform MUST treat an unrecognized identifier as opaque. */
|
|
811
|
+
unit: string;
|
|
812
|
+
/**
|
|
813
|
+
* @description One step equals `10^-scale` of `unit`. When `unit` is `C62`, `scale`, if present, MUST be 0. The maximum of 15 is derived from the interoperable integer range: at scale 16 a single whole unit (10^16 steps) is no longer representable, so larger scales cannot denominate one unit of their own basis. Businesses needing finer granularity use a smaller unit.
|
|
814
|
+
* @default 0
|
|
815
|
+
*/
|
|
816
|
+
scale: number;
|
|
817
|
+
/** @description Required printable unit label provided by the Business. The Platform MUST use it when it does not recognize `unit`; for a recognized UN/CEFACT Rec 20 Common Code, the Platform MAY substitute its own localized label. It does not participate in unit identity or mismatch comparison. */
|
|
818
|
+
display_text: string;
|
|
819
|
+
} & unknown;
|
|
820
|
+
/**
|
|
821
|
+
* Quantity Unit
|
|
822
|
+
* @description Sale-basis descriptor for quantities: the shared unit descriptor plus the Business's ordering policy. Its unit-descriptor machine identity remains (`unit`, effective `scale`); `display_text` and `increment` are excluded from identity and mismatch comparison.
|
|
823
|
+
*/
|
|
824
|
+
quantity_unit: components["schemas"]["unit"] & {
|
|
825
|
+
/**
|
|
826
|
+
* @description Ordering granularity, denominated in steps: the Business sells this item in integer multiples of `increment` steps. Its effective value is the provided value or 1. Advisory merchandising policy, not a representational bound: Platform-authored quantities SHOULD be integer multiples of the effective increment; the Business MAY accept, revise, or reject an off-increment request with a recoverable business outcome and MUST NOT silently reinterpret it. Business-authored quantities (checkout revisions, fulfillment events, adjustments) are bounded only by `scale`.
|
|
827
|
+
* @default 1
|
|
828
|
+
*/
|
|
829
|
+
increment: number;
|
|
830
|
+
};
|
|
831
|
+
/**
|
|
832
|
+
* Measure
|
|
833
|
+
* @description A measure composed of an integer value and a unit descriptor. Its value is the integer count of `10^-scale` units of `unit`.
|
|
834
|
+
*/
|
|
835
|
+
measure: components["schemas"]["unit"] & {
|
|
836
|
+
/** @description Integer count of `10^-scale` units of `unit`. */
|
|
837
|
+
value: number;
|
|
838
|
+
};
|
|
839
|
+
/**
|
|
840
|
+
* Unit Price
|
|
841
|
+
* @description Price per standard unit of measurement. MAY be omitted when unit pricing does not apply. `unit_price.currency` MUST equal `price.currency`; the comparator MUST NOT perform currency conversion. `measure.unit` and `reference.unit` MUST be identical; cross-unit conversion is not permitted. Their scales MAY differ; each value represents `value × 10^-scale`.
|
|
842
|
+
*/
|
|
843
|
+
unit_price: {
|
|
844
|
+
/** @description Unit price in ISO 4217 minor units. After satisfying the same-unit invariant, the Business MUST compute the comparator as `(price.amount / (measure.value × 10^-measure.scale)) × (reference.value × 10^-reference.scale)` and round it once to ISO 4217 minor units according to its pricing rules. The returned `unit_price.amount` is authoritative; the Platform MUST NOT recompute or substitute its own result. */
|
|
845
|
+
amount: components["schemas"]["amount"];
|
|
846
|
+
/** @description ISO 4217 currency code. */
|
|
847
|
+
currency: string;
|
|
848
|
+
/** @description Product quantity in packaging/content (for example, a 750 mL bottle), distinct from `quantity_unit`, which defines the sale basis. Its integer `value` MUST be at least 1. */
|
|
849
|
+
measure: components["schemas"]["measure"] & {
|
|
850
|
+
value?: unknown;
|
|
851
|
+
};
|
|
852
|
+
/** @description Denominator for unit price display (for example, per 100 mL or per 1 kg). Its integer `value` MUST be at least 1. */
|
|
853
|
+
reference: components["schemas"]["measure"] & {
|
|
854
|
+
value?: unknown;
|
|
855
|
+
};
|
|
856
|
+
};
|
|
857
|
+
/** Item */
|
|
858
|
+
item: {
|
|
859
|
+
/** @description The product identifier, often the SKU, required to resolve the product details associated with this line item. Should be recognized by both the Platform, and the Business. */
|
|
860
|
+
id: string;
|
|
861
|
+
/** @description Product title. */
|
|
862
|
+
title: string;
|
|
863
|
+
/** @description Unit price in ISO 4217 minor units. Price is the amount per one whole `quantity_unit.unit` (for example, per lb or per hour); when `quantity_unit` is absent, it is per `each`. */
|
|
864
|
+
price: components["schemas"]["amount"];
|
|
865
|
+
/** @description Sale basis this item's `quantity` is denominated in. On an authoritative Business response, absence encodes the default `each` machine identity (`C62`, 0); the Business MUST include this descriptor for every non-`each` response. On Platform requests, omission makes no assertion: the Business interprets `quantity` using the item's authoritative sale basis. If the Platform includes this descriptor, it asserts the unit-descriptor machine identity. The Business MUST compare that machine identity (`unit`, effective `scale`), ignore `display_text` and `increment`, and resolve a mismatch by conversion surfaced as a visible line revision with a warning, or by rejection with a recoverable business outcome; silent reinterpretation is forbidden. An explicit `C62` descriptor at effective scale 0 matches an authoritative basis represented by an absent descriptor. */
|
|
866
|
+
quantity_unit?: components["schemas"]["quantity_unit"];
|
|
867
|
+
/** @description Pricing basis for this item. On an authoritative Business response, the Business MUST include `unit_price` on every line whose pricing basis differs from its sale basis (for example, priced per pound but sold per `each`); presence on a line marks the rate as transactional rather than display-only. When the pricing basis is the sale basis, `item.price` fully denominates the charge and this field MAY be omitted. */
|
|
868
|
+
unit_price?: components["schemas"]["unit_price"];
|
|
869
|
+
/**
|
|
870
|
+
* Format: uri
|
|
871
|
+
* @description Product image URI.
|
|
872
|
+
*/
|
|
873
|
+
image_url?: string;
|
|
874
|
+
};
|
|
875
|
+
/**
|
|
876
|
+
* Signed Amount
|
|
877
|
+
* @description Monetary amount in the currency's minor unit as defined by ISO 4217. Refer to the currency's exponent to determine minor-to-major ratio (e.g., 2 for USD, 0 for JPY, 3 for KWD). May be negative — the sign is intrinsic to the value (e.g., discounts are negative, charges are positive).
|
|
878
|
+
*/
|
|
879
|
+
signed_amount: number;
|
|
880
|
+
/**
|
|
881
|
+
* Total
|
|
882
|
+
* @description A cost breakdown entry with a category, amount, and optional display text.
|
|
883
|
+
*/
|
|
884
|
+
total: {
|
|
885
|
+
/** @description Cost category. Well-known values: subtotal, items_discount, discount, fulfillment, tax, fee, total. Businesses MAY use additional values. */
|
|
886
|
+
type: string;
|
|
887
|
+
/** @description Text to display against the amount. Should reflect appropriate method (e.g., 'Shipping', 'Delivery'). */
|
|
888
|
+
display_text?: string;
|
|
889
|
+
amount: components["schemas"]["signed_amount"];
|
|
890
|
+
} & (unknown & unknown);
|
|
891
|
+
/**
|
|
892
|
+
* Line Item
|
|
893
|
+
* @description Line item object. Expected to use the currency of the parent object.
|
|
894
|
+
*/
|
|
895
|
+
line_item: {
|
|
896
|
+
id: string;
|
|
897
|
+
item: components["schemas"]["item"];
|
|
898
|
+
/** @description Always an integer step count. On Platform requests, steps use the item's Business-authoritative sale basis; omitting `item.quantity_unit` makes no assertion and does not imply `each`. On Business responses, `item.quantity_unit` describes the basis; if absent, it encodes the `each` machine identity (`C62`, 0) and `quantity` counts whole items. */
|
|
899
|
+
quantity: number;
|
|
900
|
+
/** @description Line item totals breakdown. */
|
|
901
|
+
totals: components["schemas"]["total"][];
|
|
902
|
+
/** @description Parent line item identifier for any nested structures. */
|
|
903
|
+
parent_id?: string;
|
|
904
|
+
};
|
|
905
|
+
/** Buyer */
|
|
906
|
+
buyer: {
|
|
907
|
+
/** @description First name of the buyer. */
|
|
908
|
+
first_name?: string;
|
|
909
|
+
/** @description Last name of the buyer. */
|
|
910
|
+
last_name?: string;
|
|
911
|
+
/** @description Email of the buyer. */
|
|
912
|
+
email?: string;
|
|
913
|
+
/** @description E.164 standard. */
|
|
914
|
+
phone_number?: string;
|
|
915
|
+
} & {
|
|
916
|
+
[key: string]: unknown;
|
|
917
|
+
};
|
|
918
|
+
/**
|
|
919
|
+
* Locality
|
|
920
|
+
* @description A coarse geographic location — country, region, and postal code. A lightweight alternative to a full postal address.
|
|
921
|
+
*/
|
|
922
|
+
locality: {
|
|
923
|
+
/** @description The country, as a 2-letter ISO 3166-1 alpha-2 code (e.g. "US"). A 3-letter alpha-3 code or full country name MAY also be used. */
|
|
924
|
+
address_country?: string;
|
|
925
|
+
/** @description The first-level administrative region within the country (e.g. a state or province such as California). */
|
|
926
|
+
address_region?: string;
|
|
927
|
+
/** @description The postal code (e.g. "94043"). */
|
|
928
|
+
postal_code?: string;
|
|
929
|
+
} & {
|
|
930
|
+
[key: string]: unknown;
|
|
931
|
+
};
|
|
932
|
+
/**
|
|
933
|
+
* Context
|
|
934
|
+
* @description Provisional buyer signals for relevance and localization—not authoritative data. Businesses SHOULD use these values when verified inputs (e.g., shipping address) are absent, and MAY ignore or down-rank them if inconsistent with higher-confidence signals (authenticated account, risk detection) or regulatory constraints (export controls). Eligibility and policy enforcement MUST occur at checkout time using binding transaction data. Context SHOULD be non-identifying and can be disclosed progressively—coarse signals early, finer resolution as the session progresses. Higher-resolution data (shipping address, billing address) supersedes context.
|
|
935
|
+
*/
|
|
936
|
+
context: {
|
|
937
|
+
[key: string]: unknown;
|
|
938
|
+
} & (components["schemas"]["locality"] & ({
|
|
939
|
+
/** @description Stable, opaque identifier for a Location in the Business's namespace. This provisional, non-binding hint is distinct from the Buyer's locality. The operation specification or an active capability/extension defines its effects. A common example in retail shopping is the default home store ID selected and saved by the user when purchasing groceries. */
|
|
940
|
+
location?: string;
|
|
941
|
+
/** @description Background context describing buyer's intent (e.g., 'looking for a gift under $50', 'need something durable for outdoor use'). Informs relevance, recommendations, and personalization. */
|
|
942
|
+
intent?: string;
|
|
943
|
+
/** @description Preferred language for content. Use IETF BCP 47 language tags (e.g., 'en', 'fr-CA', 'zh-Hans'). For REST, equivalent to Accept-Language header—platforms SHOULD fall back to Accept-Language when this field is absent; when provided, overrides Accept-Language. Businesses MAY return content in a different language if unavailable. */
|
|
944
|
+
language?: string;
|
|
945
|
+
/** @description Preferred currency (ISO 4217, e.g., 'EUR', 'USD'). Businesses determine presentment currency from context and authoritative signals; this hint MAY inform selection in multi-currency markets. Also serves as the denomination for price filter values — platforms SHOULD include this field when sending price filters. Response prices include explicit currency confirming the resolution. */
|
|
946
|
+
currency?: string;
|
|
947
|
+
/** @description Buyer claims about eligible benefits such as loyalty membership, payment instrument perks, and similar. Recognized claims MAY inform the Business response (e.g., member-only product availability, adjusted pricing in catalog, provisional discounts at cart or checkout). Businesses MUST ignore unrecognized values without error. Values MUST use reverse-domain naming (e.g., 'com.example.loyalty_gold', 'org.school.student') and MUST be non-identifying. */
|
|
948
|
+
eligibility?: components["schemas"]["reverse_domain_name"][];
|
|
949
|
+
/** @description Buyer-preferred payment handlers in priority order (most preferred first). Each entry names a handler advertised in the Business profile's `ucp.payment_handlers`, optionally narrowed to preferred instrument types. The Business SHOULD use it to preselect or prioritize the handler (and type, when given) and MAY ignore unavailable or ineligible entries; unrecognized values MUST be ignored without error. */
|
|
950
|
+
payment?: {
|
|
951
|
+
/** @description Handler registry key advertised in the Business profile's `ucp.payment_handlers`. */
|
|
952
|
+
handler: components["schemas"]["reverse_domain_name"];
|
|
953
|
+
/** @description Optional preferred instrument types for this handler, in priority order, aligned with the handler's advertised `payment_instrument.type` values (for example `card` or `bank`). Unrecognized values MUST be ignored. */
|
|
954
|
+
types?: string[];
|
|
955
|
+
}[];
|
|
956
|
+
} & {
|
|
957
|
+
[key: string]: unknown;
|
|
958
|
+
}));
|
|
959
|
+
/**
|
|
960
|
+
* Signals
|
|
961
|
+
* @description Environment data provided by the platform to support authorization and abuse prevention. Values MUST NOT be buyer-asserted claims — platforms provide signals based on direct observation or independently verifiable third-party attestations. All signal keys MUST use reverse-domain naming to ensure provenance and prevent collisions when multiple extensions contribute to the shared namespace.
|
|
962
|
+
*/
|
|
963
|
+
signals: {
|
|
964
|
+
/** @description Client's IP address (IPv4 or IPv6). */
|
|
965
|
+
"dev.ucp.buyer_ip"?: string;
|
|
966
|
+
/** @description Client's HTTP User-Agent header or equivalent. */
|
|
967
|
+
"dev.ucp.user_agent"?: string;
|
|
968
|
+
} & {
|
|
969
|
+
[key: string]: unknown;
|
|
970
|
+
};
|
|
971
|
+
/**
|
|
972
|
+
* Attribution
|
|
973
|
+
* @description Platform-emitted referral and conversion-event context — campaign identifiers, click IDs, source/medium markers, etc. The same parameters platforms communicate via URL query parameters in browser-based flows.
|
|
974
|
+
*/
|
|
975
|
+
attribution: {
|
|
976
|
+
[key: string]: string;
|
|
977
|
+
};
|
|
978
|
+
/**
|
|
979
|
+
* Totals
|
|
980
|
+
* @description Pricing breakdown provided by the business. MUST contain exactly one subtotal and one total entry. Detail types (tax, fee, discount, fulfillment) may appear multiple times for itemization. Platforms MUST render all entries in order using display_text and amount.
|
|
981
|
+
*/
|
|
982
|
+
totals: (components["schemas"]["total"] & {
|
|
983
|
+
/** @description Optional itemized breakdown. The parent entry is always rendered; lines are supplementary. Sum of line amounts MUST equal the parent entry amount. */
|
|
984
|
+
lines?: {
|
|
985
|
+
/** @description Human-readable label for this sub-line. */
|
|
986
|
+
display_text: string;
|
|
987
|
+
amount: components["schemas"]["signed_amount"];
|
|
988
|
+
}[];
|
|
989
|
+
} & unknown)[] & (unknown & unknown);
|
|
990
|
+
/** @description Common fields for one outstanding Action instance are id and optional config. The extension declaring the Action type defines type-specific processing data under config. Additional properties are permitted for forward compatibility. */
|
|
991
|
+
instance: {
|
|
992
|
+
/** @description Identifier for this Action instance. */
|
|
993
|
+
id: string;
|
|
994
|
+
/** @description Configuration defined by the extension that declares this Action type. */
|
|
995
|
+
config?: {
|
|
996
|
+
[key: string]: unknown;
|
|
997
|
+
};
|
|
998
|
+
} & {
|
|
999
|
+
[key: string]: unknown;
|
|
1000
|
+
};
|
|
1001
|
+
/**
|
|
1002
|
+
* Actions
|
|
1003
|
+
* @description Outstanding extension-defined Action instances, keyed by reverse-domain Action type, not extension name.
|
|
1004
|
+
*/
|
|
1005
|
+
actions: {
|
|
1006
|
+
$defs: {
|
|
1007
|
+
/** @description Common fields for one outstanding Action instance are id and optional config. The extension declaring the Action type defines type-specific processing data under config. Additional properties are permitted for forward compatibility. */
|
|
1008
|
+
instance: {
|
|
1009
|
+
/** @description Identifier for this Action instance. */
|
|
1010
|
+
id: string;
|
|
1011
|
+
/** @description Configuration defined by the extension that declares this Action type. */
|
|
1012
|
+
config?: {
|
|
1013
|
+
[key: string]: unknown;
|
|
1014
|
+
};
|
|
1015
|
+
} & {
|
|
1016
|
+
[key: string]: unknown;
|
|
1017
|
+
};
|
|
1018
|
+
};
|
|
1019
|
+
} & {
|
|
1020
|
+
[key: string]: components["schemas"]["instance"][];
|
|
1021
|
+
};
|
|
1022
|
+
/**
|
|
1023
|
+
* Error Code
|
|
1024
|
+
* @description Error code identifying the type of error. Standard errors are defined in capability specifications (see examples) and have standardized semantics; freeform codes are permitted.
|
|
1025
|
+
* @example not_found
|
|
1026
|
+
* @example out_of_stock
|
|
1027
|
+
* @example item_unavailable
|
|
1028
|
+
* @example address_undeliverable
|
|
1029
|
+
* @example payment_failed
|
|
1030
|
+
* @example eligibility_invalid
|
|
1031
|
+
* @example identity_required
|
|
1032
|
+
* @example insufficient_scope
|
|
1033
|
+
*/
|
|
1034
|
+
error_code: string;
|
|
1035
|
+
/** Message Error */
|
|
1036
|
+
message_error: {
|
|
1037
|
+
/**
|
|
1038
|
+
* @description Message type discriminator.
|
|
1039
|
+
* @constant
|
|
1040
|
+
*/
|
|
1041
|
+
type: "error";
|
|
1042
|
+
code: components["schemas"]["error_code"];
|
|
1043
|
+
/** @description RFC 9535 JSONPath to the component the message refers to (e.g., $.line_items[0]). */
|
|
1044
|
+
path?: string;
|
|
1045
|
+
/**
|
|
1046
|
+
* @description Content format, default = plain.
|
|
1047
|
+
* @default plain
|
|
1048
|
+
* @enum {string}
|
|
1049
|
+
*/
|
|
1050
|
+
content_type: "plain" | "markdown";
|
|
1051
|
+
/** @description Human-readable message. */
|
|
1052
|
+
content: string;
|
|
1053
|
+
/**
|
|
1054
|
+
* @description Reflects the resource state and recommended action. 'recoverable': platform can resolve the condition in band, for example by modifying inputs or processing a related Action, and submit a new operation when needed. 'requires_buyer_input': merchant requires information their API doesn't support collecting programmatically (checkout incomplete). 'requires_buyer_review': buyer must authorize before order placement due to policy, regulatory, or entitlement rules. 'unrecoverable': no valid resource exists to act on, retry with new resource or inputs. Errors with 'requires_*' severity contribute to 'status: requires_escalation'.
|
|
1055
|
+
* @enum {string}
|
|
1056
|
+
*/
|
|
1057
|
+
severity: "recoverable" | "requires_buyer_input" | "requires_buyer_review" | "unrecoverable";
|
|
1058
|
+
};
|
|
1059
|
+
/**
|
|
1060
|
+
* Warning Code
|
|
1061
|
+
* @description Warning code identifying the type of warning. Standard codes are defined in capability specifications (see examples) and have standardized semantics; freeform codes are permitted.
|
|
1062
|
+
* @example final_sale
|
|
1063
|
+
* @example prop65
|
|
1064
|
+
* @example fulfillment_changed
|
|
1065
|
+
* @example payment_term_changed
|
|
1066
|
+
* @example age_restricted
|
|
1067
|
+
*/
|
|
1068
|
+
warning_code: string;
|
|
1069
|
+
/** Message Warning */
|
|
1070
|
+
message_warning: {
|
|
1071
|
+
/**
|
|
1072
|
+
* @description Message type discriminator.
|
|
1073
|
+
* @constant
|
|
1074
|
+
*/
|
|
1075
|
+
type: "warning";
|
|
1076
|
+
/** @description RFC 9535 JSONPath to the component the message refers to (e.g., $.line_items[0]). */
|
|
1077
|
+
path?: string;
|
|
1078
|
+
code: components["schemas"]["warning_code"];
|
|
1079
|
+
/** @description Human-readable warning message that MUST be displayed. */
|
|
1080
|
+
content: string;
|
|
1081
|
+
/**
|
|
1082
|
+
* @description Content format, default = plain.
|
|
1083
|
+
* @default plain
|
|
1084
|
+
* @enum {string}
|
|
1085
|
+
*/
|
|
1086
|
+
content_type: "plain" | "markdown";
|
|
1087
|
+
/**
|
|
1088
|
+
* @description Rendering contract for this warning. 'notice' (default): platform MUST display, MAY dismiss. 'disclosure': platform MUST display in proximity to the path-referenced component, MUST NOT hide or auto-dismiss. See specification for full contract.
|
|
1089
|
+
* @default notice
|
|
1090
|
+
*/
|
|
1091
|
+
presentation: string;
|
|
1092
|
+
/**
|
|
1093
|
+
* Format: uri
|
|
1094
|
+
* @description URL to a required visual element (e.g., warning symbol, energy class label).
|
|
1095
|
+
*/
|
|
1096
|
+
image_url?: string;
|
|
1097
|
+
/**
|
|
1098
|
+
* Format: uri
|
|
1099
|
+
* @description Reference URL for more information (e.g., regulatory site, registry entry, policy page).
|
|
1100
|
+
*/
|
|
1101
|
+
url?: string;
|
|
1102
|
+
};
|
|
1103
|
+
/**
|
|
1104
|
+
* Info Code
|
|
1105
|
+
* @description Info code identifying the type of informational message. Standard codes are defined in capability specifications (see examples) and have standardized semantics; freeform codes are permitted.
|
|
1106
|
+
* @example identity_optional
|
|
1107
|
+
* @example signal
|
|
1108
|
+
* @example free_shipping
|
|
1109
|
+
* @example not_found
|
|
1110
|
+
*/
|
|
1111
|
+
info_code: string;
|
|
1112
|
+
/** Message Info */
|
|
1113
|
+
message_info: {
|
|
1114
|
+
/**
|
|
1115
|
+
* @description Message type discriminator.
|
|
1116
|
+
* @constant
|
|
1117
|
+
*/
|
|
1118
|
+
type: "info";
|
|
1119
|
+
/** @description RFC 9535 JSONPath to the component the message refers to (e.g., $.line_items[0]). */
|
|
1120
|
+
path?: string;
|
|
1121
|
+
code?: components["schemas"]["info_code"];
|
|
1122
|
+
/**
|
|
1123
|
+
* @description Content format, default = plain.
|
|
1124
|
+
* @default plain
|
|
1125
|
+
* @enum {string}
|
|
1126
|
+
*/
|
|
1127
|
+
content_type: "plain" | "markdown";
|
|
1128
|
+
/** @description Human-readable message. */
|
|
1129
|
+
content: string;
|
|
1130
|
+
};
|
|
1131
|
+
/**
|
|
1132
|
+
* Message
|
|
1133
|
+
* @description Container for error, warning, or info messages.
|
|
1134
|
+
*/
|
|
1135
|
+
message: components["schemas"]["message_error"] | components["schemas"]["message_warning"] | components["schemas"]["message_info"];
|
|
1136
|
+
/** Link */
|
|
1137
|
+
link: {
|
|
1138
|
+
/** @description Type of link. Well-known values: `privacy_policy`, `terms_of_service`, `refund_policy`, `shipping_policy`, `faq`. Consumers SHOULD handle unknown values gracefully by displaying them using the `title` field or omitting the link. */
|
|
1139
|
+
type: string;
|
|
1140
|
+
/**
|
|
1141
|
+
* Format: uri
|
|
1142
|
+
* @description The actual URL pointing to the content to be displayed.
|
|
1143
|
+
*/
|
|
1144
|
+
url: string;
|
|
1145
|
+
/** @description Optional display text for the link. When provided, use this instead of generating from type. */
|
|
1146
|
+
title?: string;
|
|
1147
|
+
};
|
|
1148
|
+
/**
|
|
1149
|
+
* Description
|
|
1150
|
+
* @description Description content in one or more formats. At least one format must be provided.
|
|
1151
|
+
*/
|
|
1152
|
+
description: {
|
|
1153
|
+
/** @description Plain text content. */
|
|
1154
|
+
plain?: string;
|
|
1155
|
+
/** @description HTML-formatted content. Security: Platforms MUST sanitize before rendering—strip scripts, event handlers, and untrusted elements. Treat all rich text as untrusted input. */
|
|
1156
|
+
html?: string;
|
|
1157
|
+
/** @description Markdown-formatted content. */
|
|
1158
|
+
markdown?: string;
|
|
1159
|
+
};
|
|
1160
|
+
/**
|
|
1161
|
+
* Policy
|
|
1162
|
+
* @description A durable business rule about the items in a response — return/refund terms, warranty, and the like — at the time of purchase. Every policy carries a `type` (an open reverse-DNS vocabulary) and a `description` so a platform can present it without understanding its type-specific fields; type-specific fields (gated by `type`) add structured context for platforms that model that type. Policies are reference data; the obligation to display a term to the buyer is carried by a `messages[]` warning whose `code` equals the policy `type` — see the Policies section of the specification.
|
|
1163
|
+
*/
|
|
1164
|
+
policy: {
|
|
1165
|
+
/** @description Policy type discriminator. Open reverse-DNS vocabulary. Well-known values: `dev.ucp.shopping.policy.return` (return terms), `dev.ucp.shopping.policy.warranty` (warranty terms). Businesses MAY define custom types in their own domain (e.g., `com.example.policy.price_match`). Platforms MUST tolerate unknown values. */
|
|
1166
|
+
type: components["schemas"]["reverse_domain_name"];
|
|
1167
|
+
/** @description Human-readable policy summary in one or more formats (plain, markdown, html). Required on every policy so a platform can present it without understanding any type-specific fields. This is not the buyer-facing disclosure — display is compelled by a `messages[]` warning (see the Policies section). */
|
|
1168
|
+
description: components["schemas"]["description"];
|
|
1169
|
+
/** @description RFC 9535 JSONPath expressions identifying the nodes this policy applies to, relative to the embedding response root (e.g., `$.line_items[0]` in cart/checkout, `$.products[2]` in catalog). Each target covers the node it names and everything nested under it, so a target on a product also covers its variants. A singular query (RFC 9535 Section 2.3.5.1; name and index selectors only) names a single node; filters, wildcards, and slices match a set. When omitted, the policy applies to the entire response. When policies of the same `type` contest a node, the narrowest target wins and overrides the rest. See the Policies section for how specificity resolves. */
|
|
1170
|
+
applies_to?: string[];
|
|
1171
|
+
/**
|
|
1172
|
+
* Format: uri
|
|
1173
|
+
* @description Optional link to the full policy document.
|
|
1174
|
+
*/
|
|
1175
|
+
url?: string;
|
|
1176
|
+
} & {
|
|
1177
|
+
[key: string]: unknown;
|
|
1178
|
+
};
|
|
1179
|
+
/** Postal Address */
|
|
1180
|
+
postal_address: {
|
|
1181
|
+
/** @description An address extension such as an apartment number, C/O or alternative name. */
|
|
1182
|
+
extended_address?: string;
|
|
1183
|
+
/** @description The street address. */
|
|
1184
|
+
street_address?: string;
|
|
1185
|
+
/** @description The locality in which the street address is, and which is in the region. For example, Mountain View. */
|
|
1186
|
+
address_locality?: string;
|
|
1187
|
+
/** @description The region in which the locality is, and which is in the country. Required for applicable countries (i.e. state in US, province in CA). For example, California or another appropriate first-level Administrative division. */
|
|
1188
|
+
address_region?: string;
|
|
1189
|
+
/** @description The country. Recommended to be in 2-letter ISO 3166-1 alpha-2 format, for example "US". For backward compatibility, a 3-letter ISO 3166-1 alpha-3 country code such as "SGP" or a full country name such as "Singapore" can also be used. */
|
|
1190
|
+
address_country?: string;
|
|
1191
|
+
/** @description The postal code. For example, 94043. */
|
|
1192
|
+
postal_code?: string;
|
|
1193
|
+
/** @description Optional. First name of the contact associated with the address. */
|
|
1194
|
+
first_name?: string;
|
|
1195
|
+
/** @description Optional. Last name of the contact associated with the address. */
|
|
1196
|
+
last_name?: string;
|
|
1197
|
+
/** @description Optional. Phone number of the contact associated with the address. */
|
|
1198
|
+
phone_number?: string;
|
|
1199
|
+
};
|
|
1200
|
+
/**
|
|
1201
|
+
* Payment Credential
|
|
1202
|
+
* @description The base definition for any payment credential. Handlers define specific credential types.
|
|
1203
|
+
*/
|
|
1204
|
+
payment_credential: {
|
|
1205
|
+
/** @description The credential type discriminator. Specific schemas will constrain this to a constant value. */
|
|
1206
|
+
type: string;
|
|
1207
|
+
} & {
|
|
1208
|
+
[key: string]: unknown;
|
|
1209
|
+
};
|
|
1210
|
+
/**
|
|
1211
|
+
* Payment Instrument
|
|
1212
|
+
* @description The base definition for any payment instrument. It links the instrument to a specific payment handler.
|
|
1213
|
+
*/
|
|
1214
|
+
payment_instrument: {
|
|
1215
|
+
/** @description A unique identifier for this instrument instance. Typically assigned by the platform for instruments it collects. For a business-owned saved instrument returned on an identity-linked response, this identifier is assigned by the business; the platform MUST treat it as an opaque, business-scoped reference, and the business resolves it server-side when the buyer selects it. */
|
|
1216
|
+
id: string;
|
|
1217
|
+
/** @description The unique identifier for the handler instance that produced this instrument. This corresponds to the 'id' field in the Payment Handler definition. */
|
|
1218
|
+
handler_id: string;
|
|
1219
|
+
/** @description The broad category of the instrument (e.g., 'card', 'tokenized_card'). Specific schemas will constrain this to a constant value. */
|
|
1220
|
+
type: string;
|
|
1221
|
+
/** @description The billing address associated with this payment method. */
|
|
1222
|
+
billing_address?: components["schemas"]["postal_address"];
|
|
1223
|
+
credential?: components["schemas"]["payment_credential"];
|
|
1224
|
+
/** @description Display information for this payment instrument. Each payment instrument schema defines its specific display properties, as outlined by the payment handler. */
|
|
1225
|
+
display?: Record<string, never>;
|
|
1226
|
+
$defs: {
|
|
1227
|
+
/**
|
|
1228
|
+
* Selected Payment Instrument
|
|
1229
|
+
* @description A payment instrument with selection state.
|
|
1230
|
+
*/
|
|
1231
|
+
selected_payment_instrument: components["schemas"]["payment_instrument"] & {
|
|
1232
|
+
/** @description Whether this instrument is selected by the user. */
|
|
1233
|
+
selected?: boolean;
|
|
1234
|
+
};
|
|
1235
|
+
};
|
|
1236
|
+
} & {
|
|
1237
|
+
[key: string]: unknown;
|
|
1238
|
+
};
|
|
1239
|
+
/**
|
|
1240
|
+
* Selected Payment Instrument
|
|
1241
|
+
* @description A payment instrument with selection state.
|
|
1242
|
+
*/
|
|
1243
|
+
selected_payment_instrument: components["schemas"]["payment_instrument"] & {
|
|
1244
|
+
/** @description Whether this instrument is selected by the user. */
|
|
1245
|
+
selected?: boolean;
|
|
1246
|
+
};
|
|
1247
|
+
/**
|
|
1248
|
+
* Order Confirmation
|
|
1249
|
+
* @description Order details available at the time of checkout completion.
|
|
1250
|
+
*/
|
|
1251
|
+
order_confirmation: {
|
|
1252
|
+
/** @description Unique order identifier. */
|
|
1253
|
+
id: string;
|
|
1254
|
+
/** @description Human-readable label for identifying the order. MUST only be provided by the business. */
|
|
1255
|
+
label?: string;
|
|
1256
|
+
/**
|
|
1257
|
+
* Format: uri
|
|
1258
|
+
* @description Permalink to access the order on merchant site.
|
|
1259
|
+
*/
|
|
1260
|
+
permalink_url: string;
|
|
1261
|
+
};
|
|
1262
|
+
/** @description UCP metadata with status 'error'. Use for response branches that carry error information. */
|
|
1263
|
+
error: components["schemas"]["ucp_$defs-base"] & {
|
|
1264
|
+
/** @constant */
|
|
1265
|
+
status: "error";
|
|
1266
|
+
};
|
|
1267
|
+
/**
|
|
1268
|
+
* Error Response
|
|
1269
|
+
* @description Generic error response when business logic prevents resource creation or failed to retrieve resource. Used when no valid resource can be established.
|
|
1270
|
+
*/
|
|
1271
|
+
error_response: {
|
|
1272
|
+
/** @description UCP protocol metadata. Status MUST be 'error' for error response. */
|
|
1273
|
+
ucp: components["schemas"]["error"];
|
|
1274
|
+
/** @description Array of messages describing why the operation failed. */
|
|
1275
|
+
messages: components["schemas"]["message"][];
|
|
1276
|
+
/**
|
|
1277
|
+
* Format: uri
|
|
1278
|
+
* @description URL for buyer handoff or session recovery.
|
|
1279
|
+
*/
|
|
1280
|
+
continue_url?: string;
|
|
1281
|
+
};
|
|
1282
|
+
/**
|
|
1283
|
+
* UCP Cart Response Schema
|
|
1284
|
+
* @description UCP metadata for cart responses. No payment handlers needed pre-checkout.
|
|
1285
|
+
*/
|
|
1286
|
+
response_cart_schema: components["schemas"]["ucp_$defs-base"] & {
|
|
1287
|
+
capabilities?: {
|
|
1288
|
+
[key: string]: unknown;
|
|
1289
|
+
};
|
|
1290
|
+
};
|
|
1291
|
+
/**
|
|
1292
|
+
* Price Filter
|
|
1293
|
+
* @description Price range filter denominated in context.currency. When context.currency matches the presentment currency, businesses apply the filter directly. When it differs, businesses SHOULD convert filter values to the presentment currency before applying; if conversion is not supported, businesses MAY ignore the filter and SHOULD indicate this via a message. When context.currency is absent, filter denomination is ambiguous and businesses MAY ignore it.
|
|
1294
|
+
*/
|
|
1295
|
+
price_filter: {
|
|
1296
|
+
/** @description Minimum price in ISO 4217 minor units. */
|
|
1297
|
+
min?: components["schemas"]["amount"];
|
|
1298
|
+
/** @description Maximum price in ISO 4217 minor units. */
|
|
1299
|
+
max?: components["schemas"]["amount"];
|
|
1300
|
+
};
|
|
1301
|
+
/**
|
|
1302
|
+
* Search Filters
|
|
1303
|
+
* @description Filter criteria to narrow search results. All specified filters combine with AND logic.
|
|
1304
|
+
*/
|
|
1305
|
+
search_filters: {
|
|
1306
|
+
/** @description Filter by product categories (OR logic — matches products in any listed categories). Values match against the value field in product category entries. Valid values can be discovered from the categories field in search results, merchant documentation, or standard taxonomies that businesses may align with. */
|
|
1307
|
+
categories?: string[];
|
|
1308
|
+
price?: components["schemas"]["price_filter"];
|
|
1309
|
+
} & {
|
|
1310
|
+
[key: string]: unknown;
|
|
1311
|
+
};
|
|
1312
|
+
/** @description Pagination parameters for requests. */
|
|
1313
|
+
request: {
|
|
1314
|
+
/** @description Opaque cursor from previous response. */
|
|
1315
|
+
cursor?: string;
|
|
1316
|
+
/** @description Requested page size, not a guaranteed result count. When omitted, the Business MUST apply a default page size. A default of 10 is RECOMMENDED, but the Business MAY choose another value. The Business MAY return fewer results than the requested or default page size, including when enforcing its maximum page size. A Platform MUST NOT assume that the response count equals either value. */
|
|
1317
|
+
limit?: number;
|
|
1318
|
+
};
|
|
1319
|
+
search_request: {
|
|
1320
|
+
/** @description Free-text search query. */
|
|
1321
|
+
query?: string;
|
|
1322
|
+
context?: components["schemas"]["context"];
|
|
1323
|
+
signals?: components["schemas"]["signals"];
|
|
1324
|
+
attribution?: components["schemas"]["attribution"];
|
|
1325
|
+
filters?: components["schemas"]["search_filters"];
|
|
1326
|
+
pagination?: components["schemas"]["request"];
|
|
1327
|
+
};
|
|
1328
|
+
/**
|
|
1329
|
+
* UCP Catalog Response Schema
|
|
1330
|
+
* @description UCP metadata for catalog responses.
|
|
1331
|
+
*/
|
|
1332
|
+
response_catalog_schema: components["schemas"]["ucp_$defs-base"] & {
|
|
1333
|
+
capabilities?: {
|
|
1334
|
+
[key: string]: unknown;
|
|
1335
|
+
};
|
|
1336
|
+
};
|
|
1337
|
+
/**
|
|
1338
|
+
* Category
|
|
1339
|
+
* @description A product category with optional taxonomy identifier.
|
|
1340
|
+
*/
|
|
1341
|
+
category: {
|
|
1342
|
+
/** @description Category value or path (e.g., 'Apparel > Shirts', '1604'). */
|
|
1343
|
+
value: string;
|
|
1344
|
+
/** @description Source taxonomy. Well-known values: `google_product_category`, `shopify`, `merchant`. */
|
|
1345
|
+
taxonomy?: string;
|
|
1346
|
+
};
|
|
1347
|
+
/**
|
|
1348
|
+
* Price
|
|
1349
|
+
* @description Price with explicit currency.
|
|
1350
|
+
*/
|
|
1351
|
+
price: {
|
|
1352
|
+
/** @description Amount in ISO 4217 minor units. Use 0 for free items. */
|
|
1353
|
+
amount: components["schemas"]["amount"];
|
|
1354
|
+
/** @description ISO 4217 currency code (e.g., 'USD', 'EUR', 'GBP'). */
|
|
1355
|
+
currency: string;
|
|
1356
|
+
};
|
|
1357
|
+
/**
|
|
1358
|
+
* Price Range
|
|
1359
|
+
* @description A price range representing minimum and maximum values (e.g., a common example in retail shopping is when prices vary across product variants).
|
|
1360
|
+
*/
|
|
1361
|
+
price_range: {
|
|
1362
|
+
/** @description Minimum price in the range. */
|
|
1363
|
+
min: components["schemas"]["price"];
|
|
1364
|
+
/** @description Maximum price in the range. */
|
|
1365
|
+
max: components["schemas"]["price"];
|
|
1366
|
+
};
|
|
1367
|
+
/**
|
|
1368
|
+
* Media
|
|
1369
|
+
* @description Media item (image, video, etc.).
|
|
1370
|
+
*/
|
|
1371
|
+
media: {
|
|
1372
|
+
/** @description Media type. Well-known values: `image`, `video`, `model_3d`. */
|
|
1373
|
+
type: string;
|
|
1374
|
+
/**
|
|
1375
|
+
* Format: uri
|
|
1376
|
+
* @description URL to the media resource.
|
|
1377
|
+
*/
|
|
1378
|
+
url: string;
|
|
1379
|
+
/** @description Accessibility text describing the media. */
|
|
1380
|
+
alt_text?: string;
|
|
1381
|
+
/** @description Width in pixels (for images/video). */
|
|
1382
|
+
width?: number;
|
|
1383
|
+
/** @description Height in pixels (for images/video). */
|
|
1384
|
+
height?: number;
|
|
1385
|
+
};
|
|
1386
|
+
/**
|
|
1387
|
+
* Option Value
|
|
1388
|
+
* @description A selectable value for a product option.
|
|
1389
|
+
*/
|
|
1390
|
+
option_value: {
|
|
1391
|
+
/** @description Optional server-assigned identifier for this option value. When present in a selected_option, the server SHOULD use it for matching instead of label. */
|
|
1392
|
+
id?: string;
|
|
1393
|
+
/** @description Display text for this option value (e.g., 'Small', 'Blue'). */
|
|
1394
|
+
label: string;
|
|
1395
|
+
};
|
|
1396
|
+
/**
|
|
1397
|
+
* Product Option
|
|
1398
|
+
* @description A product option such as size, color, or material.
|
|
1399
|
+
*/
|
|
1400
|
+
product_option: {
|
|
1401
|
+
/** @description Option name (e.g., 'Size', 'Color'). */
|
|
1402
|
+
name: string;
|
|
1403
|
+
/** @description Available values for this option. */
|
|
1404
|
+
values: components["schemas"]["option_value"][];
|
|
1405
|
+
};
|
|
1406
|
+
/**
|
|
1407
|
+
* Availability
|
|
1408
|
+
* @description Availability of an item: whether it can be obtained, and a qualifying status.
|
|
1409
|
+
*/
|
|
1410
|
+
availability: {
|
|
1411
|
+
/** @description Whether this can be obtained. See status for fulfillment details. */
|
|
1412
|
+
available?: boolean;
|
|
1413
|
+
/** @description Qualifies available with fulfillment state. Well-known values: `in_stock`, `backorder`, `preorder`, `out_of_stock`, `discontinued`. */
|
|
1414
|
+
status?: string;
|
|
1415
|
+
};
|
|
1416
|
+
/**
|
|
1417
|
+
* Selected Option
|
|
1418
|
+
* @description A specific option selection on a variant (e.g., Size: Large).
|
|
1419
|
+
*/
|
|
1420
|
+
selected_option: {
|
|
1421
|
+
/** @description Option name (e.g., 'Size'). */
|
|
1422
|
+
name: string;
|
|
1423
|
+
/** @description Optional option value identifier from option_value.id. When present, the server SHOULD use it for matching; name and label remain required for display. */
|
|
1424
|
+
id?: string;
|
|
1425
|
+
/** @description Selected option label (e.g., 'Large'). */
|
|
1426
|
+
label: string;
|
|
1427
|
+
};
|
|
1428
|
+
/**
|
|
1429
|
+
* Rating
|
|
1430
|
+
* @description Product rating aggregate.
|
|
1431
|
+
*/
|
|
1432
|
+
rating: {
|
|
1433
|
+
/** @description Average rating value. */
|
|
1434
|
+
value: number;
|
|
1435
|
+
/**
|
|
1436
|
+
* @description Minimum value on the rating scale (e.g., 1 for 1-5 stars).
|
|
1437
|
+
* @default 1
|
|
1438
|
+
*/
|
|
1439
|
+
scale_min: number;
|
|
1440
|
+
/** @description Maximum value on the rating scale (e.g., 5 for 5-star). */
|
|
1441
|
+
scale_max: number;
|
|
1442
|
+
/** @description Number of reviews contributing to the rating. */
|
|
1443
|
+
count?: number;
|
|
1444
|
+
};
|
|
1445
|
+
/**
|
|
1446
|
+
* Variant
|
|
1447
|
+
* @description A purchasable variant of a product with specific option selections.
|
|
1448
|
+
*/
|
|
1449
|
+
variant: {
|
|
1450
|
+
/** @description Global ID (GID) uniquely identifying this variant. Used as item.id in checkout. */
|
|
1451
|
+
id: string;
|
|
1452
|
+
/** @description Business-assigned identifier for inventory and fulfillment. */
|
|
1453
|
+
sku?: string;
|
|
1454
|
+
/** @description Industry-standard product identifiers for cross-reference and correlation. */
|
|
1455
|
+
barcodes?: {
|
|
1456
|
+
/** @description Barcode standard. Well-known values: UPC, EAN, ISBN, GTIN, JAN. */
|
|
1457
|
+
type: string;
|
|
1458
|
+
/** @description Barcode value. */
|
|
1459
|
+
value: string;
|
|
1460
|
+
}[];
|
|
1461
|
+
/** @description URL-safe variant handle/slug. */
|
|
1462
|
+
handle?: string;
|
|
1463
|
+
/** @description Variant display title (e.g., 'Blue / Large'). */
|
|
1464
|
+
title: string;
|
|
1465
|
+
/** @description Variant description in one or more formats. */
|
|
1466
|
+
description: components["schemas"]["description"];
|
|
1467
|
+
/**
|
|
1468
|
+
* Format: uri
|
|
1469
|
+
* @description Canonical variant page URL.
|
|
1470
|
+
*/
|
|
1471
|
+
url?: string;
|
|
1472
|
+
/** @description Variant categories with optional taxonomy identifiers. */
|
|
1473
|
+
categories?: components["schemas"]["category"][];
|
|
1474
|
+
/** @description Current selling price. Price is the amount per one whole `quantity_unit.unit` (for example, per lb or per hour); when `quantity_unit` is absent, it is per `each`. Line total is `price × quantity × 10^-scale`, computed and rounded once by the Business; `totals` remain authoritative. */
|
|
1475
|
+
price: components["schemas"]["price"];
|
|
1476
|
+
/** @description Sale basis this variant's `quantity` is denominated in. The default sale basis is `each`, whose machine identity is (`C62`, 0); `C62` is the UN/CEFACT Rec20 code for one/each. An absent catalog descriptor encodes that default. An `increment` advertises the ordering granularity in steps (for example, `scale` 2 with `increment` 25 sells in 0.25-unit multiples). */
|
|
1477
|
+
quantity_unit?: components["schemas"]["quantity_unit"];
|
|
1478
|
+
/** @description List price before discounts (for strikethrough display). */
|
|
1479
|
+
list_price?: components["schemas"]["price"];
|
|
1480
|
+
/** @description Price per standard unit of measurement, for shelf-style comparison display. MAY be omitted when unit pricing does not apply. */
|
|
1481
|
+
unit_price?: components["schemas"]["unit_price"];
|
|
1482
|
+
/** @description Variant availability for purchase. */
|
|
1483
|
+
availability?: components["schemas"]["availability"];
|
|
1484
|
+
/** @description Option values that define this variant (e.g., Color: Blue, Size: Large). */
|
|
1485
|
+
options?: components["schemas"]["selected_option"][];
|
|
1486
|
+
/** @description Variant media (images, videos, 3D models). First item is the featured media for listings. */
|
|
1487
|
+
media?: components["schemas"]["media"][];
|
|
1488
|
+
/** @description Variant rating. */
|
|
1489
|
+
rating?: components["schemas"]["rating"];
|
|
1490
|
+
/** @description Variant tags for categorization and search. */
|
|
1491
|
+
tags?: string[];
|
|
1492
|
+
/** @description Business-defined custom data extending the standard variant model. */
|
|
1493
|
+
metadata?: Record<string, never>;
|
|
1494
|
+
/** @description Optional seller context for this variant. */
|
|
1495
|
+
seller?: {
|
|
1496
|
+
/** @description Seller display name. */
|
|
1497
|
+
name?: string;
|
|
1498
|
+
/** @description Seller policy and information links. */
|
|
1499
|
+
links?: components["schemas"]["link"][];
|
|
1500
|
+
};
|
|
1501
|
+
};
|
|
1502
|
+
/**
|
|
1503
|
+
* Product
|
|
1504
|
+
* @description A product in the catalog with variants and options.
|
|
1505
|
+
*/
|
|
1506
|
+
product: {
|
|
1507
|
+
/** @description Global ID (GID) uniquely identifying this product. */
|
|
1508
|
+
id: string;
|
|
1509
|
+
/** @description URL-safe slug for SEO-friendly URLs (e.g., 'blue-runner-pro'). Use id for stable API references. */
|
|
1510
|
+
handle?: string;
|
|
1511
|
+
/** @description Product title. */
|
|
1512
|
+
title: string;
|
|
1513
|
+
/** @description Product description in one or more formats. */
|
|
1514
|
+
description: components["schemas"]["description"];
|
|
1515
|
+
/**
|
|
1516
|
+
* Format: uri
|
|
1517
|
+
* @description Canonical product page URL.
|
|
1518
|
+
*/
|
|
1519
|
+
url?: string;
|
|
1520
|
+
/** @description Product categories with optional taxonomy identifiers. */
|
|
1521
|
+
categories?: components["schemas"]["category"][];
|
|
1522
|
+
/** @description Price range across all variants. */
|
|
1523
|
+
price_range: components["schemas"]["price_range"];
|
|
1524
|
+
/** @description List price range before discounts (for strikethrough display). */
|
|
1525
|
+
list_price_range?: components["schemas"]["price_range"];
|
|
1526
|
+
/** @description Product media (images, videos, 3D models). First item is the featured media for listings. */
|
|
1527
|
+
media?: components["schemas"]["media"][];
|
|
1528
|
+
/** @description Product options (Size, Color, etc.). */
|
|
1529
|
+
options?: components["schemas"]["product_option"][];
|
|
1530
|
+
/** @description Purchasable variants of this product. First item is the featured variant for listings. */
|
|
1531
|
+
variants: components["schemas"]["variant"][];
|
|
1532
|
+
/** @description Aggregate product rating. */
|
|
1533
|
+
rating?: components["schemas"]["rating"];
|
|
1534
|
+
/** @description Product tags for categorization and search. */
|
|
1535
|
+
tags?: string[];
|
|
1536
|
+
/** @description Business-defined custom data extending the standard product model. */
|
|
1537
|
+
metadata?: Record<string, never>;
|
|
1538
|
+
};
|
|
1539
|
+
/** @description Pagination information in responses. */
|
|
1540
|
+
response: {
|
|
1541
|
+
/** @description Cursor to fetch the next page of results. MUST be present when has_next_page is true. */
|
|
1542
|
+
cursor?: string;
|
|
1543
|
+
/** @description Whether more results are available. */
|
|
1544
|
+
has_next_page: boolean;
|
|
1545
|
+
/** @description Total number of matching items, if available. */
|
|
1546
|
+
total_count?: number;
|
|
1547
|
+
};
|
|
1548
|
+
search_response: {
|
|
1549
|
+
ucp: components["schemas"]["response_catalog_schema"];
|
|
1550
|
+
/** @description Products matching the search criteria. */
|
|
1551
|
+
products: components["schemas"]["product"][];
|
|
1552
|
+
pagination?: components["schemas"]["response"];
|
|
1553
|
+
/** @description Outstanding extension-defined Actions for this catalog search response. */
|
|
1554
|
+
actions?: components["schemas"]["actions"];
|
|
1555
|
+
/** @description Errors, warnings, or informational messages about the search results. */
|
|
1556
|
+
messages?: components["schemas"]["message"][];
|
|
1557
|
+
/** @description Policies (e.g., return/refund terms) that apply to the products in these search results. `applies_to` targets are relative to the response root; when absent or empty, refer to the URLs in `links[]`. */
|
|
1558
|
+
policies?: components["schemas"]["policy"][];
|
|
1559
|
+
};
|
|
1560
|
+
/** @description Request body for catalog lookup. */
|
|
1561
|
+
lookup_request: {
|
|
1562
|
+
/** @description Identifiers to lookup. Implementations MUST support product ID and variant ID; MAY support secondary identifiers (SKU, handle, etc.). */
|
|
1563
|
+
ids: string[];
|
|
1564
|
+
/** @description Filter criteria to narrow returned products and variants. All specified filters combine with AND logic. */
|
|
1565
|
+
filters?: components["schemas"]["search_filters"];
|
|
1566
|
+
context?: components["schemas"]["context"];
|
|
1567
|
+
signals?: components["schemas"]["signals"];
|
|
1568
|
+
attribution?: components["schemas"]["attribution"];
|
|
1569
|
+
};
|
|
1570
|
+
/**
|
|
1571
|
+
* Input Correlation
|
|
1572
|
+
* @description Maps a request identifier to the variant it resolved to, with match semantics.
|
|
1573
|
+
*/
|
|
1574
|
+
input_correlation: {
|
|
1575
|
+
/** @description The identifier from the lookup request that resolved to this variant. */
|
|
1576
|
+
id: string;
|
|
1577
|
+
/**
|
|
1578
|
+
* @description How the request identifier resolved to this variant. Well-known values: `exact` (input directly identifies this variant, e.g., variant ID, SKU), `featured` (server selected this variant as representative, e.g., product ID resolved to best match). Businesses MAY implement and provide additional resolution strategies.
|
|
1579
|
+
* @example exact
|
|
1580
|
+
* @example featured
|
|
1581
|
+
*/
|
|
1582
|
+
match?: string;
|
|
1583
|
+
};
|
|
1584
|
+
/** @description Variant with required correlation metadata for lookup responses. */
|
|
1585
|
+
lookup_variant: components["schemas"]["variant"] & {
|
|
1586
|
+
/** @description Which request identifiers resolved to this variant, and how. Each entry maps a request ID to its match type. */
|
|
1587
|
+
inputs: components["schemas"]["input_correlation"][];
|
|
1588
|
+
};
|
|
1589
|
+
lookup_response: {
|
|
1590
|
+
ucp: components["schemas"]["response_catalog_schema"];
|
|
1591
|
+
/** @description Products matching the requested identifiers. May contain fewer items if some identifiers not found, or more if identifiers match multiple products. */
|
|
1592
|
+
products: (components["schemas"]["product"] & {
|
|
1593
|
+
variants?: unknown;
|
|
1594
|
+
})[];
|
|
1595
|
+
/** @description Outstanding extension-defined Actions for this catalog lookup response. */
|
|
1596
|
+
actions?: components["schemas"]["actions"];
|
|
1597
|
+
/** @description Errors, warnings, or informational messages about the requested items. */
|
|
1598
|
+
messages?: components["schemas"]["message"][];
|
|
1599
|
+
/** @description Policies (e.g., return/refund terms) that apply to the products in this response. `applies_to` targets are relative to the response root; when absent or empty, refer to the URLs in `links[]`. */
|
|
1600
|
+
policies?: components["schemas"]["policy"][];
|
|
1601
|
+
};
|
|
1602
|
+
/**
|
|
1603
|
+
* UCP Order Response Schema
|
|
1604
|
+
* @description UCP metadata for order responses. No payment handlers needed post-purchase.
|
|
1605
|
+
*/
|
|
1606
|
+
response_order_schema: components["schemas"]["ucp_$defs-base"] & {
|
|
1607
|
+
capabilities?: {
|
|
1608
|
+
[key: string]: unknown;
|
|
1609
|
+
};
|
|
1610
|
+
};
|
|
1611
|
+
/** Order Line Item */
|
|
1612
|
+
order_line_item: {
|
|
1613
|
+
/** @description Line item identifier. */
|
|
1614
|
+
id: string;
|
|
1615
|
+
/** @description Purchased item data, including identity, price, and sale basis. */
|
|
1616
|
+
item: components["schemas"]["item"];
|
|
1617
|
+
/** @description Tracks the line item's original, current active, and fulfilled quantities. All three values use the same inherited `item.quantity_unit`. When `item.quantity_unit` is absent on an authoritative order response, each step is one whole item (`each`) under the shared default. */
|
|
1618
|
+
quantity: {
|
|
1619
|
+
/** @description Quantity from the original checkout, expressed as an integer step count. */
|
|
1620
|
+
original?: number;
|
|
1621
|
+
/** @description Current active quantity after returns, cancellations, or other order changes, expressed as an integer step count. */
|
|
1622
|
+
total: number;
|
|
1623
|
+
/** @description Quantity fulfilled so far, expressed as an integer step count. */
|
|
1624
|
+
fulfilled: number;
|
|
1625
|
+
};
|
|
1626
|
+
/** @description Line item totals breakdown. */
|
|
1627
|
+
totals: components["schemas"]["total"][];
|
|
1628
|
+
/**
|
|
1629
|
+
* @description Derived status: removed if quantity.total == 0, fulfilled if quantity.total > 0 and quantity.fulfilled == quantity.total, partial if quantity.total > 0 and quantity.fulfilled > 0, otherwise processing.
|
|
1630
|
+
* @enum {string}
|
|
1631
|
+
*/
|
|
1632
|
+
status: "processing" | "partial" | "fulfilled" | "removed";
|
|
1633
|
+
/** @description Parent line item identifier for any nested structures. */
|
|
1634
|
+
parent_id?: string;
|
|
1635
|
+
};
|
|
1636
|
+
/**
|
|
1637
|
+
* Expectation
|
|
1638
|
+
* @description Buyer-facing fulfillment expectation representing logical groupings of items (e.g., 'package'). Can be split, merged, or adjusted post-order to set buyer expectations for when/how items arrive.
|
|
1639
|
+
*/
|
|
1640
|
+
expectation: {
|
|
1641
|
+
/** @description Expectation identifier. */
|
|
1642
|
+
id: string;
|
|
1643
|
+
/** @description Which line items and quantities are in this expectation. */
|
|
1644
|
+
line_items: {
|
|
1645
|
+
/** @description Line item ID reference. */
|
|
1646
|
+
id: string;
|
|
1647
|
+
/** @description Integer count of steps of the referenced line item's `quantity_unit` (`10^-scale` × `unit`); when `quantity_unit` is absent, it counts whole items (`each`). */
|
|
1648
|
+
quantity: number;
|
|
1649
|
+
}[];
|
|
1650
|
+
/** @description Delivery method type. Well-known values: `shipping`, `pickup`, `digital`; additional values MAY be used. */
|
|
1651
|
+
method_type: string;
|
|
1652
|
+
/** @description Delivery destination address. */
|
|
1653
|
+
destination: components["schemas"]["postal_address"];
|
|
1654
|
+
/** @description Human-readable delivery description (e.g., 'Arrives in 5-8 business days'). */
|
|
1655
|
+
description?: string;
|
|
1656
|
+
/** @description When this expectation can be fulfilled: 'now' or ISO 8601 timestamp for future date (backorder, pre-order). */
|
|
1657
|
+
fulfillable_on?: string;
|
|
1658
|
+
};
|
|
1659
|
+
/**
|
|
1660
|
+
* Fulfillment Event
|
|
1661
|
+
* @description Append-only fulfillment event representing an actual shipment. References line items by ID.
|
|
1662
|
+
*/
|
|
1663
|
+
fulfillment_event: {
|
|
1664
|
+
/** @description Fulfillment event identifier. */
|
|
1665
|
+
id: string;
|
|
1666
|
+
/**
|
|
1667
|
+
* Format: date-time
|
|
1668
|
+
* @description RFC 3339 timestamp when this fulfillment event occurred.
|
|
1669
|
+
*/
|
|
1670
|
+
occurred_at: string;
|
|
1671
|
+
/** @description Fulfillment event type. Common values include: processing (preparing to ship), shipped (handed to carrier), in_transit (in delivery network), delivered (received by buyer), failed_attempt (delivery attempt failed), canceled (fulfillment canceled), undeliverable (cannot be delivered), returned_to_sender (returned to merchant). */
|
|
1672
|
+
type: string;
|
|
1673
|
+
/** @description Which line items and quantities are fulfilled in this event. */
|
|
1674
|
+
line_items: {
|
|
1675
|
+
/** @description Line item ID reference. */
|
|
1676
|
+
id: string;
|
|
1677
|
+
/** @description Integer count of steps of the referenced line item's `quantity_unit` (`10^-scale` × `unit`); when `quantity_unit` is absent, it counts whole items (`each`). */
|
|
1678
|
+
quantity: number;
|
|
1679
|
+
}[];
|
|
1680
|
+
/** @description Carrier tracking number (required if type != processing). */
|
|
1681
|
+
tracking_number?: string;
|
|
1682
|
+
/**
|
|
1683
|
+
* Format: uri
|
|
1684
|
+
* @description URL to track this shipment (required if type != processing).
|
|
1685
|
+
*/
|
|
1686
|
+
tracking_url?: string;
|
|
1687
|
+
/** @description Carrier name (e.g., 'FedEx', 'USPS'). */
|
|
1688
|
+
carrier?: string;
|
|
1689
|
+
/** @description Human-readable description of the shipment status or delivery information (e.g., 'Delivered to front door', 'Out for delivery'). */
|
|
1690
|
+
description?: string;
|
|
1691
|
+
};
|
|
1692
|
+
/**
|
|
1693
|
+
* Adjustment
|
|
1694
|
+
* @description Post-order event that exists independently of fulfillment. Typically represents money movements but can be any post-order change. Polymorphic type that can optionally reference line items.
|
|
1695
|
+
*/
|
|
1696
|
+
adjustment: {
|
|
1697
|
+
/** @description Adjustment event identifier. */
|
|
1698
|
+
id: string;
|
|
1699
|
+
/** @description Type of adjustment (open string). Typically money-related like: refund, return, credit, price_adjustment, dispute, cancellation. Can be any value that makes sense for the merchant's business. */
|
|
1700
|
+
type: string;
|
|
1701
|
+
/**
|
|
1702
|
+
* Format: date-time
|
|
1703
|
+
* @description RFC 3339 timestamp when this adjustment occurred.
|
|
1704
|
+
*/
|
|
1705
|
+
occurred_at: string;
|
|
1706
|
+
/**
|
|
1707
|
+
* @description Adjustment status.
|
|
1708
|
+
* @enum {string}
|
|
1709
|
+
*/
|
|
1710
|
+
status: "pending" | "completed" | "failed";
|
|
1711
|
+
/** @description Which line items and quantities are affected (optional). */
|
|
1712
|
+
line_items?: {
|
|
1713
|
+
/** @description Line item ID reference. */
|
|
1714
|
+
id: string;
|
|
1715
|
+
/** @description Signed integer count of steps of the referenced line item's `quantity_unit` (`10^-scale` × `unit`); when `quantity_unit` is absent, it counts whole items (`each`). Negative values represent reductions (e.g. returns); positive values represent additions (e.g. exchanges). */
|
|
1716
|
+
quantity: number;
|
|
1717
|
+
/** @description The settled measurement this adjustment reconciles (for example, actual picked weight), present when the line's price settles by measurement. Its unit identity MUST match the line's pricing basis (`item.unit_price` measure/reference unit); no unit conversion. A pure price settlement uses `quantity: 0` together with `measure` and a totals delta. */
|
|
1718
|
+
measure?: components["schemas"]["measure"];
|
|
1719
|
+
}[];
|
|
1720
|
+
/** @description Adjustment totals breakdown. Signed values - negative for money returned to buyer (refunds, credits), positive for additional charges (exchanges). */
|
|
1721
|
+
totals?: components["schemas"]["total"][];
|
|
1722
|
+
/** @description Human-readable reason or description (e.g., 'Defective item', 'Customer requested'). */
|
|
1723
|
+
description?: string;
|
|
1724
|
+
};
|
|
1725
|
+
/** @description Request body for single-product retrieval. Supports interactive variant narrowing via selected and preferences. */
|
|
1726
|
+
get_product_request: {
|
|
1727
|
+
/** @description Product or variant identifier. Implementations MUST support product ID and variant ID. */
|
|
1728
|
+
id: string;
|
|
1729
|
+
/** @description Partial or full option selections for interactive variant narrowing. When provided, response option values include availability signals (available, exists) relative to these selections. */
|
|
1730
|
+
selected?: components["schemas"]["selected_option"][];
|
|
1731
|
+
/** @description Option names in relaxation priority order. When no exact variant matches all selections, the server drops options from the end of this list first. E.g., ['Color', 'Size'] keeps Color and relaxes Size. */
|
|
1732
|
+
preferences?: string[];
|
|
1733
|
+
/** @description Filter criteria to narrow returned variants. All specified filters combine with AND logic. */
|
|
1734
|
+
filters?: components["schemas"]["search_filters"];
|
|
1735
|
+
context?: components["schemas"]["context"];
|
|
1736
|
+
signals?: components["schemas"]["signals"];
|
|
1737
|
+
attribution?: components["schemas"]["attribution"];
|
|
1738
|
+
};
|
|
1739
|
+
/**
|
|
1740
|
+
* Detail Option Value
|
|
1741
|
+
* @description An option value with availability signals relative to the current selections. Used in get_product responses where selected context exists.
|
|
1742
|
+
*/
|
|
1743
|
+
detail_option_value: {
|
|
1744
|
+
/** @description Whether a variant matching this value and the current option selections is purchasable. */
|
|
1745
|
+
available?: boolean;
|
|
1746
|
+
/** @description Whether a variant matching this value and the current option selections exists in the catalog. */
|
|
1747
|
+
exists?: boolean;
|
|
1748
|
+
} & components["schemas"]["option_value"];
|
|
1749
|
+
/** @description A product in a get_product response, extended with effective selections and availability signals on option values. */
|
|
1750
|
+
detail_product: {
|
|
1751
|
+
/** @description Effective option selections that anchor the featured variant and availability signals. Required when the product has configurable options; may be empty or omitted for products with no option axes. */
|
|
1752
|
+
selected?: components["schemas"]["selected_option"][];
|
|
1753
|
+
/** @description Product options with availability signals relative to the effective selections. */
|
|
1754
|
+
options?: {
|
|
1755
|
+
name: string;
|
|
1756
|
+
values: components["schemas"]["detail_option_value"][];
|
|
1757
|
+
}[];
|
|
1758
|
+
} & components["schemas"]["product"];
|
|
1759
|
+
get_product_response: {
|
|
1760
|
+
ucp: components["schemas"]["response_catalog_schema"];
|
|
1761
|
+
/** @description The requested product with full detail. Singular — this is a single-resource operation. */
|
|
1762
|
+
product: components["schemas"]["detail_product"];
|
|
1763
|
+
/** @description Outstanding extension-defined Actions for this product response. */
|
|
1764
|
+
actions?: components["schemas"]["actions"];
|
|
1765
|
+
/** @description Warnings or informational messages about the product (e.g., price recently changed, limited availability). */
|
|
1766
|
+
messages?: components["schemas"]["message"][];
|
|
1767
|
+
/** @description Policies (e.g., return/refund terms) that apply to this product. `applies_to` targets are relative to the response root; when absent or empty, refer to the URLs in `links[]`. */
|
|
1768
|
+
policies?: components["schemas"]["policy"][];
|
|
1769
|
+
};
|
|
1770
|
+
/** @description Version range requirement with minimum and optional maximum. */
|
|
1771
|
+
version_constraint: {
|
|
1772
|
+
/** @description Minimum required version (inclusive). */
|
|
1773
|
+
min: components["schemas"]["version"];
|
|
1774
|
+
/** @description Maximum compatible version (inclusive). When absent, no upper bound. */
|
|
1775
|
+
max?: components["schemas"]["version"];
|
|
1776
|
+
} & {
|
|
1777
|
+
[key: string]: unknown;
|
|
1778
|
+
};
|
|
1779
|
+
/**
|
|
1780
|
+
* Request Constraints
|
|
1781
|
+
* @description Binds the shared Constraint Expression grammar to data in the next UCP request to the same resource.
|
|
1782
|
+
*/
|
|
1783
|
+
request_constraints: {
|
|
1784
|
+
/** @description A complete RFC 9535 JSONPath query evaluated against the next logical UCP request to the same resource. */
|
|
1785
|
+
path?: string;
|
|
1786
|
+
/** @description Property names required by the constrained object. Must be non-empty: an empty array applies no constraint. */
|
|
1787
|
+
required?: string[];
|
|
1788
|
+
/** @description Constraints keyed by property name. Must be non-empty: an empty object applies no constraint. */
|
|
1789
|
+
properties?: {
|
|
1790
|
+
[key: string]: components["schemas"]["constraint_expression"] | components["schemas"]["value_constraint"];
|
|
1791
|
+
};
|
|
1792
|
+
/** @description Alternative Object Constraints. The constrained object must satisfy at least one. A branch must be non-empty: an empty branch is satisfied by every object and neutralizes the alternation. */
|
|
1793
|
+
anyOf?: components["schemas"]["constraint_expression"][];
|
|
1794
|
+
};
|
|
1795
|
+
/**
|
|
1796
|
+
* Service (Platform Schema)
|
|
1797
|
+
* @description Full service declaration for platform-level discovery. All transports require `version`, `spec`, and `transport`. REST, MCP, and embedded additionally require `schema`.
|
|
1798
|
+
*/
|
|
1799
|
+
platform_schema: components["schemas"]["base"] & unknown & ({
|
|
1800
|
+
/** @constant */
|
|
1801
|
+
transport?: "rest";
|
|
1802
|
+
} | {
|
|
1803
|
+
/** @constant */
|
|
1804
|
+
transport?: "mcp";
|
|
1805
|
+
} | {
|
|
1806
|
+
/** @constant */
|
|
1807
|
+
transport?: "a2a";
|
|
1808
|
+
} | {
|
|
1809
|
+
/** @constant */
|
|
1810
|
+
transport?: "embedded";
|
|
1811
|
+
});
|
|
1812
|
+
/**
|
|
1813
|
+
* Capability (Platform Schema)
|
|
1814
|
+
* @description Full capability declaration for platform-level discovery. Includes spec/schema URLs for agent fetching.
|
|
1815
|
+
*/
|
|
1816
|
+
"$defs-platform_schema": components["schemas"]["$defs-base"] & unknown;
|
|
1817
|
+
/**
|
|
1818
|
+
* Payment Handler (Platform Schema)
|
|
1819
|
+
* @description Platform declaration for discovery profiles. May include partial config state required for discovery.
|
|
1820
|
+
*/
|
|
1821
|
+
"payment_handler_$defs-platform_schema": components["schemas"]["payment_handler_$defs-base"] & unknown;
|
|
1822
|
+
/**
|
|
1823
|
+
* Service (Business Schema)
|
|
1824
|
+
* @description Service binding for business/merchant configuration. May override platform endpoints.
|
|
1825
|
+
*/
|
|
1826
|
+
business_schema: components["schemas"]["base"] & ({
|
|
1827
|
+
/** @constant */
|
|
1828
|
+
transport?: "rest";
|
|
1829
|
+
} | {
|
|
1830
|
+
/** @constant */
|
|
1831
|
+
transport?: "mcp";
|
|
1832
|
+
} | {
|
|
1833
|
+
/** @constant */
|
|
1834
|
+
transport?: "a2a";
|
|
1835
|
+
} | {
|
|
1836
|
+
/** @constant */
|
|
1837
|
+
transport?: "embedded";
|
|
1838
|
+
config?: components["schemas"]["embedded_config"];
|
|
1839
|
+
});
|
|
1840
|
+
/**
|
|
1841
|
+
* Capability (Business Schema)
|
|
1842
|
+
* @description Capability declaration for business/merchant discovery. Requires the `schema` URL so platforms can fetch and compose it during negotiation; may also include business-specific config overrides.
|
|
1843
|
+
*/
|
|
1844
|
+
"$defs-business_schema": components["schemas"]["$defs-base"] & unknown;
|
|
1845
|
+
/**
|
|
1846
|
+
* Payment Handler (Business Schema)
|
|
1847
|
+
* @description Business declaration for discovery profiles. May include partial config state required for discovery.
|
|
1848
|
+
*/
|
|
1849
|
+
"payment_handler_$defs-business_schema": components["schemas"]["payment_handler_$defs-base"];
|
|
1850
|
+
};
|
|
1851
|
+
responses: never;
|
|
1852
|
+
parameters: {
|
|
1853
|
+
/** @description The unique identifier of the checkout session. */
|
|
1854
|
+
checkout_session_id_path: string;
|
|
1855
|
+
/** @description The unique identifier of the cart. */
|
|
1856
|
+
cart_id_path: string;
|
|
1857
|
+
/** @description The unique identifier of the order. */
|
|
1858
|
+
order_id_path: string;
|
|
1859
|
+
/** @description Should contain oauth token representing the following 2 schemes: 1. Platform self authenticating (client_credentials). 2. Platform authenticating on behalf of end user (authorization_code). */
|
|
1860
|
+
authorization: string;
|
|
1861
|
+
/** @description Authenticates the platform with a reusable api key allocated to the platform by the business. */
|
|
1862
|
+
x_api_key: string;
|
|
1863
|
+
/** @description RFC 9421 HTTP Message Signature. Required when using HTTP Message Signatures for authentication. Format: `sig1=:<base64-signature>:`. */
|
|
1864
|
+
signature: string;
|
|
1865
|
+
/** @description RFC 9421 Signature-Input header. Required when using HTTP Message Signatures for authentication. Format: `sig1=("@method" "@path" ...);created=<timestamp>;keyid="<key-id>"`. */
|
|
1866
|
+
signature_input: string;
|
|
1867
|
+
/** @description Body digest per RFC 9530. Required for requests/responses with a body. Format: `sha-256=:<base64-digest>:`. */
|
|
1868
|
+
content_digest: string;
|
|
1869
|
+
/** @description Ensures duplicate operations don't happen during retries. */
|
|
1870
|
+
idempotency_key: string;
|
|
1871
|
+
/** @description For tracing the requests across network layers and components. */
|
|
1872
|
+
request_id: string;
|
|
1873
|
+
/** @description Identifies the user agent string making the call. */
|
|
1874
|
+
user_agent: string;
|
|
1875
|
+
/** @description Identifies the UCP agent making the call. All requests MUST include the UCP-Agent header containing the signer's profile URI using RFC 8941 Dictionary syntax. The URL MUST point to /.well-known/ucp. Format: profile="https://example.com/.well-known/ucp". */
|
|
1876
|
+
ucp_agent: string;
|
|
1877
|
+
/** @description Representation Metadata. Tells the receiver what the data in the message body actually is. */
|
|
1878
|
+
content_type: string;
|
|
1879
|
+
/** @description Content Negotiation. The client tells the server what data formats it is capable of understanding. */
|
|
1880
|
+
accept: string;
|
|
1881
|
+
/** @description Localization. Tells the receiver the user's preferred natural languages, often with "weights" or priorities. */
|
|
1882
|
+
accept_language: string;
|
|
1883
|
+
/** @description Compression. The client tells the server which content-codings it supports, usually for compression. */
|
|
1884
|
+
accept_encoding: string;
|
|
1885
|
+
/** @description Webhook event occurrence unix timestamp (seconds since epoch). */
|
|
1886
|
+
webhook_timestamp: number;
|
|
1887
|
+
/** @description The unique identifier of a webhook event. */
|
|
1888
|
+
webhook_id: string;
|
|
1889
|
+
};
|
|
1890
|
+
requestBodies: never;
|
|
1891
|
+
headers: {
|
|
1892
|
+
/** @description RFC 9421 HTTP Message Signature for response. Contains the signature value in the format `sig1=:<base64-signature>:`. */
|
|
1893
|
+
signature: string;
|
|
1894
|
+
/** @description RFC 9421 Signature-Input header for response. Describes signed components, timestamp, and key ID. */
|
|
1895
|
+
signature_input: string;
|
|
1896
|
+
/** @description JCS-canonicalized body digest per RFC 8785. Format: `sha-256=:<base64-digest>:`. */
|
|
1897
|
+
content_digest: string;
|
|
1898
|
+
};
|
|
1899
|
+
pathItems: never;
|
|
1900
|
+
}
|
|
1901
|
+
export type $defs = Record<string, never>;
|
|
1902
|
+
export interface operations {
|
|
1903
|
+
create_checkout: {
|
|
1904
|
+
parameters: {
|
|
1905
|
+
query?: never;
|
|
1906
|
+
header: {
|
|
1907
|
+
/** @description Should contain oauth token representing the following 2 schemes: 1. Platform self authenticating (client_credentials). 2. Platform authenticating on behalf of end user (authorization_code). */
|
|
1908
|
+
Authorization?: components["parameters"]["authorization"];
|
|
1909
|
+
/** @description Authenticates the platform with a reusable api key allocated to the platform by the business. */
|
|
1910
|
+
"X-API-Key"?: components["parameters"]["x_api_key"];
|
|
1911
|
+
/** @description RFC 9421 HTTP Message Signature. Required when using HTTP Message Signatures for authentication. Format: `sig1=:<base64-signature>:`. */
|
|
1912
|
+
Signature?: components["parameters"]["signature"];
|
|
1913
|
+
/** @description RFC 9421 Signature-Input header. Required when using HTTP Message Signatures for authentication. Format: `sig1=("@method" "@path" ...);created=<timestamp>;keyid="<key-id>"`. */
|
|
1914
|
+
"Signature-Input"?: components["parameters"]["signature_input"];
|
|
1915
|
+
/** @description Body digest per RFC 9530. Required for requests/responses with a body. Format: `sha-256=:<base64-digest>:`. */
|
|
1916
|
+
"Content-Digest"?: components["parameters"]["content_digest"];
|
|
1917
|
+
/** @description Ensures duplicate operations don't happen during retries. */
|
|
1918
|
+
"Idempotency-Key": components["parameters"]["idempotency_key"];
|
|
1919
|
+
/** @description For tracing the requests across network layers and components. */
|
|
1920
|
+
"Request-Id": components["parameters"]["request_id"];
|
|
1921
|
+
/** @description Identifies the user agent string making the call. */
|
|
1922
|
+
"User-Agent"?: components["parameters"]["user_agent"];
|
|
1923
|
+
/** @description Identifies the UCP agent making the call. All requests MUST include the UCP-Agent header containing the signer's profile URI using RFC 8941 Dictionary syntax. The URL MUST point to /.well-known/ucp. Format: profile="https://example.com/.well-known/ucp". */
|
|
1924
|
+
"UCP-Agent": components["parameters"]["ucp_agent"];
|
|
1925
|
+
/** @description Representation Metadata. Tells the receiver what the data in the message body actually is. */
|
|
1926
|
+
"Content-Type"?: components["parameters"]["content_type"];
|
|
1927
|
+
/** @description Content Negotiation. The client tells the server what data formats it is capable of understanding. */
|
|
1928
|
+
Accept?: components["parameters"]["accept"];
|
|
1929
|
+
/** @description Localization. Tells the receiver the user's preferred natural languages, often with "weights" or priorities. */
|
|
1930
|
+
"Accept-Language"?: components["parameters"]["accept_language"];
|
|
1931
|
+
/** @description Compression. The client tells the server which content-codings it supports, usually for compression. */
|
|
1932
|
+
"Accept-Encoding"?: components["parameters"]["accept_encoding"];
|
|
1933
|
+
};
|
|
1934
|
+
path?: never;
|
|
1935
|
+
cookie?: never;
|
|
1936
|
+
};
|
|
1937
|
+
requestBody: {
|
|
1938
|
+
content: {
|
|
1939
|
+
"application/json": components["schemas"]["checkout"];
|
|
1940
|
+
};
|
|
1941
|
+
};
|
|
1942
|
+
responses: {
|
|
1943
|
+
/** @description Checkout session created */
|
|
1944
|
+
201: {
|
|
1945
|
+
headers: {
|
|
1946
|
+
Signature: components["headers"]["signature"];
|
|
1947
|
+
"Signature-Input": components["headers"]["signature_input"];
|
|
1948
|
+
"Content-Digest": components["headers"]["content_digest"];
|
|
1949
|
+
[name: string]: unknown;
|
|
1950
|
+
};
|
|
1951
|
+
content: {
|
|
1952
|
+
"application/json": components["schemas"]["checkout_response"];
|
|
1953
|
+
};
|
|
1954
|
+
};
|
|
1955
|
+
};
|
|
1956
|
+
};
|
|
1957
|
+
get_checkout: {
|
|
1958
|
+
parameters: {
|
|
1959
|
+
query?: never;
|
|
1960
|
+
header: {
|
|
1961
|
+
/** @description Should contain oauth token representing the following 2 schemes: 1. Platform self authenticating (client_credentials). 2. Platform authenticating on behalf of end user (authorization_code). */
|
|
1962
|
+
Authorization?: components["parameters"]["authorization"];
|
|
1963
|
+
/** @description Authenticates the platform with a reusable api key allocated to the platform by the business. */
|
|
1964
|
+
"X-API-Key"?: components["parameters"]["x_api_key"];
|
|
1965
|
+
/** @description RFC 9421 HTTP Message Signature. Required when using HTTP Message Signatures for authentication. Format: `sig1=:<base64-signature>:`. */
|
|
1966
|
+
Signature?: components["parameters"]["signature"];
|
|
1967
|
+
/** @description RFC 9421 Signature-Input header. Required when using HTTP Message Signatures for authentication. Format: `sig1=("@method" "@path" ...);created=<timestamp>;keyid="<key-id>"`. */
|
|
1968
|
+
"Signature-Input"?: components["parameters"]["signature_input"];
|
|
1969
|
+
/** @description For tracing the requests across network layers and components. */
|
|
1970
|
+
"Request-Id": components["parameters"]["request_id"];
|
|
1971
|
+
/** @description Identifies the user agent string making the call. */
|
|
1972
|
+
"User-Agent"?: components["parameters"]["user_agent"];
|
|
1973
|
+
/** @description Identifies the UCP agent making the call. All requests MUST include the UCP-Agent header containing the signer's profile URI using RFC 8941 Dictionary syntax. The URL MUST point to /.well-known/ucp. Format: profile="https://example.com/.well-known/ucp". */
|
|
1974
|
+
"UCP-Agent": components["parameters"]["ucp_agent"];
|
|
1975
|
+
/** @description Representation Metadata. Tells the receiver what the data in the message body actually is. */
|
|
1976
|
+
"Content-Type"?: components["parameters"]["content_type"];
|
|
1977
|
+
/** @description Content Negotiation. The client tells the server what data formats it is capable of understanding. */
|
|
1978
|
+
Accept?: components["parameters"]["accept"];
|
|
1979
|
+
/** @description Localization. Tells the receiver the user's preferred natural languages, often with "weights" or priorities. */
|
|
1980
|
+
"Accept-Language"?: components["parameters"]["accept_language"];
|
|
1981
|
+
/** @description Compression. The client tells the server which content-codings it supports, usually for compression. */
|
|
1982
|
+
"Accept-Encoding"?: components["parameters"]["accept_encoding"];
|
|
1983
|
+
};
|
|
1984
|
+
path: {
|
|
1985
|
+
/** @description The unique identifier of the checkout session. */
|
|
1986
|
+
id: components["parameters"]["checkout_session_id_path"];
|
|
1987
|
+
};
|
|
1988
|
+
cookie?: never;
|
|
1989
|
+
};
|
|
1990
|
+
requestBody?: never;
|
|
1991
|
+
responses: {
|
|
1992
|
+
/** @description Checkout session retrieved */
|
|
1993
|
+
200: {
|
|
1994
|
+
headers: {
|
|
1995
|
+
Signature: components["headers"]["signature"];
|
|
1996
|
+
"Signature-Input": components["headers"]["signature_input"];
|
|
1997
|
+
"Content-Digest": components["headers"]["content_digest"];
|
|
1998
|
+
[name: string]: unknown;
|
|
1999
|
+
};
|
|
2000
|
+
content: {
|
|
2001
|
+
"application/json": components["schemas"]["checkout_response"];
|
|
2002
|
+
};
|
|
2003
|
+
};
|
|
2004
|
+
};
|
|
2005
|
+
};
|
|
2006
|
+
update_checkout: {
|
|
2007
|
+
parameters: {
|
|
2008
|
+
query?: never;
|
|
2009
|
+
header: {
|
|
2010
|
+
/** @description Should contain oauth token representing the following 2 schemes: 1. Platform self authenticating (client_credentials). 2. Platform authenticating on behalf of end user (authorization_code). */
|
|
2011
|
+
Authorization?: components["parameters"]["authorization"];
|
|
2012
|
+
/** @description Authenticates the platform with a reusable api key allocated to the platform by the business. */
|
|
2013
|
+
"X-API-Key"?: components["parameters"]["x_api_key"];
|
|
2014
|
+
/** @description RFC 9421 HTTP Message Signature. Required when using HTTP Message Signatures for authentication. Format: `sig1=:<base64-signature>:`. */
|
|
2015
|
+
Signature?: components["parameters"]["signature"];
|
|
2016
|
+
/** @description RFC 9421 Signature-Input header. Required when using HTTP Message Signatures for authentication. Format: `sig1=("@method" "@path" ...);created=<timestamp>;keyid="<key-id>"`. */
|
|
2017
|
+
"Signature-Input"?: components["parameters"]["signature_input"];
|
|
2018
|
+
/** @description Body digest per RFC 9530. Required for requests/responses with a body. Format: `sha-256=:<base64-digest>:`. */
|
|
2019
|
+
"Content-Digest"?: components["parameters"]["content_digest"];
|
|
2020
|
+
/** @description Ensures duplicate operations don't happen during retries. */
|
|
2021
|
+
"Idempotency-Key": components["parameters"]["idempotency_key"];
|
|
2022
|
+
/** @description For tracing the requests across network layers and components. */
|
|
2023
|
+
"Request-Id": components["parameters"]["request_id"];
|
|
2024
|
+
/** @description Identifies the user agent string making the call. */
|
|
2025
|
+
"User-Agent"?: components["parameters"]["user_agent"];
|
|
2026
|
+
/** @description Identifies the UCP agent making the call. All requests MUST include the UCP-Agent header containing the signer's profile URI using RFC 8941 Dictionary syntax. The URL MUST point to /.well-known/ucp. Format: profile="https://example.com/.well-known/ucp". */
|
|
2027
|
+
"UCP-Agent": components["parameters"]["ucp_agent"];
|
|
2028
|
+
/** @description Representation Metadata. Tells the receiver what the data in the message body actually is. */
|
|
2029
|
+
"Content-Type"?: components["parameters"]["content_type"];
|
|
2030
|
+
/** @description Content Negotiation. The client tells the server what data formats it is capable of understanding. */
|
|
2031
|
+
Accept?: components["parameters"]["accept"];
|
|
2032
|
+
/** @description Localization. Tells the receiver the user's preferred natural languages, often with "weights" or priorities. */
|
|
2033
|
+
"Accept-Language"?: components["parameters"]["accept_language"];
|
|
2034
|
+
/** @description Compression. The client tells the server which content-codings it supports, usually for compression. */
|
|
2035
|
+
"Accept-Encoding"?: components["parameters"]["accept_encoding"];
|
|
2036
|
+
};
|
|
2037
|
+
path: {
|
|
2038
|
+
/** @description The unique identifier of the checkout session. */
|
|
2039
|
+
id: components["parameters"]["checkout_session_id_path"];
|
|
2040
|
+
};
|
|
2041
|
+
cookie?: never;
|
|
2042
|
+
};
|
|
2043
|
+
requestBody: {
|
|
2044
|
+
content: {
|
|
2045
|
+
"application/json": components["schemas"]["checkout"];
|
|
2046
|
+
};
|
|
2047
|
+
};
|
|
2048
|
+
responses: {
|
|
2049
|
+
/** @description Current Checkout state after the Update request, whether the update was applied or rejected. */
|
|
2050
|
+
200: {
|
|
2051
|
+
headers: {
|
|
2052
|
+
Signature: components["headers"]["signature"];
|
|
2053
|
+
"Signature-Input": components["headers"]["signature_input"];
|
|
2054
|
+
"Content-Digest": components["headers"]["content_digest"];
|
|
2055
|
+
[name: string]: unknown;
|
|
2056
|
+
};
|
|
2057
|
+
content: {
|
|
2058
|
+
"application/json": components["schemas"]["checkout_response"];
|
|
2059
|
+
};
|
|
2060
|
+
};
|
|
2061
|
+
};
|
|
2062
|
+
};
|
|
2063
|
+
complete_checkout: {
|
|
2064
|
+
parameters: {
|
|
2065
|
+
query?: never;
|
|
2066
|
+
header: {
|
|
2067
|
+
/** @description Should contain oauth token representing the following 2 schemes: 1. Platform self authenticating (client_credentials). 2. Platform authenticating on behalf of end user (authorization_code). */
|
|
2068
|
+
Authorization?: components["parameters"]["authorization"];
|
|
2069
|
+
/** @description Authenticates the platform with a reusable api key allocated to the platform by the business. */
|
|
2070
|
+
"X-API-Key"?: components["parameters"]["x_api_key"];
|
|
2071
|
+
/** @description RFC 9421 HTTP Message Signature. Required when using HTTP Message Signatures for authentication. Format: `sig1=:<base64-signature>:`. */
|
|
2072
|
+
Signature?: components["parameters"]["signature"];
|
|
2073
|
+
/** @description RFC 9421 Signature-Input header. Required when using HTTP Message Signatures for authentication. Format: `sig1=("@method" "@path" ...);created=<timestamp>;keyid="<key-id>"`. */
|
|
2074
|
+
"Signature-Input"?: components["parameters"]["signature_input"];
|
|
2075
|
+
/** @description Body digest per RFC 9530. Required for requests/responses with a body. Format: `sha-256=:<base64-digest>:`. */
|
|
2076
|
+
"Content-Digest"?: components["parameters"]["content_digest"];
|
|
2077
|
+
/** @description Ensures duplicate operations don't happen during retries. */
|
|
2078
|
+
"Idempotency-Key": components["parameters"]["idempotency_key"];
|
|
2079
|
+
/** @description For tracing the requests across network layers and components. */
|
|
2080
|
+
"Request-Id": components["parameters"]["request_id"];
|
|
2081
|
+
/** @description Identifies the user agent string making the call. */
|
|
2082
|
+
"User-Agent"?: components["parameters"]["user_agent"];
|
|
2083
|
+
/** @description Identifies the UCP agent making the call. All requests MUST include the UCP-Agent header containing the signer's profile URI using RFC 8941 Dictionary syntax. The URL MUST point to /.well-known/ucp. Format: profile="https://example.com/.well-known/ucp". */
|
|
2084
|
+
"UCP-Agent": components["parameters"]["ucp_agent"];
|
|
2085
|
+
/** @description Representation Metadata. Tells the receiver what the data in the message body actually is. */
|
|
2086
|
+
"Content-Type"?: components["parameters"]["content_type"];
|
|
2087
|
+
/** @description Content Negotiation. The client tells the server what data formats it is capable of understanding. */
|
|
2088
|
+
Accept?: components["parameters"]["accept"];
|
|
2089
|
+
/** @description Localization. Tells the receiver the user's preferred natural languages, often with "weights" or priorities. */
|
|
2090
|
+
"Accept-Language"?: components["parameters"]["accept_language"];
|
|
2091
|
+
/** @description Compression. The client tells the server which content-codings it supports, usually for compression. */
|
|
2092
|
+
"Accept-Encoding"?: components["parameters"]["accept_encoding"];
|
|
2093
|
+
};
|
|
2094
|
+
path: {
|
|
2095
|
+
/** @description The unique identifier of the checkout session. */
|
|
2096
|
+
id: components["parameters"]["checkout_session_id_path"];
|
|
2097
|
+
};
|
|
2098
|
+
cookie?: never;
|
|
2099
|
+
};
|
|
2100
|
+
requestBody: {
|
|
2101
|
+
content: {
|
|
2102
|
+
"application/json": components["schemas"]["checkout"];
|
|
2103
|
+
};
|
|
2104
|
+
};
|
|
2105
|
+
responses: {
|
|
2106
|
+
/** @description Checkout session completed */
|
|
2107
|
+
200: {
|
|
2108
|
+
headers: {
|
|
2109
|
+
Signature: components["headers"]["signature"];
|
|
2110
|
+
"Signature-Input": components["headers"]["signature_input"];
|
|
2111
|
+
"Content-Digest": components["headers"]["content_digest"];
|
|
2112
|
+
[name: string]: unknown;
|
|
2113
|
+
};
|
|
2114
|
+
content: {
|
|
2115
|
+
"application/json": components["schemas"]["checkout_response"];
|
|
2116
|
+
};
|
|
2117
|
+
};
|
|
2118
|
+
};
|
|
2119
|
+
};
|
|
2120
|
+
cancel_checkout: {
|
|
2121
|
+
parameters: {
|
|
2122
|
+
query?: never;
|
|
2123
|
+
header: {
|
|
2124
|
+
/** @description Should contain oauth token representing the following 2 schemes: 1. Platform self authenticating (client_credentials). 2. Platform authenticating on behalf of end user (authorization_code). */
|
|
2125
|
+
Authorization?: components["parameters"]["authorization"];
|
|
2126
|
+
/** @description Authenticates the platform with a reusable api key allocated to the platform by the business. */
|
|
2127
|
+
"X-API-Key"?: components["parameters"]["x_api_key"];
|
|
2128
|
+
/** @description RFC 9421 HTTP Message Signature. Required when using HTTP Message Signatures for authentication. Format: `sig1=:<base64-signature>:`. */
|
|
2129
|
+
Signature?: components["parameters"]["signature"];
|
|
2130
|
+
/** @description RFC 9421 Signature-Input header. Required when using HTTP Message Signatures for authentication. Format: `sig1=("@method" "@path" ...);created=<timestamp>;keyid="<key-id>"`. */
|
|
2131
|
+
"Signature-Input"?: components["parameters"]["signature_input"];
|
|
2132
|
+
/** @description Body digest per RFC 9530. Required for requests/responses with a body. Format: `sha-256=:<base64-digest>:`. */
|
|
2133
|
+
"Content-Digest"?: components["parameters"]["content_digest"];
|
|
2134
|
+
/** @description Ensures duplicate operations don't happen during retries. */
|
|
2135
|
+
"Idempotency-Key": components["parameters"]["idempotency_key"];
|
|
2136
|
+
/** @description For tracing the requests across network layers and components. */
|
|
2137
|
+
"Request-Id": components["parameters"]["request_id"];
|
|
2138
|
+
/** @description Identifies the user agent string making the call. */
|
|
2139
|
+
"User-Agent"?: components["parameters"]["user_agent"];
|
|
2140
|
+
/** @description Identifies the UCP agent making the call. All requests MUST include the UCP-Agent header containing the signer's profile URI using RFC 8941 Dictionary syntax. The URL MUST point to /.well-known/ucp. Format: profile="https://example.com/.well-known/ucp". */
|
|
2141
|
+
"UCP-Agent": components["parameters"]["ucp_agent"];
|
|
2142
|
+
/** @description Representation Metadata. Tells the receiver what the data in the message body actually is. */
|
|
2143
|
+
"Content-Type"?: components["parameters"]["content_type"];
|
|
2144
|
+
/** @description Content Negotiation. The client tells the server what data formats it is capable of understanding. */
|
|
2145
|
+
Accept?: components["parameters"]["accept"];
|
|
2146
|
+
/** @description Localization. Tells the receiver the user's preferred natural languages, often with "weights" or priorities. */
|
|
2147
|
+
"Accept-Language"?: components["parameters"]["accept_language"];
|
|
2148
|
+
/** @description Compression. The client tells the server which content-codings it supports, usually for compression. */
|
|
2149
|
+
"Accept-Encoding"?: components["parameters"]["accept_encoding"];
|
|
2150
|
+
};
|
|
2151
|
+
path: {
|
|
2152
|
+
/** @description The unique identifier of the checkout session. */
|
|
2153
|
+
id: components["parameters"]["checkout_session_id_path"];
|
|
2154
|
+
};
|
|
2155
|
+
cookie?: never;
|
|
2156
|
+
};
|
|
2157
|
+
requestBody?: never;
|
|
2158
|
+
responses: {
|
|
2159
|
+
/** @description Checkout session canceled */
|
|
2160
|
+
200: {
|
|
2161
|
+
headers: {
|
|
2162
|
+
Signature: components["headers"]["signature"];
|
|
2163
|
+
"Signature-Input": components["headers"]["signature_input"];
|
|
2164
|
+
"Content-Digest": components["headers"]["content_digest"];
|
|
2165
|
+
[name: string]: unknown;
|
|
2166
|
+
};
|
|
2167
|
+
content: {
|
|
2168
|
+
"application/json": components["schemas"]["checkout_response"];
|
|
2169
|
+
};
|
|
2170
|
+
};
|
|
2171
|
+
};
|
|
2172
|
+
};
|
|
2173
|
+
create_cart: {
|
|
2174
|
+
parameters: {
|
|
2175
|
+
query?: never;
|
|
2176
|
+
header: {
|
|
2177
|
+
/** @description Should contain oauth token representing the following 2 schemes: 1. Platform self authenticating (client_credentials). 2. Platform authenticating on behalf of end user (authorization_code). */
|
|
2178
|
+
Authorization?: components["parameters"]["authorization"];
|
|
2179
|
+
/** @description Authenticates the platform with a reusable api key allocated to the platform by the business. */
|
|
2180
|
+
"X-API-Key"?: components["parameters"]["x_api_key"];
|
|
2181
|
+
/** @description RFC 9421 HTTP Message Signature. Required when using HTTP Message Signatures for authentication. Format: `sig1=:<base64-signature>:`. */
|
|
2182
|
+
Signature?: components["parameters"]["signature"];
|
|
2183
|
+
/** @description RFC 9421 Signature-Input header. Required when using HTTP Message Signatures for authentication. Format: `sig1=("@method" "@path" ...);created=<timestamp>;keyid="<key-id>"`. */
|
|
2184
|
+
"Signature-Input"?: components["parameters"]["signature_input"];
|
|
2185
|
+
/** @description Body digest per RFC 9530. Required for requests/responses with a body. Format: `sha-256=:<base64-digest>:`. */
|
|
2186
|
+
"Content-Digest"?: components["parameters"]["content_digest"];
|
|
2187
|
+
/** @description Ensures duplicate operations don't happen during retries. */
|
|
2188
|
+
"Idempotency-Key": components["parameters"]["idempotency_key"];
|
|
2189
|
+
/** @description For tracing the requests across network layers and components. */
|
|
2190
|
+
"Request-Id": components["parameters"]["request_id"];
|
|
2191
|
+
/** @description Identifies the user agent string making the call. */
|
|
2192
|
+
"User-Agent"?: components["parameters"]["user_agent"];
|
|
2193
|
+
/** @description Identifies the UCP agent making the call. All requests MUST include the UCP-Agent header containing the signer's profile URI using RFC 8941 Dictionary syntax. The URL MUST point to /.well-known/ucp. Format: profile="https://example.com/.well-known/ucp". */
|
|
2194
|
+
"UCP-Agent": components["parameters"]["ucp_agent"];
|
|
2195
|
+
/** @description Representation Metadata. Tells the receiver what the data in the message body actually is. */
|
|
2196
|
+
"Content-Type"?: components["parameters"]["content_type"];
|
|
2197
|
+
/** @description Content Negotiation. The client tells the server what data formats it is capable of understanding. */
|
|
2198
|
+
Accept?: components["parameters"]["accept"];
|
|
2199
|
+
/** @description Localization. Tells the receiver the user's preferred natural languages, often with "weights" or priorities. */
|
|
2200
|
+
"Accept-Language"?: components["parameters"]["accept_language"];
|
|
2201
|
+
/** @description Compression. The client tells the server which content-codings it supports, usually for compression. */
|
|
2202
|
+
"Accept-Encoding"?: components["parameters"]["accept_encoding"];
|
|
2203
|
+
};
|
|
2204
|
+
path?: never;
|
|
2205
|
+
cookie?: never;
|
|
2206
|
+
};
|
|
2207
|
+
requestBody: {
|
|
2208
|
+
content: {
|
|
2209
|
+
"application/json": components["schemas"]["cart"];
|
|
2210
|
+
};
|
|
2211
|
+
};
|
|
2212
|
+
responses: {
|
|
2213
|
+
/** @description Cart created */
|
|
2214
|
+
201: {
|
|
2215
|
+
headers: {
|
|
2216
|
+
Signature: components["headers"]["signature"];
|
|
2217
|
+
"Signature-Input": components["headers"]["signature_input"];
|
|
2218
|
+
"Content-Digest": components["headers"]["content_digest"];
|
|
2219
|
+
[name: string]: unknown;
|
|
2220
|
+
};
|
|
2221
|
+
content: {
|
|
2222
|
+
"application/json": components["schemas"]["cart_response"];
|
|
2223
|
+
};
|
|
2224
|
+
};
|
|
2225
|
+
};
|
|
2226
|
+
};
|
|
2227
|
+
get_cart: {
|
|
2228
|
+
parameters: {
|
|
2229
|
+
query?: never;
|
|
2230
|
+
header: {
|
|
2231
|
+
/** @description Should contain oauth token representing the following 2 schemes: 1. Platform self authenticating (client_credentials). 2. Platform authenticating on behalf of end user (authorization_code). */
|
|
2232
|
+
Authorization?: components["parameters"]["authorization"];
|
|
2233
|
+
/** @description Authenticates the platform with a reusable api key allocated to the platform by the business. */
|
|
2234
|
+
"X-API-Key"?: components["parameters"]["x_api_key"];
|
|
2235
|
+
/** @description RFC 9421 HTTP Message Signature. Required when using HTTP Message Signatures for authentication. Format: `sig1=:<base64-signature>:`. */
|
|
2236
|
+
Signature?: components["parameters"]["signature"];
|
|
2237
|
+
/** @description RFC 9421 Signature-Input header. Required when using HTTP Message Signatures for authentication. Format: `sig1=("@method" "@path" ...);created=<timestamp>;keyid="<key-id>"`. */
|
|
2238
|
+
"Signature-Input"?: components["parameters"]["signature_input"];
|
|
2239
|
+
/** @description For tracing the requests across network layers and components. */
|
|
2240
|
+
"Request-Id": components["parameters"]["request_id"];
|
|
2241
|
+
/** @description Identifies the user agent string making the call. */
|
|
2242
|
+
"User-Agent"?: components["parameters"]["user_agent"];
|
|
2243
|
+
/** @description Identifies the UCP agent making the call. All requests MUST include the UCP-Agent header containing the signer's profile URI using RFC 8941 Dictionary syntax. The URL MUST point to /.well-known/ucp. Format: profile="https://example.com/.well-known/ucp". */
|
|
2244
|
+
"UCP-Agent": components["parameters"]["ucp_agent"];
|
|
2245
|
+
/** @description Representation Metadata. Tells the receiver what the data in the message body actually is. */
|
|
2246
|
+
"Content-Type"?: components["parameters"]["content_type"];
|
|
2247
|
+
/** @description Content Negotiation. The client tells the server what data formats it is capable of understanding. */
|
|
2248
|
+
Accept?: components["parameters"]["accept"];
|
|
2249
|
+
/** @description Localization. Tells the receiver the user's preferred natural languages, often with "weights" or priorities. */
|
|
2250
|
+
"Accept-Language"?: components["parameters"]["accept_language"];
|
|
2251
|
+
/** @description Compression. The client tells the server which content-codings it supports, usually for compression. */
|
|
2252
|
+
"Accept-Encoding"?: components["parameters"]["accept_encoding"];
|
|
2253
|
+
};
|
|
2254
|
+
path: {
|
|
2255
|
+
/** @description The unique identifier of the cart. */
|
|
2256
|
+
id: components["parameters"]["cart_id_path"];
|
|
2257
|
+
};
|
|
2258
|
+
cookie?: never;
|
|
2259
|
+
};
|
|
2260
|
+
requestBody?: never;
|
|
2261
|
+
responses: {
|
|
2262
|
+
/** @description Cart retrieved */
|
|
2263
|
+
200: {
|
|
2264
|
+
headers: {
|
|
2265
|
+
Signature: components["headers"]["signature"];
|
|
2266
|
+
"Signature-Input": components["headers"]["signature_input"];
|
|
2267
|
+
"Content-Digest": components["headers"]["content_digest"];
|
|
2268
|
+
[name: string]: unknown;
|
|
2269
|
+
};
|
|
2270
|
+
content: {
|
|
2271
|
+
"application/json": components["schemas"]["cart_response"];
|
|
2272
|
+
};
|
|
2273
|
+
};
|
|
2274
|
+
};
|
|
2275
|
+
};
|
|
2276
|
+
update_cart: {
|
|
2277
|
+
parameters: {
|
|
2278
|
+
query?: never;
|
|
2279
|
+
header: {
|
|
2280
|
+
/** @description Should contain oauth token representing the following 2 schemes: 1. Platform self authenticating (client_credentials). 2. Platform authenticating on behalf of end user (authorization_code). */
|
|
2281
|
+
Authorization?: components["parameters"]["authorization"];
|
|
2282
|
+
/** @description Authenticates the platform with a reusable api key allocated to the platform by the business. */
|
|
2283
|
+
"X-API-Key"?: components["parameters"]["x_api_key"];
|
|
2284
|
+
/** @description RFC 9421 HTTP Message Signature. Required when using HTTP Message Signatures for authentication. Format: `sig1=:<base64-signature>:`. */
|
|
2285
|
+
Signature?: components["parameters"]["signature"];
|
|
2286
|
+
/** @description RFC 9421 Signature-Input header. Required when using HTTP Message Signatures for authentication. Format: `sig1=("@method" "@path" ...);created=<timestamp>;keyid="<key-id>"`. */
|
|
2287
|
+
"Signature-Input"?: components["parameters"]["signature_input"];
|
|
2288
|
+
/** @description Body digest per RFC 9530. Required for requests/responses with a body. Format: `sha-256=:<base64-digest>:`. */
|
|
2289
|
+
"Content-Digest"?: components["parameters"]["content_digest"];
|
|
2290
|
+
/** @description Ensures duplicate operations don't happen during retries. */
|
|
2291
|
+
"Idempotency-Key": components["parameters"]["idempotency_key"];
|
|
2292
|
+
/** @description For tracing the requests across network layers and components. */
|
|
2293
|
+
"Request-Id": components["parameters"]["request_id"];
|
|
2294
|
+
/** @description Identifies the user agent string making the call. */
|
|
2295
|
+
"User-Agent"?: components["parameters"]["user_agent"];
|
|
2296
|
+
/** @description Identifies the UCP agent making the call. All requests MUST include the UCP-Agent header containing the signer's profile URI using RFC 8941 Dictionary syntax. The URL MUST point to /.well-known/ucp. Format: profile="https://example.com/.well-known/ucp". */
|
|
2297
|
+
"UCP-Agent": components["parameters"]["ucp_agent"];
|
|
2298
|
+
/** @description Representation Metadata. Tells the receiver what the data in the message body actually is. */
|
|
2299
|
+
"Content-Type"?: components["parameters"]["content_type"];
|
|
2300
|
+
/** @description Content Negotiation. The client tells the server what data formats it is capable of understanding. */
|
|
2301
|
+
Accept?: components["parameters"]["accept"];
|
|
2302
|
+
/** @description Localization. Tells the receiver the user's preferred natural languages, often with "weights" or priorities. */
|
|
2303
|
+
"Accept-Language"?: components["parameters"]["accept_language"];
|
|
2304
|
+
/** @description Compression. The client tells the server which content-codings it supports, usually for compression. */
|
|
2305
|
+
"Accept-Encoding"?: components["parameters"]["accept_encoding"];
|
|
2306
|
+
};
|
|
2307
|
+
path: {
|
|
2308
|
+
/** @description The unique identifier of the cart. */
|
|
2309
|
+
id: components["parameters"]["cart_id_path"];
|
|
2310
|
+
};
|
|
2311
|
+
cookie?: never;
|
|
2312
|
+
};
|
|
2313
|
+
requestBody: {
|
|
2314
|
+
content: {
|
|
2315
|
+
"application/json": components["schemas"]["cart"];
|
|
2316
|
+
};
|
|
2317
|
+
};
|
|
2318
|
+
responses: {
|
|
2319
|
+
/** @description Cart updated */
|
|
2320
|
+
200: {
|
|
2321
|
+
headers: {
|
|
2322
|
+
Signature: components["headers"]["signature"];
|
|
2323
|
+
"Signature-Input": components["headers"]["signature_input"];
|
|
2324
|
+
"Content-Digest": components["headers"]["content_digest"];
|
|
2325
|
+
[name: string]: unknown;
|
|
2326
|
+
};
|
|
2327
|
+
content: {
|
|
2328
|
+
"application/json": components["schemas"]["cart_response"];
|
|
2329
|
+
};
|
|
2330
|
+
};
|
|
2331
|
+
};
|
|
2332
|
+
};
|
|
2333
|
+
cancel_cart: {
|
|
2334
|
+
parameters: {
|
|
2335
|
+
query?: never;
|
|
2336
|
+
header: {
|
|
2337
|
+
/** @description Should contain oauth token representing the following 2 schemes: 1. Platform self authenticating (client_credentials). 2. Platform authenticating on behalf of end user (authorization_code). */
|
|
2338
|
+
Authorization?: components["parameters"]["authorization"];
|
|
2339
|
+
/** @description Authenticates the platform with a reusable api key allocated to the platform by the business. */
|
|
2340
|
+
"X-API-Key"?: components["parameters"]["x_api_key"];
|
|
2341
|
+
/** @description RFC 9421 HTTP Message Signature. Required when using HTTP Message Signatures for authentication. Format: `sig1=:<base64-signature>:`. */
|
|
2342
|
+
Signature?: components["parameters"]["signature"];
|
|
2343
|
+
/** @description RFC 9421 Signature-Input header. Required when using HTTP Message Signatures for authentication. Format: `sig1=("@method" "@path" ...);created=<timestamp>;keyid="<key-id>"`. */
|
|
2344
|
+
"Signature-Input"?: components["parameters"]["signature_input"];
|
|
2345
|
+
/** @description Body digest per RFC 9530. Required for requests/responses with a body. Format: `sha-256=:<base64-digest>:`. */
|
|
2346
|
+
"Content-Digest"?: components["parameters"]["content_digest"];
|
|
2347
|
+
/** @description Ensures duplicate operations don't happen during retries. */
|
|
2348
|
+
"Idempotency-Key": components["parameters"]["idempotency_key"];
|
|
2349
|
+
/** @description For tracing the requests across network layers and components. */
|
|
2350
|
+
"Request-Id": components["parameters"]["request_id"];
|
|
2351
|
+
/** @description Identifies the user agent string making the call. */
|
|
2352
|
+
"User-Agent"?: components["parameters"]["user_agent"];
|
|
2353
|
+
/** @description Identifies the UCP agent making the call. All requests MUST include the UCP-Agent header containing the signer's profile URI using RFC 8941 Dictionary syntax. The URL MUST point to /.well-known/ucp. Format: profile="https://example.com/.well-known/ucp". */
|
|
2354
|
+
"UCP-Agent": components["parameters"]["ucp_agent"];
|
|
2355
|
+
/** @description Representation Metadata. Tells the receiver what the data in the message body actually is. */
|
|
2356
|
+
"Content-Type"?: components["parameters"]["content_type"];
|
|
2357
|
+
/** @description Content Negotiation. The client tells the server what data formats it is capable of understanding. */
|
|
2358
|
+
Accept?: components["parameters"]["accept"];
|
|
2359
|
+
/** @description Localization. Tells the receiver the user's preferred natural languages, often with "weights" or priorities. */
|
|
2360
|
+
"Accept-Language"?: components["parameters"]["accept_language"];
|
|
2361
|
+
/** @description Compression. The client tells the server which content-codings it supports, usually for compression. */
|
|
2362
|
+
"Accept-Encoding"?: components["parameters"]["accept_encoding"];
|
|
2363
|
+
};
|
|
2364
|
+
path: {
|
|
2365
|
+
/** @description The unique identifier of the cart. */
|
|
2366
|
+
id: components["parameters"]["cart_id_path"];
|
|
2367
|
+
};
|
|
2368
|
+
cookie?: never;
|
|
2369
|
+
};
|
|
2370
|
+
requestBody?: never;
|
|
2371
|
+
responses: {
|
|
2372
|
+
/** @description Cart cancelled */
|
|
2373
|
+
200: {
|
|
2374
|
+
headers: {
|
|
2375
|
+
Signature: components["headers"]["signature"];
|
|
2376
|
+
"Signature-Input": components["headers"]["signature_input"];
|
|
2377
|
+
"Content-Digest": components["headers"]["content_digest"];
|
|
2378
|
+
[name: string]: unknown;
|
|
2379
|
+
};
|
|
2380
|
+
content: {
|
|
2381
|
+
"application/json": components["schemas"]["cart_response"];
|
|
2382
|
+
};
|
|
2383
|
+
};
|
|
2384
|
+
};
|
|
2385
|
+
};
|
|
2386
|
+
search_catalog: {
|
|
2387
|
+
parameters: {
|
|
2388
|
+
query?: never;
|
|
2389
|
+
header: {
|
|
2390
|
+
/** @description Should contain oauth token representing the following 2 schemes: 1. Platform self authenticating (client_credentials). 2. Platform authenticating on behalf of end user (authorization_code). */
|
|
2391
|
+
Authorization?: components["parameters"]["authorization"];
|
|
2392
|
+
/** @description Authenticates the platform with a reusable api key allocated to the platform by the business. */
|
|
2393
|
+
"X-API-Key"?: components["parameters"]["x_api_key"];
|
|
2394
|
+
/** @description RFC 9421 HTTP Message Signature. Required when using HTTP Message Signatures for authentication. Format: `sig1=:<base64-signature>:`. */
|
|
2395
|
+
Signature?: components["parameters"]["signature"];
|
|
2396
|
+
/** @description RFC 9421 Signature-Input header. Required when using HTTP Message Signatures for authentication. Format: `sig1=("@method" "@path" ...);created=<timestamp>;keyid="<key-id>"`. */
|
|
2397
|
+
"Signature-Input"?: components["parameters"]["signature_input"];
|
|
2398
|
+
/** @description Body digest per RFC 9530. Required for requests/responses with a body. Format: `sha-256=:<base64-digest>:`. */
|
|
2399
|
+
"Content-Digest"?: components["parameters"]["content_digest"];
|
|
2400
|
+
/** @description For tracing the requests across network layers and components. */
|
|
2401
|
+
"Request-Id": components["parameters"]["request_id"];
|
|
2402
|
+
/** @description Identifies the user agent string making the call. */
|
|
2403
|
+
"User-Agent"?: components["parameters"]["user_agent"];
|
|
2404
|
+
/** @description Identifies the UCP agent making the call. All requests MUST include the UCP-Agent header containing the signer's profile URI using RFC 8941 Dictionary syntax. The URL MUST point to /.well-known/ucp. Format: profile="https://example.com/.well-known/ucp". */
|
|
2405
|
+
"UCP-Agent": components["parameters"]["ucp_agent"];
|
|
2406
|
+
/** @description Representation Metadata. Tells the receiver what the data in the message body actually is. */
|
|
2407
|
+
"Content-Type"?: components["parameters"]["content_type"];
|
|
2408
|
+
/** @description Content Negotiation. The client tells the server what data formats it is capable of understanding. */
|
|
2409
|
+
Accept?: components["parameters"]["accept"];
|
|
2410
|
+
/** @description Localization. Tells the receiver the user's preferred natural languages, often with "weights" or priorities. */
|
|
2411
|
+
"Accept-Language"?: components["parameters"]["accept_language"];
|
|
2412
|
+
/** @description Compression. The client tells the server which content-codings it supports, usually for compression. */
|
|
2413
|
+
"Accept-Encoding"?: components["parameters"]["accept_encoding"];
|
|
2414
|
+
};
|
|
2415
|
+
path?: never;
|
|
2416
|
+
cookie?: never;
|
|
2417
|
+
};
|
|
2418
|
+
requestBody: {
|
|
2419
|
+
content: {
|
|
2420
|
+
"application/json": components["schemas"]["search_request"];
|
|
2421
|
+
};
|
|
2422
|
+
};
|
|
2423
|
+
responses: {
|
|
2424
|
+
/** @description Search results */
|
|
2425
|
+
200: {
|
|
2426
|
+
headers: {
|
|
2427
|
+
Signature: components["headers"]["signature"];
|
|
2428
|
+
"Signature-Input": components["headers"]["signature_input"];
|
|
2429
|
+
"Content-Digest": components["headers"]["content_digest"];
|
|
2430
|
+
[name: string]: unknown;
|
|
2431
|
+
};
|
|
2432
|
+
content: {
|
|
2433
|
+
"application/json": components["schemas"]["search_response"];
|
|
2434
|
+
};
|
|
2435
|
+
};
|
|
2436
|
+
};
|
|
2437
|
+
};
|
|
2438
|
+
lookup_catalog: {
|
|
2439
|
+
parameters: {
|
|
2440
|
+
query?: never;
|
|
2441
|
+
header: {
|
|
2442
|
+
/** @description Should contain oauth token representing the following 2 schemes: 1. Platform self authenticating (client_credentials). 2. Platform authenticating on behalf of end user (authorization_code). */
|
|
2443
|
+
Authorization?: components["parameters"]["authorization"];
|
|
2444
|
+
/** @description Authenticates the platform with a reusable api key allocated to the platform by the business. */
|
|
2445
|
+
"X-API-Key"?: components["parameters"]["x_api_key"];
|
|
2446
|
+
/** @description RFC 9421 HTTP Message Signature. Required when using HTTP Message Signatures for authentication. Format: `sig1=:<base64-signature>:`. */
|
|
2447
|
+
Signature?: components["parameters"]["signature"];
|
|
2448
|
+
/** @description RFC 9421 Signature-Input header. Required when using HTTP Message Signatures for authentication. Format: `sig1=("@method" "@path" ...);created=<timestamp>;keyid="<key-id>"`. */
|
|
2449
|
+
"Signature-Input"?: components["parameters"]["signature_input"];
|
|
2450
|
+
/** @description Body digest per RFC 9530. Required for requests/responses with a body. Format: `sha-256=:<base64-digest>:`. */
|
|
2451
|
+
"Content-Digest"?: components["parameters"]["content_digest"];
|
|
2452
|
+
/** @description For tracing the requests across network layers and components. */
|
|
2453
|
+
"Request-Id": components["parameters"]["request_id"];
|
|
2454
|
+
/** @description Identifies the user agent string making the call. */
|
|
2455
|
+
"User-Agent"?: components["parameters"]["user_agent"];
|
|
2456
|
+
/** @description Identifies the UCP agent making the call. All requests MUST include the UCP-Agent header containing the signer's profile URI using RFC 8941 Dictionary syntax. The URL MUST point to /.well-known/ucp. Format: profile="https://example.com/.well-known/ucp". */
|
|
2457
|
+
"UCP-Agent": components["parameters"]["ucp_agent"];
|
|
2458
|
+
/** @description Representation Metadata. Tells the receiver what the data in the message body actually is. */
|
|
2459
|
+
"Content-Type"?: components["parameters"]["content_type"];
|
|
2460
|
+
/** @description Content Negotiation. The client tells the server what data formats it is capable of understanding. */
|
|
2461
|
+
Accept?: components["parameters"]["accept"];
|
|
2462
|
+
/** @description Localization. Tells the receiver the user's preferred natural languages, often with "weights" or priorities. */
|
|
2463
|
+
"Accept-Language"?: components["parameters"]["accept_language"];
|
|
2464
|
+
/** @description Compression. The client tells the server which content-codings it supports, usually for compression. */
|
|
2465
|
+
"Accept-Encoding"?: components["parameters"]["accept_encoding"];
|
|
2466
|
+
};
|
|
2467
|
+
path?: never;
|
|
2468
|
+
cookie?: never;
|
|
2469
|
+
};
|
|
2470
|
+
requestBody: {
|
|
2471
|
+
content: {
|
|
2472
|
+
"application/json": components["schemas"]["lookup_request"];
|
|
2473
|
+
};
|
|
2474
|
+
};
|
|
2475
|
+
responses: {
|
|
2476
|
+
/** @description Lookup result */
|
|
2477
|
+
200: {
|
|
2478
|
+
headers: {
|
|
2479
|
+
Signature: components["headers"]["signature"];
|
|
2480
|
+
"Signature-Input": components["headers"]["signature_input"];
|
|
2481
|
+
"Content-Digest": components["headers"]["content_digest"];
|
|
2482
|
+
[name: string]: unknown;
|
|
2483
|
+
};
|
|
2484
|
+
content: {
|
|
2485
|
+
"application/json": components["schemas"]["lookup_response"];
|
|
2486
|
+
};
|
|
2487
|
+
};
|
|
2488
|
+
};
|
|
2489
|
+
};
|
|
2490
|
+
get_order: {
|
|
2491
|
+
parameters: {
|
|
2492
|
+
query?: never;
|
|
2493
|
+
header: {
|
|
2494
|
+
/** @description Should contain oauth token representing the following 2 schemes: 1. Platform self authenticating (client_credentials). 2. Platform authenticating on behalf of end user (authorization_code). */
|
|
2495
|
+
Authorization?: components["parameters"]["authorization"];
|
|
2496
|
+
/** @description Authenticates the platform with a reusable api key allocated to the platform by the business. */
|
|
2497
|
+
"X-API-Key"?: components["parameters"]["x_api_key"];
|
|
2498
|
+
/** @description RFC 9421 HTTP Message Signature. Required when using HTTP Message Signatures for authentication. Format: `sig1=:<base64-signature>:`. */
|
|
2499
|
+
Signature?: components["parameters"]["signature"];
|
|
2500
|
+
/** @description RFC 9421 Signature-Input header. Required when using HTTP Message Signatures for authentication. Format: `sig1=("@method" "@path" ...);created=<timestamp>;keyid="<key-id>"`. */
|
|
2501
|
+
"Signature-Input"?: components["parameters"]["signature_input"];
|
|
2502
|
+
/** @description For tracing the requests across network layers and components. */
|
|
2503
|
+
"Request-Id": components["parameters"]["request_id"];
|
|
2504
|
+
/** @description Identifies the user agent string making the call. */
|
|
2505
|
+
"User-Agent"?: components["parameters"]["user_agent"];
|
|
2506
|
+
/** @description Identifies the UCP agent making the call. All requests MUST include the UCP-Agent header containing the signer's profile URI using RFC 8941 Dictionary syntax. The URL MUST point to /.well-known/ucp. Format: profile="https://example.com/.well-known/ucp". */
|
|
2507
|
+
"UCP-Agent": components["parameters"]["ucp_agent"];
|
|
2508
|
+
/** @description Representation Metadata. Tells the receiver what the data in the message body actually is. */
|
|
2509
|
+
"Content-Type"?: components["parameters"]["content_type"];
|
|
2510
|
+
/** @description Content Negotiation. The client tells the server what data formats it is capable of understanding. */
|
|
2511
|
+
Accept?: components["parameters"]["accept"];
|
|
2512
|
+
/** @description Localization. Tells the receiver the user's preferred natural languages, often with "weights" or priorities. */
|
|
2513
|
+
"Accept-Language"?: components["parameters"]["accept_language"];
|
|
2514
|
+
/** @description Compression. The client tells the server which content-codings it supports, usually for compression. */
|
|
2515
|
+
"Accept-Encoding"?: components["parameters"]["accept_encoding"];
|
|
2516
|
+
};
|
|
2517
|
+
path: {
|
|
2518
|
+
/** @description The unique identifier of the order. */
|
|
2519
|
+
id: components["parameters"]["order_id_path"];
|
|
2520
|
+
};
|
|
2521
|
+
cookie?: never;
|
|
2522
|
+
};
|
|
2523
|
+
requestBody?: never;
|
|
2524
|
+
responses: {
|
|
2525
|
+
/** @description Order retrieved or business outcome message */
|
|
2526
|
+
200: {
|
|
2527
|
+
headers: {
|
|
2528
|
+
Signature: components["headers"]["signature"];
|
|
2529
|
+
"Signature-Input": components["headers"]["signature_input"];
|
|
2530
|
+
"Content-Digest": components["headers"]["content_digest"];
|
|
2531
|
+
[name: string]: unknown;
|
|
2532
|
+
};
|
|
2533
|
+
content: {
|
|
2534
|
+
"application/json": components["schemas"]["order_response"];
|
|
2535
|
+
};
|
|
2536
|
+
};
|
|
2537
|
+
};
|
|
2538
|
+
};
|
|
2539
|
+
get_product: {
|
|
2540
|
+
parameters: {
|
|
2541
|
+
query?: never;
|
|
2542
|
+
header: {
|
|
2543
|
+
/** @description Should contain oauth token representing the following 2 schemes: 1. Platform self authenticating (client_credentials). 2. Platform authenticating on behalf of end user (authorization_code). */
|
|
2544
|
+
Authorization?: components["parameters"]["authorization"];
|
|
2545
|
+
/** @description Authenticates the platform with a reusable api key allocated to the platform by the business. */
|
|
2546
|
+
"X-API-Key"?: components["parameters"]["x_api_key"];
|
|
2547
|
+
/** @description RFC 9421 HTTP Message Signature. Required when using HTTP Message Signatures for authentication. Format: `sig1=:<base64-signature>:`. */
|
|
2548
|
+
Signature?: components["parameters"]["signature"];
|
|
2549
|
+
/** @description RFC 9421 Signature-Input header. Required when using HTTP Message Signatures for authentication. Format: `sig1=("@method" "@path" ...);created=<timestamp>;keyid="<key-id>"`. */
|
|
2550
|
+
"Signature-Input"?: components["parameters"]["signature_input"];
|
|
2551
|
+
/** @description Body digest per RFC 9530. Required for requests/responses with a body. Format: `sha-256=:<base64-digest>:`. */
|
|
2552
|
+
"Content-Digest"?: components["parameters"]["content_digest"];
|
|
2553
|
+
/** @description For tracing the requests across network layers and components. */
|
|
2554
|
+
"Request-Id": components["parameters"]["request_id"];
|
|
2555
|
+
/** @description Identifies the user agent string making the call. */
|
|
2556
|
+
"User-Agent"?: components["parameters"]["user_agent"];
|
|
2557
|
+
/** @description Identifies the UCP agent making the call. All requests MUST include the UCP-Agent header containing the signer's profile URI using RFC 8941 Dictionary syntax. The URL MUST point to /.well-known/ucp. Format: profile="https://example.com/.well-known/ucp". */
|
|
2558
|
+
"UCP-Agent": components["parameters"]["ucp_agent"];
|
|
2559
|
+
/** @description Representation Metadata. Tells the receiver what the data in the message body actually is. */
|
|
2560
|
+
"Content-Type"?: components["parameters"]["content_type"];
|
|
2561
|
+
/** @description Content Negotiation. The client tells the server what data formats it is capable of understanding. */
|
|
2562
|
+
Accept?: components["parameters"]["accept"];
|
|
2563
|
+
/** @description Localization. Tells the receiver the user's preferred natural languages, often with "weights" or priorities. */
|
|
2564
|
+
"Accept-Language"?: components["parameters"]["accept_language"];
|
|
2565
|
+
/** @description Compression. The client tells the server which content-codings it supports, usually for compression. */
|
|
2566
|
+
"Accept-Encoding"?: components["parameters"]["accept_encoding"];
|
|
2567
|
+
};
|
|
2568
|
+
path?: never;
|
|
2569
|
+
cookie?: never;
|
|
2570
|
+
};
|
|
2571
|
+
requestBody: {
|
|
2572
|
+
content: {
|
|
2573
|
+
"application/json": components["schemas"]["get_product_request"];
|
|
2574
|
+
};
|
|
2575
|
+
};
|
|
2576
|
+
responses: {
|
|
2577
|
+
/** @description Product detail */
|
|
2578
|
+
200: {
|
|
2579
|
+
headers: {
|
|
2580
|
+
Signature: components["headers"]["signature"];
|
|
2581
|
+
"Signature-Input": components["headers"]["signature_input"];
|
|
2582
|
+
"Content-Digest": components["headers"]["content_digest"];
|
|
2583
|
+
[name: string]: unknown;
|
|
2584
|
+
};
|
|
2585
|
+
content: {
|
|
2586
|
+
"application/json": components["schemas"]["catalog_get_product_response"];
|
|
2587
|
+
};
|
|
2588
|
+
};
|
|
2589
|
+
};
|
|
2590
|
+
};
|
|
2591
|
+
order_event_webhook: {
|
|
2592
|
+
parameters: {
|
|
2593
|
+
query?: never;
|
|
2594
|
+
header: {
|
|
2595
|
+
/** @description RFC 9421 HTTP Message Signature. Required when using HTTP Message Signatures for authentication. Format: `sig1=:<base64-signature>:`. */
|
|
2596
|
+
Signature?: components["parameters"]["signature"];
|
|
2597
|
+
/** @description RFC 9421 Signature-Input header. Required when using HTTP Message Signatures for authentication. Format: `sig1=("@method" "@path" ...);created=<timestamp>;keyid="<key-id>"`. */
|
|
2598
|
+
"Signature-Input"?: components["parameters"]["signature_input"];
|
|
2599
|
+
/** @description Body digest per RFC 9530. Required for requests/responses with a body. Format: `sha-256=:<base64-digest>:`. */
|
|
2600
|
+
"Content-Digest"?: components["parameters"]["content_digest"];
|
|
2601
|
+
/** @description Identifies the UCP agent making the call. All requests MUST include the UCP-Agent header containing the signer's profile URI using RFC 8941 Dictionary syntax. The URL MUST point to /.well-known/ucp. Format: profile="https://example.com/.well-known/ucp". */
|
|
2602
|
+
"UCP-Agent": components["parameters"]["ucp_agent"];
|
|
2603
|
+
/** @description Authenticates the platform with a reusable api key allocated to the platform by the business. */
|
|
2604
|
+
"X-API-Key"?: components["parameters"]["x_api_key"];
|
|
2605
|
+
/** @description Webhook event occurrence unix timestamp (seconds since epoch). */
|
|
2606
|
+
"Webhook-Timestamp": components["parameters"]["webhook_timestamp"];
|
|
2607
|
+
/** @description The unique identifier of a webhook event. */
|
|
2608
|
+
"Webhook-Id": components["parameters"]["webhook_id"];
|
|
2609
|
+
};
|
|
2610
|
+
path?: never;
|
|
2611
|
+
cookie?: never;
|
|
2612
|
+
};
|
|
2613
|
+
requestBody: {
|
|
2614
|
+
content: {
|
|
2615
|
+
"application/json": components["schemas"]["order"];
|
|
2616
|
+
};
|
|
2617
|
+
};
|
|
2618
|
+
responses: {
|
|
2619
|
+
/** @description Event received and acknowledged */
|
|
2620
|
+
200: {
|
|
2621
|
+
headers: {
|
|
2622
|
+
[name: string]: unknown;
|
|
2623
|
+
};
|
|
2624
|
+
content: {
|
|
2625
|
+
"application/json": {
|
|
2626
|
+
ucp: components["schemas"]["ucp"];
|
|
2627
|
+
};
|
|
2628
|
+
};
|
|
2629
|
+
};
|
|
2630
|
+
};
|
|
2631
|
+
};
|
|
2632
|
+
}
|