> ## Documentation Index
> Fetch the complete documentation index at: https://developers.appstle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get customer payment methods from Shopify

> Retrieves all payment methods associated with a customer directly from Shopify's payment API. This endpoint returns detailed information about stored payment instruments including credit/debit cards, digital wallets, and other payment methods that the customer can use for subscription billing.

**What This Endpoint Does:**
Queries Shopify's GraphQL API to fetch the customer's payment methods, including active instruments and optionally revoked (expired, removed, or failed) payment methods. This provides real-time payment method data directly from Shopify's payment vault.

**Payment Method Types Supported:**

**Credit/Debit Cards:**
- Visa, Mastercard, American Express, Discover
- Card last 4 digits
- Expiry month and year
- Card brand and type
- Billing address associated with card

**Digital Wallets:**
- Shop Pay
- Apple Pay
- Google Pay
- PayPal (when stored)

**Alternative Payment Methods:**
- Bank accounts (ACH, SEPA)
- Buy Now Pay Later instruments
- Store credit

**Payment Method Information Returned:**

**For Each Payment Method:**
- **Payment Instrument ID**: Unique identifier (used for updates)
- **Display Name**: Human-readable name (e.g., "Visa ending in 4242")
- **Payment Type**: Card, wallet, bank account, etc.
- **Status**: ACTIVE, REVOKED, EXPIRED, FAILED
- **Is Default**: Whether this is the customer's default payment method
- **Last 4 Digits**: For cards and bank accounts
- **Expiry Date**: For cards (month/year)
- **Brand**: Visa, Mastercard, Amex, etc.
- **Billing Address**: Address associated with payment method
- **Created Date**: When payment method was added

**Query Parameters:**

**allowRevokedMethod (optional, default: false):**
- `false`: Returns only active, usable payment methods
- `true`: Returns both active AND revoked payment methods

**Revoked Payment Methods:**
Include expired cards, deleted payment methods, failed instruments, and customer-removed methods. Useful for historical records and troubleshooting, but cannot be used for new billing attempts.

**Use Cases:**

**1. Customer Portal:**
- Display saved payment methods
- Allow customer to select default payment method
- Show payment method update/delete options
- Validate payment methods before subscription modification

**2. Subscription Management:**
- Verify customer has valid payment method before creating subscription
- Check payment method expiry before next billing
- Identify subscriptions at risk due to expiring cards
- Prompt customer to update payment if needed

**3. Payment Method Updates:**
- List available payment methods for customer selection
- Identify payment instrument ID for update operations
- Validate payment method before switching subscription

**4. Troubleshooting & Support:**
- Debug payment failures
- Verify which payment method is being used
- Check if payment method is expired or revoked
- Assist customer with payment issues

**5. Analytics & Alerts:**
- Track payment methods approaching expiry
- Send proactive notifications to update cards
- Analyze payment method distribution
- Identify customers with no valid payment methods

**Response Structure:**

Returns CustomerPaymentMethodsQuery.PaymentMethods object from Shopify GraphQL:
```json
{
  "nodes": [
    {
      "id": "gid://shopify/CustomerPaymentMethod/abc123",
      "instrument": {
        "__typename": "CustomerCreditCard",
        "brand": "VISA",
        "lastDigits": "4242",
        "expiryMonth": 12,
        "expiryYear": 2025,
        "name": "John Doe"
      },
      "revokedAt": null,
      "revokedReason": null,
      "subscriptionContracts": [...]
    }
  ]
}
```

**Common Scenarios:**

**Scenario 1: Customer with multiple cards**
Returns array with multiple payment method objects, each representing a stored card.

**Scenario 2: Customer with no payment methods**
Returns empty nodes array - customer needs to add payment method.

**Scenario 3: Expired card included (allowRevokedMethod=true)**
Returns both active cards and expired/revoked cards with revokedAt timestamp.

**Important Considerations:**

**Data Source:**
- Queries Shopify API in real-time (not Appstle database)
- Always returns current Shopify payment method state
- Subject to Shopify API rate limits

**Performance:**
- Response time: 300-800ms (depends on Shopify API)
- Slower than database queries
- Consider caching for non-critical displays

**Security:**
- Never returns full card numbers (PCI compliance)
- Returns only last 4 digits
- CVV is never stored or returned
- Payment instrument IDs are tokenized references

**Privacy:**
- Customer ID validated against shop
- Cannot query payment methods from other shops
- Requires appropriate API permissions

**Best Practices:**

1. **Default to Active Only**: Use `allowRevokedMethod=false` for payment selection UIs
2. **Check Expiry Dates**: Validate card expiry before using for subscriptions
3. **Cache Responsibly**: Cache for short periods (5-10 min) to reduce API calls
4. **Handle Empty Response**: Always handle case where customer has no payment methods
5. **Show User-Friendly Names**: Display brand and last 4 (e.g., "Visa •••• 4242")
6. **Indicate Default**: Highlight the default payment method clearly

**Integration Examples:**

**Example 1: Display payment methods in customer portal**
```javascript
const paymentMethods = await fetch(
  `/api/external/v2/subscription-contract-details/shopify/customer/${customerId}/payment-methods`,
  { headers: { 'X-API-Key': 'your-key' } }
).then(r => r.json());

paymentMethods.nodes.forEach(pm => {
  if (pm.instrument.__typename === 'CustomerCreditCard') {
    console.log(`${pm.instrument.brand} ending in ${pm.instrument.lastDigits}`);
    if (pm.instrument.expiryYear < currentYear) {
      console.warn('Card expired!');
    }
  }
});
```

**Example 2: Check for valid payment before creating subscription**
```javascript
const paymentMethods = await fetch(...);
const hasValidPayment = paymentMethods.nodes.some(pm => 
  !pm.revokedAt && pm.instrument.expiryYear >= currentYear
);

if (!hasValidPayment) {
  alert('Please add a valid payment method before subscribing');
}
```

**Related Endpoints:**
- `PUT /api/external/v2/subscription-contracts-update-payment-method` - Update subscription payment method
- `POST /api/external/v2/associate-shopify-customer-to-external-payment-gateways` - Add external payment method

**Authentication:** Requires valid X-API-Key header



## OpenAPI

````yaml /subscription/admin-api-swagger.json get /api/external/v2/subscription-contract-details/shopify/customer/{customerId}/payment-methods
openapi: 3.0.1
info:
  description: >-
    Comprehensive API documentation for managing subscriptions, payments, and
    related operations. These APIs allow you to programmatically manage
    subscription lifecycles, handle payments, configure products, and integrate
    subscription functionality into your applications.
  title: Admin APIs
  version: 0.0.1
servers:
  - url: https://subscription-admin.appstle.com
security: []
tags:
  - description: >-
      Core APIs for managing the complete subscription lifecycle including
      creation, updates, pausing, resuming, and cancellation of subscriptions.
    name: Subscription Management
  - description: >-
      APIs for managing subscription payment methods, processing payments,
      handling payment retries, and updating billing information.
    name: Subscription Payments
  - description: >-
      APIs for managing subscription contracts including delivery schedules,
      pricing, order notes, billing cycles, and shipping addresses.
    name: Subscription Contracts
  - description: >-
      APIs for managing products within subscriptions including adding,
      removing, updating quantities, and swapping products.
    name: Subscription Products
  - description: >-
      APIs for handling billing operations, payment processing, and financial
      transactions related to subscriptions.
    name: Billing & Payments
  - description: >-
      APIs for managing discounts and promotional codes applied to
      subscriptions.
    name: Subscription Discounts
  - description: >-
      APIs for managing one-time add-on products that can be purchased alongside
      recurring subscription items.
    name: Subscription One-Time Products
  - description: >-
      APIs for managing subscription plans, pricing tiers, and plan
      configurations.
    name: Subscription Plans
  - description: >-
      APIs for managing customizable product boxes and bundles where customers
      can select multiple items.
    name: Build-a-Box & Bundles
  - description: >-
      APIs for managing the product catalog including product information,
      variants, and inventory.
    name: Product Catalog
  - description: >-
      APIs for managing operational settings, configurations, and administrative
      functions.
    name: Operations & Settings
  - description: >-
      APIs powering the customer-facing portal where subscribers can manage
      their own subscriptions.
    name: Customer Portal
  - description: APIs for managing customer information, profiles, and account details.
    name: Customers
  - description: >-
      APIs for retrieving aggregated subscription data, customer subscription
      history, and account-level subscription information.
    name: Subscription Data
  - description: >-
      APIs for managing delivery profiles, shipping rates, free shipping
      configuration, and delivery method options on subscriptions.
    name: Delivery & Shipping
  - description: >-
      APIs for managing storefront customization including custom CSS, theme
      settings, label translations, and merchant-defined widget configuration.
    name: Customization
  - description: >-
      APIs for configuring cancellation flows, retention offers, cancellation
      reason management, and win-back automation.
    name: Customer Retention
paths:
  /api/external/v2/subscription-contract-details/shopify/customer/{customerId}/payment-methods:
    get:
      tags:
        - Customers
        - Subscription Contracts
      summary: Get customer payment methods from Shopify
      description: >-
        Retrieves all payment methods associated with a customer directly from
        Shopify's payment API. This endpoint returns detailed information about
        stored payment instruments including credit/debit cards, digital
        wallets, and other payment methods that the customer can use for
        subscription billing.


        **What This Endpoint Does:**

        Queries Shopify's GraphQL API to fetch the customer's payment methods,
        including active instruments and optionally revoked (expired, removed,
        or failed) payment methods. This provides real-time payment method data
        directly from Shopify's payment vault.


        **Payment Method Types Supported:**


        **Credit/Debit Cards:**

        - Visa, Mastercard, American Express, Discover

        - Card last 4 digits

        - Expiry month and year

        - Card brand and type

        - Billing address associated with card


        **Digital Wallets:**

        - Shop Pay

        - Apple Pay

        - Google Pay

        - PayPal (when stored)


        **Alternative Payment Methods:**

        - Bank accounts (ACH, SEPA)

        - Buy Now Pay Later instruments

        - Store credit


        **Payment Method Information Returned:**


        **For Each Payment Method:**

        - **Payment Instrument ID**: Unique identifier (used for updates)

        - **Display Name**: Human-readable name (e.g., "Visa ending in 4242")

        - **Payment Type**: Card, wallet, bank account, etc.

        - **Status**: ACTIVE, REVOKED, EXPIRED, FAILED

        - **Is Default**: Whether this is the customer's default payment method

        - **Last 4 Digits**: For cards and bank accounts

        - **Expiry Date**: For cards (month/year)

        - **Brand**: Visa, Mastercard, Amex, etc.

        - **Billing Address**: Address associated with payment method

        - **Created Date**: When payment method was added


        **Query Parameters:**


        **allowRevokedMethod (optional, default: false):**

        - `false`: Returns only active, usable payment methods

        - `true`: Returns both active AND revoked payment methods


        **Revoked Payment Methods:**

        Include expired cards, deleted payment methods, failed instruments, and
        customer-removed methods. Useful for historical records and
        troubleshooting, but cannot be used for new billing attempts.


        **Use Cases:**


        **1. Customer Portal:**

        - Display saved payment methods

        - Allow customer to select default payment method

        - Show payment method update/delete options

        - Validate payment methods before subscription modification


        **2. Subscription Management:**

        - Verify customer has valid payment method before creating subscription

        - Check payment method expiry before next billing

        - Identify subscriptions at risk due to expiring cards

        - Prompt customer to update payment if needed


        **3. Payment Method Updates:**

        - List available payment methods for customer selection

        - Identify payment instrument ID for update operations

        - Validate payment method before switching subscription


        **4. Troubleshooting & Support:**

        - Debug payment failures

        - Verify which payment method is being used

        - Check if payment method is expired or revoked

        - Assist customer with payment issues


        **5. Analytics & Alerts:**

        - Track payment methods approaching expiry

        - Send proactive notifications to update cards

        - Analyze payment method distribution

        - Identify customers with no valid payment methods


        **Response Structure:**


        Returns CustomerPaymentMethodsQuery.PaymentMethods object from Shopify
        GraphQL:

        ```json

        {
          "nodes": [
            {
              "id": "gid://shopify/CustomerPaymentMethod/abc123",
              "instrument": {
                "__typename": "CustomerCreditCard",
                "brand": "VISA",
                "lastDigits": "4242",
                "expiryMonth": 12,
                "expiryYear": 2025,
                "name": "John Doe"
              },
              "revokedAt": null,
              "revokedReason": null,
              "subscriptionContracts": [...]
            }
          ]
        }

        ```


        **Common Scenarios:**


        **Scenario 1: Customer with multiple cards**

        Returns array with multiple payment method objects, each representing a
        stored card.


        **Scenario 2: Customer with no payment methods**

        Returns empty nodes array - customer needs to add payment method.


        **Scenario 3: Expired card included (allowRevokedMethod=true)**

        Returns both active cards and expired/revoked cards with revokedAt
        timestamp.


        **Important Considerations:**


        **Data Source:**

        - Queries Shopify API in real-time (not Appstle database)

        - Always returns current Shopify payment method state

        - Subject to Shopify API rate limits


        **Performance:**

        - Response time: 300-800ms (depends on Shopify API)

        - Slower than database queries

        - Consider caching for non-critical displays


        **Security:**

        - Never returns full card numbers (PCI compliance)

        - Returns only last 4 digits

        - CVV is never stored or returned

        - Payment instrument IDs are tokenized references


        **Privacy:**

        - Customer ID validated against shop

        - Cannot query payment methods from other shops

        - Requires appropriate API permissions


        **Best Practices:**


        1. **Default to Active Only**: Use `allowRevokedMethod=false` for
        payment selection UIs

        2. **Check Expiry Dates**: Validate card expiry before using for
        subscriptions

        3. **Cache Responsibly**: Cache for short periods (5-10 min) to reduce
        API calls

        4. **Handle Empty Response**: Always handle case where customer has no
        payment methods

        5. **Show User-Friendly Names**: Display brand and last 4 (e.g., "Visa
        •••• 4242")

        6. **Indicate Default**: Highlight the default payment method clearly


        **Integration Examples:**


        **Example 1: Display payment methods in customer portal**

        ```javascript

        const paymentMethods = await fetch(
          `/api/external/v2/subscription-contract-details/shopify/customer/${customerId}/payment-methods`,
          { headers: { 'X-API-Key': 'your-key' } }
        ).then(r => r.json());


        paymentMethods.nodes.forEach(pm => {
          if (pm.instrument.__typename === 'CustomerCreditCard') {
            console.log(`${pm.instrument.brand} ending in ${pm.instrument.lastDigits}`);
            if (pm.instrument.expiryYear < currentYear) {
              console.warn('Card expired!');
            }
          }
        });

        ```


        **Example 2: Check for valid payment before creating subscription**

        ```javascript

        const paymentMethods = await fetch(...);

        const hasValidPayment = paymentMethods.nodes.some(pm => 
          !pm.revokedAt && pm.instrument.expiryYear >= currentYear
        );


        if (!hasValidPayment) {
          alert('Please add a valid payment method before subscribing');
        }

        ```


        **Related Endpoints:**

        - `PUT /api/external/v2/subscription-contracts-update-payment-method` -
        Update subscription payment method

        - `POST
        /api/external/v2/associate-shopify-customer-to-external-payment-gateways`
        - Add external payment method


        **Authentication:** Requires valid X-API-Key header
      operationId: getShopifyCustomerPaymentDetails
      parameters:
        - in: header
          name: X-API-Key
          required: false
          schema:
            type: string
        - description: Customer Id
          in: path
          name: customerId
          required: true
          schema:
            format: int64
            type: integer
        - description: Get revoked payment methods?
          in: query
          name: allowRevokedMethod
          required: false
          schema:
            default: false
            type: boolean
      responses:
        '200':
          content:
            application/json:
              examples:
                Customer with payment methods:
                  description: Customer with payment methods
                  value:
                    nodes:
                      - id: gid://shopify/CustomerPaymentMethod/abc123
                        instrument:
                          __typename: CustomerCreditCard
                          brand: VISA
                          expiryMonth: 12
                          expiryYear: 2025
                          lastDigits: '4242'
                          name: John Doe
                          source: SHOPIFY
                        revokedAt: null
                        revokedReason: null
                      - id: gid://shopify/CustomerPaymentMethod/def456
                        instrument:
                          __typename: CustomerShopPayAgreement
                          lastDigits: '1234'
                          name: Shop Pay
                        revokedAt: null
                        revokedReason: null
              schema:
                $ref: '#/components/schemas/PaymentMethods'
          description: Successfully retrieved customer payment methods from Shopify
        '400':
          content:
            application/json:
              example:
                detail: Customer ID must be a valid positive integer
                status: 400
                title: Invalid request
                type: https://example.com/errors/bad-request
          description: Bad request - Invalid customer ID or parameters
        '401':
          content:
            application/json:
              example:
                detail: Valid X-API-Key header is required
                status: 401
                title: Authentication required
                type: https://example.com/errors/unauthorized
          description: Authentication required
        '403':
          content:
            application/json:
              example:
                detail: >-
                  Customer does not belong to your shop or API key lacks payment
                  method read permissions
                status: 403
                title: Access denied
                type: https://example.com/errors/forbidden
          description: >-
            Forbidden - Customer does not belong to shop or insufficient
            permissions
        '404':
          content:
            application/json:
              example:
                detail: No customer found with ID 12345 in Shopify
                status: 404
                title: Customer not found
                type: https://example.com/errors/not-found
          description: Customer not found in Shopify
        '429':
          content:
            application/json:
              example:
                detail: >-
                  Shopify API rate limit exceeded. Please retry after 60
                  seconds.
                retryAfter: 60
                status: 429
                title: Rate limit exceeded
                type: https://example.com/errors/rate-limit
          description: Rate limit exceeded - Shopify API rate limit hit
        '502':
          content:
            application/json:
              example:
                detail: >-
                  Failed to retrieve payment methods from Shopify. Please try
                  again later.
                status: 502
                title: Shopify API error
                type: https://example.com/errors/bad-gateway
          description: Bad gateway - Shopify API error
components:
  schemas:
    PaymentMethods:
      properties:
        get__typename:
          type: string
        nodes:
          items:
            $ref: '#/components/schemas/Node'
          type: array
        pageInfo:
          $ref: '#/components/schemas/PageInfo'
      type: object
    Node:
      properties:
        currentPrice:
          $ref: '#/components/schemas/CurrentPrice'
        customAttributes:
          items:
            $ref: '#/components/schemas/CustomAttribute'
          type: array
        discountAllocations:
          items:
            $ref: '#/components/schemas/DiscountAllocation'
          type: array
        get__typename:
          type: string
        id:
          type: string
        lineDiscountedPrice:
          $ref: '#/components/schemas/LineDiscountedPrice'
        pricingPolicy:
          $ref: '#/components/schemas/PricingPolicy'
        productId:
          type: string
        quantity:
          format: int32
          type: integer
        sellingPlanId:
          type: string
        sellingPlanName:
          type: string
        sku:
          type: string
        taxable:
          type: boolean
        title:
          type: string
        variantId:
          type: string
        variantImage:
          $ref: '#/components/schemas/VariantImage'
        variantTitle:
          type: string
      type: object
    PageInfo:
      properties:
        endCursor:
          type: string
        get__typename:
          type: string
        hasNextPage:
          type: boolean
        hasPreviousPage:
          type: boolean
        startCursor:
          type: string
      type: object
    CurrentPrice:
      properties:
        amount:
          type: object
        currencyCode:
          enum:
            - USD
            - EUR
            - GBP
            - CAD
            - AFN
            - ALL
            - DZD
            - AOA
            - ARS
            - AMD
            - AWG
            - AUD
            - BBD
            - AZN
            - BDT
            - BSD
            - BHD
            - BIF
            - BYN
            - BZD
            - BMD
            - BTN
            - BAM
            - BRL
            - BOB
            - BWP
            - BND
            - BGN
            - MMK
            - KHR
            - CVE
            - KYD
            - XAF
            - CLP
            - CNY
            - COP
            - KMF
            - CDF
            - CRC
            - HRK
            - CZK
            - DKK
            - DJF
            - DOP
            - XCD
            - EGP
            - ERN
            - ETB
            - FKP
            - XPF
            - FJD
            - GIP
            - GMD
            - GHS
            - GTQ
            - GYD
            - GEL
            - GNF
            - HTG
            - HNL
            - HKD
            - HUF
            - ISK
            - INR
            - IDR
            - ILS
            - IRR
            - IQD
            - JMD
            - JPY
            - JEP
            - JOD
            - KZT
            - KES
            - KID
            - KWD
            - KGS
            - LAK
            - LVL
            - LBP
            - LSL
            - LRD
            - LYD
            - LTL
            - MGA
            - MKD
            - MOP
            - MWK
            - MVR
            - MRU
            - MXN
            - MYR
            - MUR
            - MDL
            - MAD
            - MNT
            - MZN
            - NAD
            - NPR
            - ANG
            - NZD
            - NIO
            - NGN
            - NOK
            - OMR
            - PAB
            - PKR
            - PGK
            - PYG
            - PEN
            - PHP
            - PLN
            - QAR
            - RON
            - RUB
            - RWF
            - WST
            - SHP
            - SAR
            - RSD
            - SCR
            - SLL
            - SGD
            - SDG
            - SOS
            - SYP
            - ZAR
            - KRW
            - SSP
            - SBD
            - LKR
            - SRD
            - SZL
            - SEK
            - CHF
            - TWD
            - THB
            - TJS
            - TZS
            - TOP
            - TTD
            - TND
            - TRY
            - TMT
            - UGX
            - UAH
            - AED
            - UYU
            - UZS
            - VUV
            - VES
            - VND
            - XOF
            - YER
            - ZMW
            - USDC
            - BYR
            - STD
            - STN
            - VED
            - VEF
            - XXX
            - $UNKNOWN
          type: string
        get__typename:
          type: string
      type: object
    CustomAttribute:
      properties:
        get__typename:
          type: string
        key:
          type: string
        value:
          type: string
      type: object
    DiscountAllocation:
      properties:
        amount:
          $ref: '#/components/schemas/Amount'
        discount:
          $ref: '#/components/schemas/Discount'
        get__typename:
          type: string
      type: object
    LineDiscountedPrice:
      properties:
        amount:
          type: object
        currencyCode:
          enum:
            - USD
            - EUR
            - GBP
            - CAD
            - AFN
            - ALL
            - DZD
            - AOA
            - ARS
            - AMD
            - AWG
            - AUD
            - BBD
            - AZN
            - BDT
            - BSD
            - BHD
            - BIF
            - BYN
            - BZD
            - BMD
            - BTN
            - BAM
            - BRL
            - BOB
            - BWP
            - BND
            - BGN
            - MMK
            - KHR
            - CVE
            - KYD
            - XAF
            - CLP
            - CNY
            - COP
            - KMF
            - CDF
            - CRC
            - HRK
            - CZK
            - DKK
            - DJF
            - DOP
            - XCD
            - EGP
            - ERN
            - ETB
            - FKP
            - XPF
            - FJD
            - GIP
            - GMD
            - GHS
            - GTQ
            - GYD
            - GEL
            - GNF
            - HTG
            - HNL
            - HKD
            - HUF
            - ISK
            - INR
            - IDR
            - ILS
            - IRR
            - IQD
            - JMD
            - JPY
            - JEP
            - JOD
            - KZT
            - KES
            - KID
            - KWD
            - KGS
            - LAK
            - LVL
            - LBP
            - LSL
            - LRD
            - LYD
            - LTL
            - MGA
            - MKD
            - MOP
            - MWK
            - MVR
            - MRU
            - MXN
            - MYR
            - MUR
            - MDL
            - MAD
            - MNT
            - MZN
            - NAD
            - NPR
            - ANG
            - NZD
            - NIO
            - NGN
            - NOK
            - OMR
            - PAB
            - PKR
            - PGK
            - PYG
            - PEN
            - PHP
            - PLN
            - QAR
            - RON
            - RUB
            - RWF
            - WST
            - SHP
            - SAR
            - RSD
            - SCR
            - SLL
            - SGD
            - SDG
            - SOS
            - SYP
            - ZAR
            - KRW
            - SSP
            - SBD
            - LKR
            - SRD
            - SZL
            - SEK
            - CHF
            - TWD
            - THB
            - TJS
            - TZS
            - TOP
            - TTD
            - TND
            - TRY
            - TMT
            - UGX
            - UAH
            - AED
            - UYU
            - UZS
            - VUV
            - VES
            - VND
            - XOF
            - YER
            - ZMW
            - USDC
            - BYR
            - STD
            - STN
            - VED
            - VEF
            - XXX
            - $UNKNOWN
          type: string
        get__typename:
          type: string
      type: object
    PricingPolicy:
      properties:
        basePrice:
          $ref: '#/components/schemas/BasePrice'
        cycleDiscounts:
          items:
            $ref: '#/components/schemas/CycleDiscount'
          type: array
        get__typename:
          type: string
      type: object
    VariantImage:
      properties:
        get__typename:
          type: string
        url:
          type: object
      type: object
    Amount:
      properties:
        amount:
          type: object
        currencyCode:
          enum:
            - USD
            - EUR
            - GBP
            - CAD
            - AFN
            - ALL
            - DZD
            - AOA
            - ARS
            - AMD
            - AWG
            - AUD
            - BBD
            - AZN
            - BDT
            - BSD
            - BHD
            - BIF
            - BYN
            - BZD
            - BMD
            - BTN
            - BAM
            - BRL
            - BOB
            - BWP
            - BND
            - BGN
            - MMK
            - KHR
            - CVE
            - KYD
            - XAF
            - CLP
            - CNY
            - COP
            - KMF
            - CDF
            - CRC
            - HRK
            - CZK
            - DKK
            - DJF
            - DOP
            - XCD
            - EGP
            - ERN
            - ETB
            - FKP
            - XPF
            - FJD
            - GIP
            - GMD
            - GHS
            - GTQ
            - GYD
            - GEL
            - GNF
            - HTG
            - HNL
            - HKD
            - HUF
            - ISK
            - INR
            - IDR
            - ILS
            - IRR
            - IQD
            - JMD
            - JPY
            - JEP
            - JOD
            - KZT
            - KES
            - KID
            - KWD
            - KGS
            - LAK
            - LVL
            - LBP
            - LSL
            - LRD
            - LYD
            - LTL
            - MGA
            - MKD
            - MOP
            - MWK
            - MVR
            - MRU
            - MXN
            - MYR
            - MUR
            - MDL
            - MAD
            - MNT
            - MZN
            - NAD
            - NPR
            - ANG
            - NZD
            - NIO
            - NGN
            - NOK
            - OMR
            - PAB
            - PKR
            - PGK
            - PYG
            - PEN
            - PHP
            - PLN
            - QAR
            - RON
            - RUB
            - RWF
            - WST
            - SHP
            - SAR
            - RSD
            - SCR
            - SLL
            - SGD
            - SDG
            - SOS
            - SYP
            - ZAR
            - KRW
            - SSP
            - SBD
            - LKR
            - SRD
            - SZL
            - SEK
            - CHF
            - TWD
            - THB
            - TJS
            - TZS
            - TOP
            - TTD
            - TND
            - TRY
            - TMT
            - UGX
            - UAH
            - AED
            - UYU
            - UZS
            - VUV
            - VES
            - VND
            - XOF
            - YER
            - ZMW
            - USDC
            - BYR
            - STD
            - STN
            - VED
            - VEF
            - XXX
            - $UNKNOWN
          type: string
        get__typename:
          type: string
      type: object
    Discount:
      properties:
        get__typename:
          type: string
      type: object
    BasePrice:
      properties:
        amount:
          type: object
        currencyCode:
          enum:
            - USD
            - EUR
            - GBP
            - CAD
            - AFN
            - ALL
            - DZD
            - AOA
            - ARS
            - AMD
            - AWG
            - AUD
            - BBD
            - AZN
            - BDT
            - BSD
            - BHD
            - BIF
            - BYN
            - BZD
            - BMD
            - BTN
            - BAM
            - BRL
            - BOB
            - BWP
            - BND
            - BGN
            - MMK
            - KHR
            - CVE
            - KYD
            - XAF
            - CLP
            - CNY
            - COP
            - KMF
            - CDF
            - CRC
            - HRK
            - CZK
            - DKK
            - DJF
            - DOP
            - XCD
            - EGP
            - ERN
            - ETB
            - FKP
            - XPF
            - FJD
            - GIP
            - GMD
            - GHS
            - GTQ
            - GYD
            - GEL
            - GNF
            - HTG
            - HNL
            - HKD
            - HUF
            - ISK
            - INR
            - IDR
            - ILS
            - IRR
            - IQD
            - JMD
            - JPY
            - JEP
            - JOD
            - KZT
            - KES
            - KID
            - KWD
            - KGS
            - LAK
            - LVL
            - LBP
            - LSL
            - LRD
            - LYD
            - LTL
            - MGA
            - MKD
            - MOP
            - MWK
            - MVR
            - MRU
            - MXN
            - MYR
            - MUR
            - MDL
            - MAD
            - MNT
            - MZN
            - NAD
            - NPR
            - ANG
            - NZD
            - NIO
            - NGN
            - NOK
            - OMR
            - PAB
            - PKR
            - PGK
            - PYG
            - PEN
            - PHP
            - PLN
            - QAR
            - RON
            - RUB
            - RWF
            - WST
            - SHP
            - SAR
            - RSD
            - SCR
            - SLL
            - SGD
            - SDG
            - SOS
            - SYP
            - ZAR
            - KRW
            - SSP
            - SBD
            - LKR
            - SRD
            - SZL
            - SEK
            - CHF
            - TWD
            - THB
            - TJS
            - TZS
            - TOP
            - TTD
            - TND
            - TRY
            - TMT
            - UGX
            - UAH
            - AED
            - UYU
            - UZS
            - VUV
            - VES
            - VND
            - XOF
            - YER
            - ZMW
            - USDC
            - BYR
            - STD
            - STN
            - VED
            - VEF
            - XXX
            - $UNKNOWN
          type: string
        get__typename:
          type: string
      type: object
    CycleDiscount:
      properties:
        adjustmentType:
          enum:
            - PERCENTAGE
            - FIXED_AMOUNT
            - PRICE
            - $UNKNOWN
          type: string
        adjustmentValue:
          $ref: '#/components/schemas/AdjustmentValue'
        afterCycle:
          format: int32
          type: integer
        computedPrice:
          $ref: '#/components/schemas/ComputedPrice'
        get__typename:
          type: string
      type: object
    AdjustmentValue:
      properties:
        get__typename:
          type: string
      type: object
    ComputedPrice:
      properties:
        amount:
          type: object
        currencyCode:
          enum:
            - USD
            - EUR
            - GBP
            - CAD
            - AFN
            - ALL
            - DZD
            - AOA
            - ARS
            - AMD
            - AWG
            - AUD
            - BBD
            - AZN
            - BDT
            - BSD
            - BHD
            - BIF
            - BYN
            - BZD
            - BMD
            - BTN
            - BAM
            - BRL
            - BOB
            - BWP
            - BND
            - BGN
            - MMK
            - KHR
            - CVE
            - KYD
            - XAF
            - CLP
            - CNY
            - COP
            - KMF
            - CDF
            - CRC
            - HRK
            - CZK
            - DKK
            - DJF
            - DOP
            - XCD
            - EGP
            - ERN
            - ETB
            - FKP
            - XPF
            - FJD
            - GIP
            - GMD
            - GHS
            - GTQ
            - GYD
            - GEL
            - GNF
            - HTG
            - HNL
            - HKD
            - HUF
            - ISK
            - INR
            - IDR
            - ILS
            - IRR
            - IQD
            - JMD
            - JPY
            - JEP
            - JOD
            - KZT
            - KES
            - KID
            - KWD
            - KGS
            - LAK
            - LVL
            - LBP
            - LSL
            - LRD
            - LYD
            - LTL
            - MGA
            - MKD
            - MOP
            - MWK
            - MVR
            - MRU
            - MXN
            - MYR
            - MUR
            - MDL
            - MAD
            - MNT
            - MZN
            - NAD
            - NPR
            - ANG
            - NZD
            - NIO
            - NGN
            - NOK
            - OMR
            - PAB
            - PKR
            - PGK
            - PYG
            - PEN
            - PHP
            - PLN
            - QAR
            - RON
            - RUB
            - RWF
            - WST
            - SHP
            - SAR
            - RSD
            - SCR
            - SLL
            - SGD
            - SDG
            - SOS
            - SYP
            - ZAR
            - KRW
            - SSP
            - SBD
            - LKR
            - SRD
            - SZL
            - SEK
            - CHF
            - TWD
            - THB
            - TJS
            - TZS
            - TOP
            - TTD
            - TND
            - TRY
            - TMT
            - UGX
            - UAH
            - AED
            - UYU
            - UZS
            - VUV
            - VES
            - VND
            - XOF
            - YER
            - ZMW
            - USDC
            - BYR
            - STD
            - STN
            - VED
            - VEF
            - XXX
            - $UNKNOWN
          type: string
        get__typename:
          type: string
      type: object

````