@datalayer/agent-runtimes 1.3.111 → 1.3.112

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.
Files changed (44) hide show
  1. package/dist-embed/datalayer-app-main.js +4 -4
  2. package/lib/apps/apps/appspec.js +2 -0
  3. package/lib/apps/apps/checks.js +10 -6
  4. package/lib/examples/PapSignInDisplayExample.d.ts +4 -0
  5. package/lib/examples/PapSignInDisplayExample.js +23 -0
  6. package/lib/examples/example-selector.js +1 -0
  7. package/lib/examples/index.d.ts +1 -0
  8. package/lib/examples/index.js +1 -0
  9. package/lib/examples/main.js +2 -0
  10. package/lib/examples/pap/PapSignInDisplayView.d.ts +15 -0
  11. package/lib/examples/pap/PapSignInDisplayView.js +49 -0
  12. package/lib/examples/pap/PapTraceView.d.ts +2 -3
  13. package/lib/examples/pap/PapTraceView.js +3 -4
  14. package/lib/examples/pap/papSignInCases.d.ts +12 -0
  15. package/lib/examples/pap/papSignInCases.js +88 -0
  16. package/lib/protocols/a2a/index.d.ts +52 -0
  17. package/lib/protocols/a2a/index.js +164 -0
  18. package/lib/protocols/agentProtocols.d.ts +15 -0
  19. package/lib/protocols/agentProtocols.js +47 -0
  20. package/lib/protocols/agentic-commerce/index.d.ts +86 -0
  21. package/lib/protocols/agentic-commerce/index.js +267 -0
  22. package/lib/protocols/agentic-commerce/models.d.ts +3292 -0
  23. package/lib/protocols/agentic-commerce/models.js +10 -0
  24. package/lib/protocols/commerce.d.ts +42 -0
  25. package/lib/protocols/commerce.js +47 -0
  26. package/lib/protocols/core.d.ts +44 -0
  27. package/lib/protocols/core.js +62 -0
  28. package/lib/protocols/mcp/index.d.ts +4 -0
  29. package/lib/protocols/mcp/index.js +37 -0
  30. package/lib/protocols/pact/index.d.ts +139 -0
  31. package/lib/protocols/pact/index.js +357 -0
  32. package/lib/protocols/ucp/index.d.ts +79 -0
  33. package/lib/protocols/ucp/index.js +277 -0
  34. package/lib/protocols/web-bot-auth/index.d.ts +161 -0
  35. package/lib/protocols/web-bot-auth/index.js +427 -0
  36. package/lib/specs/actions.js +4 -0
  37. package/lib/specs/apps.d.ts +2 -0
  38. package/lib/specs/apps.js +481 -0
  39. package/lib/specs/appspecSchema.js +200 -2
  40. package/lib/types/agentspecs.d.ts +2 -0
  41. package/package.json +4 -1
  42. package/scripts/codegen/generate_agentic_commerce.sh +74 -0
  43. package/scripts/codegen/generate_apps.py +11 -0
  44. package/scripts/validate_pap_examples.py +27 -2
@@ -0,0 +1,3292 @@
1
+ export declare const AGENTIC_COMMERCE_VERSION = "2026-04-17";
2
+ /**
3
+ * Optional affiliate attribution data for crediting third-party publishers. Write-only: not returned in responses. Forward compatibility: Servers SHOULD ignore unknown fields to support future extensions (per RFC §8.2).
4
+ *
5
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
6
+ * via the `definition` "AffiliateAttribution".
7
+ */
8
+ export type AffiliateAttribution = AffiliateAttribution1 & {
9
+ /**
10
+ * Identifier for the attribution provider / affiliate network namespace (e.g., 'impact.com').
11
+ */
12
+ provider: string;
13
+ /**
14
+ * Opaque provider-issued token for fraud-resistant validation. Treat as secret.
15
+ */
16
+ token?: string;
17
+ /**
18
+ * Provider-scoped affiliate/publisher identifier. Required if token is omitted.
19
+ */
20
+ publisher_id?: string;
21
+ /**
22
+ * Provider-scoped campaign identifier.
23
+ */
24
+ campaign_id?: string;
25
+ /**
26
+ * Provider-scoped creative identifier.
27
+ */
28
+ creative_id?: string;
29
+ /**
30
+ * Provider-scoped sub-tracking identifier.
31
+ */
32
+ sub_id?: string;
33
+ source?: AffiliateAttributionSource;
34
+ /**
35
+ * RFC3339 timestamp when the attribution token was issued.
36
+ */
37
+ issued_at?: string;
38
+ /**
39
+ * RFC3339 timestamp when the attribution token expires.
40
+ */
41
+ expires_at?: string;
42
+ metadata?: AffiliateAttributionMetadata;
43
+ /**
44
+ * Attribution touchpoint type. Use 'first' when capturing at session creation, 'last' when capturing at completion. Enables multi-touch attribution models.
45
+ */
46
+ touchpoint?: 'first' | 'last';
47
+ };
48
+ export type AffiliateAttribution1 = {
49
+ [k: string]: unknown | undefined;
50
+ };
51
+ /**
52
+ * Payment instrument data collected from the buyer (e.g., card details, wallet tokens)
53
+ *
54
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
55
+ * via the `definition` "PaymentData".
56
+ */
57
+ export type PaymentData = PaymentData1 & {
58
+ /**
59
+ * ID of the payment handler to use
60
+ */
61
+ handler_id?: string;
62
+ /**
63
+ * Payment instrument details
64
+ */
65
+ instrument?: {
66
+ /**
67
+ * Instrument type (e.g., card, wallet_token)
68
+ */
69
+ type: string;
70
+ /**
71
+ * Payment credential
72
+ */
73
+ credential: {
74
+ /**
75
+ * Credential type (e.g., spt, wallet_token)
76
+ */
77
+ type: string;
78
+ /**
79
+ * Credential token value
80
+ */
81
+ token: string;
82
+ };
83
+ };
84
+ billing_address?: Address3;
85
+ /**
86
+ * Purchase order number
87
+ */
88
+ purchase_order_number?: string;
89
+ /**
90
+ * Payment terms for B2B transactions
91
+ */
92
+ payment_terms?: 'immediate' | 'net_15' | 'net_30' | 'net_60' | 'net_90';
93
+ /**
94
+ * RFC 3339 timestamp when payment is due
95
+ */
96
+ due_date?: string;
97
+ /**
98
+ * Whether this payment requires approval
99
+ */
100
+ approval_required?: boolean;
101
+ };
102
+ export type PaymentData1 = {
103
+ [k: string]: unknown | undefined;
104
+ };
105
+ /**
106
+ * Error codes for rejected discount codes, used in messages[].code.
107
+ *
108
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
109
+ * via the `definition` "DiscountErrorCode".
110
+ */
111
+ export type DiscountErrorCode = 'discount_code_expired' | 'discount_code_invalid' | 'discount_code_already_applied' | 'discount_code_combination_disallowed' | 'discount_code_minimum_not_met' | 'discount_code_user_not_logged_in' | 'discount_code_user_ineligible' | 'discount_code_usage_limit_reached';
112
+ /**
113
+ * Agent-provided authentication results returned to the seller for card-based 3D Secure.
114
+ *
115
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
116
+ * via the `definition` "AuthenticationResult".
117
+ */
118
+ export type AuthenticationResult = {
119
+ [k: string]: unknown | undefined;
120
+ } & {
121
+ /**
122
+ * The outcome of this 3DS Authentication.
123
+ */
124
+ outcome: 'abandoned' | 'attempt_acknowledged' | 'authenticated' | 'canceled' | 'denied' | 'informational' | 'internal_error' | 'not_supported' | 'processing_error' | 'rejected';
125
+ /**
126
+ * Detailed authentication data. This field is required when the outcome is 'authenticated', 'informational', or 'attempt_acknowledged'.
127
+ */
128
+ outcome_details?: {
129
+ /**
130
+ * The 3DS cryptogram (authentication value / AAV/CAVV/AEVV). This value is 20 bytes, base64-encoded into a 28-character string.
131
+ */
132
+ three_ds_cryptogram: string;
133
+ /**
134
+ * Electronic Commerce Indicator (ECI) returned by the 3D Secure provider. Indicates the degree/type of authentication performed.
135
+ */
136
+ electronic_commerce_indicator: '01' | '02' | '05' | '06' | '07';
137
+ /**
138
+ * Transaction identifier returned by the 3DS system:
139
+ * - For 3DS1: the XID
140
+ * - For 3DS2: the Directory Server Transaction ID (dsTransID)
141
+ */
142
+ transaction_id: string;
143
+ /**
144
+ * The 3D Secure version used for this authentication (for example '1.0.2' or '2.2.0').
145
+ */
146
+ version: string;
147
+ };
148
+ };
149
+ /**
150
+ * Checkout session response model
151
+ *
152
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
153
+ * via the `definition` "CheckoutSession".
154
+ */
155
+ export type CheckoutSession = CheckoutSessionBase;
156
+ /**
157
+ * Checkout session response after completion, includes the created order
158
+ *
159
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
160
+ * via the `definition` "CheckoutSessionWithOrder".
161
+ */
162
+ export type CheckoutSessionWithOrder = CheckoutSessionBase & {
163
+ order: Order1;
164
+ };
165
+ /**
166
+ * Affiliate attribution data for first-touch tracking
167
+ */
168
+ export type AffiliateAttribution2 = {
169
+ [k: string]: unknown | undefined;
170
+ } & {
171
+ /**
172
+ * Identifier for the attribution provider / affiliate network namespace (e.g., 'impact.com').
173
+ */
174
+ provider: string;
175
+ /**
176
+ * Opaque provider-issued token for fraud-resistant validation. Treat as secret.
177
+ */
178
+ token?: string;
179
+ /**
180
+ * Provider-scoped affiliate/publisher identifier. Required if token is omitted.
181
+ */
182
+ publisher_id?: string;
183
+ /**
184
+ * Provider-scoped campaign identifier.
185
+ */
186
+ campaign_id?: string;
187
+ /**
188
+ * Provider-scoped creative identifier.
189
+ */
190
+ creative_id?: string;
191
+ /**
192
+ * Provider-scoped sub-tracking identifier.
193
+ */
194
+ sub_id?: string;
195
+ source?: AffiliateAttributionSource;
196
+ /**
197
+ * RFC3339 timestamp when the attribution token was issued.
198
+ */
199
+ issued_at?: string;
200
+ /**
201
+ * RFC3339 timestamp when the attribution token expires.
202
+ */
203
+ expires_at?: string;
204
+ metadata?: AffiliateAttributionMetadata;
205
+ /**
206
+ * Attribution touchpoint type. Use 'first' when capturing at session creation, 'last' when capturing at completion. Enables multi-touch attribution models.
207
+ */
208
+ touchpoint?: 'first' | 'last';
209
+ };
210
+ /**
211
+ * Payment method and details
212
+ */
213
+ export type PaymentData2 = {
214
+ [k: string]: unknown | undefined;
215
+ } & {
216
+ /**
217
+ * ID of the payment handler to use
218
+ */
219
+ handler_id?: string;
220
+ /**
221
+ * Payment instrument details
222
+ */
223
+ instrument?: {
224
+ /**
225
+ * Instrument type (e.g., card, wallet_token)
226
+ */
227
+ type: string;
228
+ /**
229
+ * Payment credential
230
+ */
231
+ credential: {
232
+ /**
233
+ * Credential type (e.g., spt, wallet_token)
234
+ */
235
+ type: string;
236
+ /**
237
+ * Credential token value
238
+ */
239
+ token: string;
240
+ };
241
+ };
242
+ billing_address?: Address3;
243
+ /**
244
+ * Purchase order number
245
+ */
246
+ purchase_order_number?: string;
247
+ /**
248
+ * Payment terms for B2B transactions
249
+ */
250
+ payment_terms?: 'immediate' | 'net_15' | 'net_30' | 'net_60' | 'net_90';
251
+ /**
252
+ * RFC 3339 timestamp when payment is due
253
+ */
254
+ due_date?: string;
255
+ /**
256
+ * Whether this payment requires approval
257
+ */
258
+ approval_required?: boolean;
259
+ };
260
+ /**
261
+ * Authentication result for 3DS flows
262
+ */
263
+ export type AuthenticationResult1 = {
264
+ [k: string]: unknown | undefined;
265
+ } & {
266
+ /**
267
+ * The outcome of this 3DS Authentication.
268
+ */
269
+ outcome: 'abandoned' | 'attempt_acknowledged' | 'authenticated' | 'canceled' | 'denied' | 'informational' | 'internal_error' | 'not_supported' | 'processing_error' | 'rejected';
270
+ /**
271
+ * Detailed authentication data. This field is required when the outcome is 'authenticated', 'informational', or 'attempt_acknowledged'.
272
+ */
273
+ outcome_details?: {
274
+ /**
275
+ * The 3DS cryptogram (authentication value / AAV/CAVV/AEVV). This value is 20 bytes, base64-encoded into a 28-character string.
276
+ */
277
+ three_ds_cryptogram: string;
278
+ /**
279
+ * Electronic Commerce Indicator (ECI) returned by the 3D Secure provider. Indicates the degree/type of authentication performed.
280
+ */
281
+ electronic_commerce_indicator: '01' | '02' | '05' | '06' | '07';
282
+ /**
283
+ * Transaction identifier returned by the 3DS system:
284
+ * - For 3DS1: the XID
285
+ * - For 3DS2: the Directory Server Transaction ID (dsTransID)
286
+ */
287
+ transaction_id: string;
288
+ /**
289
+ * The 3D Secure version used for this authentication (for example '1.0.2' or '2.2.0').
290
+ */
291
+ version: string;
292
+ };
293
+ };
294
+ /**
295
+ * Affiliate attribution data for last-touch tracking
296
+ */
297
+ export type AffiliateAttribution3 = {
298
+ [k: string]: unknown | undefined;
299
+ } & {
300
+ /**
301
+ * Identifier for the attribution provider / affiliate network namespace (e.g., 'impact.com').
302
+ */
303
+ provider: string;
304
+ /**
305
+ * Opaque provider-issued token for fraud-resistant validation. Treat as secret.
306
+ */
307
+ token?: string;
308
+ /**
309
+ * Provider-scoped affiliate/publisher identifier. Required if token is omitted.
310
+ */
311
+ publisher_id?: string;
312
+ /**
313
+ * Provider-scoped campaign identifier.
314
+ */
315
+ campaign_id?: string;
316
+ /**
317
+ * Provider-scoped creative identifier.
318
+ */
319
+ creative_id?: string;
320
+ /**
321
+ * Provider-scoped sub-tracking identifier.
322
+ */
323
+ sub_id?: string;
324
+ source?: AffiliateAttributionSource;
325
+ /**
326
+ * RFC3339 timestamp when the attribution token was issued.
327
+ */
328
+ issued_at?: string;
329
+ /**
330
+ * RFC3339 timestamp when the attribution token expires.
331
+ */
332
+ expires_at?: string;
333
+ metadata?: AffiliateAttributionMetadata;
334
+ /**
335
+ * Attribution touchpoint type. Use 'first' when capturing at session creation, 'last' when capturing at completion. Enables multi-touch attribution models.
336
+ */
337
+ touchpoint?: 'first' | 'last';
338
+ };
339
+ export interface AgenticCheckoutSchemaBundle {
340
+ VariantOption?: VariantOption;
341
+ WeightInfo?: WeightInfo;
342
+ DimensionsInfo?: DimensionsInfo;
343
+ DiscountDetail?: DiscountDetail;
344
+ Address?: Address;
345
+ AffiliateAttributionSource?: AffiliateAttributionSource;
346
+ AffiliateAttributionMetadata?: AffiliateAttributionMetadata;
347
+ AffiliateAttribution?: AffiliateAttribution;
348
+ FulfillmentDetails?: FulfillmentDetails;
349
+ CompanyInfo?: CompanyInfo;
350
+ LoyaltyInfo?: LoyaltyInfo;
351
+ TaxExemption?: TaxExemption;
352
+ Buyer?: Buyer;
353
+ InterventionCapabilities?: InterventionCapabilities;
354
+ Capabilities?: Capabilities;
355
+ ExtensionDeclaration?: ExtensionDeclaration;
356
+ PaymentMethodObject?: PaymentMethodObject;
357
+ Item?: Item;
358
+ Disclosure?: Disclosure;
359
+ CustomAttribute?: CustomAttribute;
360
+ MarketplaceSellerDetails?: MarketplaceSellerDetails;
361
+ PaymentHandler?: PaymentHandler;
362
+ Payment?: Payment;
363
+ LineItem?: LineItem;
364
+ TaxBreakdownItem?: TaxBreakdownItem;
365
+ Total?: Total;
366
+ FulfillmentOptionPickup?: FulfillmentOptionPickup;
367
+ FulfillmentOptionLocalDelivery?: FulfillmentOptionLocalDelivery;
368
+ FulfillmentOptionShipping?: FulfillmentOptionShipping;
369
+ FulfillmentOptionDigital?: FulfillmentOptionDigital;
370
+ SelectedFulfillmentOption?: SelectedFulfillmentOption;
371
+ GiftWrap?: GiftWrap;
372
+ SplitPayment?: SplitPayment;
373
+ FulfillmentGroup?: FulfillmentGroup;
374
+ EstimatedDelivery?: EstimatedDelivery;
375
+ OrderConfirmation?: OrderConfirmation;
376
+ SupportInfo?: SupportInfo;
377
+ MessageInfo?: MessageInfo;
378
+ MessageWarning?: MessageWarning;
379
+ MessageError?: MessageError;
380
+ Link?: Link;
381
+ PaymentData?: PaymentData;
382
+ ProtocolVersion?: ProtocolVersion;
383
+ DiscountAllocation?: DiscountAllocation;
384
+ Coupon?: Coupon;
385
+ AppliedDiscount?: AppliedDiscount;
386
+ DiscountsRequest?: DiscountsRequest;
387
+ DiscountsResponse?: DiscountsResponse;
388
+ RejectedDiscount?: RejectedDiscount;
389
+ DiscountErrorCode?: DiscountErrorCode;
390
+ PaymentResponse?: PaymentResponse;
391
+ RiskSignals?: RiskSignals;
392
+ Order?: Order;
393
+ OrderLineItem?: OrderLineItem;
394
+ OrderLineItemQuantity?: OrderLineItemQuantity;
395
+ LineItemReference?: LineItemReference;
396
+ Fulfillment?: Fulfillment;
397
+ FulfillmentEvent?: FulfillmentEvent;
398
+ Adjustment?: Adjustment;
399
+ AuthenticationMetadata?: AuthenticationMetadata;
400
+ AuthenticationResult?: AuthenticationResult;
401
+ MarketingConsentOption?: MarketingConsentOption;
402
+ MarketingConsent?: MarketingConsent;
403
+ CheckoutSessionBase?: CheckoutSessionBase;
404
+ CheckoutSession?: CheckoutSession;
405
+ CheckoutSessionWithOrder?: CheckoutSessionWithOrder;
406
+ CheckoutSessionCreateRequest?: CheckoutSessionCreateRequest;
407
+ CheckoutSessionUpdateRequest?: CheckoutSessionUpdateRequest;
408
+ CheckoutSessionCompleteRequest?: CheckoutSessionCompleteRequest;
409
+ IntentTrace?: IntentTrace;
410
+ CancelSessionRequest?: CancelSessionRequest;
411
+ DiscoveryResponse?: DiscoveryResponse;
412
+ DiscoveryCapabilities?: DiscoveryCapabilities;
413
+ DiscoveryProtocol?: DiscoveryProtocol;
414
+ DiscoveryExtension?: DiscoveryExtension;
415
+ Error?: Error;
416
+ }
417
+ /**
418
+ * Represents a single variant option for a product (e.g., size, color, material)
419
+ *
420
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
421
+ * via the `definition` "VariantOption".
422
+ */
423
+ export interface VariantOption {
424
+ /**
425
+ * Variant attribute name (e.g., 'Size', 'Color')
426
+ */
427
+ name: string;
428
+ /**
429
+ * Variant attribute value (e.g., 'Large', 'Blue')
430
+ */
431
+ value: string;
432
+ }
433
+ /**
434
+ * Product weight with unit of measurement
435
+ *
436
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
437
+ * via the `definition` "WeightInfo".
438
+ */
439
+ export interface WeightInfo {
440
+ /**
441
+ * Numeric weight value
442
+ */
443
+ value: number;
444
+ /**
445
+ * Unit of measurement for weight
446
+ */
447
+ unit: 'g' | 'kg' | 'oz' | 'lb';
448
+ }
449
+ /**
450
+ * Physical dimensions of a product with unit of measurement
451
+ *
452
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
453
+ * via the `definition` "DimensionsInfo".
454
+ */
455
+ export interface DimensionsInfo {
456
+ /**
457
+ * Length dimension
458
+ */
459
+ length: number;
460
+ /**
461
+ * Width dimension
462
+ */
463
+ width: number;
464
+ /**
465
+ * Height dimension
466
+ */
467
+ height: number;
468
+ /**
469
+ * Unit of measurement for dimensions
470
+ */
471
+ unit: 'cm' | 'in';
472
+ }
473
+ /**
474
+ * Information about a discount applied to the checkout or a specific item
475
+ *
476
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
477
+ * via the `definition` "DiscountDetail".
478
+ */
479
+ export interface DiscountDetail {
480
+ /**
481
+ * Discount code if applicable
482
+ */
483
+ code?: string;
484
+ /**
485
+ * Type of discount
486
+ */
487
+ type: 'percentage' | 'fixed' | 'bogo' | 'volume';
488
+ /**
489
+ * Discount amount in minor currency units (e.g. 100 cents for $1.00 or 100 for ¥100)
490
+ */
491
+ amount: number;
492
+ /**
493
+ * Human-readable discount description
494
+ */
495
+ description?: string;
496
+ /**
497
+ * Source of the discount
498
+ */
499
+ source?: 'coupon' | 'automatic' | 'loyalty';
500
+ }
501
+ /**
502
+ * Physical address for shipping, billing, or pickup locations
503
+ *
504
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
505
+ * via the `definition` "Address".
506
+ */
507
+ export interface Address {
508
+ /**
509
+ * Recipient name for this address
510
+ */
511
+ name: string;
512
+ /**
513
+ * Primary street address line
514
+ */
515
+ line_one: string;
516
+ /**
517
+ * Secondary address line (apartment, suite, etc.)
518
+ */
519
+ line_two?: string;
520
+ /**
521
+ * City name
522
+ */
523
+ city: string;
524
+ /**
525
+ * State or province code
526
+ */
527
+ state: string;
528
+ /**
529
+ * ISO 3166-1 alpha-2 country code
530
+ */
531
+ country: string;
532
+ /**
533
+ * Postal or ZIP code
534
+ */
535
+ postal_code: string;
536
+ /**
537
+ * Postal or ZIP code
538
+ */
539
+ company?: string;
540
+ }
541
+ /**
542
+ * Context about where the attribution originated.
543
+ *
544
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
545
+ * via the `definition` "AffiliateAttributionSource".
546
+ */
547
+ export interface AffiliateAttributionSource {
548
+ /**
549
+ * The type of attribution source.
550
+ */
551
+ type: 'url' | 'platform' | 'unknown';
552
+ /**
553
+ * Canonical content URL when type is 'url'.
554
+ */
555
+ url?: string;
556
+ }
557
+ /**
558
+ * Flat key/value map for additional non-sensitive context. Keys must be strings; values must be strings, numbers, or booleans. Arrays and nested objects are NOT permitted.
559
+ *
560
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
561
+ * via the `definition` "AffiliateAttributionMetadata".
562
+ */
563
+ export interface AffiliateAttributionMetadata {
564
+ [k: string]: (string | number | boolean) | undefined;
565
+ }
566
+ /**
567
+ * Details about how items will be fulfilled (shipping, pickup, or delivery information)
568
+ *
569
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
570
+ * via the `definition` "FulfillmentDetails".
571
+ */
572
+ export interface FulfillmentDetails {
573
+ /**
574
+ * Full name for fulfillment contact
575
+ */
576
+ name?: string;
577
+ /**
578
+ * Contact phone number. E.164 format recommended (e.g., +15551234567) for global interoperability and SMS/delivery carrier systems.
579
+ */
580
+ phone_number?: string;
581
+ /**
582
+ * Contact email address
583
+ */
584
+ email?: string;
585
+ address?: Address1;
586
+ }
587
+ /**
588
+ * Fulfillment address
589
+ */
590
+ export interface Address1 {
591
+ /**
592
+ * Recipient name for this address
593
+ */
594
+ name: string;
595
+ /**
596
+ * Primary street address line
597
+ */
598
+ line_one: string;
599
+ /**
600
+ * Secondary address line (apartment, suite, etc.)
601
+ */
602
+ line_two?: string;
603
+ /**
604
+ * City name
605
+ */
606
+ city: string;
607
+ /**
608
+ * State or province code
609
+ */
610
+ state: string;
611
+ /**
612
+ * ISO 3166-1 alpha-2 country code
613
+ */
614
+ country: string;
615
+ /**
616
+ * Postal or ZIP code
617
+ */
618
+ postal_code: string;
619
+ /**
620
+ * Postal or ZIP code
621
+ */
622
+ company?: string;
623
+ }
624
+ /**
625
+ * Information about a company or organization associated with the buyer
626
+ *
627
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
628
+ * via the `definition` "CompanyInfo".
629
+ */
630
+ export interface CompanyInfo {
631
+ /**
632
+ * Company or organization name
633
+ */
634
+ name: string;
635
+ /**
636
+ * Business tax identification number
637
+ */
638
+ tax_id?: string;
639
+ /**
640
+ * Department within the organization
641
+ */
642
+ department?: string;
643
+ /**
644
+ * Cost center code for internal accounting
645
+ */
646
+ cost_center?: string;
647
+ }
648
+ /**
649
+ * Loyalty program information including membership details and rewards balance
650
+ *
651
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
652
+ * via the `definition` "LoyaltyInfo".
653
+ */
654
+ export interface LoyaltyInfo {
655
+ /**
656
+ * Loyalty program tier level
657
+ */
658
+ tier?: string;
659
+ /**
660
+ * Current loyalty points balance
661
+ */
662
+ points_balance?: number;
663
+ /**
664
+ * RFC 3339 timestamp when the customer joined the loyalty program
665
+ */
666
+ member_since?: string;
667
+ }
668
+ /**
669
+ * Tax exemption information including exemption type and applicable regions
670
+ *
671
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
672
+ * via the `definition` "TaxExemption".
673
+ */
674
+ export interface TaxExemption {
675
+ /**
676
+ * Unique identifier for the tax exemption certificate
677
+ */
678
+ certificate_id: string;
679
+ /**
680
+ * Type of tax exemption certificate
681
+ */
682
+ certificate_type: 'resale' | 'exempt_organization' | 'government';
683
+ /**
684
+ * List of regions where the exemption applies (e.g., state codes)
685
+ */
686
+ exempt_regions?: string[];
687
+ /**
688
+ * RFC 3339 timestamp when the exemption certificate expires
689
+ */
690
+ expires_at?: string;
691
+ }
692
+ /**
693
+ * Information about the buyer including contact details, company info, and loyalty status
694
+ *
695
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
696
+ * via the `definition` "Buyer".
697
+ */
698
+ export interface Buyer {
699
+ /**
700
+ * Buyer's first name
701
+ */
702
+ first_name?: string;
703
+ /**
704
+ * Buyer's last name
705
+ */
706
+ last_name?: string;
707
+ /**
708
+ * Buyer's full name
709
+ */
710
+ full_name?: string;
711
+ /**
712
+ * Buyer's email address
713
+ */
714
+ email: string;
715
+ /**
716
+ * Buyer's phone number
717
+ */
718
+ phone_number?: string;
719
+ /**
720
+ * Merchant's internal customer identifier
721
+ */
722
+ customer_id?: string;
723
+ /**
724
+ * Type of buyer account
725
+ */
726
+ account_type?: 'guest' | 'registered' | 'business';
727
+ /**
728
+ * Buyer's authentication status
729
+ */
730
+ authentication_status?: 'authenticated' | 'guest' | 'requires_signin';
731
+ company?: CompanyInfo1;
732
+ loyalty?: LoyaltyInfo1;
733
+ tax_exemption?: TaxExemption1;
734
+ }
735
+ /**
736
+ * Company information for business buyers
737
+ */
738
+ export interface CompanyInfo1 {
739
+ /**
740
+ * Company or organization name
741
+ */
742
+ name: string;
743
+ /**
744
+ * Business tax identification number
745
+ */
746
+ tax_id?: string;
747
+ /**
748
+ * Department within the organization
749
+ */
750
+ department?: string;
751
+ /**
752
+ * Cost center code for internal accounting
753
+ */
754
+ cost_center?: string;
755
+ }
756
+ /**
757
+ * Loyalty program information
758
+ */
759
+ export interface LoyaltyInfo1 {
760
+ /**
761
+ * Loyalty program tier level
762
+ */
763
+ tier?: string;
764
+ /**
765
+ * Current loyalty points balance
766
+ */
767
+ points_balance?: number;
768
+ /**
769
+ * RFC 3339 timestamp when the customer joined the loyalty program
770
+ */
771
+ member_since?: string;
772
+ }
773
+ /**
774
+ * Tax exemption details
775
+ */
776
+ export interface TaxExemption1 {
777
+ /**
778
+ * Unique identifier for the tax exemption certificate
779
+ */
780
+ certificate_id: string;
781
+ /**
782
+ * Type of tax exemption certificate
783
+ */
784
+ certificate_type: 'resale' | 'exempt_organization' | 'government';
785
+ /**
786
+ * List of regions where the exemption applies (e.g., state codes)
787
+ */
788
+ exempt_regions?: string[];
789
+ /**
790
+ * RFC 3339 timestamp when the exemption certificate expires
791
+ */
792
+ expires_at?: string;
793
+ }
794
+ /**
795
+ * Intervention capabilities. Context-specific fields: display_context, redirect_context, max_redirects, max_interaction_depth (requests only). required, enforcement (responses only). supported field contains intersection in responses.
796
+ *
797
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
798
+ * via the `definition` "InterventionCapabilities".
799
+ */
800
+ export interface InterventionCapabilities {
801
+ /**
802
+ * Intervention types supported. Agent request: Interventions the agent can handle. Seller response: Intersection of supported interventions.
803
+ */
804
+ supported?: ('3ds' | 'biometric' | 'address_verification')[];
805
+ /**
806
+ * Intervention methods required for this session (seller only).
807
+ */
808
+ required?: ('3ds' | 'biometric')[];
809
+ /**
810
+ * When required interventions are enforced (seller only).
811
+ */
812
+ enforcement?: 'always' | 'conditional' | 'optional';
813
+ /**
814
+ * How the Agent presents interventions (agent only).
815
+ */
816
+ display_context?: 'native' | 'webview' | 'modal' | 'redirect';
817
+ /**
818
+ * How the Agent handles redirects (agent only).
819
+ */
820
+ redirect_context?: 'in_app' | 'external_browser' | 'none';
821
+ /**
822
+ * Maximum number of redirects the Agent can handle (agent only).
823
+ */
824
+ max_redirects?: number;
825
+ /**
826
+ * Maximum depth of nested interactions the Agent can handle (agent only).
827
+ */
828
+ max_interaction_depth?: number;
829
+ }
830
+ /**
831
+ * Capabilities object used in requests and responses. Context determines the party: requests are from Agents, responses are from Sellers. Seller responses contain the intersection of supported interventions.
832
+ *
833
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
834
+ * via the `definition` "Capabilities".
835
+ */
836
+ export interface Capabilities {
837
+ payment?: Payment;
838
+ interventions?: InterventionCapabilities;
839
+ /**
840
+ * Extensions supported by the party. Requests: array of extension identifiers. Responses: array of extension declaration objects.
841
+ */
842
+ extensions?: string[] | ExtensionDeclaration[];
843
+ }
844
+ /**
845
+ * Payment configuration with handlers
846
+ *
847
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
848
+ * via the `definition` "Payment".
849
+ */
850
+ export interface Payment {
851
+ /**
852
+ * Available payment handlers
853
+ */
854
+ handlers: PaymentHandler[];
855
+ }
856
+ /**
857
+ * Payment handler configuration and capabilities
858
+ *
859
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
860
+ * via the `definition` "PaymentHandler".
861
+ */
862
+ export interface PaymentHandler {
863
+ /**
864
+ * Seller-defined handler identifier
865
+ */
866
+ id: string;
867
+ /**
868
+ * Handler name in reverse-DNS format (e.g., dev.acp.tokenized.card)
869
+ */
870
+ name: string;
871
+ /**
872
+ * Human-readable name for UI (e.g., Credit Card). Use when showing payment options to the buyer.
873
+ */
874
+ display_name?: string;
875
+ /**
876
+ * Handler version in YYYY-MM-DD format
877
+ */
878
+ version: string;
879
+ /**
880
+ * URL to handler specification
881
+ */
882
+ spec: string;
883
+ /**
884
+ * Whether this handler requires using delegate_payment API
885
+ */
886
+ requires_delegate_payment: boolean;
887
+ /**
888
+ * Whether this handler routes PCI DSS sensitive data
889
+ */
890
+ requires_pci_compliance: boolean;
891
+ /**
892
+ * Payment Service Provider identifier
893
+ */
894
+ psp: string;
895
+ /**
896
+ * URL to JSON Schema for handler configuration
897
+ */
898
+ config_schema: string;
899
+ /**
900
+ * URLs to JSON Schemas for payment instruments
901
+ */
902
+ instrument_schemas: string[];
903
+ /**
904
+ * Handler-specific configuration
905
+ */
906
+ config: {};
907
+ /**
908
+ * Optional merchant-suggested display order (lower = higher preference). Suggestive only; platform/agent MAY reorder.
909
+ */
910
+ display_order?: number;
911
+ }
912
+ /**
913
+ * Extension declaration in capabilities.extensions (response). Describes an active extension and which schema fields it adds.
914
+ *
915
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
916
+ * via the `definition` "ExtensionDeclaration".
917
+ */
918
+ export interface ExtensionDeclaration {
919
+ /**
920
+ * Unique identifier for the extension.
921
+ */
922
+ name: string;
923
+ /**
924
+ * JSONPath expressions identifying the schema fields added by this extension. Format: $.<SchemaName>.<fieldName> (e.g., $.CheckoutSession.discounts).
925
+ */
926
+ extends?: string[];
927
+ /**
928
+ * URL to the extension's JSON Schema definition.
929
+ */
930
+ schema?: string;
931
+ /**
932
+ * URL to the extension's specification document.
933
+ */
934
+ spec?: string;
935
+ }
936
+ /**
937
+ * Payment method with additional constraints (e.g., card brands, PSP routing)
938
+ *
939
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
940
+ * via the `definition` "PaymentMethodObject".
941
+ */
942
+ export interface PaymentMethodObject {
943
+ /**
944
+ * The payment method identifier
945
+ */
946
+ method: string;
947
+ /**
948
+ * Specific card brands/networks accepted
949
+ */
950
+ brands?: ('visa' | 'mastercard' | 'amex' | 'discover' | 'diners' | 'jcb' | 'unionpay' | 'eftpos' | 'interac')[];
951
+ /**
952
+ * For card methods, funding types accepted
953
+ */
954
+ funding_types?: ('credit' | 'debit' | 'prepaid')[];
955
+ /**
956
+ * Optional PSP routing information
957
+ */
958
+ providers?: string[];
959
+ }
960
+ /**
961
+ * A purchasable item with variant options (e.g., size, color) and quantity
962
+ *
963
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
964
+ * via the `definition` "Item".
965
+ */
966
+ export interface Item {
967
+ /**
968
+ * Unique identifier for the item
969
+ */
970
+ id: string;
971
+ /**
972
+ * Display name of the item
973
+ */
974
+ name?: string;
975
+ /**
976
+ * Price per unit in minor currency units (e.g. 100 cents for $1.00 or 100 for ¥100)
977
+ */
978
+ unit_amount?: number;
979
+ }
980
+ /**
981
+ * Legal disclosure or terms that must be acknowledged by the buyer
982
+ *
983
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
984
+ * via the `definition` "Disclosure".
985
+ */
986
+ export interface Disclosure {
987
+ /**
988
+ * Type of disclosure
989
+ */
990
+ type: 'disclaimer';
991
+ /**
992
+ * Format of the disclosure content. When set to 'markdown', content MUST conform to CommonMark (https://spec.commonmark.org/0.31.2/). Raw HTML elements MUST NOT be included. When set to 'plain', content is plain text with no formatting.
993
+ */
994
+ content_type: 'plain' | 'markdown';
995
+ /**
996
+ * The disclosure text content. When content_type is 'markdown', this MUST be valid CommonMark with no raw HTML. Agents MUST render using a CommonMark-compliant parser with raw HTML output disabled or sanitized.
997
+ */
998
+ content: string;
999
+ }
1000
+ /**
1001
+ * Custom key-value attribute for merchant-specific metadata on line items
1002
+ *
1003
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1004
+ * via the `definition` "CustomAttribute".
1005
+ */
1006
+ export interface CustomAttribute {
1007
+ /**
1008
+ * Human-readable label for the attribute
1009
+ */
1010
+ display_name: string;
1011
+ /**
1012
+ * Attribute value
1013
+ */
1014
+ value: string;
1015
+ }
1016
+ /**
1017
+ * Information about a third-party seller in a marketplace model
1018
+ *
1019
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1020
+ * via the `definition` "MarketplaceSellerDetails".
1021
+ */
1022
+ export interface MarketplaceSellerDetails {
1023
+ /**
1024
+ * Name of the marketplace seller or vendor
1025
+ */
1026
+ name: string;
1027
+ }
1028
+ /**
1029
+ * A line item in the checkout representing a product with pricing, discounts, and fulfillment details
1030
+ *
1031
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1032
+ * via the `definition` "LineItem".
1033
+ */
1034
+ export interface LineItem {
1035
+ /**
1036
+ * Unique identifier for the line item
1037
+ */
1038
+ id: string;
1039
+ item: Item1;
1040
+ /**
1041
+ * Number of units for this line item
1042
+ */
1043
+ quantity: number;
1044
+ /**
1045
+ * Display name of the line item
1046
+ */
1047
+ name?: string;
1048
+ /**
1049
+ * Detailed description of the line item
1050
+ */
1051
+ description?: string;
1052
+ /**
1053
+ * Array of image URLs for this line item
1054
+ */
1055
+ images?: string[];
1056
+ /**
1057
+ * The unit price of the line item in the smallest currency unit (e.g., cents for USD)
1058
+ */
1059
+ unit_amount?: number;
1060
+ /**
1061
+ * Legal disclosures or disclaimers for this item
1062
+ */
1063
+ disclosures?: Disclosure[];
1064
+ /**
1065
+ * Custom attributes specific to this line item
1066
+ */
1067
+ custom_attributes?: CustomAttribute[];
1068
+ marketplace_seller_details?: MarketplaceSellerDetails1;
1069
+ /**
1070
+ * Merchant's product identifier
1071
+ */
1072
+ product_id?: string;
1073
+ /**
1074
+ * Stock keeping unit identifier
1075
+ */
1076
+ sku?: string;
1077
+ /**
1078
+ * Product variant identifier
1079
+ */
1080
+ variant_id?: string;
1081
+ /**
1082
+ * Product category
1083
+ */
1084
+ category?: string;
1085
+ /**
1086
+ * Product tags or labels
1087
+ */
1088
+ tags?: string[];
1089
+ weight?: WeightInfo1;
1090
+ dimensions?: DimensionsInfo1;
1091
+ /**
1092
+ * Current availability status of the item
1093
+ */
1094
+ availability_status?: 'in_stock' | 'low_stock' | 'out_of_stock' | 'backorder' | 'pre_order';
1095
+ /**
1096
+ * Quantity currently available for purchase
1097
+ */
1098
+ available_quantity?: number;
1099
+ /**
1100
+ * Maximum quantity allowed per order
1101
+ */
1102
+ max_quantity_per_order?: number;
1103
+ /**
1104
+ * RFC 3339 timestamp when item becomes available for fulfillment
1105
+ */
1106
+ fulfillable_on?: string;
1107
+ /**
1108
+ * Selected product variant options (e.g., size, color)
1109
+ */
1110
+ variant_options?: VariantOption[];
1111
+ /**
1112
+ * Line-item level discount details
1113
+ */
1114
+ discount_details?: DiscountDetail[];
1115
+ /**
1116
+ * Whether this line item is tax exempt
1117
+ */
1118
+ tax_exempt?: boolean;
1119
+ /**
1120
+ * Reason for tax exemption if applicable
1121
+ */
1122
+ tax_exemption_reason?: string;
1123
+ /**
1124
+ * Reference to parent line item for bundled products
1125
+ */
1126
+ parent_id?: string;
1127
+ /**
1128
+ * Line-item level totals breakdown including base_amount, discount, subtotal, tax, and total
1129
+ */
1130
+ totals: Total[];
1131
+ }
1132
+ /**
1133
+ * Reference to the item being purchased
1134
+ */
1135
+ export interface Item1 {
1136
+ /**
1137
+ * Unique identifier for the item
1138
+ */
1139
+ id: string;
1140
+ /**
1141
+ * Display name of the item
1142
+ */
1143
+ name?: string;
1144
+ /**
1145
+ * Price per unit in minor currency units (e.g. 100 cents for $1.00 or 100 for ¥100)
1146
+ */
1147
+ unit_amount?: number;
1148
+ }
1149
+ /**
1150
+ * Seller details for marketplace items
1151
+ */
1152
+ export interface MarketplaceSellerDetails1 {
1153
+ /**
1154
+ * Name of the marketplace seller or vendor
1155
+ */
1156
+ name: string;
1157
+ }
1158
+ /**
1159
+ * Weight information for the item
1160
+ */
1161
+ export interface WeightInfo1 {
1162
+ /**
1163
+ * Numeric weight value
1164
+ */
1165
+ value: number;
1166
+ /**
1167
+ * Unit of measurement for weight
1168
+ */
1169
+ unit: 'g' | 'kg' | 'oz' | 'lb';
1170
+ }
1171
+ /**
1172
+ * Dimensions for the item
1173
+ */
1174
+ export interface DimensionsInfo1 {
1175
+ /**
1176
+ * Length dimension
1177
+ */
1178
+ length: number;
1179
+ /**
1180
+ * Width dimension
1181
+ */
1182
+ width: number;
1183
+ /**
1184
+ * Height dimension
1185
+ */
1186
+ height: number;
1187
+ /**
1188
+ * Unit of measurement for dimensions
1189
+ */
1190
+ unit: 'cm' | 'in';
1191
+ }
1192
+ /**
1193
+ * Total amounts for the checkout including subtotal, discounts, tax, shipping, and final total
1194
+ *
1195
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1196
+ * via the `definition` "Total".
1197
+ */
1198
+ export interface Total {
1199
+ /**
1200
+ * Type of total line item
1201
+ */
1202
+ type: 'items_base_amount' | 'items_discount' | 'subtotal' | 'discount' | 'fulfillment' | 'tax' | 'fee' | 'gift_wrap' | 'tip' | 'store_credit' | 'total' | 'amount_refunded';
1203
+ /**
1204
+ * Localized display text for this total
1205
+ */
1206
+ display_text: string;
1207
+ /**
1208
+ * Amount in minor currency units (e.g. 100 cents for $1.00 or 100 for ¥100)
1209
+ */
1210
+ amount: number;
1211
+ /**
1212
+ * Amount in presentment currency minor units if different from settlement currency
1213
+ */
1214
+ presentment_amount?: number;
1215
+ /**
1216
+ * Additional descriptive text for this total
1217
+ */
1218
+ description?: string;
1219
+ /**
1220
+ * Detailed breakdown for tax totals
1221
+ */
1222
+ breakdown?: TaxBreakdownItem[];
1223
+ }
1224
+ /**
1225
+ * Breakdown of tax amounts by type, jurisdiction, or rate
1226
+ *
1227
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1228
+ * via the `definition` "TaxBreakdownItem".
1229
+ */
1230
+ export interface TaxBreakdownItem {
1231
+ /**
1232
+ * Tax jurisdiction name (e.g., 'California State Tax', 'City of San Francisco')
1233
+ */
1234
+ jurisdiction: string;
1235
+ /**
1236
+ * Tax rate as a decimal (e.g., 0.0875 for 8.75%)
1237
+ */
1238
+ rate: number;
1239
+ /**
1240
+ * Tax amount in minor currency units (e.g. 100 cents for $1.00 or 100 for ¥100)
1241
+ */
1242
+ amount: number;
1243
+ }
1244
+ /**
1245
+ * In-store or curbside pickup fulfillment option with pickup location details
1246
+ *
1247
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1248
+ * via the `definition` "FulfillmentOptionPickup".
1249
+ */
1250
+ export interface FulfillmentOptionPickup {
1251
+ /**
1252
+ * Fulfillment type discriminator
1253
+ */
1254
+ type: 'pickup';
1255
+ /**
1256
+ * Unique identifier for this fulfillment option
1257
+ */
1258
+ id: string;
1259
+ /**
1260
+ * Display title for this pickup option
1261
+ */
1262
+ title: string;
1263
+ /**
1264
+ * Additional details about this pickup option
1265
+ */
1266
+ description?: string;
1267
+ /**
1268
+ * Pickup location details
1269
+ */
1270
+ location: {
1271
+ /**
1272
+ * Location name
1273
+ */
1274
+ name: string;
1275
+ address: Address2;
1276
+ /**
1277
+ * Location phone number
1278
+ */
1279
+ phone?: string;
1280
+ /**
1281
+ * Special pickup instructions
1282
+ */
1283
+ instructions?: string;
1284
+ };
1285
+ /**
1286
+ * Type of pickup method
1287
+ */
1288
+ pickup_type?: 'in_store' | 'curbside' | 'locker';
1289
+ /**
1290
+ * RFC 3339 timestamp when order will be ready for pickup
1291
+ */
1292
+ ready_by?: string;
1293
+ /**
1294
+ * RFC 3339 timestamp by which order must be picked up
1295
+ */
1296
+ pickup_by?: string;
1297
+ /**
1298
+ * Cost breakdown for this fulfillment option
1299
+ */
1300
+ totals: Total[];
1301
+ }
1302
+ /**
1303
+ * Pickup address
1304
+ */
1305
+ export interface Address2 {
1306
+ /**
1307
+ * Recipient name for this address
1308
+ */
1309
+ name: string;
1310
+ /**
1311
+ * Primary street address line
1312
+ */
1313
+ line_one: string;
1314
+ /**
1315
+ * Secondary address line (apartment, suite, etc.)
1316
+ */
1317
+ line_two?: string;
1318
+ /**
1319
+ * City name
1320
+ */
1321
+ city: string;
1322
+ /**
1323
+ * State or province code
1324
+ */
1325
+ state: string;
1326
+ /**
1327
+ * ISO 3166-1 alpha-2 country code
1328
+ */
1329
+ country: string;
1330
+ /**
1331
+ * Postal or ZIP code
1332
+ */
1333
+ postal_code: string;
1334
+ /**
1335
+ * Postal or ZIP code
1336
+ */
1337
+ company?: string;
1338
+ }
1339
+ /**
1340
+ * Local delivery fulfillment option with delivery address and scheduling details
1341
+ *
1342
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1343
+ * via the `definition` "FulfillmentOptionLocalDelivery".
1344
+ */
1345
+ export interface FulfillmentOptionLocalDelivery {
1346
+ /**
1347
+ * Fulfillment type discriminator
1348
+ */
1349
+ type: 'local_delivery';
1350
+ /**
1351
+ * Unique identifier for this fulfillment option
1352
+ */
1353
+ id: string;
1354
+ /**
1355
+ * Display title for this local delivery option
1356
+ */
1357
+ title: string;
1358
+ /**
1359
+ * Additional details about this delivery option
1360
+ */
1361
+ description?: string;
1362
+ /**
1363
+ * Expected delivery time window
1364
+ */
1365
+ delivery_window?: {
1366
+ /**
1367
+ * RFC 3339 timestamp for delivery window start
1368
+ */
1369
+ start: string;
1370
+ /**
1371
+ * RFC 3339 timestamp for delivery window end
1372
+ */
1373
+ end: string;
1374
+ };
1375
+ /**
1376
+ * Geographic service area for local delivery
1377
+ */
1378
+ service_area?: {
1379
+ /**
1380
+ * Delivery radius in miles
1381
+ */
1382
+ radius_miles?: number;
1383
+ /**
1384
+ * Center point postal code for delivery radius
1385
+ */
1386
+ center_postal_code?: string;
1387
+ };
1388
+ /**
1389
+ * Cost breakdown for this fulfillment option
1390
+ */
1391
+ totals: Total[];
1392
+ }
1393
+ /**
1394
+ * Shipping fulfillment option with carrier, service level, and delivery estimates
1395
+ *
1396
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1397
+ * via the `definition` "FulfillmentOptionShipping".
1398
+ */
1399
+ export interface FulfillmentOptionShipping {
1400
+ /**
1401
+ * Fulfillment type discriminator
1402
+ */
1403
+ type: 'shipping';
1404
+ /**
1405
+ * Unique identifier for this fulfillment option
1406
+ */
1407
+ id: string;
1408
+ /**
1409
+ * Display title for this shipping option (e.g., 'Standard Shipping', 'Express')
1410
+ */
1411
+ title: string;
1412
+ /**
1413
+ * Additional details about this shipping option
1414
+ */
1415
+ description?: string;
1416
+ /**
1417
+ * Shipping carrier name (e.g., 'USPS', 'FedEx')
1418
+ */
1419
+ carrier?: string;
1420
+ /**
1421
+ * RFC 3339 timestamp for earliest expected delivery
1422
+ */
1423
+ earliest_delivery_time?: string;
1424
+ /**
1425
+ * RFC 3339 timestamp for latest expected delivery
1426
+ */
1427
+ latest_delivery_time?: string;
1428
+ /**
1429
+ * Cost breakdown for this fulfillment option
1430
+ */
1431
+ totals: Total[];
1432
+ }
1433
+ /**
1434
+ * Digital delivery fulfillment option for downloadable or streaming content
1435
+ *
1436
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1437
+ * via the `definition` "FulfillmentOptionDigital".
1438
+ */
1439
+ export interface FulfillmentOptionDigital {
1440
+ /**
1441
+ * Fulfillment type discriminator
1442
+ */
1443
+ type: 'digital';
1444
+ /**
1445
+ * Unique identifier for this fulfillment option
1446
+ */
1447
+ id: string;
1448
+ /**
1449
+ * Display title for this digital delivery option
1450
+ */
1451
+ title: string;
1452
+ /**
1453
+ * Additional details about digital delivery method
1454
+ */
1455
+ description?: string;
1456
+ /**
1457
+ * Cost breakdown for this fulfillment option
1458
+ */
1459
+ totals: Total[];
1460
+ }
1461
+ /**
1462
+ * Fulfillment option selected by the buyer for specific line items
1463
+ *
1464
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1465
+ * via the `definition` "SelectedFulfillmentOption".
1466
+ */
1467
+ export interface SelectedFulfillmentOption {
1468
+ /**
1469
+ * Type of fulfillment option selected
1470
+ */
1471
+ type: 'shipping' | 'digital' | 'pickup' | 'local_delivery';
1472
+ /**
1473
+ * ID of the selected fulfillment option
1474
+ */
1475
+ option_id: string;
1476
+ /**
1477
+ * List of line item IDs associated with this fulfillment option
1478
+ */
1479
+ item_ids: string[];
1480
+ }
1481
+ /**
1482
+ * Gift wrapping option with associated cost and customization details
1483
+ *
1484
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1485
+ * via the `definition` "GiftWrap".
1486
+ */
1487
+ export interface GiftWrap {
1488
+ /**
1489
+ * Whether gift wrapping is enabled for this order
1490
+ */
1491
+ enabled: boolean;
1492
+ /**
1493
+ * Gift wrap style selected
1494
+ */
1495
+ style?: 'birthday' | 'holiday' | 'elegant';
1496
+ /**
1497
+ * Additional charge for gift wrapping in minor currency units (e.g. 100 cents for $1.00 or 100 for ¥100)
1498
+ */
1499
+ charge?: number;
1500
+ }
1501
+ /**
1502
+ * Split payment configuration allowing payment across multiple methods or parties
1503
+ *
1504
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1505
+ * via the `definition` "SplitPayment".
1506
+ */
1507
+ export interface SplitPayment {
1508
+ /**
1509
+ * Payment amount in minor currency units (e.g. 100 cents for $1.00 or 100 for ¥100) for this split
1510
+ */
1511
+ amount: number;
1512
+ }
1513
+ /**
1514
+ * Group of line items that share the same fulfillment method and destination
1515
+ *
1516
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1517
+ * via the `definition` "FulfillmentGroup".
1518
+ */
1519
+ export interface FulfillmentGroup {
1520
+ /**
1521
+ * Unique identifier for this fulfillment group
1522
+ */
1523
+ id: string;
1524
+ /**
1525
+ * List of line item IDs in this fulfillment group
1526
+ */
1527
+ item_ids: string[];
1528
+ /**
1529
+ * Type of fulfillment for this group
1530
+ */
1531
+ destination_type: 'shipping' | 'pickup' | 'local_delivery' | 'digital';
1532
+ fulfillment_details?: FulfillmentDetails1;
1533
+ /**
1534
+ * Location identifier for pickup or local delivery
1535
+ */
1536
+ location_id?: string;
1537
+ /**
1538
+ * Special fulfillment instructions
1539
+ */
1540
+ instructions?: string;
1541
+ }
1542
+ /**
1543
+ * Fulfillment contact and address details
1544
+ */
1545
+ export interface FulfillmentDetails1 {
1546
+ /**
1547
+ * Full name for fulfillment contact
1548
+ */
1549
+ name?: string;
1550
+ /**
1551
+ * Contact phone number. E.164 format recommended (e.g., +15551234567) for global interoperability and SMS/delivery carrier systems.
1552
+ */
1553
+ phone_number?: string;
1554
+ /**
1555
+ * Contact email address
1556
+ */
1557
+ email?: string;
1558
+ address?: Address1;
1559
+ }
1560
+ /**
1561
+ * Estimated delivery date range for a fulfillment option
1562
+ *
1563
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1564
+ * via the `definition` "EstimatedDelivery".
1565
+ */
1566
+ export interface EstimatedDelivery {
1567
+ /**
1568
+ * RFC 3339 timestamp for earliest expected delivery
1569
+ */
1570
+ earliest: string;
1571
+ /**
1572
+ * RFC 3339 timestamp for latest expected delivery
1573
+ */
1574
+ latest: string;
1575
+ }
1576
+ /**
1577
+ * Order confirmation details including order number and tracking information
1578
+ *
1579
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1580
+ * via the `definition` "OrderConfirmation".
1581
+ */
1582
+ export interface OrderConfirmation {
1583
+ /**
1584
+ * Order confirmation number
1585
+ */
1586
+ confirmation_number?: string;
1587
+ /**
1588
+ * Whether a confirmation email has been sent
1589
+ */
1590
+ confirmation_email_sent?: boolean;
1591
+ /**
1592
+ * URL to the order receipt
1593
+ */
1594
+ receipt_url?: string;
1595
+ /**
1596
+ * Invoice number if generated
1597
+ */
1598
+ invoice_number?: string;
1599
+ /**
1600
+ * Echo of order_notes attached to the order.
1601
+ */
1602
+ order_notes?: string;
1603
+ }
1604
+ /**
1605
+ * Customer support contact information including email, phone, and URL
1606
+ *
1607
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1608
+ * via the `definition` "SupportInfo".
1609
+ */
1610
+ export interface SupportInfo {
1611
+ /**
1612
+ * Support contact email
1613
+ */
1614
+ email?: string;
1615
+ /**
1616
+ * Support contact phone number
1617
+ */
1618
+ phone?: string;
1619
+ /**
1620
+ * Support hours of operation
1621
+ */
1622
+ hours?: string;
1623
+ /**
1624
+ * URL to merchant's help center
1625
+ */
1626
+ help_center_url?: string;
1627
+ }
1628
+ /**
1629
+ * Informational message to display to the buyer during checkout
1630
+ *
1631
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1632
+ * via the `definition` "MessageInfo".
1633
+ */
1634
+ export interface MessageInfo {
1635
+ /**
1636
+ * Message type discriminator
1637
+ */
1638
+ type: 'info';
1639
+ /**
1640
+ * Severity level of this informational message
1641
+ */
1642
+ severity?: 'info' | 'low' | 'medium' | 'high' | 'critical';
1643
+ /**
1644
+ * Who resolves this message. 'recoverable': agent can fix via API. 'requires_buyer_input': buyer must provide info. 'requires_buyer_review': buyer must authorize.
1645
+ */
1646
+ resolution?: 'recoverable' | 'requires_buyer_input' | 'requires_buyer_review';
1647
+ /**
1648
+ * RFC 9535 JSONPath
1649
+ */
1650
+ param?: string;
1651
+ /**
1652
+ * Format of the message content. When set to 'markdown', content MUST conform to CommonMark (https://spec.commonmark.org/0.31.2/). Raw HTML elements MUST NOT be included. When set to 'plain', content is plain text with no formatting.
1653
+ */
1654
+ content_type: 'plain' | 'markdown';
1655
+ /**
1656
+ * Informational message text. When content_type is 'markdown', this MUST be valid CommonMark with no raw HTML. Agents MUST render using a CommonMark-compliant parser with raw HTML output disabled or sanitized.
1657
+ */
1658
+ content: string;
1659
+ }
1660
+ /**
1661
+ * Warning message to display to the buyer during checkout (non-blocking)
1662
+ *
1663
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1664
+ * via the `definition` "MessageWarning".
1665
+ */
1666
+ export interface MessageWarning {
1667
+ /**
1668
+ * Message type discriminator
1669
+ */
1670
+ type: 'warning';
1671
+ /**
1672
+ * Warning code indicating the type of warning
1673
+ */
1674
+ code: 'low_stock' | 'high_demand' | 'shipping_delay' | 'price_change' | 'expiring_promotion' | 'limited_availability' | 'discount_code_expired' | 'discount_code_invalid' | 'discount_code_already_applied' | 'discount_code_combination_disallowed' | 'discount_code_minimum_not_met' | 'discount_code_user_not_logged_in' | 'discount_code_user_ineligible' | 'discount_code_usage_limit_reached';
1675
+ /**
1676
+ * Severity level of this warning
1677
+ */
1678
+ severity?: 'info' | 'low' | 'medium' | 'high' | 'critical';
1679
+ /**
1680
+ * Who resolves this message. 'recoverable': agent can fix via API. 'requires_buyer_input': buyer must provide info. 'requires_buyer_review': buyer must authorize.
1681
+ */
1682
+ resolution?: 'recoverable' | 'requires_buyer_input' | 'requires_buyer_review';
1683
+ /**
1684
+ * RFC 9535 JSONPath
1685
+ */
1686
+ param?: string;
1687
+ /**
1688
+ * Format of the warning message content. When set to 'markdown', content MUST conform to CommonMark (https://spec.commonmark.org/0.31.2/). Raw HTML elements MUST NOT be included. When set to 'plain', content is plain text with no formatting.
1689
+ */
1690
+ content_type: 'plain' | 'markdown';
1691
+ /**
1692
+ * Warning message text. When content_type is 'markdown', this MUST be valid CommonMark with no raw HTML. Agents MUST render using a CommonMark-compliant parser with raw HTML output disabled or sanitized.
1693
+ */
1694
+ content: string;
1695
+ }
1696
+ /**
1697
+ * Business-logic error within a valid CheckoutSession response. Used in messages[] on 2xx responses when the session is valid but has actionable issues (e.g. status "not_ready_for_payment"). The agent can respond by asking the buyer for corrections or trying alternatives. Use MessageError—not Error—when you can return a valid CheckoutSession and the problem is conversational (e.g. invalid email → code "invalid" and param "$.buyer.email"; out of stock → code "out_of_stock" and param "$.items[0]").
1698
+ *
1699
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1700
+ * via the `definition` "MessageError".
1701
+ */
1702
+ export interface MessageError {
1703
+ /**
1704
+ * Message type discriminator
1705
+ */
1706
+ type: 'error';
1707
+ /**
1708
+ * Error code indicating the type of error
1709
+ */
1710
+ code: 'missing' | 'invalid' | 'out_of_stock' | 'payment_declined' | 'requires_sign_in' | 'requires_3ds' | 'low_stock' | 'quantity_exceeded' | 'coupon_invalid' | 'coupon_expired' | 'minimum_not_met' | 'maximum_exceeded' | 'region_restricted' | 'age_verification_required' | 'approval_required' | 'unsupported' | 'not_found' | 'conflict' | 'rate_limited' | 'expired' | 'intervention_required';
1711
+ /**
1712
+ * Severity level of this error
1713
+ */
1714
+ severity?: 'info' | 'low' | 'medium' | 'high' | 'critical';
1715
+ /**
1716
+ * Who resolves this message. 'recoverable': agent can fix via API. 'requires_buyer_input': buyer must provide info. 'requires_buyer_review': buyer must authorize.
1717
+ */
1718
+ resolution?: 'recoverable' | 'requires_buyer_input' | 'requires_buyer_review';
1719
+ /**
1720
+ * RFC 9535 JSONPath
1721
+ */
1722
+ param?: string;
1723
+ /**
1724
+ * Format of the error message content. When set to 'markdown', content MUST conform to CommonMark (https://spec.commonmark.org/0.31.2/). Raw HTML elements MUST NOT be included. When set to 'plain', content is plain text with no formatting.
1725
+ */
1726
+ content_type: 'plain' | 'markdown';
1727
+ /**
1728
+ * Error message text. When content_type is 'markdown', this MUST be valid CommonMark with no raw HTML. Agents MUST render using a CommonMark-compliant parser with raw HTML output disabled or sanitized.
1729
+ */
1730
+ content: string;
1731
+ }
1732
+ /**
1733
+ * Hyperlink with URL, display text, and optional action semantics
1734
+ *
1735
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1736
+ * via the `definition` "Link".
1737
+ */
1738
+ export interface Link {
1739
+ /**
1740
+ * Type of link
1741
+ */
1742
+ type: 'terms_of_use' | 'privacy_policy' | 'return_policy' | 'shipping_policy' | 'contact_us' | 'about_us' | 'faq' | 'support';
1743
+ /**
1744
+ * Display text for the link
1745
+ */
1746
+ title?: string;
1747
+ /**
1748
+ * URL destination
1749
+ */
1750
+ url: string;
1751
+ }
1752
+ /**
1753
+ * Billing address for the payment
1754
+ */
1755
+ export interface Address3 {
1756
+ /**
1757
+ * Recipient name for this address
1758
+ */
1759
+ name: string;
1760
+ /**
1761
+ * Primary street address line
1762
+ */
1763
+ line_one: string;
1764
+ /**
1765
+ * Secondary address line (apartment, suite, etc.)
1766
+ */
1767
+ line_two?: string;
1768
+ /**
1769
+ * City name
1770
+ */
1771
+ city: string;
1772
+ /**
1773
+ * State or province code
1774
+ */
1775
+ state: string;
1776
+ /**
1777
+ * ISO 3166-1 alpha-2 country code
1778
+ */
1779
+ country: string;
1780
+ /**
1781
+ * Postal or ZIP code
1782
+ */
1783
+ postal_code: string;
1784
+ /**
1785
+ * Postal or ZIP code
1786
+ */
1787
+ company?: string;
1788
+ }
1789
+ /**
1790
+ * Protocol metadata included in checkout responses. Indicates the ACP version.
1791
+ *
1792
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1793
+ * via the `definition` "ProtocolVersion".
1794
+ */
1795
+ export interface ProtocolVersion {
1796
+ /**
1797
+ * ACP protocol version in YYYY-MM-DD format.
1798
+ */
1799
+ version: string;
1800
+ }
1801
+ /**
1802
+ * Breakdown of how a discount amount was allocated to a specific target.
1803
+ *
1804
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1805
+ * via the `definition` "DiscountAllocation".
1806
+ */
1807
+ export interface DiscountAllocation {
1808
+ /**
1809
+ * JSONPath to the allocation target (e.g., '$.line_items[0]', '$.totals.shipping').
1810
+ */
1811
+ path: string;
1812
+ /**
1813
+ * Amount allocated to this target in minor (cents) currency units.
1814
+ */
1815
+ amount: number;
1816
+ }
1817
+ /**
1818
+ * Coupon details describing the discount terms.
1819
+ *
1820
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1821
+ * via the `definition` "Coupon".
1822
+ */
1823
+ export interface Coupon {
1824
+ /**
1825
+ * Unique identifier for the coupon.
1826
+ */
1827
+ id: string;
1828
+ /**
1829
+ * Human-readable coupon name (e.g., 'Summer Sale 20% Off').
1830
+ */
1831
+ name: string;
1832
+ /**
1833
+ * Percentage discount (0-100). Mutually exclusive with amount_off.
1834
+ */
1835
+ percent_off?: number;
1836
+ /**
1837
+ * Fixed discount amount in minor currency units. Mutually exclusive with percent_off.
1838
+ */
1839
+ amount_off?: number;
1840
+ /**
1841
+ * ISO 4217 currency code for amount_off. Required if amount_off is set.
1842
+ */
1843
+ currency?: string;
1844
+ /**
1845
+ * How long the discount applies. 'once' = single use, 'repeating' = multiple billing periods, 'forever' = indefinitely.
1846
+ */
1847
+ duration?: 'once' | 'repeating' | 'forever';
1848
+ /**
1849
+ * Number of months the coupon applies if duration is 'repeating'.
1850
+ */
1851
+ duration_in_months?: number;
1852
+ /**
1853
+ * Maximum number of times this coupon can be redeemed across all customers.
1854
+ */
1855
+ max_redemptions?: number;
1856
+ /**
1857
+ * Number of times this coupon has been redeemed.
1858
+ */
1859
+ times_redeemed?: number;
1860
+ /**
1861
+ * Arbitrary key-value metadata attached to the coupon.
1862
+ */
1863
+ metadata?: {
1864
+ /**
1865
+ * Metadata value
1866
+ */
1867
+ [k: string]: string | undefined;
1868
+ };
1869
+ }
1870
+ /**
1871
+ * A discount that was successfully applied to the checkout session.
1872
+ *
1873
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1874
+ * via the `definition` "AppliedDiscount".
1875
+ */
1876
+ export interface AppliedDiscount {
1877
+ /**
1878
+ * Unique identifier for this applied discount instance.
1879
+ */
1880
+ id: string;
1881
+ /**
1882
+ * The discount code entered by the user. Omitted for automatic discounts.
1883
+ */
1884
+ code?: string;
1885
+ coupon: Coupon1;
1886
+ /**
1887
+ * Total discount amount in minor (cents) currency units.
1888
+ */
1889
+ amount: number;
1890
+ /**
1891
+ * True if applied automatically by merchant rules (no code required).
1892
+ */
1893
+ automatic?: boolean;
1894
+ /**
1895
+ * RFC 3339 timestamp when the discount became active.
1896
+ */
1897
+ start?: string;
1898
+ /**
1899
+ * RFC 3339 timestamp when the discount expires.
1900
+ */
1901
+ end?: string;
1902
+ /**
1903
+ * Allocation method. 'each' = applied independently per item. 'across' = split proportionally by value.
1904
+ */
1905
+ method?: 'each' | 'across';
1906
+ /**
1907
+ * Stacking order for discount calculation. Lower numbers applied first (1 = first).
1908
+ */
1909
+ priority?: number;
1910
+ /**
1911
+ * Breakdown of where this discount was allocated. Sum of allocation amounts equals total amount.
1912
+ */
1913
+ allocations?: DiscountAllocation[];
1914
+ }
1915
+ /**
1916
+ * Details about the underlying coupon/promotion.
1917
+ */
1918
+ export interface Coupon1 {
1919
+ /**
1920
+ * Unique identifier for the coupon.
1921
+ */
1922
+ id: string;
1923
+ /**
1924
+ * Human-readable coupon name (e.g., 'Summer Sale 20% Off').
1925
+ */
1926
+ name: string;
1927
+ /**
1928
+ * Percentage discount (0-100). Mutually exclusive with amount_off.
1929
+ */
1930
+ percent_off?: number;
1931
+ /**
1932
+ * Fixed discount amount in minor currency units. Mutually exclusive with percent_off.
1933
+ */
1934
+ amount_off?: number;
1935
+ /**
1936
+ * ISO 4217 currency code for amount_off. Required if amount_off is set.
1937
+ */
1938
+ currency?: string;
1939
+ /**
1940
+ * How long the discount applies. 'once' = single use, 'repeating' = multiple billing periods, 'forever' = indefinitely.
1941
+ */
1942
+ duration?: 'once' | 'repeating' | 'forever';
1943
+ /**
1944
+ * Number of months the coupon applies if duration is 'repeating'.
1945
+ */
1946
+ duration_in_months?: number;
1947
+ /**
1948
+ * Maximum number of times this coupon can be redeemed across all customers.
1949
+ */
1950
+ max_redemptions?: number;
1951
+ /**
1952
+ * Number of times this coupon has been redeemed.
1953
+ */
1954
+ times_redeemed?: number;
1955
+ /**
1956
+ * Arbitrary key-value metadata attached to the coupon.
1957
+ */
1958
+ metadata?: {
1959
+ /**
1960
+ * Metadata value
1961
+ */
1962
+ [k: string]: string | undefined;
1963
+ };
1964
+ }
1965
+ /**
1966
+ * Discount codes input for checkout create/update requests.
1967
+ *
1968
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1969
+ * via the `definition` "DiscountsRequest".
1970
+ */
1971
+ export interface DiscountsRequest {
1972
+ /**
1973
+ * Discount codes to apply. Case-insensitive. Replaces previously submitted codes. Send empty array to clear.
1974
+ */
1975
+ codes?: string[];
1976
+ }
1977
+ /**
1978
+ * Discount codes input and applied discounts output in checkout responses.
1979
+ *
1980
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
1981
+ * via the `definition` "DiscountsResponse".
1982
+ */
1983
+ export interface DiscountsResponse {
1984
+ /**
1985
+ * Echo of submitted discount codes.
1986
+ */
1987
+ codes?: string[];
1988
+ /**
1989
+ * Discounts successfully applied (code-based and automatic).
1990
+ */
1991
+ applied?: AppliedDiscount[];
1992
+ /**
1993
+ * Discount codes that could not be applied, with reasons.
1994
+ */
1995
+ rejected?: RejectedDiscount[];
1996
+ }
1997
+ /**
1998
+ * A discount code that could not be applied, with the reason.
1999
+ *
2000
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
2001
+ * via the `definition` "RejectedDiscount".
2002
+ */
2003
+ export interface RejectedDiscount {
2004
+ /**
2005
+ * The discount code that was rejected.
2006
+ */
2007
+ code: string;
2008
+ /**
2009
+ * Error code indicating why the discount was rejected.
2010
+ */
2011
+ reason: 'discount_code_expired' | 'discount_code_invalid' | 'discount_code_already_applied' | 'discount_code_combination_disallowed' | 'discount_code_minimum_not_met' | 'discount_code_user_not_logged_in' | 'discount_code_user_ineligible' | 'discount_code_usage_limit_reached';
2012
+ /**
2013
+ * Human-readable explanation of why the code was rejected.
2014
+ */
2015
+ message?: string;
2016
+ }
2017
+ /**
2018
+ * Payment configuration returned by the seller including accepted methods and handlers
2019
+ *
2020
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
2021
+ * via the `definition` "PaymentResponse".
2022
+ */
2023
+ export interface PaymentResponse {
2024
+ /**
2025
+ * Payment provider identifier
2026
+ */
2027
+ provider?: string;
2028
+ /**
2029
+ * Available payment instruments
2030
+ */
2031
+ instruments?: {
2032
+ [k: string]: unknown | undefined;
2033
+ }[];
2034
+ /**
2035
+ * Available payment handlers
2036
+ */
2037
+ handlers?: {
2038
+ [k: string]: unknown | undefined;
2039
+ }[];
2040
+ }
2041
+ /**
2042
+ * Risk and fraud detection signals for the checkout session
2043
+ *
2044
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
2045
+ * via the `definition` "RiskSignals".
2046
+ */
2047
+ export interface RiskSignals {
2048
+ /**
2049
+ * IP address of the buyer
2050
+ */
2051
+ ip_address?: string;
2052
+ /**
2053
+ * User agent string of the buyer's browser
2054
+ */
2055
+ user_agent?: string;
2056
+ /**
2057
+ * Accept-Language header from the buyer's browser
2058
+ */
2059
+ accept_language?: string;
2060
+ /**
2061
+ * Session identifier for the buyer
2062
+ */
2063
+ session_id?: string;
2064
+ /**
2065
+ * Device fingerprint for fraud detection
2066
+ */
2067
+ device_fingerprint?: string;
2068
+ }
2069
+ /**
2070
+ * Order returned after checkout completion. Contains order details and optional rich post-purchase tracking.
2071
+ *
2072
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
2073
+ * via the `definition` "Order".
2074
+ */
2075
+ export interface Order {
2076
+ /**
2077
+ * Discriminator field for webhook payloads. Always 'order' when present.
2078
+ */
2079
+ type?: 'order';
2080
+ /**
2081
+ * Unique identifier for the order
2082
+ */
2083
+ id: string;
2084
+ /**
2085
+ * ID of the checkout session that created this order
2086
+ */
2087
+ checkout_session_id: string;
2088
+ /**
2089
+ * Human-readable order number for customer reference
2090
+ */
2091
+ order_number?: string;
2092
+ /**
2093
+ * Reference from the client (agent/platform) stored on the order for reconciliation (e.g. platform transaction id, PO number, ERP id).
2094
+ */
2095
+ client_reference_id?: string;
2096
+ /**
2097
+ * Permanent URL where the customer can view order details
2098
+ */
2099
+ permalink_url: string;
2100
+ /**
2101
+ * Order-level status. Implementations MUST accept unrecognized values gracefully. Defined values: 'created', 'confirmed', 'manual_review', 'processing', 'shipped', 'completed', 'canceled'. 'completed' means all items have been delivered/received regardless of fulfillment method. Distinct from LineItem.status 'fulfilled', which indicates the seller has dispatched the item.
2102
+ */
2103
+ status?: string;
2104
+ estimated_delivery?: EstimatedDelivery1;
2105
+ confirmation?: OrderConfirmation1;
2106
+ support?: SupportInfo1;
2107
+ /**
2108
+ * What was ordered, with per-item fulfillment tracking
2109
+ */
2110
+ line_items?: OrderLineItem[];
2111
+ /**
2112
+ * How items are being delivered (shipping, pickup, digital)
2113
+ */
2114
+ fulfillments?: Fulfillment[];
2115
+ /**
2116
+ * Post-order changes: refunds, credits, returns, disputes
2117
+ */
2118
+ adjustments?: Adjustment[];
2119
+ /**
2120
+ * Order-level totals using the same Total schema as checkout. The 'total' entry is always the original charged amount. 'amount_refunded' tracks cumulative refunds.
2121
+ */
2122
+ totals?: Total[];
2123
+ }
2124
+ /**
2125
+ * Estimated delivery time range
2126
+ */
2127
+ export interface EstimatedDelivery1 {
2128
+ /**
2129
+ * RFC 3339 timestamp for earliest expected delivery
2130
+ */
2131
+ earliest: string;
2132
+ /**
2133
+ * RFC 3339 timestamp for latest expected delivery
2134
+ */
2135
+ latest: string;
2136
+ }
2137
+ /**
2138
+ * Order confirmation details
2139
+ */
2140
+ export interface OrderConfirmation1 {
2141
+ /**
2142
+ * Order confirmation number
2143
+ */
2144
+ confirmation_number?: string;
2145
+ /**
2146
+ * Whether a confirmation email has been sent
2147
+ */
2148
+ confirmation_email_sent?: boolean;
2149
+ /**
2150
+ * URL to the order receipt
2151
+ */
2152
+ receipt_url?: string;
2153
+ /**
2154
+ * Invoice number if generated
2155
+ */
2156
+ invoice_number?: string;
2157
+ /**
2158
+ * Echo of order_notes attached to the order.
2159
+ */
2160
+ order_notes?: string;
2161
+ }
2162
+ /**
2163
+ * Customer support contact information
2164
+ */
2165
+ export interface SupportInfo1 {
2166
+ /**
2167
+ * Support contact email
2168
+ */
2169
+ email?: string;
2170
+ /**
2171
+ * Support contact phone number
2172
+ */
2173
+ phone?: string;
2174
+ /**
2175
+ * Support hours of operation
2176
+ */
2177
+ hours?: string;
2178
+ /**
2179
+ * URL to merchant's help center
2180
+ */
2181
+ help_center_url?: string;
2182
+ }
2183
+ /**
2184
+ * Per-line-item tracking of what was ordered and fulfillment progress.
2185
+ *
2186
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
2187
+ * via the `definition` "OrderLineItem".
2188
+ */
2189
+ export interface OrderLineItem {
2190
+ /**
2191
+ * Line item identifier, used for references in fulfillments and adjustments
2192
+ */
2193
+ id: string;
2194
+ /**
2195
+ * Product name
2196
+ */
2197
+ title: string;
2198
+ /**
2199
+ * Catalog product ID
2200
+ */
2201
+ product_id?: string;
2202
+ /**
2203
+ * Product description
2204
+ */
2205
+ description?: string;
2206
+ /**
2207
+ * Product image URL
2208
+ */
2209
+ image_url?: string;
2210
+ /**
2211
+ * Product page URL
2212
+ */
2213
+ url?: string;
2214
+ quantity: OrderLineItemQuantity;
2215
+ /**
2216
+ * Price per unit in minor currency units (cents)
2217
+ */
2218
+ unit_price?: number;
2219
+ /**
2220
+ * Line total in minor currency units
2221
+ */
2222
+ subtotal?: number;
2223
+ /**
2224
+ * Optional line-item level totals breakdown using the same Total schema as checkout. Merchants who can provide richer breakdowns MAY use this alongside or instead of unit_price/subtotal.
2225
+ */
2226
+ totals?: Total[];
2227
+ /**
2228
+ * Derived from quantity fields. Implementations MUST accept unrecognized values gracefully. Defined values: 'processing', 'partial', 'fulfilled', 'removed'. Rules: 'removed' if current==0, 'fulfilled' if fulfilled==current, 'partial' if 0<fulfilled<current, 'processing' otherwise.
2229
+ */
2230
+ status?: string;
2231
+ }
2232
+ /**
2233
+ * Quantity tracking for an order line item. Uses a 3-field model: ordered (original), current (active after cancellations/returns), fulfilled (completed).
2234
+ *
2235
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
2236
+ * via the `definition` "OrderLineItemQuantity".
2237
+ */
2238
+ export interface OrderLineItemQuantity {
2239
+ /**
2240
+ * Quantity originally ordered by the customer
2241
+ */
2242
+ ordered: number;
2243
+ /**
2244
+ * Current active quantity on the order. May be less than ordered due to cancellations or returns. A value of 0 means the line item has been fully removed.
2245
+ */
2246
+ current: number;
2247
+ /**
2248
+ * Quantity that has been fulfilled (shipped, picked up, or digitally delivered). Applies to all fulfillment types, not just shipping.
2249
+ */
2250
+ fulfilled?: number;
2251
+ }
2252
+ /**
2253
+ * A fulfillment represents how items are delivered to the buyer (shipping, pickup, digital).
2254
+ *
2255
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
2256
+ * via the `definition` "Fulfillment".
2257
+ */
2258
+ export interface Fulfillment {
2259
+ /**
2260
+ * Fulfillment identifier
2261
+ */
2262
+ id: string;
2263
+ /**
2264
+ * Fulfillment method type
2265
+ */
2266
+ type: 'shipping' | 'pickup' | 'digital';
2267
+ /**
2268
+ * Current fulfillment status. Implementations MUST accept unrecognized values gracefully. Defined values: 'pending', 'processing', 'shipped', 'in_transit', 'out_for_delivery', 'ready_for_pickup', 'delivered', 'failed', 'canceled'. Not all statuses apply to all types.
2269
+ */
2270
+ status?: string;
2271
+ /**
2272
+ * Which line items and quantities are in this fulfillment
2273
+ */
2274
+ line_items?: LineItemReference[];
2275
+ /**
2276
+ * Carrier name (e.g., 'FedEx', 'UPS', 'USPS'). Applies to type: shipping.
2277
+ */
2278
+ carrier?: string;
2279
+ /**
2280
+ * Carrier tracking number. Applies to type: shipping.
2281
+ */
2282
+ tracking_number?: string;
2283
+ /**
2284
+ * URL to track this shipment. Applies to type: shipping.
2285
+ */
2286
+ tracking_url?: string;
2287
+ destination?: Address;
2288
+ estimated_delivery?: EstimatedDelivery;
2289
+ /**
2290
+ * Digital delivery details. Applies to type: digital.
2291
+ */
2292
+ digital_delivery?: {
2293
+ /**
2294
+ * URL to access digital content (download link, streaming page, etc.)
2295
+ */
2296
+ access_url?: string;
2297
+ /**
2298
+ * License or activation key
2299
+ */
2300
+ license_key?: string;
2301
+ /**
2302
+ * When access expires (RFC 3339 timestamp)
2303
+ */
2304
+ expires_at?: string;
2305
+ };
2306
+ /**
2307
+ * Human-readable description (e.g., 'Backordered - ships Feb 15')
2308
+ */
2309
+ description?: string;
2310
+ /**
2311
+ * Append-only event log tracking fulfillment progress
2312
+ */
2313
+ events?: FulfillmentEvent[];
2314
+ }
2315
+ /**
2316
+ * Reference to a line item with quantity, used in fulfillments and adjustments
2317
+ *
2318
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
2319
+ * via the `definition` "LineItemReference".
2320
+ */
2321
+ export interface LineItemReference {
2322
+ /**
2323
+ * Line item ID reference
2324
+ */
2325
+ id: string;
2326
+ /**
2327
+ * Quantity in this fulfillment or adjustment
2328
+ */
2329
+ quantity: number;
2330
+ }
2331
+ /**
2332
+ * A point-in-time event in the fulfillment lifecycle.
2333
+ *
2334
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
2335
+ * via the `definition` "FulfillmentEvent".
2336
+ */
2337
+ export interface FulfillmentEvent {
2338
+ /**
2339
+ * Event identifier
2340
+ */
2341
+ id: string;
2342
+ /**
2343
+ * Event type. Implementations MUST accept unrecognized values gracefully. Defined values: 'processing', 'shipped', 'in_transit', 'out_for_delivery', 'ready_for_pickup', 'delivered', 'failed_attempt', 'returned_to_sender', 'canceled', 'undeliverable'. 'out_for_delivery' and 'ready_for_pickup' are ACP extensions for richer agent experiences.
2344
+ */
2345
+ type: string;
2346
+ /**
2347
+ * RFC 3339 timestamp when this event occurred
2348
+ */
2349
+ occurred_at: string;
2350
+ /**
2351
+ * Human-readable description (e.g., 'Left at front door')
2352
+ */
2353
+ description?: string;
2354
+ /**
2355
+ * Location where this event occurred (e.g., 'Memphis, TN')
2356
+ */
2357
+ location?: string;
2358
+ }
2359
+ /**
2360
+ * A post-order change such as refund, credit, return, or dispute.
2361
+ *
2362
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
2363
+ * via the `definition` "Adjustment".
2364
+ */
2365
+ export interface Adjustment {
2366
+ /**
2367
+ * Adjustment identifier
2368
+ */
2369
+ id: string;
2370
+ /**
2371
+ * Type of adjustment. Implementations MUST accept unrecognized values gracefully. Defined values: 'refund', 'credit', 'return', 'exchange', 'price_adjustment', 'cancellation', 'dispute'. Use 'refund' for both full and partial refunds (distinguish by amount). 'credit' replaces 'store_credit'. 'dispute' covers chargebacks.
2372
+ */
2373
+ type: string;
2374
+ /**
2375
+ * RFC 3339 timestamp when this adjustment occurred
2376
+ */
2377
+ occurred_at: string;
2378
+ /**
2379
+ * Adjustment status. Implementations MUST accept unrecognized values gracefully. Defined values: 'pending', 'completed', 'failed'.
2380
+ */
2381
+ status: string;
2382
+ /**
2383
+ * Which line items and quantities are affected
2384
+ */
2385
+ line_items?: LineItemReference[];
2386
+ /**
2387
+ * Total amount credited to the buyer in minor currency units, inclusive of any applicable tax
2388
+ */
2389
+ amount?: number;
2390
+ /**
2391
+ * ISO 4217 currency code
2392
+ */
2393
+ currency?: string;
2394
+ /**
2395
+ * Human-readable reason (e.g., 'Defective item')
2396
+ */
2397
+ description?: string;
2398
+ /**
2399
+ * Structured reason code
2400
+ */
2401
+ reason?: string;
2402
+ }
2403
+ /**
2404
+ * Seller-provided authentication metadata for 3DS flows.
2405
+ *
2406
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
2407
+ * via the `definition` "AuthenticationMetadata".
2408
+ */
2409
+ export interface AuthenticationMetadata {
2410
+ /**
2411
+ * Details about the acquirer used for this 3DS Authentication. This object MUST be present.
2412
+ */
2413
+ acquirer_details: {
2414
+ /**
2415
+ * The Acquirer BIN (directory-server specific).
2416
+ */
2417
+ acquirer_bin: string;
2418
+ /**
2419
+ * Two-letter ISO 3166-1 alpha-2 country code.
2420
+ */
2421
+ acquirer_country: string;
2422
+ /**
2423
+ * The Merchant ID assigned by the acquirer.
2424
+ */
2425
+ acquirer_merchant_id: string;
2426
+ /**
2427
+ * Merchant name assigned by the acquirer.
2428
+ */
2429
+ merchant_name: string;
2430
+ /**
2431
+ * Requestor ID (if required by the directory server).
2432
+ */
2433
+ requestor_id?: string;
2434
+ };
2435
+ /**
2436
+ * The 3DS directory server used for this Authentication.
2437
+ */
2438
+ directory_server: 'american_express' | 'mastercard' | 'visa';
2439
+ /**
2440
+ * Contains additional details on the seller's preference for the 3DS authentication flow. Sellers MAY request a preference, but issuers ultimately decide the actual flow.
2441
+ */
2442
+ flow_preference?: {
2443
+ /**
2444
+ * Type of flow requested for this 3DS Authentication. 'challenge' requests a challenge flow; 'frictionless' requests a frictionless flow.
2445
+ */
2446
+ type: 'challenge' | 'frictionless';
2447
+ /**
2448
+ * Details about the requested challenge flow.
2449
+ */
2450
+ challenge?: {
2451
+ /**
2452
+ * Subtype of challenge preference.
2453
+ */
2454
+ type?: 'mandated' | 'preferred';
2455
+ };
2456
+ /**
2457
+ * Details about the requested frictionless flow.
2458
+ */
2459
+ frictionless?: {
2460
+ /**
2461
+ * Subtype of frictionless preference.
2462
+ */
2463
+ type?: 'low_risk';
2464
+ };
2465
+ };
2466
+ [k: string]: unknown | undefined;
2467
+ }
2468
+ /**
2469
+ * Seller-declared marketing consent option that specifies an available channel for which the seller must obtain the buyer's consent before sending marketing content
2470
+ *
2471
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
2472
+ * via the `definition` "MarketingConsentOption".
2473
+ */
2474
+ export interface MarketingConsentOption {
2475
+ /**
2476
+ * Channel for marketing consent.
2477
+ */
2478
+ channel: string;
2479
+ /**
2480
+ * What the buyer is consenting to receive, e.g., 'promotional emails, product launches, and exclusive offers'. Agents MAY use this to compose their own consent prompt.
2481
+ */
2482
+ display_text: string;
2483
+ /**
2484
+ * URL to the seller's privacy policy governing use of the buyer's contact information for marketing.
2485
+ */
2486
+ privacy_policy_url: string;
2487
+ /**
2488
+ * Whether the buyer is currently subscribed to marketing via this channel. When true, agents SHOULD render the consent checkbox as pre-checked. Defaults to false if omitted.
2489
+ */
2490
+ is_subscribed?: boolean;
2491
+ }
2492
+ /**
2493
+ * Buyer's marketing consent decision for a specific channel submitted at checkout completion
2494
+ *
2495
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
2496
+ * via the `definition` "MarketingConsent".
2497
+ */
2498
+ export interface MarketingConsent {
2499
+ /**
2500
+ * Channel matching the consent option channel.
2501
+ */
2502
+ channel: string;
2503
+ /**
2504
+ * Whether the buyer consented to receive marketing via this channel.
2505
+ */
2506
+ opted_in: boolean;
2507
+ }
2508
+ /**
2509
+ * Base checkout session model containing common fields for all checkout session states
2510
+ *
2511
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
2512
+ * via the `definition` "CheckoutSessionBase".
2513
+ */
2514
+ export interface CheckoutSessionBase {
2515
+ /**
2516
+ * Unique identifier for the checkout session
2517
+ */
2518
+ id: string;
2519
+ protocol?: ProtocolVersion1;
2520
+ capabilities: Capabilities1;
2521
+ buyer?: Buyer1;
2522
+ /**
2523
+ * Current status of the checkout session
2524
+ */
2525
+ status: 'incomplete' | 'not_ready_for_payment' | 'requires_escalation' | 'authentication_required' | 'ready_for_payment' | 'pending_approval' | 'complete_in_progress' | 'completed' | 'canceled' | 'in_progress' | 'expired';
2526
+ /**
2527
+ * ISO 4217 settlement currency code
2528
+ */
2529
+ currency: string;
2530
+ /**
2531
+ * ISO 4217 presentment currency code if different from settlement currency
2532
+ */
2533
+ presentment_currency?: string;
2534
+ /**
2535
+ * Exchange rate from presentment to settlement currency
2536
+ */
2537
+ exchange_rate?: number;
2538
+ /**
2539
+ * RFC 3339 timestamp when exchange rate was determined
2540
+ */
2541
+ exchange_rate_timestamp?: string;
2542
+ /**
2543
+ * Locale code (e.g., 'en-US') for localizing content
2544
+ */
2545
+ locale?: string;
2546
+ /**
2547
+ * IANA timezone identifier (e.g., 'America/New_York')
2548
+ */
2549
+ timezone?: string;
2550
+ /**
2551
+ * Line items in the checkout session
2552
+ */
2553
+ line_items: LineItem[];
2554
+ fulfillment_details?: FulfillmentDetails2;
2555
+ /**
2556
+ * Available fulfillment options
2557
+ */
2558
+ fulfillment_options: (FulfillmentOptionShipping | FulfillmentOptionDigital | FulfillmentOptionPickup | FulfillmentOptionLocalDelivery)[];
2559
+ /**
2560
+ * Currently selected fulfillment options
2561
+ */
2562
+ selected_fulfillment_options?: SelectedFulfillmentOption[];
2563
+ /**
2564
+ * Optional grouping of line items by fulfillment method
2565
+ */
2566
+ fulfillment_groups?: FulfillmentGroup[];
2567
+ /**
2568
+ * Cart-level totals breakdown
2569
+ */
2570
+ totals: Total[];
2571
+ /**
2572
+ * Messages to communicate with the buyer (info, warnings, errors)
2573
+ */
2574
+ messages: (MessageInfo | MessageWarning | MessageError)[];
2575
+ /**
2576
+ * Relevant links (terms, policies, support)
2577
+ */
2578
+ links: Link[];
2579
+ authentication_metadata?: AuthenticationMetadata1;
2580
+ /**
2581
+ * RFC 3339 timestamp when the session was created
2582
+ */
2583
+ created_at?: string;
2584
+ /**
2585
+ * RFC 3339 timestamp of last update
2586
+ */
2587
+ updated_at?: string;
2588
+ /**
2589
+ * RFC 3339 timestamp when the session expires
2590
+ */
2591
+ expires_at?: string;
2592
+ /**
2593
+ * URL to continue or resume the checkout session
2594
+ */
2595
+ continue_url?: string;
2596
+ /**
2597
+ * Arbitrary metadata for merchant use
2598
+ */
2599
+ metadata?: {
2600
+ [k: string]: unknown | undefined;
2601
+ };
2602
+ /**
2603
+ * Quote identifier if this session is based on a quote
2604
+ */
2605
+ quote_id?: string;
2606
+ /**
2607
+ * RFC 3339 timestamp when the quote expires
2608
+ */
2609
+ quote_expires_at?: string;
2610
+ discounts?: DiscountsResponse1;
2611
+ /**
2612
+ * Marketing consent options the seller offers. When present, the agent SHOULD display these to the buyer before checkout completion. Agents MAY selectively surface a subset of options; options not surfaced MUST be omitted from marketing_consents in the complete request. When absent, the agent MUST NOT surface any marketing consent UI. An empty array is equivalent to absent.
2613
+ */
2614
+ marketing_consent_options?: MarketingConsentOption[];
2615
+ order?: Order;
2616
+ }
2617
+ /**
2618
+ * Protocol version metadata
2619
+ */
2620
+ export interface ProtocolVersion1 {
2621
+ /**
2622
+ * ACP protocol version in YYYY-MM-DD format.
2623
+ */
2624
+ version: string;
2625
+ }
2626
+ /**
2627
+ * Negotiated capabilities between agent and seller
2628
+ */
2629
+ export interface Capabilities1 {
2630
+ payment?: Payment;
2631
+ interventions?: InterventionCapabilities;
2632
+ /**
2633
+ * Extensions supported by the party. Requests: array of extension identifiers. Responses: array of extension declaration objects.
2634
+ */
2635
+ extensions?: string[] | ExtensionDeclaration[];
2636
+ }
2637
+ /**
2638
+ * Buyer information
2639
+ */
2640
+ export interface Buyer1 {
2641
+ /**
2642
+ * Buyer's first name
2643
+ */
2644
+ first_name?: string;
2645
+ /**
2646
+ * Buyer's last name
2647
+ */
2648
+ last_name?: string;
2649
+ /**
2650
+ * Buyer's full name
2651
+ */
2652
+ full_name?: string;
2653
+ /**
2654
+ * Buyer's email address
2655
+ */
2656
+ email: string;
2657
+ /**
2658
+ * Buyer's phone number
2659
+ */
2660
+ phone_number?: string;
2661
+ /**
2662
+ * Merchant's internal customer identifier
2663
+ */
2664
+ customer_id?: string;
2665
+ /**
2666
+ * Type of buyer account
2667
+ */
2668
+ account_type?: 'guest' | 'registered' | 'business';
2669
+ /**
2670
+ * Buyer's authentication status
2671
+ */
2672
+ authentication_status?: 'authenticated' | 'guest' | 'requires_signin';
2673
+ company?: CompanyInfo1;
2674
+ loyalty?: LoyaltyInfo1;
2675
+ tax_exemption?: TaxExemption1;
2676
+ }
2677
+ /**
2678
+ * Fulfillment contact and address details
2679
+ */
2680
+ export interface FulfillmentDetails2 {
2681
+ /**
2682
+ * Full name for fulfillment contact
2683
+ */
2684
+ name?: string;
2685
+ /**
2686
+ * Contact phone number. E.164 format recommended (e.g., +15551234567) for global interoperability and SMS/delivery carrier systems.
2687
+ */
2688
+ phone_number?: string;
2689
+ /**
2690
+ * Contact email address
2691
+ */
2692
+ email?: string;
2693
+ address?: Address1;
2694
+ }
2695
+ /**
2696
+ * Authentication metadata for payment interventions (e.g., 3DS)
2697
+ */
2698
+ export interface AuthenticationMetadata1 {
2699
+ /**
2700
+ * Details about the acquirer used for this 3DS Authentication. This object MUST be present.
2701
+ */
2702
+ acquirer_details: {
2703
+ /**
2704
+ * The Acquirer BIN (directory-server specific).
2705
+ */
2706
+ acquirer_bin: string;
2707
+ /**
2708
+ * Two-letter ISO 3166-1 alpha-2 country code.
2709
+ */
2710
+ acquirer_country: string;
2711
+ /**
2712
+ * The Merchant ID assigned by the acquirer.
2713
+ */
2714
+ acquirer_merchant_id: string;
2715
+ /**
2716
+ * Merchant name assigned by the acquirer.
2717
+ */
2718
+ merchant_name: string;
2719
+ /**
2720
+ * Requestor ID (if required by the directory server).
2721
+ */
2722
+ requestor_id?: string;
2723
+ };
2724
+ /**
2725
+ * The 3DS directory server used for this Authentication.
2726
+ */
2727
+ directory_server: 'american_express' | 'mastercard' | 'visa';
2728
+ /**
2729
+ * Contains additional details on the seller's preference for the 3DS authentication flow. Sellers MAY request a preference, but issuers ultimately decide the actual flow.
2730
+ */
2731
+ flow_preference?: {
2732
+ /**
2733
+ * Type of flow requested for this 3DS Authentication. 'challenge' requests a challenge flow; 'frictionless' requests a frictionless flow.
2734
+ */
2735
+ type: 'challenge' | 'frictionless';
2736
+ /**
2737
+ * Details about the requested challenge flow.
2738
+ */
2739
+ challenge?: {
2740
+ /**
2741
+ * Subtype of challenge preference.
2742
+ */
2743
+ type?: 'mandated' | 'preferred';
2744
+ };
2745
+ /**
2746
+ * Details about the requested frictionless flow.
2747
+ */
2748
+ frictionless?: {
2749
+ /**
2750
+ * Subtype of frictionless preference.
2751
+ */
2752
+ type?: 'low_risk';
2753
+ };
2754
+ };
2755
+ [k: string]: unknown | undefined;
2756
+ }
2757
+ /**
2758
+ * Discount extension: submitted codes and applied discounts. Present when the 'discount' extension is active.
2759
+ */
2760
+ export interface DiscountsResponse1 {
2761
+ /**
2762
+ * Echo of submitted discount codes.
2763
+ */
2764
+ codes?: string[];
2765
+ /**
2766
+ * Discounts successfully applied (code-based and automatic).
2767
+ */
2768
+ applied?: AppliedDiscount[];
2769
+ /**
2770
+ * Discount codes that could not be applied, with reasons.
2771
+ */
2772
+ rejected?: RejectedDiscount[];
2773
+ }
2774
+ /**
2775
+ * Order returned after checkout completion. Contains order details and optional rich post-purchase tracking.
2776
+ */
2777
+ export interface Order1 {
2778
+ /**
2779
+ * Discriminator field for webhook payloads. Always 'order' when present.
2780
+ */
2781
+ type?: 'order';
2782
+ /**
2783
+ * Unique identifier for the order
2784
+ */
2785
+ id: string;
2786
+ /**
2787
+ * ID of the checkout session that created this order
2788
+ */
2789
+ checkout_session_id: string;
2790
+ /**
2791
+ * Human-readable order number for customer reference
2792
+ */
2793
+ order_number?: string;
2794
+ /**
2795
+ * Reference from the client (agent/platform) stored on the order for reconciliation (e.g. platform transaction id, PO number, ERP id).
2796
+ */
2797
+ client_reference_id?: string;
2798
+ /**
2799
+ * Permanent URL where the customer can view order details
2800
+ */
2801
+ permalink_url: string;
2802
+ /**
2803
+ * Order-level status. Implementations MUST accept unrecognized values gracefully. Defined values: 'created', 'confirmed', 'manual_review', 'processing', 'shipped', 'completed', 'canceled'. 'completed' means all items have been delivered/received regardless of fulfillment method. Distinct from LineItem.status 'fulfilled', which indicates the seller has dispatched the item.
2804
+ */
2805
+ status?: string;
2806
+ estimated_delivery?: EstimatedDelivery1;
2807
+ confirmation?: OrderConfirmation1;
2808
+ support?: SupportInfo1;
2809
+ /**
2810
+ * What was ordered, with per-item fulfillment tracking
2811
+ */
2812
+ line_items?: OrderLineItem[];
2813
+ /**
2814
+ * How items are being delivered (shipping, pickup, digital)
2815
+ */
2816
+ fulfillments?: Fulfillment[];
2817
+ /**
2818
+ * Post-order changes: refunds, credits, returns, disputes
2819
+ */
2820
+ adjustments?: Adjustment[];
2821
+ /**
2822
+ * Order-level totals using the same Total schema as checkout. The 'total' entry is always the original charged amount. 'amount_refunded' tracks cumulative refunds.
2823
+ */
2824
+ totals?: Total[];
2825
+ }
2826
+ /**
2827
+ * Request to create a new checkout session
2828
+ *
2829
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
2830
+ * via the `definition` "CheckoutSessionCreateRequest".
2831
+ */
2832
+ export interface CheckoutSessionCreateRequest {
2833
+ buyer?: Buyer2;
2834
+ /**
2835
+ * Items to add to the checkout session
2836
+ *
2837
+ * @minItems 1
2838
+ */
2839
+ line_items: [Item, ...Item[]];
2840
+ /**
2841
+ * ISO 4217 currency code
2842
+ */
2843
+ currency: string;
2844
+ fulfillment_details?: FulfillmentDetails3;
2845
+ capabilities: Capabilities2;
2846
+ /**
2847
+ * Grouping of items by fulfillment method
2848
+ */
2849
+ fulfillment_groups?: FulfillmentGroup[];
2850
+ affiliate_attribution?: AffiliateAttribution2;
2851
+ /**
2852
+ * DEPRECATED: Use discounts.codes instead. Discount codes to apply.
2853
+ */
2854
+ coupons?: string[];
2855
+ discounts?: DiscountsRequest1;
2856
+ /**
2857
+ * Locale code for localizing content (e.g., 'en-US')
2858
+ */
2859
+ locale?: string;
2860
+ /**
2861
+ * IANA timezone identifier (e.g., 'America/New_York')
2862
+ */
2863
+ timezone?: string;
2864
+ /**
2865
+ * Quote identifier if this session is based on a quote
2866
+ */
2867
+ quote_id?: string;
2868
+ /**
2869
+ * Arbitrary metadata for merchant use
2870
+ */
2871
+ metadata?: {
2872
+ [k: string]: unknown | undefined;
2873
+ };
2874
+ /**
2875
+ * Optional customer/order notes (e.g., delivery instructions, gift message).
2876
+ */
2877
+ order_notes?: string;
2878
+ }
2879
+ /**
2880
+ * Buyer information
2881
+ */
2882
+ export interface Buyer2 {
2883
+ /**
2884
+ * Buyer's first name
2885
+ */
2886
+ first_name?: string;
2887
+ /**
2888
+ * Buyer's last name
2889
+ */
2890
+ last_name?: string;
2891
+ /**
2892
+ * Buyer's full name
2893
+ */
2894
+ full_name?: string;
2895
+ /**
2896
+ * Buyer's email address
2897
+ */
2898
+ email: string;
2899
+ /**
2900
+ * Buyer's phone number
2901
+ */
2902
+ phone_number?: string;
2903
+ /**
2904
+ * Merchant's internal customer identifier
2905
+ */
2906
+ customer_id?: string;
2907
+ /**
2908
+ * Type of buyer account
2909
+ */
2910
+ account_type?: 'guest' | 'registered' | 'business';
2911
+ /**
2912
+ * Buyer's authentication status
2913
+ */
2914
+ authentication_status?: 'authenticated' | 'guest' | 'requires_signin';
2915
+ company?: CompanyInfo1;
2916
+ loyalty?: LoyaltyInfo1;
2917
+ tax_exemption?: TaxExemption1;
2918
+ }
2919
+ /**
2920
+ * Fulfillment contact and address details
2921
+ */
2922
+ export interface FulfillmentDetails3 {
2923
+ /**
2924
+ * Full name for fulfillment contact
2925
+ */
2926
+ name?: string;
2927
+ /**
2928
+ * Contact phone number. E.164 format recommended (e.g., +15551234567) for global interoperability and SMS/delivery carrier systems.
2929
+ */
2930
+ phone_number?: string;
2931
+ /**
2932
+ * Contact email address
2933
+ */
2934
+ email?: string;
2935
+ address?: Address1;
2936
+ }
2937
+ /**
2938
+ * Agent capabilities and supported features
2939
+ */
2940
+ export interface Capabilities2 {
2941
+ payment?: Payment;
2942
+ interventions?: InterventionCapabilities;
2943
+ /**
2944
+ * Extensions supported by the party. Requests: array of extension identifiers. Responses: array of extension declaration objects.
2945
+ */
2946
+ extensions?: string[] | ExtensionDeclaration[];
2947
+ }
2948
+ /**
2949
+ * Discount codes to apply to the checkout session.
2950
+ */
2951
+ export interface DiscountsRequest1 {
2952
+ /**
2953
+ * Discount codes to apply. Case-insensitive. Replaces previously submitted codes. Send empty array to clear.
2954
+ */
2955
+ codes?: string[];
2956
+ }
2957
+ /**
2958
+ * Request to update an existing checkout session
2959
+ *
2960
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
2961
+ * via the `definition` "CheckoutSessionUpdateRequest".
2962
+ */
2963
+ export interface CheckoutSessionUpdateRequest {
2964
+ buyer?: Buyer3;
2965
+ /**
2966
+ * Items to update in the checkout session
2967
+ */
2968
+ line_items?: Item[];
2969
+ fulfillment_details?: FulfillmentDetails4;
2970
+ /**
2971
+ * Updated fulfillment groupings
2972
+ */
2973
+ fulfillment_groups?: FulfillmentGroup[];
2974
+ /**
2975
+ * Fulfillment option selected by the buyer
2976
+ */
2977
+ selected_fulfillment_options?: SelectedFulfillmentOption[];
2978
+ /**
2979
+ * DEPRECATED: Use discounts.codes instead. Discount codes to apply.
2980
+ */
2981
+ coupons?: string[];
2982
+ discounts?: DiscountsRequest2;
2983
+ /**
2984
+ * Optional customer/order notes.
2985
+ */
2986
+ order_notes?: string;
2987
+ }
2988
+ /**
2989
+ * Updated buyer information
2990
+ */
2991
+ export interface Buyer3 {
2992
+ /**
2993
+ * Buyer's first name
2994
+ */
2995
+ first_name?: string;
2996
+ /**
2997
+ * Buyer's last name
2998
+ */
2999
+ last_name?: string;
3000
+ /**
3001
+ * Buyer's full name
3002
+ */
3003
+ full_name?: string;
3004
+ /**
3005
+ * Buyer's email address
3006
+ */
3007
+ email: string;
3008
+ /**
3009
+ * Buyer's phone number
3010
+ */
3011
+ phone_number?: string;
3012
+ /**
3013
+ * Merchant's internal customer identifier
3014
+ */
3015
+ customer_id?: string;
3016
+ /**
3017
+ * Type of buyer account
3018
+ */
3019
+ account_type?: 'guest' | 'registered' | 'business';
3020
+ /**
3021
+ * Buyer's authentication status
3022
+ */
3023
+ authentication_status?: 'authenticated' | 'guest' | 'requires_signin';
3024
+ company?: CompanyInfo1;
3025
+ loyalty?: LoyaltyInfo1;
3026
+ tax_exemption?: TaxExemption1;
3027
+ }
3028
+ /**
3029
+ * Updated fulfillment contact and address
3030
+ */
3031
+ export interface FulfillmentDetails4 {
3032
+ /**
3033
+ * Full name for fulfillment contact
3034
+ */
3035
+ name?: string;
3036
+ /**
3037
+ * Contact phone number. E.164 format recommended (e.g., +15551234567) for global interoperability and SMS/delivery carrier systems.
3038
+ */
3039
+ phone_number?: string;
3040
+ /**
3041
+ * Contact email address
3042
+ */
3043
+ email?: string;
3044
+ address?: Address1;
3045
+ }
3046
+ /**
3047
+ * Discount codes to apply. Replaces previously submitted codes.
3048
+ */
3049
+ export interface DiscountsRequest2 {
3050
+ /**
3051
+ * Discount codes to apply. Case-insensitive. Replaces previously submitted codes. Send empty array to clear.
3052
+ */
3053
+ codes?: string[];
3054
+ }
3055
+ /**
3056
+ * Request to complete a checkout session and create an order
3057
+ *
3058
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
3059
+ * via the `definition` "CheckoutSessionCompleteRequest".
3060
+ */
3061
+ export interface CheckoutSessionCompleteRequest {
3062
+ buyer?: Buyer4;
3063
+ payment_data: PaymentData2;
3064
+ authentication_result?: AuthenticationResult1;
3065
+ affiliate_attribution?: AffiliateAttribution3;
3066
+ risk_signals?: RiskSignals1;
3067
+ /**
3068
+ * Buyer's marketing consent decisions. Agents SHOULD include an entry for each consent option surfaced to the buyer. Options not surfaced MUST be omitted — omission preserves existing subscription state. Sellers SHOULD ignore entries in marketing_consents that do not correspond to a channel in marketing_consent_options.
3069
+ */
3070
+ marketing_consents?: MarketingConsent[];
3071
+ /**
3072
+ * Optional customer/order notes (delivery instructions, gift message).
3073
+ */
3074
+ order_notes?: string;
3075
+ }
3076
+ /**
3077
+ * Final buyer information
3078
+ */
3079
+ export interface Buyer4 {
3080
+ /**
3081
+ * Buyer's first name
3082
+ */
3083
+ first_name?: string;
3084
+ /**
3085
+ * Buyer's last name
3086
+ */
3087
+ last_name?: string;
3088
+ /**
3089
+ * Buyer's full name
3090
+ */
3091
+ full_name?: string;
3092
+ /**
3093
+ * Buyer's email address
3094
+ */
3095
+ email: string;
3096
+ /**
3097
+ * Buyer's phone number
3098
+ */
3099
+ phone_number?: string;
3100
+ /**
3101
+ * Merchant's internal customer identifier
3102
+ */
3103
+ customer_id?: string;
3104
+ /**
3105
+ * Type of buyer account
3106
+ */
3107
+ account_type?: 'guest' | 'registered' | 'business';
3108
+ /**
3109
+ * Buyer's authentication status
3110
+ */
3111
+ authentication_status?: 'authenticated' | 'guest' | 'requires_signin';
3112
+ company?: CompanyInfo1;
3113
+ loyalty?: LoyaltyInfo1;
3114
+ tax_exemption?: TaxExemption1;
3115
+ }
3116
+ /**
3117
+ * Risk and fraud signals
3118
+ */
3119
+ export interface RiskSignals1 {
3120
+ /**
3121
+ * IP address of the buyer
3122
+ */
3123
+ ip_address?: string;
3124
+ /**
3125
+ * User agent string of the buyer's browser
3126
+ */
3127
+ user_agent?: string;
3128
+ /**
3129
+ * Accept-Language header from the buyer's browser
3130
+ */
3131
+ accept_language?: string;
3132
+ /**
3133
+ * Session identifier for the buyer
3134
+ */
3135
+ session_id?: string;
3136
+ /**
3137
+ * Device fingerprint for fraud detection
3138
+ */
3139
+ device_fingerprint?: string;
3140
+ }
3141
+ /**
3142
+ * Structured reason for why a buyer action was taken, used for analytics and debugging
3143
+ *
3144
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
3145
+ * via the `definition` "IntentTrace".
3146
+ */
3147
+ export interface IntentTrace {
3148
+ /**
3149
+ * Reason for abandonment. This enum is extensible: servers SHOULD accept unrecognized values and treat them as 'other' (see RFC Section 7.2). Validators SHOULD be configured for lenient enum handling.
3150
+ */
3151
+ reason_code: 'price_sensitivity' | 'shipping_cost' | 'shipping_speed' | 'product_fit' | 'trust_security' | 'returns_policy' | 'payment_options' | 'comparison' | 'timing_deferred' | 'other';
3152
+ /**
3153
+ * A generated summary of the specific objection or negotiation gap.
3154
+ */
3155
+ trace_summary?: string;
3156
+ /**
3157
+ * Additional structured metadata about the intent
3158
+ */
3159
+ metadata?: {
3160
+ /**
3161
+ * Metadata value
3162
+ */
3163
+ [k: string]: (string | number | boolean) | undefined;
3164
+ };
3165
+ }
3166
+ /**
3167
+ * Request to cancel a checkout session
3168
+ *
3169
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
3170
+ * via the `definition` "CancelSessionRequest".
3171
+ */
3172
+ export interface CancelSessionRequest {
3173
+ intent_trace?: IntentTrace;
3174
+ }
3175
+ /**
3176
+ * Well-known discovery document served at /.well-known/acp.json. Describes the seller's capabilities. This is stable, deterministic information that does not vary per session. Session-specific capabilities (payment methods, payment handlers) are negotiated inline via the capabilities object on POST /checkout_sessions.
3177
+ *
3178
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
3179
+ * via the `definition` "DiscoveryResponse".
3180
+ */
3181
+ export interface DiscoveryResponse {
3182
+ protocol: DiscoveryProtocol;
3183
+ /**
3184
+ * Base URL for the ACP REST API. Agents append resource paths to this URL (e.g., {api_base_url}/checkout_sessions).
3185
+ */
3186
+ api_base_url: string;
3187
+ /**
3188
+ * Transport bindings supported by this seller. "rest" indicates the REST API at api_base_url. "mcp" indicates a Model Context Protocol server is available (see SEP #135). New values are introduced in new API versions; agents MAY treat this enum as exhaustive for a given version.
3189
+ */
3190
+ transports: ('rest' | 'mcp')[];
3191
+ capabilities: DiscoveryCapabilities;
3192
+ }
3193
+ /**
3194
+ * Protocol identification and version information.
3195
+ *
3196
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
3197
+ * via the `definition` "DiscoveryProtocol".
3198
+ */
3199
+ export interface DiscoveryProtocol {
3200
+ /**
3201
+ * Protocol identifier. Always "acp".
3202
+ */
3203
+ name: 'acp';
3204
+ /**
3205
+ * The current (latest) API version supported by the seller, in YYYY-MM-DD format.
3206
+ */
3207
+ version: string;
3208
+ /**
3209
+ * All API versions the seller currently supports, in chronological order (oldest first). Agents SHOULD use the API-Version header to request a specific version. The last element is always the latest supported version.
3210
+ */
3211
+ supported_versions: string[];
3212
+ /**
3213
+ * URL to the seller's ACP documentation.
3214
+ */
3215
+ documentation_url?: string;
3216
+ }
3217
+ /**
3218
+ * Seller capabilities advertised in the well-known discovery document. Contains feature declarations that are stable across sessions.
3219
+ *
3220
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
3221
+ * via the `definition` "DiscoveryCapabilities".
3222
+ */
3223
+ export interface DiscoveryCapabilities {
3224
+ /**
3225
+ * Services available from this seller. Indicates which ACP operations are implemented. This enum is closed per API version; new values are introduced in new API versions. Agents MAY treat the set as exhaustive for a given version.
3226
+ */
3227
+ services: ('checkout' | 'orders' | 'delegate_payment' | 'carts')[];
3228
+ /**
3229
+ * Extensions the seller supports. Whether a specific extension is active for a given session is determined during checkout session creation.
3230
+ */
3231
+ extensions?: DiscoveryExtension[];
3232
+ /**
3233
+ * Intervention types the seller supports. Actual availability for a specific session is negotiated via the capabilities object on POST /checkout_sessions. This enum is closed per API version; new values are introduced in new API versions. Agents MAY treat the set as exhaustive for a given version.
3234
+ */
3235
+ intervention_types?: ('3ds' | 'biometric' | 'address_verification')[];
3236
+ /**
3237
+ * ISO 4217 currency codes supported by the seller.
3238
+ */
3239
+ supported_currencies?: string[];
3240
+ /**
3241
+ * BCP 47 locale tags supported by the seller for localized responses.
3242
+ */
3243
+ supported_locales?: string[];
3244
+ }
3245
+ /**
3246
+ * High-level extension declaration in the discovery document. Identifies the extension and provides a spec URL, but does not include session-level details like schema or extends fields.
3247
+ *
3248
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
3249
+ * via the `definition` "DiscoveryExtension".
3250
+ */
3251
+ export interface DiscoveryExtension {
3252
+ /**
3253
+ * Extension identifier (e.g., "discount", "fulfillment").
3254
+ */
3255
+ name: string;
3256
+ /**
3257
+ * URL to the extension's specification document.
3258
+ */
3259
+ spec?: string;
3260
+ /**
3261
+ * URL to the extension's JSON Schema definition for programmatic validation.
3262
+ */
3263
+ schema?: string;
3264
+ }
3265
+ /**
3266
+ * Protocol-level error returned in 4xx/5xx responses when the server cannot return a valid CheckoutSession at all (e.g. malformed request or unexpected failure). Use Error—not MessageError—when there is no valid session state to return. type semantics: invalid_request — malformed request, missing required fields, invalid JSON, or idempotency violations (codes: idempotency_key_required, idempotency_in_flight, idempotency_conflict); processing_error — unexpected server-side failure; service_unavailable — temporary unavailability.
3267
+ *
3268
+ * This interface was referenced by `AgenticCheckoutSchemaBundle`'s JSON-Schema
3269
+ * via the `definition` "Error".
3270
+ */
3271
+ export interface Error {
3272
+ /**
3273
+ * Error type indicating the category of protocol-level error
3274
+ */
3275
+ type: 'invalid_request' | 'processing_error' | 'service_unavailable';
3276
+ /**
3277
+ * Implementation-defined error code
3278
+ */
3279
+ code: string;
3280
+ /**
3281
+ * Human-readable error message
3282
+ */
3283
+ message: string;
3284
+ /**
3285
+ * RFC 9535 JSONPath (optional)
3286
+ */
3287
+ param?: string;
3288
+ /**
3289
+ * List of API versions supported by the server, ordered by preference (newest first). Only included in version-related errors.
3290
+ */
3291
+ supported_versions?: string[];
3292
+ }