@shopify/hydrogen 2025.10.1 → 2026.1.0

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.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * THIS FILE IS AUTO-GENERATED, DO NOT EDIT
3
- * Based on Customer Account API 2025-10
3
+ * Based on Customer Account API 2026-01
4
4
  * If changes need to happen to the types defined in this file, then generally the Storefront API needs to update. After it's updated, you can run `npm run graphql-types`.
5
5
  * Except custom Scalars, which are defined in the `codegen.ts` file
6
6
  */
@@ -36,6 +36,15 @@ export type Scalars = {
36
36
  UnsignedInt64: {input: string; output: string};
37
37
  };
38
38
 
39
+ /** The bank account payment details related to a transaction. */
40
+ export type AchPaymentDetails = {
41
+ __typename?: 'AchPaymentDetails';
42
+ /** The name of the bank used. */
43
+ bankName: Scalars['String']['output'];
44
+ /** The last four digits of the bank account used. */
45
+ last4?: Maybe<Scalars['String']['output']>;
46
+ };
47
+
39
48
  /** A sale that includes an additional fee charge. */
40
49
  export type AdditionalFeeSale = Node &
41
50
  Sale & {
@@ -118,6 +127,15 @@ export type AdjustmentSale = Node &
118
127
  totalTaxAmount: MoneyV2;
119
128
  };
120
129
 
130
+ /** A Shopify app. */
131
+ export type App = Node & {
132
+ __typename?: 'App';
133
+ /** A globally-unique ID. */
134
+ id: Scalars['ID']['output'];
135
+ /** The name of the app. */
136
+ title: Scalars['String']['output'];
137
+ };
138
+
121
139
  /** The input fields for the billing address received from Apple Pay. */
122
140
  export type ApplePayBillingAddressInput = {
123
141
  /** The first line of the address, typically the street address or PO Box number. */
@@ -262,6 +280,80 @@ export type AvailableShippingRates = {
262
280
  shippingRates?: Maybe<Array<ShippingRate>>;
263
281
  };
264
282
 
283
+ /** The type of bank account holder. */
284
+ export type BankAccountHolderType =
285
+ /** A company account holder. */
286
+ | 'COMPANY'
287
+ /** An individual account holder. */
288
+ | 'INDIVIDUAL';
289
+
290
+ /** The type of bank account. */
291
+ export type BankAccountType =
292
+ /** A checking account. */
293
+ | 'CHECKING'
294
+ /** A savings account. */
295
+ | 'SAVINGS';
296
+
297
+ /** Represents a bank account payment instrument. */
298
+ export type BankPaymentInstrument = Node &
299
+ PaymentInstrument & {
300
+ __typename?: 'BankPaymentInstrument';
301
+ /** The type of account holder. */
302
+ accountHolderType?: Maybe<BankAccountHolderType>;
303
+ /** The type of bank account. */
304
+ accountType: BankAccountType;
305
+ /** The name of the bank. */
306
+ bankName: Scalars['String']['output'];
307
+ /** The billing address associated with the bank account. */
308
+ billingAddress?: Maybe<PaymentInstrumentBillingAddress>;
309
+ /** The list of open draft orders associated with this payment instrument. */
310
+ draftOrders: DraftOrderConnection;
311
+ /** The globally-unique ID. */
312
+ id: Scalars['ID']['output'];
313
+ /** The last four digits of the account number. */
314
+ lastDigits: Scalars['String']['output'];
315
+ /** The list of pending orders associated with this payment instrument. */
316
+ orders: OrderConnection;
317
+ /** The list of subscription contracts charged using this payment instrument. */
318
+ subscriptionContracts: SubscriptionContractConnection;
319
+ };
320
+
321
+ /** Represents a bank account payment instrument. */
322
+ export type BankPaymentInstrumentDraftOrdersArgs = {
323
+ after?: InputMaybe<Scalars['String']['input']>;
324
+ before?: InputMaybe<Scalars['String']['input']>;
325
+ first?: InputMaybe<Scalars['Int']['input']>;
326
+ last?: InputMaybe<Scalars['Int']['input']>;
327
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
328
+ };
329
+
330
+ /** Represents a bank account payment instrument. */
331
+ export type BankPaymentInstrumentOrdersArgs = {
332
+ after?: InputMaybe<Scalars['String']['input']>;
333
+ before?: InputMaybe<Scalars['String']['input']>;
334
+ first?: InputMaybe<Scalars['Int']['input']>;
335
+ last?: InputMaybe<Scalars['Int']['input']>;
336
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
337
+ };
338
+
339
+ /** Represents a bank account payment instrument. */
340
+ export type BankPaymentInstrumentSubscriptionContractsArgs = {
341
+ after?: InputMaybe<Scalars['String']['input']>;
342
+ before?: InputMaybe<Scalars['String']['input']>;
343
+ first?: InputMaybe<Scalars['Int']['input']>;
344
+ last?: InputMaybe<Scalars['Int']['input']>;
345
+ query?: InputMaybe<Scalars['String']['input']>;
346
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
347
+ sortKey?: InputMaybe<SubscriptionContractsSortKeys>;
348
+ };
349
+
350
+ /** A bank payment method that can be used for recurring and future payments. */
351
+ export type BankPaymentMethod = {
352
+ __typename?: 'BankPaymentMethod';
353
+ /** The payment provider client credentials. */
354
+ paymentProviderClientCredentials: PaymentProviderClientCredentials;
355
+ };
356
+
265
357
  /** The input fields required for updating a business contact. */
266
358
  export type BusinessContactUpdateInput = {
267
359
  /** The first name of the business contact. */
@@ -413,6 +505,8 @@ export type CalculatedReturnLineItem = {
413
505
  lineItem: LineItem;
414
506
  /** The quantity being returned. */
415
507
  quantity: Scalars['Int']['output'];
508
+ /** The subtotal of the return line item without target all discounts. */
509
+ subtotalBeforeTargetAllDiscountsSet: MoneyBag;
416
510
  /** The subtotal of the return line item. */
417
511
  subtotalSet: MoneyBag;
418
512
  /** The total tax of the return line item. */
@@ -927,6 +1021,8 @@ export type CompanyLocation = HasMetafields &
927
1021
  HasStoreCreditAccounts &
928
1022
  Node & {
929
1023
  __typename?: 'CompanyLocation';
1024
+ /** The list of all available payment methods that can be used for recurring and future payments. */
1025
+ availablePaymentMethods: Array<PaymentMethod>;
930
1026
  /** The billing address of the company location. */
931
1027
  billingAddress?: Maybe<CompanyAddress>;
932
1028
  /** The configuration of the buyer's B2B checkout. */
@@ -959,6 +1055,12 @@ export type CompanyLocation = HasMetafields &
959
1055
  name: Scalars['String']['output'];
960
1056
  /** The list of customer orders under the company. */
961
1057
  orders: OrderConnection;
1058
+ /** The payment instrument corresponding to the provided ID. */
1059
+ paymentInstrument?: Maybe<
1060
+ BankPaymentInstrument | CustomerCreditCard | PaypalBillingAgreement
1061
+ >;
1062
+ /** The list of stored payment instruments. */
1063
+ paymentInstruments: PaymentInstrumentConnection;
962
1064
  /** The list of roles assigned to this location. */
963
1065
  roleAssignments: CompanyContactRoleAssignmentConnection;
964
1066
  /** The shipping address of the company location. */
@@ -1031,6 +1133,20 @@ export type CompanyLocationOrdersArgs = {
1031
1133
  sortKey?: InputMaybe<OrderByLocationSortKeys>;
1032
1134
  };
1033
1135
 
1136
+ /** Represents a company's business location. */
1137
+ export type CompanyLocationPaymentInstrumentArgs = {
1138
+ id: Scalars['ID']['input'];
1139
+ };
1140
+
1141
+ /** Represents a company's business location. */
1142
+ export type CompanyLocationPaymentInstrumentsArgs = {
1143
+ after?: InputMaybe<Scalars['String']['input']>;
1144
+ before?: InputMaybe<Scalars['String']['input']>;
1145
+ first?: InputMaybe<Scalars['Int']['input']>;
1146
+ last?: InputMaybe<Scalars['Int']['input']>;
1147
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
1148
+ };
1149
+
1034
1150
  /** Represents a company's business location. */
1035
1151
  export type CompanyLocationRoleAssignmentsArgs = {
1036
1152
  after?: InputMaybe<Scalars['String']['input']>;
@@ -2000,6 +2116,8 @@ export type Customer = HasMetafields &
2000
2116
  __typename?: 'Customer';
2001
2117
  /** The addresses associated with the customer. */
2002
2118
  addresses: CustomerAddressConnection;
2119
+ /** The list of all available payment methods that can be used for recurring and future payments. */
2120
+ availablePaymentMethods: Array<PaymentMethod>;
2003
2121
  /** The list of wallet payment configs for providers that the payment method accepts. */
2004
2122
  availableWalletPaymentConfigs: Array<WalletPaymentConfig>;
2005
2123
  /** The list of contacts the customer is associated with. */
@@ -2039,6 +2157,12 @@ export type Customer = HasMetafields &
2039
2157
  metafields: Array<Maybe<Metafield>>;
2040
2158
  /** The orders associated with the customer. */
2041
2159
  orders: OrderConnection;
2160
+ /** The payment instrument corresponding to the provided ID. */
2161
+ paymentInstrument?: Maybe<
2162
+ BankPaymentInstrument | CustomerCreditCard | PaypalBillingAgreement
2163
+ >;
2164
+ /** The list of stored payment instruments. */
2165
+ paymentInstruments: PaymentInstrumentConnection;
2042
2166
  /** A PayPal Billing Agreement resource. */
2043
2167
  paypalBillingAgreement?: Maybe<PaypalBillingAgreement>;
2044
2168
  /** The phone number of the customer. */
@@ -2123,6 +2247,20 @@ export type CustomerOrdersArgs = {
2123
2247
  sortKey?: InputMaybe<OrderSortKeys>;
2124
2248
  };
2125
2249
 
2250
+ /** Represents the personal information of a customer. Apps using the Customer Account API must meet the protected customer data [requirements](https://shopify.dev/docs/apps/launch/protected-customer-data). */
2251
+ export type CustomerPaymentInstrumentArgs = {
2252
+ id: Scalars['ID']['input'];
2253
+ };
2254
+
2255
+ /** Represents the personal information of a customer. Apps using the Customer Account API must meet the protected customer data [requirements](https://shopify.dev/docs/apps/launch/protected-customer-data). */
2256
+ export type CustomerPaymentInstrumentsArgs = {
2257
+ after?: InputMaybe<Scalars['String']['input']>;
2258
+ before?: InputMaybe<Scalars['String']['input']>;
2259
+ first?: InputMaybe<Scalars['Int']['input']>;
2260
+ last?: InputMaybe<Scalars['Int']['input']>;
2261
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
2262
+ };
2263
+
2126
2264
  /** Represents the personal information of a customer. Apps using the Customer Account API must meet the protected customer data [requirements](https://shopify.dev/docs/apps/launch/protected-customer-data). */
2127
2265
  export type CustomerReturnArgs = {
2128
2266
  id: Scalars['ID']['input'];
@@ -2306,6 +2444,8 @@ export type CustomerCreditCard = Node &
2306
2444
  brand: Scalars['String']['output'];
2307
2445
  /** Whether the credit card is the default payment method. */
2308
2446
  default: Scalars['Boolean']['output'];
2447
+ /** The list of open draft orders associated with this payment instrument. */
2448
+ draftOrders: DraftOrderConnection;
2309
2449
  /** Whether the credit card is about to expire. */
2310
2450
  expiresSoon: Scalars['Boolean']['output'];
2311
2451
  /** The expiry month of the credit card. */
@@ -2324,6 +2464,8 @@ export type CustomerCreditCard = Node &
2324
2464
  name: Scalars['String']['output'];
2325
2465
  /** The list of open draft orders of an associated credit card. */
2326
2466
  openDraftOrders: DraftOrderConnection;
2467
+ /** The list of pending orders associated with this payment instrument. */
2468
+ orders: OrderConnection;
2327
2469
  /** The list of pending orders associated with this credit card. */
2328
2470
  pendingOrders: OrderConnection;
2329
2471
  /** Whether this credit card has permission to be shown at checkout for future purchases. */
@@ -2336,6 +2478,15 @@ export type CustomerCreditCard = Node &
2336
2478
  walletType?: Maybe<PaymentInstrumentWalletType>;
2337
2479
  };
2338
2480
 
2481
+ /** The credit card payment instrument. */
2482
+ export type CustomerCreditCardDraftOrdersArgs = {
2483
+ after?: InputMaybe<Scalars['String']['input']>;
2484
+ before?: InputMaybe<Scalars['String']['input']>;
2485
+ first?: InputMaybe<Scalars['Int']['input']>;
2486
+ last?: InputMaybe<Scalars['Int']['input']>;
2487
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
2488
+ };
2489
+
2339
2490
  /** The credit card payment instrument. */
2340
2491
  export type CustomerCreditCardOpenDraftOrdersArgs = {
2341
2492
  after?: InputMaybe<Scalars['String']['input']>;
@@ -2345,6 +2496,15 @@ export type CustomerCreditCardOpenDraftOrdersArgs = {
2345
2496
  reverse?: InputMaybe<Scalars['Boolean']['input']>;
2346
2497
  };
2347
2498
 
2499
+ /** The credit card payment instrument. */
2500
+ export type CustomerCreditCardOrdersArgs = {
2501
+ after?: InputMaybe<Scalars['String']['input']>;
2502
+ before?: InputMaybe<Scalars['String']['input']>;
2503
+ first?: InputMaybe<Scalars['Int']['input']>;
2504
+ last?: InputMaybe<Scalars['Int']['input']>;
2505
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
2506
+ };
2507
+
2348
2508
  /** The credit card payment instrument. */
2349
2509
  export type CustomerCreditCardPendingOrdersArgs = {
2350
2510
  after?: InputMaybe<Scalars['String']['input']>;
@@ -3313,6 +3473,25 @@ export type FulfillmentStatus =
3313
3473
  /** The fulfillment was completed successfully. */
3314
3474
  | 'SUCCESS';
3315
3475
 
3476
+ /** The generic file resource lets you manage files in a merchant's store. Generic files include any file that doesn't fit into a designated type such as image or video. Example: PDF, JSON. */
3477
+ export type GenericFile = Media & {
3478
+ __typename?: 'GenericFile';
3479
+ /** A word or phrase to indicate the contents of a file. */
3480
+ alt?: Maybe<Scalars['String']['output']>;
3481
+ /** A globally-unique ID. */
3482
+ id: Scalars['ID']['output'];
3483
+ /** The media content type. */
3484
+ mediaContentType: MediaContentType;
3485
+ /** The MIME type of the file. */
3486
+ mimeType?: Maybe<Scalars['String']['output']>;
3487
+ /** The size of the original file in bytes. */
3488
+ originalFileSize?: Maybe<Scalars['Int']['output']>;
3489
+ /** The preview image for the media. */
3490
+ previewImage?: Maybe<Image>;
3491
+ /** The URL of the file. */
3492
+ url?: Maybe<Scalars['URL']['output']>;
3493
+ };
3494
+
3316
3495
  /** The gift card payment details related to a transaction. */
3317
3496
  export type GiftCardDetails = {
3318
3497
  __typename?: 'GiftCardDetails';
@@ -3922,7 +4101,12 @@ export type LineItem = Node & {
3922
4101
  soldQuantity?: Maybe<Scalars['Int']['output']>;
3923
4102
  /** The total price of the line item, ignoring returns, before discounts. */
3924
4103
  soldTotalPrice?: Maybe<MoneyV2>;
3925
- /** The reasons that the customer can return this line item. */
4104
+ /** Return reasons suggested based on the line item's product category in Shopify's product taxonomy. These are a curated subset of the full library of available reasons via the [`returnReasonDefinitions`](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions) query. */
4105
+ suggestedReturnReasonDefinitions?: Maybe<ReturnReasonDefinitionConnection>;
4106
+ /**
4107
+ * The reasons that the customer can return this line item.
4108
+ * @deprecated Use `suggestedReturnReasonDefinitions` instead.
4109
+ */
3926
4110
  supportedReturnReasons: Array<ReturnSupportedReason>;
3927
4111
  /** The title of the product or variant. This field only applies to custom line items. */
3928
4112
  title: Scalars['String']['output'];
@@ -3946,6 +4130,15 @@ export type LineItem = Node & {
3946
4130
  vendor?: Maybe<Scalars['String']['output']>;
3947
4131
  };
3948
4132
 
4133
+ /** A single line item in an order. */
4134
+ export type LineItemSuggestedReturnReasonDefinitionsArgs = {
4135
+ after?: InputMaybe<Scalars['String']['input']>;
4136
+ before?: InputMaybe<Scalars['String']['input']>;
4137
+ first?: InputMaybe<Scalars['Int']['input']>;
4138
+ last?: InputMaybe<Scalars['Int']['input']>;
4139
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
4140
+ };
4141
+
3949
4142
  /** An auto-generated type for paginating through multiple LineItems. */
3950
4143
  export type LineItemConnection = {
3951
4144
  __typename?: 'LineItemConnection';
@@ -4036,6 +4229,8 @@ export type LineItemGroup = Node & {
4036
4229
  isConcrete?: Maybe<Scalars['Boolean']['output']>;
4037
4230
  /** ID of the parent line item. */
4038
4231
  parentLineItemId?: Maybe<Scalars['ID']['output']>;
4232
+ /** The title of the parent variant. */
4233
+ parentVariantTitle?: Maybe<Scalars['String']['output']>;
4039
4234
  /** The number of line item groups ordered. */
4040
4235
  quantity: Scalars['Int']['output'];
4041
4236
  /** The title of the line item group. */
@@ -4135,6 +4330,44 @@ export type MarketWebPresenceRootUrl = {
4135
4330
  url: Scalars['URL']['output'];
4136
4331
  };
4137
4332
 
4333
+ /** Represents a media interface. */
4334
+ export type Media = {
4335
+ /** A word or phrase to share the nature or contents of a media. */
4336
+ alt?: Maybe<Scalars['String']['output']>;
4337
+ /** A globally-unique ID. */
4338
+ id: Scalars['ID']['output'];
4339
+ /** The media content type. */
4340
+ mediaContentType: MediaContentType;
4341
+ /** The preview image for the media. */
4342
+ previewImage?: Maybe<Image>;
4343
+ };
4344
+
4345
+ /** The content types that a media can have. */
4346
+ export type MediaContentType =
4347
+ /** A Shopify hosted generic file. */
4348
+ | 'GENERIC_FILE'
4349
+ /** A Shopify hosted image. */
4350
+ | 'IMAGE'
4351
+ /** A Shopify hosted 3D model. */
4352
+ | 'MODEL_3D'
4353
+ /** A Shopify hosted video. */
4354
+ | 'VIDEO';
4355
+
4356
+ /** Represents a Shopify hosted image. */
4357
+ export type MediaImage = Media & {
4358
+ __typename?: 'MediaImage';
4359
+ /** A word or phrase to share the nature or contents of a media. */
4360
+ alt?: Maybe<Scalars['String']['output']>;
4361
+ /** A globally-unique ID. */
4362
+ id: Scalars['ID']['output'];
4363
+ /** The image for the media. */
4364
+ image?: Maybe<Image>;
4365
+ /** The media content type. */
4366
+ mediaContentType: MediaContentType;
4367
+ /** The preview image for the media. */
4368
+ previewImage?: Maybe<Image>;
4369
+ };
4370
+
4138
4371
  /**
4139
4372
  * The custom metadata attached to a resource. Metafields can be sorted into namespaces and are
4140
4373
  * comprised of keys, values, and value types.
@@ -4160,6 +4393,10 @@ export type Metafield = HasCompareDigest &
4160
4393
  key: Scalars['String']['output'];
4161
4394
  /** The namespace for a metafield. */
4162
4395
  namespace: Scalars['String']['output'];
4396
+ /** Returns a reference object if the metafield's type is a resource reference. */
4397
+ reference?: Maybe<MetafieldReference>;
4398
+ /** A list of reference objects if the metafield's type is a resource reference list. */
4399
+ references?: Maybe<MetafieldReferenceConnection>;
4163
4400
  /**
4164
4401
  * The type name of the metafield.
4165
4402
  * See the list of [supported types](https://shopify.dev/apps/metafields/definitions/types).
@@ -4171,6 +4408,17 @@ export type Metafield = HasCompareDigest &
4171
4408
  value: Scalars['String']['output'];
4172
4409
  };
4173
4410
 
4411
+ /**
4412
+ * The custom metadata attached to a resource. Metafields can be sorted into namespaces and are
4413
+ * comprised of keys, values, and value types.
4414
+ */
4415
+ export type MetafieldReferencesArgs = {
4416
+ after?: InputMaybe<Scalars['String']['input']>;
4417
+ before?: InputMaybe<Scalars['String']['input']>;
4418
+ first?: InputMaybe<Scalars['Int']['input']>;
4419
+ last?: InputMaybe<Scalars['Int']['input']>;
4420
+ };
4421
+
4174
4422
  /** Identifies a metafield by its owner resource, namespace, and key. */
4175
4423
  export type MetafieldIdentifier = {
4176
4424
  __typename?: 'MetafieldIdentifier';
@@ -4192,6 +4440,34 @@ export type MetafieldIdentifierInput = {
4192
4440
  ownerId: Scalars['ID']['input'];
4193
4441
  };
4194
4442
 
4443
+ /** Returns the resource which is being referred to by a metafield. */
4444
+ export type MetafieldReference =
4445
+ | GenericFile
4446
+ | MediaImage
4447
+ | Metaobject
4448
+ | Model3d
4449
+ | Video;
4450
+
4451
+ /** An auto-generated type for paginating through multiple MetafieldReferences. */
4452
+ export type MetafieldReferenceConnection = {
4453
+ __typename?: 'MetafieldReferenceConnection';
4454
+ /** The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. */
4455
+ edges: Array<MetafieldReferenceEdge>;
4456
+ /** A list of nodes that are contained in MetafieldReferenceEdge. You can fetch data about an individual node, or you can follow the edges to fetch data about a collection of related nodes. At each node, you specify the fields that you want to retrieve. */
4457
+ nodes: Array<MetafieldReference>;
4458
+ /** An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page. */
4459
+ pageInfo: PageInfo;
4460
+ };
4461
+
4462
+ /** An auto-generated type which holds one MetafieldReference and a cursor during pagination. */
4463
+ export type MetafieldReferenceEdge = {
4464
+ __typename?: 'MetafieldReferenceEdge';
4465
+ /** The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). */
4466
+ cursor: Scalars['String']['output'];
4467
+ /** The item at the end of MetafieldReferenceEdge. */
4468
+ node: MetafieldReference;
4469
+ };
4470
+
4195
4471
  /** Value type to describe the Metafield value. */
4196
4472
  export type MetafieldValueType =
4197
4473
  /** A boolean metafield. */
@@ -4322,6 +4598,75 @@ export type MetafieldsSetUserErrorCode =
4322
4598
  /** The input value is too short. */
4323
4599
  | 'TOO_SHORT';
4324
4600
 
4601
+ /** An instance of a user-defined model based on a MetaobjectDefinition. */
4602
+ export type Metaobject = Node & {
4603
+ __typename?: 'Metaobject';
4604
+ /** Accesses a field of the object by key. */
4605
+ field?: Maybe<MetaobjectField>;
4606
+ /**
4607
+ * All object fields with defined values.
4608
+ * Omitted object keys can be assumed null, and no guarantees are made about field order.
4609
+ */
4610
+ fields: Array<MetaobjectField>;
4611
+ /** The unique handle of the metaobject. Useful as a custom ID. */
4612
+ handle: Scalars['String']['output'];
4613
+ /** A globally-unique ID. */
4614
+ id: Scalars['ID']['output'];
4615
+ /** The type of the metaobject. */
4616
+ type: Scalars['String']['output'];
4617
+ /** The date and time when the metaobject was last updated. */
4618
+ updatedAt: Scalars['DateTime']['output'];
4619
+ };
4620
+
4621
+ /** An instance of a user-defined model based on a MetaobjectDefinition. */
4622
+ export type MetaobjectFieldArgs = {
4623
+ key: Scalars['String']['input'];
4624
+ };
4625
+
4626
+ /** Provides the value of a Metaobject field. */
4627
+ export type MetaobjectField = {
4628
+ __typename?: 'MetaobjectField';
4629
+ /** The field key. */
4630
+ key: Scalars['String']['output'];
4631
+ /** A referenced object if the field type is a resource reference. */
4632
+ reference?: Maybe<MetafieldReference>;
4633
+ /**
4634
+ * The type name of the field.
4635
+ * See the list of [supported types](https://shopify.dev/apps/metafields/definitions/types).
4636
+ */
4637
+ type: Scalars['String']['output'];
4638
+ /** The field value. */
4639
+ value?: Maybe<Scalars['String']['output']>;
4640
+ };
4641
+
4642
+ /** Represents a Shopify hosted 3D model. */
4643
+ export type Model3d = Media & {
4644
+ __typename?: 'Model3d';
4645
+ /** A word or phrase to share the nature or contents of a media. */
4646
+ alt?: Maybe<Scalars['String']['output']>;
4647
+ /** A globally-unique ID. */
4648
+ id: Scalars['ID']['output'];
4649
+ /** The media content type. */
4650
+ mediaContentType: MediaContentType;
4651
+ /** The preview image for the media. */
4652
+ previewImage?: Maybe<Image>;
4653
+ /** The sources for a 3d model. */
4654
+ sources: Array<Model3dSource>;
4655
+ };
4656
+
4657
+ /** Represents a source for a Shopify hosted 3d model. */
4658
+ export type Model3dSource = {
4659
+ __typename?: 'Model3dSource';
4660
+ /** The filesize of the 3d model. */
4661
+ filesize: Scalars['Int']['output'];
4662
+ /** The format of the 3d model. */
4663
+ format: Scalars['String']['output'];
4664
+ /** The MIME type of the 3d model. */
4665
+ mimeType: Scalars['String']['output'];
4666
+ /** The URL of the 3d model. */
4667
+ url: Scalars['String']['output'];
4668
+ };
4669
+
4325
4670
  /** A collection of monetary values in their respective currencies. Used throughout the API for multi-currency pricing and transactions, when an amount in the shop's currency is converted to the customer's currency of choice. The `presentmentMoney` field contains the amount in the customer's selected currency. The `shopMoney` field contains the equivalent in the shop's base currency. */
4326
4671
  export type MoneyBag = {
4327
4672
  __typename?: 'MoneyBag';
@@ -4407,8 +4752,12 @@ export type Mutation = {
4407
4752
  metafieldsSet?: Maybe<MetafieldsSetPayload>;
4408
4753
  /** Request a new return on behalf of a customer. */
4409
4754
  orderRequestReturn?: Maybe<OrderRequestReturnPayload>;
4755
+ /** Adds a new payment instrument and associates mandates. Returns the created instrument on success. */
4756
+ paymentInstrumentAdd?: Maybe<PaymentInstrumentAddPayload>;
4410
4757
  /** Removes a payment instrument from a customer's account. */
4411
4758
  paymentInstrumentRemove?: Maybe<PaymentInstrumentRemovePayload>;
4759
+ /** Replace existing payment mandates with a new (or existing) instrument. Subscriptions require special treatment. */
4760
+ paymentInstrumentReplace?: Maybe<PaymentInstrumentReplacePayload>;
4412
4761
  /** Updates a customer's default payment instrument. */
4413
4762
  paymentInstrumentUpdateDefault?: Maybe<PaymentInstrumentUpdateDefaultPayload>;
4414
4763
  /** Connects a customer's PayPal account for use as a payment method. */
@@ -4567,12 +4916,27 @@ export type MutationOrderRequestReturnArgs = {
4567
4916
  requestedLineItems: Array<RequestedLineItemInput>;
4568
4917
  };
4569
4918
 
4919
+ /** This is the schema's entry point for all mutation operations. */
4920
+ export type MutationPaymentInstrumentAddArgs = {
4921
+ idempotencyKey: Scalars['String']['input'];
4922
+ instrument: PaymentInstrumentInput;
4923
+ mandates: Array<PaymentMandateInput>;
4924
+ };
4925
+
4570
4926
  /** This is the schema's entry point for all mutation operations. */
4571
4927
  export type MutationPaymentInstrumentRemoveArgs = {
4572
4928
  paymentInstrumentId: Scalars['ID']['input'];
4573
4929
  replacementPaymentInstrumentId?: InputMaybe<Scalars['ID']['input']>;
4574
4930
  };
4575
4931
 
4932
+ /** This is the schema's entry point for all mutation operations. */
4933
+ export type MutationPaymentInstrumentReplaceArgs = {
4934
+ id: Scalars['ID']['input'];
4935
+ idempotencyKey: Scalars['String']['input'];
4936
+ instrument: PaymentInstrumentInput;
4937
+ mandates?: InputMaybe<Array<PaymentMandateInput>>;
4938
+ };
4939
+
4576
4940
  /** This is the schema's entry point for all mutation operations. */
4577
4941
  export type MutationPaymentInstrumentUpdateDefaultArgs = {
4578
4942
  default: Scalars['Boolean']['input'];
@@ -5449,6 +5813,8 @@ export type OrderTransactionStatus =
5449
5813
 
5450
5814
  /** The type of order transaction. */
5451
5815
  export type OrderTransactionType =
5816
+ /** An ACH bank account transaction. */
5817
+ | 'ACH'
5452
5818
  /** A bank deposit transaction. */
5453
5819
  | 'BANK_DEPOSIT'
5454
5820
  /** A card transaction. */
@@ -5485,8 +5851,18 @@ export type PageInfo = {
5485
5851
  startCursor?: Maybe<Scalars['String']['output']>;
5486
5852
  };
5487
5853
 
5854
+ /** The input fields for a single remote-token credential. */
5855
+ export type PaymentCredentialRemoteTokenInput = {
5856
+ /** Internal provider identifier. */
5857
+ providerId?: InputMaybe<Scalars['Int']['input']>;
5858
+ /** Opaque credential token. */
5859
+ token: Scalars['String']['input'];
5860
+ /** Credential type. */
5861
+ type: Scalars['String']['input'];
5862
+ };
5863
+
5488
5864
  /** Payment details related to a transaction. */
5489
- export type PaymentDetails = CardPaymentDetails;
5865
+ export type PaymentDetails = AchPaymentDetails | CardPaymentDetails;
5490
5866
 
5491
5867
  /** The payment icon to display for the transaction. */
5492
5868
  export type PaymentIcon = {
@@ -5559,8 +5935,58 @@ export type PaymentIconImageUrlArgs = {
5559
5935
 
5560
5936
  /** A payment instrument. */
5561
5937
  export type PaymentInstrument = {
5938
+ /** The list of open draft orders associated with this payment instrument. */
5939
+ draftOrders: DraftOrderConnection;
5562
5940
  /** A globally-unique ID. */
5563
5941
  id: Scalars['ID']['output'];
5942
+ /** The list of pending orders associated with this payment instrument. */
5943
+ orders: OrderConnection;
5944
+ /** The list of subscription contracts charged using this payment instrument. */
5945
+ subscriptionContracts: SubscriptionContractConnection;
5946
+ };
5947
+
5948
+ /** A payment instrument. */
5949
+ export type PaymentInstrumentDraftOrdersArgs = {
5950
+ after?: InputMaybe<Scalars['String']['input']>;
5951
+ before?: InputMaybe<Scalars['String']['input']>;
5952
+ first?: InputMaybe<Scalars['Int']['input']>;
5953
+ last?: InputMaybe<Scalars['Int']['input']>;
5954
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
5955
+ };
5956
+
5957
+ /** A payment instrument. */
5958
+ export type PaymentInstrumentOrdersArgs = {
5959
+ after?: InputMaybe<Scalars['String']['input']>;
5960
+ before?: InputMaybe<Scalars['String']['input']>;
5961
+ first?: InputMaybe<Scalars['Int']['input']>;
5962
+ last?: InputMaybe<Scalars['Int']['input']>;
5963
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
5964
+ };
5965
+
5966
+ /** A payment instrument. */
5967
+ export type PaymentInstrumentSubscriptionContractsArgs = {
5968
+ after?: InputMaybe<Scalars['String']['input']>;
5969
+ before?: InputMaybe<Scalars['String']['input']>;
5970
+ first?: InputMaybe<Scalars['Int']['input']>;
5971
+ last?: InputMaybe<Scalars['Int']['input']>;
5972
+ query?: InputMaybe<Scalars['String']['input']>;
5973
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
5974
+ sortKey?: InputMaybe<SubscriptionContractsSortKeys>;
5975
+ };
5976
+
5977
+ /** Return type for `paymentInstrumentAdd` mutation. */
5978
+ export type PaymentInstrumentAddPayload = {
5979
+ __typename?: 'PaymentInstrumentAddPayload';
5980
+ /** The URL to which the customer should be redirected to complete the 3D Secure payment flow. */
5981
+ nextActionUrl?: Maybe<Scalars['URL']['output']>;
5982
+ /** The newly added payment instrument. */
5983
+ paymentInstrument?: Maybe<
5984
+ BankPaymentInstrument | CustomerCreditCard | PaypalBillingAgreement
5985
+ >;
5986
+ /** If the payment verification result is processing. When this is true, payment_instrument will be null. */
5987
+ processing?: Maybe<Scalars['Boolean']['output']>;
5988
+ /** The list of errors that occurred from executing the mutation. */
5989
+ userErrors: Array<UserErrorsPaymentInstrumentUserErrors>;
5564
5990
  };
5565
5991
 
5566
5992
  /** The billing address associated with a credit card payment instrument. */
@@ -5588,6 +6014,34 @@ export type PaymentInstrumentBillingAddress = {
5588
6014
  zip?: Maybe<Scalars['String']['output']>;
5589
6015
  };
5590
6016
 
6017
+ /** An auto-generated type for paginating through multiple PaymentInstruments. */
6018
+ export type PaymentInstrumentConnection = {
6019
+ __typename?: 'PaymentInstrumentConnection';
6020
+ /** The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. */
6021
+ edges: Array<PaymentInstrumentEdge>;
6022
+ /** A list of nodes that are contained in PaymentInstrumentEdge. You can fetch data about an individual node, or you can follow the edges to fetch data about a collection of related nodes. At each node, you specify the fields that you want to retrieve. */
6023
+ nodes: Array<
6024
+ BankPaymentInstrument | CustomerCreditCard | PaypalBillingAgreement
6025
+ >;
6026
+ /** An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page. */
6027
+ pageInfo: PageInfo;
6028
+ };
6029
+
6030
+ /** An auto-generated type which holds one PaymentInstrument and a cursor during pagination. */
6031
+ export type PaymentInstrumentEdge = {
6032
+ __typename?: 'PaymentInstrumentEdge';
6033
+ /** The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). */
6034
+ cursor: Scalars['String']['output'];
6035
+ /** The item at the end of PaymentInstrumentEdge. */
6036
+ node: BankPaymentInstrument | CustomerCreditCard | PaypalBillingAgreement;
6037
+ };
6038
+
6039
+ /** The input fields for a payment instrument. */
6040
+ export type PaymentInstrumentInput = {
6041
+ /** The remote-token based instrument (e.g., credit card session, PayPal token). */
6042
+ remoteToken?: InputMaybe<RemoteTokenPaymentInstrumentInput>;
6043
+ };
6044
+
5591
6045
  /** Return type for `paymentInstrumentRemove` mutation. */
5592
6046
  export type PaymentInstrumentRemovePayload = {
5593
6047
  __typename?: 'PaymentInstrumentRemovePayload';
@@ -5597,6 +6051,21 @@ export type PaymentInstrumentRemovePayload = {
5597
6051
  userErrors: Array<UserErrorsPaymentInstrumentUserErrors>;
5598
6052
  };
5599
6053
 
6054
+ /** Return type for `paymentInstrumentReplace` mutation. */
6055
+ export type PaymentInstrumentReplacePayload = {
6056
+ __typename?: 'PaymentInstrumentReplacePayload';
6057
+ /** The URL to which the customer should be redirected to complete the 3D Secure payment flow. */
6058
+ nextActionUrl?: Maybe<Scalars['URL']['output']>;
6059
+ /** The replacement payment instrument. */
6060
+ paymentInstrument?: Maybe<
6061
+ BankPaymentInstrument | CustomerCreditCard | PaypalBillingAgreement
6062
+ >;
6063
+ /** If the payment verification result is processing. When this is true, payment_instrument will be null. */
6064
+ processing?: Maybe<Scalars['Boolean']['output']>;
6065
+ /** The list of errors that occurred from executing the mutation. */
6066
+ userErrors: Array<UserErrorsPaymentInstrumentUserErrors>;
6067
+ };
6068
+
5600
6069
  /** Return type for `paymentInstrumentUpdateDefault` mutation. */
5601
6070
  export type PaymentInstrumentUpdateDefaultPayload = {
5602
6071
  __typename?: 'PaymentInstrumentUpdateDefaultPayload';
@@ -5615,6 +6084,33 @@ export type PaymentInstrumentWalletType =
5615
6084
  /** The credit card is a Shop Pay wallet. */
5616
6085
  | 'SHOP_PAY';
5617
6086
 
6087
+ /** The input fields for a mandate association for a payment instrument. */
6088
+ export type PaymentMandateInput = {
6089
+ resourceId?: InputMaybe<Scalars['Int']['input']>;
6090
+ resourceType: PaymentMandateResourceType;
6091
+ };
6092
+
6093
+ /** Resources a mandate can be associated with. */
6094
+ export type PaymentMandateResourceType =
6095
+ | 'ANY'
6096
+ | 'CHECKOUT'
6097
+ | 'DRAFTORDER'
6098
+ | 'ORDER'
6099
+ | 'RECEIPT'
6100
+ | 'SUBSCRIPTIONS';
6101
+
6102
+ /** A payment method that customers can use to pay. */
6103
+ export type PaymentMethod = BankPaymentMethod;
6104
+
6105
+ /** Represents a payment provider client credentials. */
6106
+ export type PaymentProviderClientCredentials = {
6107
+ __typename?: 'PaymentProviderClientCredentials';
6108
+ /** The API client key for the payment provider client. */
6109
+ apiClientKey?: Maybe<Scalars['String']['output']>;
6110
+ /** The merchant's payment provider account id. */
6111
+ merchantAccountId?: Maybe<Scalars['String']['output']>;
6112
+ };
6113
+
5618
6114
  /** A single payment schedule defined in the payment terms. */
5619
6115
  export type PaymentSchedule = Node & {
5620
6116
  __typename?: 'PaymentSchedule';
@@ -5726,8 +6222,12 @@ export type PaypalBillingAgreement = Node &
5726
6222
  __typename?: 'PaypalBillingAgreement';
5727
6223
  /** The billing address associated with the payment method. */
5728
6224
  billingAddress?: Maybe<PaymentInstrumentBillingAddress>;
6225
+ /** The list of open draft orders associated with this payment instrument. */
6226
+ draftOrders: DraftOrderConnection;
5729
6227
  /** The globally-unique ID. */
5730
6228
  id: Scalars['ID']['output'];
6229
+ /** The list of pending orders associated with this payment instrument. */
6230
+ orders: OrderConnection;
5731
6231
  /** The email address associated with the PayPal account. */
5732
6232
  paypalAccountEmail?: Maybe<Scalars['String']['output']>;
5733
6233
  /** The list of pending orders associated with this PayPal billing agreement. */
@@ -5736,6 +6236,24 @@ export type PaypalBillingAgreement = Node &
5736
6236
  subscriptionContracts: SubscriptionContractConnection;
5737
6237
  };
5738
6238
 
6239
+ /** A payment method using a PayPal billing agreement. */
6240
+ export type PaypalBillingAgreementDraftOrdersArgs = {
6241
+ after?: InputMaybe<Scalars['String']['input']>;
6242
+ before?: InputMaybe<Scalars['String']['input']>;
6243
+ first?: InputMaybe<Scalars['Int']['input']>;
6244
+ last?: InputMaybe<Scalars['Int']['input']>;
6245
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
6246
+ };
6247
+
6248
+ /** A payment method using a PayPal billing agreement. */
6249
+ export type PaypalBillingAgreementOrdersArgs = {
6250
+ after?: InputMaybe<Scalars['String']['input']>;
6251
+ before?: InputMaybe<Scalars['String']['input']>;
6252
+ first?: InputMaybe<Scalars['Int']['input']>;
6253
+ last?: InputMaybe<Scalars['Int']['input']>;
6254
+ reverse?: InputMaybe<Scalars['Boolean']['input']>;
6255
+ };
6256
+
5739
6257
  /** A payment method using a PayPal billing agreement. */
5740
6258
  export type PaypalBillingAgreementPendingOrdersArgs = {
5741
6259
  after?: InputMaybe<Scalars['String']['input']>;
@@ -6025,6 +6543,16 @@ export type RemainingLineItemContainerLineItemEdge = {
6025
6543
  node: RemainingLineItemContainerLineItem;
6026
6544
  };
6027
6545
 
6546
+ /** The input fields for a remote-token instrument. */
6547
+ export type RemoteTokenPaymentInstrumentInput = {
6548
+ /** The billing address associated with the payment instrument. */
6549
+ billingAddress?: InputMaybe<CustomerAddressInput>;
6550
+ /** Credentials for the remote token instrument. Multiple entries may be required for some instrument types. */
6551
+ credentials: Array<PaymentCredentialRemoteTokenInput>;
6552
+ /** The owner ID to associate with this instrument. */
6553
+ ownerId: Scalars['ID']['input'];
6554
+ };
6555
+
6028
6556
  /** The input fields for a line item requested for return. */
6029
6557
  export type RequestedLineItemInput = {
6030
6558
  /**
@@ -6037,8 +6565,8 @@ export type RequestedLineItemInput = {
6037
6565
  lineItemId: Scalars['ID']['input'];
6038
6566
  /** The quantity of the line item that the customer wants to return. */
6039
6567
  quantity: Scalars['Int']['input'];
6040
- /** The reason for returning the item. */
6041
- returnReason: ReturnReason;
6568
+ /** The ID of a [`ReturnReasonDefinition`](https://shopify.dev/docs/api/customer/latest/objects/ReturnReasonDefinition). Use [`LineItem.suggestedReturnReasonDefinitions`](https://shopify.dev/docs/api/customer/latest/objects/LineItem#field-LineItem.fields.suggestedReturnReasonDefinitions) to get reasons tailored to the product's category. */
6569
+ returnReasonDefinitionId?: InputMaybe<Scalars['ID']['input']>;
6042
6570
  };
6043
6571
 
6044
6572
  /** Return type for `resendGiftCard` mutation. */
@@ -6272,8 +6800,12 @@ export type ReturnFinancialSummary = {
6272
6800
  __typename?: 'ReturnFinancialSummary';
6273
6801
  /** The subtotal of all return line items restocking fees. */
6274
6802
  restockingFeeSubtotalSet: MoneyBag;
6803
+ /** The sum of all order level discounts that are target_all?. */
6804
+ returnOrderLevelDiscountSubtotalSet: MoneyBag;
6275
6805
  /** The subtotal of all return line items shipping fees. */
6276
6806
  returnShippingFeeSubtotalSet: MoneyBag;
6807
+ /** The subtotal of all return line items excluding target_all discounts. */
6808
+ returnSubtotalBeforeTargetAllDiscountsSet: MoneyBag;
6277
6809
  /** The subtotal of all return line items. */
6278
6810
  returnSubtotalSet: MoneyBag;
6279
6811
  /** The subtotal of all return line items with order level discounts applied. */
@@ -6296,6 +6828,8 @@ export type ReturnLineItem = Node &
6296
6828
  quantity: Scalars['Int']['output'];
6297
6829
  /** The reason the line item quantity was returned. */
6298
6830
  returnReason: ReturnReason;
6831
+ /** The standardized reason for why the item is being returned. */
6832
+ returnReasonDefinition?: Maybe<ReturnReasonDefinition>;
6299
6833
  };
6300
6834
 
6301
6835
  /** A line item that has been returned. */
@@ -6306,8 +6840,13 @@ export type ReturnLineItemType = {
6306
6840
  lineItem: LineItem;
6307
6841
  /** The quantity of the line item that's been returned. */
6308
6842
  quantity: Scalars['Int']['output'];
6309
- /** The reason for returning the line item. */
6843
+ /**
6844
+ * The reason for returning the line item.
6845
+ * @deprecated Use `returnReasonDefinition` instead. This field will be removed in the future.
6846
+ */
6310
6847
  returnReason: ReturnReason;
6848
+ /** The standardized reason for why the item is being returned. */
6849
+ returnReasonDefinition?: Maybe<ReturnReasonDefinition>;
6311
6850
  };
6312
6851
 
6313
6852
  /** An auto-generated type for paginating through multiple ReturnLineItemTypes. */
@@ -6359,6 +6898,61 @@ export type ReturnReason =
6359
6898
  /** The customer received the wrong item. */
6360
6899
  | 'WRONG_ITEM';
6361
6900
 
6901
+ /**
6902
+ * A standardized reason for returning an item.
6903
+ *
6904
+ * - Shopify offers an expanded library of return reasons available to all merchants
6905
+ * - For each product, Shopify suggests a curated subset of reasons based on the product's category.
6906
+ */
6907
+ export type ReturnReasonDefinition = Node & {
6908
+ __typename?: 'ReturnReasonDefinition';
6909
+ /**
6910
+ * Whether the return reason has been removed from taxonomy.
6911
+ *
6912
+ * Deleted reasons should not be presented to customers when creating new returns, but may still
6913
+ * appear on existing returns that were created before the reason was deleted. This field enables
6914
+ * graceful deprecation of return reasons without breaking historical data.
6915
+ */
6916
+ deleted: Scalars['Boolean']['output'];
6917
+ /**
6918
+ * A unique, human-readable, stable identifier for the return reason.
6919
+ *
6920
+ * Example values include "arrived-late", "comfort", "too-tight", "color-too-bright", and "quality".
6921
+ * The handle remains consistent across API versions and localizations, making it suitable for programmatic use.
6922
+ */
6923
+ handle: Scalars['String']['output'];
6924
+ /** A globally-unique ID. */
6925
+ id: Scalars['ID']['output'];
6926
+ /**
6927
+ * The localized, user-facing name of the return reason.
6928
+ *
6929
+ * This field returns the reason name in the requested locale, automatically falling back to
6930
+ * English if no translation is available. Use this field when displaying return reasons to
6931
+ * customers.
6932
+ */
6933
+ name: Scalars['String']['output'];
6934
+ };
6935
+
6936
+ /** An auto-generated type for paginating through multiple ReturnReasonDefinitions. */
6937
+ export type ReturnReasonDefinitionConnection = {
6938
+ __typename?: 'ReturnReasonDefinitionConnection';
6939
+ /** The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. */
6940
+ edges: Array<ReturnReasonDefinitionEdge>;
6941
+ /** A list of nodes that are contained in ReturnReasonDefinitionEdge. You can fetch data about an individual node, or you can follow the edges to fetch data about a collection of related nodes. At each node, you specify the fields that you want to retrieve. */
6942
+ nodes: Array<ReturnReasonDefinition>;
6943
+ /** An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page. */
6944
+ pageInfo: PageInfo;
6945
+ };
6946
+
6947
+ /** An auto-generated type which holds one ReturnReasonDefinition and a cursor during pagination. */
6948
+ export type ReturnReasonDefinitionEdge = {
6949
+ __typename?: 'ReturnReasonDefinitionEdge';
6950
+ /** The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). */
6951
+ cursor: Scalars['String']['output'];
6952
+ /** The item at the end of ReturnReasonDefinitionEdge. */
6953
+ node: ReturnReasonDefinition;
6954
+ };
6955
+
6362
6956
  /** The restocking fee incurred during the return process. */
6363
6957
  export type ReturnRestockingFee = ReturnFee & {
6364
6958
  __typename?: 'ReturnRestockingFee';
@@ -7234,6 +7828,8 @@ export type SubscriptionBillingPolicy = {
7234
7828
  export type SubscriptionContract = Node &
7235
7829
  SubscriptionContractBase & {
7236
7830
  __typename?: 'SubscriptionContract';
7831
+ /** The subscription app that the subscription contract is registered to. */
7832
+ app?: Maybe<App>;
7237
7833
  /** Whether the subscription contract is eligible for customer actions. */
7238
7834
  appEligibleForCustomerActions: Scalars['Boolean']['output'];
7239
7835
  /** The billing policy associated with the subscription contract. */
@@ -7273,7 +7869,9 @@ export type SubscriptionContract = Node &
7273
7869
  /** The order from which the contract originated. */
7274
7870
  originOrder?: Maybe<Order>;
7275
7871
  /** The payment instrument being charged for this subscription contract. */
7276
- paymentInstrument?: Maybe<CustomerCreditCard | PaypalBillingAgreement>;
7872
+ paymentInstrument?: Maybe<
7873
+ BankPaymentInstrument | CustomerCreditCard | PaypalBillingAgreement
7874
+ >;
7277
7875
  /** An estimate of the breakdown of the amounts that will be charged in the next billing attempt. */
7278
7876
  priceBreakdownEstimate?: Maybe<SubscriptionPriceBreakdown>;
7279
7877
  /** The revision ID of the contract. */
@@ -8986,8 +9584,13 @@ export type UnverifiedReturnLineItem = Node &
8986
9584
  lineItem: LineItem;
8987
9585
  /** The quantity of the line item that's been returned. */
8988
9586
  quantity: Scalars['Int']['output'];
8989
- /** The reason for returning the line item. */
9587
+ /**
9588
+ * The reason for returning the line item.
9589
+ * @deprecated Use `returnReasonDefinition` instead. This field will be removed in the future.
9590
+ */
8990
9591
  returnReason: ReturnReason;
9592
+ /** The standardized reason for why the item is being returned. */
9593
+ returnReasonDefinition?: Maybe<ReturnReasonDefinition>;
8991
9594
  };
8992
9595
 
8993
9596
  /** The error codes for failed business contact mutations. */
@@ -9269,6 +9872,8 @@ export type UserErrorsPaymentInstrumentUserErrorsCode =
9269
9872
  | 'NAME_INVALID'
9270
9873
  /** The card's number is invalid. */
9271
9874
  | 'NUMBER_INVALID'
9875
+ /** Owner ID is invalid. */
9876
+ | 'OWNER_ID_INVALID'
9272
9877
  /** Payment instrument ID does not exist. */
9273
9878
  | 'PAYMENT_INSTRUMENT_ID_DOES_NOT_EXIST'
9274
9879
  /** This payment instrument is already on file. */
@@ -9372,6 +9977,36 @@ export type UserErrorsStripeFinancialConnectionsSessionUserErrorsCode =
9372
9977
  /** Stripe Financial Connections session could not be initiated. */
9373
9978
  'STRIPE_FINANCIAL_CONNECTIONS_SESSION_ERROR';
9374
9979
 
9980
+ /** Represents a Shopify hosted video. */
9981
+ export type Video = Media & {
9982
+ __typename?: 'Video';
9983
+ /** A word or phrase to share the nature or contents of a media. */
9984
+ alt?: Maybe<Scalars['String']['output']>;
9985
+ /** A globally-unique ID. */
9986
+ id: Scalars['ID']['output'];
9987
+ /** The media content type. */
9988
+ mediaContentType: MediaContentType;
9989
+ /** The preview image for the media. */
9990
+ previewImage?: Maybe<Image>;
9991
+ /** The sources for a video. */
9992
+ sources: Array<VideoSource>;
9993
+ };
9994
+
9995
+ /** Represents a source for a Shopify hosted video. */
9996
+ export type VideoSource = {
9997
+ __typename?: 'VideoSource';
9998
+ /** The format of the video source. */
9999
+ format: Scalars['String']['output'];
10000
+ /** The height of the video. */
10001
+ height: Scalars['Int']['output'];
10002
+ /** The video MIME type. */
10003
+ mimeType: Scalars['String']['output'];
10004
+ /** The URL of the video. */
10005
+ url: Scalars['String']['output'];
10006
+ /** The width of the video. */
10007
+ width: Scalars['Int']['output'];
10008
+ };
10009
+
9375
10010
  /** The configuration used for Payment Wallets. */
9376
10011
  export type WalletPaymentConfig = ApplePayWalletConfig | GooglePayWalletConfig;
9377
10012