openapi: 3.1.0
info:
  contact:
    email: integration@gearment.com
    name: Support Integration
  termsOfService: https://gearment.com/integration/api-terms-of-service.html
  title: Gearment API integration
  version: v3.0.0
  description: >-
    ### Overview


    Welcome to the Gearment Print-On-Demand (POD) Seller API!

    This API enables seamless integration between your stores, applications, and
    the Gearment platform.

    With our API, you can:


    - Manage products and variants


    - Sync inventory


    - Create and manage orders


    - Track fulfillment status


    This documentation will guide you through authentication, rate limits, and
    how to start using the API.


    > **Production API v3 URL:**

    > https://apiv2.gearment.com/integration-handler

    >

    > **Sandbox API v3 URL:**

    > https://api.gearmentinc.com/integration-handler


    > **Need to use API v2**  

    > 👉 [View API v2 Documentation here](https://api.gearment.com)


    ### Authentication


    All API requests must be authenticated with an API Key. Unauthorized
    requests will be rejected.


    **How to obtain your API Key**


    1. Navigate to your **Team Settings** inside the Gearment platform.

    2. Click on **Developer Settings**.

    3. Request and generate your **API Key**.


    > ⚠️ Important:

    > Keep your API key secure. Do not share it publicly or embed it directly in
    client-side applications.

    > If your API Key is compromised, immediately revoke it and generate a new
    one.


    ### Using API Key


    Include your API key in the request headers:


    > **X-Gearment-Client-Key**: Your_Gearment_Client_Key

    >

    > **X-Gearment-Client-Secret**: Your_Gearment_Client_Secret"


    ### Rate Limiting


    To ensure stable service for all users, the Gearment API enforces rate
    limiting.


    | Rate Limit Type  | Value |

    | ------------- |-------------|

    | Requests      | 100 requests per 10 seconds, Block for 1 minute     |

    | Retry-After   | If exceeded, Retry-After header will indicate when you can
    retry     |


    If you exceed the rate limit, the API will respond with:


    ```bash

    json{
      "error": {
        "code": 429,
        "message": "Rate limit exceeded. Please retry later."
      }
    }

    ```


    **Best Practices:**


    - Implement exponential backoff retries for 429 errors.

    - Monitor your API usage.

    - Optimize your integrations to avoid unnecessary requests (e.g., batch
    updates when possible).


    ### Migration Guide


    **🚀 Migration Guide: Moving from [v1/v2](https://api.gearment.com) to [Next
    App v3 API/Webhook](https://developers.gearment.com/)**


    We’ve upgraded our platform to the new [**Next
    App**](https://dash.gearment.com), which provides [**API
    v3**](https://developers.gearment.com/), delivering better performance,
    scalability, and new features.  


    Good news:  

    ✅ **Backward compatibility is preserved.**  

    Your existing integrations using [**API v1/v2**](https://api.gearment.com)
    and **Webhook v1/v2** will continue to work **out of the box** without
    changes.  

    ✅ You can switch to the new APIs at your own pace.  


    ---


    **1. What stays the same**

    - Your current API calls [**v1/v2**](https://api.gearment.com) and
    boundWebhooks will continue to work exactly as before.  

    - We have a **compatibility layer** that routes those calls to the new
    system.  

    - **No immediate action is required** for existing apps.  


    ---


    **2. API Endpoints Overview**


    | Version | Base URL | Sandbox | Notes |

    |---------|----------|---------|-------|

    | v1/v2   | `https://api.gearment.com` | N/A | v1/v2 API, still supported
    via compatibility layer |

    | v3      | `https://apiv2.gearment.com/integration-handler` |
    `https://api.gearmentinc.com/integration-handler` | Next App API (new API
    features) |


    ---


    **3. What’s new in [API v3](https://developers.gearment.com/)**

    - Modernized endpoints for improved queries and faster responses.  

    - Consistent authentication and more detailed error handling.  

    - Access to **new features** and data models not available in v1/v2.  

    - Enhanced developer experience with updated documentation and examples.  


    **Example API v3 Request:**

    - Now you can filter product variants with more criterions, e.g.: look for
    product variants have product_id G5000, variant_id in
    GM0002003147/GM0002005986, with size 3XL, and color Daisy.

    ```curl

    curl -i -X GET \
      -H "X-Gearment-Client-Key: xxx" \
      -H "X-Gearment-Client-Secret: xxxxxx" \
      'https://apiv2.gearment.com/integration-handler/api/v3/catalog/variants/stock?filter.product_ids=G5000&filter.variant_ids=GM0002003147&filter.variant_id=GM0002005986&filter.sizes=3XL&filter.color_codes=daisy&filter.stock_labels=VENDOR_CATALOG_VARIANT_STOCK_LABEL_IN_STOCK&paging.page=1&paging.limit=100'
    ```


    - You can also list/delete webhooks via
    [APIs](https://developers.gearment.com/api/api.webhook.v1.vendorwebhookapi).


    ---


    **4. Webhooks in v3**

    Modified payload for webhooks


    👉 Configure your webhooks in the [Developer
    Settings](https://dash.gearment.com/pod/teams/developer-settings/webhooks).  


    **Example Shipping Address Verified Webhook Payload:**

    - v1/v2:

    ```json

    {
      "type": "shipping_address_verified",
      "data": {
        "gearment_ord_id": "ORD123456789",
        "gearment_ord_name": "#10001",
        "ord_status": "pending",
        "verify_address": "verified",
        "order_id": "EXT-1234567"
      }
    }

    ```


    - v3:

    ```json

    {
      "type": "shipping_address_verified",
      "order": {
        "gearment_id": "ORD123456789",
        "gearment_name": "#10001",
        "vendor_id": "EXT-1234567",
        "verify_address": "verified",
        "ord_status": "pending"
      }
    }

    ```


    ---


    **5. Migration Path**

    If you’re ready to explore [**API v3**](https://developers.gearment.com/),
    follow these steps:  


    1. Take a glance at our **API v3 Documentation**: [👉 Get Started
    Here](https://developers.gearment.com/)  

    2. Visit [Developer
    Settings](https://dash.gearment.com/pod/teams/developer-settings/api-credentials)
    to generate new API credentials for [API/Webhooks
    v3](https://developers.gearment.com/).  

    3. Review the updated endpoint list and request/response formats.  

    4. Update your integration to start using v3 endpoints at your own pace.  


    ---


    **6. Recommendations**

    - **Short-term:** Continue running on v1/v2 without changes if everything
    works.  

    - **Medium-term:** Start adopting v3 for new development to take advantage
    of improvements.  

    - **Long-term:** Plan a full migration, as v1/v2 may be deprecated in the
    future *(deprecation timelines will be communicated well in advance).*  


    ---


    **7. Support**

    Need help migrating?  

    - 📖 [Documentation](https://developers.gearment.com/)  

    - 💬 [Contact our support team](mailto:integration@gearment.com)  
servers:
  - url: https://apiv2.gearment.com/integration-handler
    description: Production Server
  - url: https://api.gearmentinc.com/integration-handler
    description: Sandbox Server
tags:
  - name: api.webhook.v1.VendorWebhookAPI
    description: >-
      VendorWebhookAPI provides webhook management for real-time event
      notifications.
       Register webhooks to receive automated notifications when orders are completed, cancelled, or tracking is updated.

       Base URL: https://apiv2.gearment.com/integration-handler
       Authentication: API Key (header: X-API-Key, X-API-Secret)
    x-displayName: Webhook
  - name: api.order.v1.VendorOrderAPI
    description: >-
      VendorOrderAPI provides comprehensive order management capabilities for
      vendors.
       All endpoints require authentication via X-API-Key and X-API-Secret headers.

       Base URL: https://apiv2.gearment.com/integration-handler
       Authentication: API Key (header: X-API-Key, X-API-Secret)
    x-displayName: Order
  - name: api.catalog.v1.VendorCatalogAPI
    description: >-
      VendorCatalogAPI provides access to product catalog and inventory
      management.
       Use these endpoints to browse available products, check stock status, and get product details.

       Base URL: https://apiv2.gearment.com/integration-handler
       Authentication: API Key (header: X-API-Key, X-API-Secret)
    x-displayName: Catalog
externalDocs:
  description: Find out more about Gearment API v3
  url: https://gearment.com/integration/api-docs.html
paths:
  /api/v3/webhooks:
    get:
      tags:
        - api.webhook.v1.VendorWebhookAPI
      summary: List Webhook
      description: |-
        List all registered webhooks

         GET /api/v3/webhooks

         Returns:
           - All registered webhooks for your account
           - Webhook status (active/inactive)
           - Event topics subscribed
           - Delivery URLs

         Use cases:
           - Audit webhook configurations
           - Verify webhook setup
           - List active event subscriptions
      operationId: api.webhook.v1.VendorWebhookAPI.VendorListWebhook
      parameters:
        - name: filter.statuses
          in: query
          description: Filter by webhook status (e.g., to see only active webhooks)
          schema:
            type: array
            items:
              $ref: '#/components/schemas/api.webhook.v1.VendorWebhook.Status'
            title: statuses
            description: Filter by webhook status (e.g., to see only active webhooks)
        - name: filter.store_ids
          in: query
          description: Filter by store IDs
          schema:
            type: array
            items:
              type: string
              examples:
                - store_abc123
              minLength: 1
            title: store_ids
            description: Filter by store IDs
        - name: filter.team_ids
          in: query
          description: Filter by team IDs (internal use)
          schema:
            type: array
            items:
              type: string
              examples:
                - team_abc123
              minLength: 1
            title: team_ids
            description: Filter by team IDs (internal use)
        - name: filter.topics
          in: query
          description: Filter by event topics
          schema:
            type: array
            items:
              $ref: '#/components/schemas/api.webhook.v1.VendorWebhook.Topic'
            title: topics
            description: Filter by event topics
        - name: filter.versions
          in: query
          description: Filter by webhook version
          schema:
            type: array
            items:
              $ref: '#/components/schemas/api.webhook.v1.VendorWebhook.Version'
            title: versions
            description: Filter by webhook version
        - name: filter.webhook_ids
          in: query
          description: Filter by specific webhook IDs
          schema:
            type: array
            items:
              type: string
              examples:
                - wh_abc123
              minLength: 1
            title: webhook_ids
            description: Filter by specific webhook IDs
        - name: paging.limit
          in: query
          schema:
            type: integer
            title: limit
            format: int32
        - name: paging.page
          in: query
          schema:
            type: integer
            title: page
            format: int32
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.webhook.v1.VendorListWebhookResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security: []
    post:
      tags:
        - api.webhook.v1.VendorWebhookAPI
      summary: Create Webhook
      description: |-
        Register a new webhook for event notifications

         POST /api/v3/webhooks
         Content-Type: application/json

         Available topics:
           - VENDOR_WEBHOOK_TOPIC_ORDER_COMPLETED: Order fulfillment completed
           - VENDOR_WEBHOOK_TOPIC_ORDER_CANCELED: Order was cancelled
           - VENDOR_WEBHOOK_TOPIC_TRACKING_UPDATED: Shipping tracking updated
           - VENDOR_WEBHOOK_TOPIC_ADDRESS_UNVERIFIED: Shipping address validation failed

         Security:
           - Webhooks are sent via HTTPS POST
           - Include signature header for verification
           - Must respond with 200 OK within 30 seconds

         Use cases:
           - Automate order status updates
           - Sync tracking information
           - Alert customers of shipment
      operationId: api.webhook.v1.VendorWebhookAPI.VendorCreateWebhook
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/api.webhook.v1.VendorCreateWebhookRequest'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/api.webhook.v1.VendorCreateWebhookResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security: []
      parameters: []
  /api/v3/webhooks/{webhook_id}:
    delete:
      tags:
        - api.webhook.v1.VendorWebhookAPI
      summary: Delete Webhook
      description: |-
        Delete a webhook subscription

         DELETE /api/v3/webhooks/{webhook_id}

         Use cases:
           - Remove unused webhooks
           - Update webhook configuration (delete + recreate)
      operationId: api.webhook.v1.VendorWebhookAPI.VendorDeleteWebhook
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/api.webhook.v1.VendorDeleteWebhookResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security: []
      parameters: []
  /api/v3/orders:
    get:
      tags:
        - api.order.v1.VendorOrderAPI
      summary: List Order
      description: |-
        List orders with filtering and pagination

         GET /api/v3/orders

         Use cases:
           - Monitor order status changes
           - Sync orders to your system
           - Generate reports on order volumes
      operationId: api.order.v1.VendorOrderAPI.VendorListOrder
      parameters:
        - name: filter.created_at_min
          in: query
          description: ISO 8601 date-time format (e.g., 2024-01-01T00:00:00Z)
          schema:
            type: string
            format: date-time
        - name: filter.created_methods
          in: query
          description: Filter by order creation methods
          schema:
            type: array
            items:
              $ref: '#/components/schemas/api.order.v1.VendorCreatedMethod'
            title: created_methods
            description: Filter by order creation methods
        - name: filter.order_ids
          in: query
          description: Filter by specific order IDs
          schema:
            type: array
            items:
              type: string
              examples:
                - ord_abc123xyz
              maxLength: 100
              minLength: 1
            title: order_ids
            description: Filter by specific order IDs
        - name: filter.payment_status
          in: query
          description: Filter by payment status (for legacy API compatibility)
          schema:
            type: array
            items:
              $ref: '#/components/schemas/api.order.v1.VendorOrderPaymentStatus'
            title: payment_status
            description: Filter by payment status (for legacy API compatibility)
        - name: filter.statuses
          in: query
          description: Filter by order statuses
          schema:
            type: array
            items:
              $ref: '#/components/schemas/api.order.v1.VendorOrderStatus'
            title: statuses
            description: Filter by order statuses
        - name: paging.limit
          in: query
          schema:
            type: integer
            title: limit
            format: int32
        - name: paging.page
          in: query
          schema:
            type: integer
            title: page
            format: int32
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.order.v1.VendorListOrderResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security: []
  /api/v3/orders/draft:
    get:
      tags:
        - api.order.v1.VendorOrderAPI
      summary: List Order Draft
      description: |-
        List order drafts (pending checkout)

         GET /api/v3/orders/draft

         Use cases:
           - Review drafts before checkout
           - Identify stuck/incomplete orders
      operationId: api.order.v1.VendorOrderAPI.VendorListOrderDraft
      parameters:
        - name: filter.created_at_min
          in: query
          description: ISO 8601 date-time format (e.g., 2024-01-01T00:00:00Z)
          schema:
            type: string
            format: date-time
        - name: filter.created_methods
          in: query
          description: Filter by creation methods
          schema:
            type: array
            items:
              $ref: '#/components/schemas/api.order.v1.VendorCreatedMethod'
            title: created_methods
            description: Filter by creation methods
        - name: filter.order_ids
          in: query
          description: Filter by specific order draft IDs
          schema:
            type: array
            items:
              type: string
              examples:
                - draft_abc123
              maxLength: 100
              minLength: 1
            title: order_ids
            description: Filter by specific order draft IDs
        - name: filter.statuses
          in: query
          description: Filter by draft statuses
          schema:
            type: array
            items:
              $ref: '#/components/schemas/api.order.v1.VendorOrderDraftStatus'
            title: statuses
            description: Filter by draft statuses
        - name: paging.limit
          in: query
          schema:
            type: integer
            title: limit
            format: int32
        - name: paging.page
          in: query
          schema:
            type: integer
            title: page
            format: int32
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.order.v1.VendorListOrderDraftResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security: []
    post:
      tags:
        - api.order.v1.VendorOrderAPI
      summary: Create Order Draft
      description: |-
        Create a new order draft

         POST /api/v3/orders/draft
         Content-Type: application/json

         Use cases:
           - Place new orders programmatically
           - Bulk order creation
           - Integration with e-commerce platforms
      operationId: api.order.v1.VendorOrderAPI.VendorCreateOrderDraft
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/api.order.v1.VendorCreateOrderDraftRequest'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/api.order.v1.VendorCreateOrderDraftResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security: []
      parameters: []
  /api/v3/orders/draft/labeled:
    post:
      tags:
        - api.order.v1.VendorOrderAPI
      summary: Create Order Draft With Label
      description: |-
        Create order draft with pre-purchased shipping label

         POST /api/v3/orders/draft/labeled
         Content-Type: application/json

         Use cases:
           - Use your own shipping account
           - Consolidate shipping management
      operationId: api.order.v1.VendorOrderAPI.VendorCreateOrderDraftWithLabel
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/api.order.v1.VendorCreateOrderDraftWithLabelRequest
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/api.order.v1.VendorCreateOrderDraftWithLabelResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security: []
      parameters: []
  /api/v3/orders/draft/line-items:
    patch:
      tags:
        - api.order.v1.VendorOrderAPI
      summary: Update Order Draft Line Items
      description: |-
        Update line items in an order draft

         PATCH /api/v3/orders/draft/line-items
         Content-Type: application/json

         Use cases:
           - Update quantities before checkout
           - Change designs on line items
           - Fix errors in draft orders
      operationId: api.order.v1.VendorOrderAPI.VendorUpdateOrderDraftLineItems
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/api.order.v1.VendorUpdateOrderDraftLineItemsRequest
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/api.order.v1.VendorUpdateOrderDraftLineItemsResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security: []
      parameters: []
  /api/v3/orders/draft/{order_id}:
    get:
      tags:
        - api.order.v1.VendorOrderAPI
      summary: Get Order Draft
      description: |-
        Get details of a specific order draft

         GET /api/v3/orders/draft/{order_id}

         Use cases:
           - Review draft before checkout
           - Verify pricing and line items
      operationId: api.order.v1.VendorOrderAPI.VendorGetOrderDraft
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.order.v1.VendorGetOrderDraftResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security: []
      parameters: []
  /api/v3/orders/price:
    post:
      tags:
        - api.order.v1.VendorOrderAPI
      summary: Get Price Quote
      description: |-
        Get price quote before creating order

         POST /api/v3/orders/price
         Content-Type: application/json

         Response includes:
           - order_total: Total cost
           - order_subtotal: Product costs
           - order_shipping_fee: Shipping cost
           - order_tax: Tax amount

         Use cases:
           - Show pricing to customers before checkout
           - Compare shipping methods
           - Calculate profit margins
      operationId: api.order.v1.VendorOrderAPI.VendorGetPriceQuote
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/api.order.v1.VendorGetPriceQuoteRequest'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.order.v1.VendorGetPriceQuoteResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security: []
      parameters: []
  /api/v3/orders/{order_id}:
    get:
      tags:
        - api.order.v1.VendorOrderAPI
      summary: Get Order
      description: |-
        Get details of a specific order

         GET /api/v3/orders/{order_id}

         Response includes:
           - Order status and tracking
           - Line items with printing details
           - Shipping information
           - Payment/transaction details

         Use cases:
           - Track order fulfillment
           - Get shipping/tracking info
           - Customer support queries
      operationId: api.order.v1.VendorOrderAPI.VendorGetOrder
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.order.v1.VendorGetOrderResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security: []
      parameters: []
  /api/v3/catalog:
    get:
      tags:
        - api.catalog.v1.VendorCatalogAPI
      summary: List Catalog
      description: |-
        List all available products in the catalog

         GET /api/v3/catalog

         Returns:
           - Product listings with base information
           - Available variants for each product
           - Pricing and printing options

         Use cases:
           - Build product catalog in your system
           - Display available products to customers
           - Sync product updates
      operationId: api.catalog.v1.VendorCatalogAPI.VendorListCatalog
      parameters:
        - name: filter.product_ids
          in: query
          description: Filter by specific product IDs
          schema:
            type: array
            items:
              type: string
              examples:
                - prod_abc123
              maxLength: 100
              minLength: 1
            title: product_ids
            description: Filter by specific product IDs
        - name: filter.search_text
          in: query
          description: Search products by name or description
          schema:
            type: string
            examples:
              - Unisex T-Shirt
            title: search_text
            maxLength: 100
            description: Search products by name or description
        - name: paging.limit
          in: query
          schema:
            type: integer
            title: limit
            format: int32
        - name: paging.page
          in: query
          schema:
            type: integer
            title: page
            format: int32
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.catalog.v1.VendorListCatalogResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security: []
  /api/v3/catalog/variants:
    get:
      tags:
        - api.catalog.v1.VendorCatalogAPI
      summary: List Catalog Variant
      description: |-
        List product variants with detailed specifications

         GET /api/v3/catalog/variants

         Returns:
           - Variant details (size, color, SKU)
           - Pricing information
           - Stock availability
           - Print area specifications

         Use cases:
           - Get variant-specific pricing
           - Check size/color availability
           - Display product options to customers
      operationId: api.catalog.v1.VendorCatalogAPI.VendorListCatalogVariant
      parameters:
        - name: filter.color_codes
          in: query
          description: Filter by color codes (internal codes or hex)
          schema:
            type: array
            items:
              type: string
              examples:
                - COLOR_BLACK
              maxLength: 100
              minLength: 1
            title: color_codes
            description: Filter by color codes (internal codes or hex)
        - name: filter.colors
          in: query
          description: Filter by colors (display names)
          schema:
            type: array
            items:
              type: string
              examples:
                - Black
              maxLength: 100
              minLength: 1
            title: colors
            description: Filter by colors (display names)
        - name: filter.legacy_variant_ids
          in: query
          description: Filter by legacy variant IDs (for backward compatibility)
          schema:
            type: array
            items:
              exclusiveMinimum: 0
              type: integer
              examples:
                - 12345
              format: int32
            title: legacy_variant_ids
            description: Filter by legacy variant IDs (for backward compatibility)
        - name: filter.product_ids
          in: query
          description: Filter by product IDs
          schema:
            type: array
            items:
              type: string
              examples:
                - prod_abc123
              maxLength: 100
              minLength: 1
            title: product_ids
            description: Filter by product IDs
        - name: filter.search_text
          in: query
          description: Search variants by text
          schema:
            type: string
            examples:
              - Black Medium
            title: search_text
            description: Search variants by text
        - name: filter.size_codes
          in: query
          description: Filter by size codes (internal codes)
          schema:
            type: array
            items:
              type: string
              examples:
                - SIZE_M
              maxLength: 100
              minLength: 1
            title: size_codes
            description: Filter by size codes (internal codes)
        - name: filter.sizes
          in: query
          description: Filter by sizes (display names)
          schema:
            type: array
            items:
              type: string
              examples:
                - M
              maxLength: 100
              minLength: 1
            title: sizes
            description: Filter by sizes (display names)
        - name: filter.skus
          in: query
          description: Filter by SKUs
          schema:
            type: array
            items:
              type: string
              examples:
                - SKU-TS-BLK-M
              maxLength: 100
              minLength: 1
            title: skus
            description: Filter by SKUs
        - name: filter.stock_labels
          in: query
          description: Filter by stock availability
          schema:
            type: array
            items:
              $ref: >-
                #/components/schemas/api.catalog.v1.VendorCatalogVariantStockLabel
            title: stock_labels
            description: Filter by stock availability
        - name: filter.variant_ids
          in: query
          description: Filter by specific variant IDs
          schema:
            type: array
            items:
              type: string
              examples:
                - var_123
              maxLength: 100
              minLength: 1
            title: variant_ids
            description: Filter by specific variant IDs
        - name: paging.limit
          in: query
          schema:
            type: integer
            title: limit
            format: int32
        - name: paging.page
          in: query
          schema:
            type: integer
            title: page
            format: int32
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/api.catalog.v1.VendorListCatalogVariantResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security: []
  /api/v3/catalog/variants/stock:
    get:
      tags:
        - api.catalog.v1.VendorCatalogAPI
      summary: Get Catalog Stock Status
      description: |-
        Check real-time stock status for variants

         GET /api/v3/catalog/variants/stock

         Returns:
           - Stock status: in_stock, out_of_stock, discontinued, temporarily_unavailable
           - Expected restock date (if applicable)

         Use cases:
           - Verify stock before order placement
           - Update product availability in your system
           - Show stock status to customers
      operationId: api.catalog.v1.VendorCatalogAPI.VendorGetCatalogStockStatus
      parameters:
        - name: filter.color_codes
          in: query
          description: Filter by color codes (internal codes or hex)
          schema:
            type: array
            items:
              type: string
              examples:
                - COLOR_BLACK
              maxLength: 100
              minLength: 1
            title: color_codes
            description: Filter by color codes (internal codes or hex)
        - name: filter.colors
          in: query
          description: Filter by colors (display names)
          schema:
            type: array
            items:
              type: string
              examples:
                - Black
              maxLength: 100
              minLength: 1
            title: colors
            description: Filter by colors (display names)
        - name: filter.legacy_variant_ids
          in: query
          description: Filter by legacy variant IDs (for backward compatibility)
          schema:
            type: array
            items:
              exclusiveMinimum: 0
              type: integer
              examples:
                - 12345
              format: int32
            title: legacy_variant_ids
            description: Filter by legacy variant IDs (for backward compatibility)
        - name: filter.product_ids
          in: query
          description: Filter by product IDs
          schema:
            type: array
            items:
              type: string
              examples:
                - prod_abc123
              maxLength: 100
              minLength: 1
            title: product_ids
            description: Filter by product IDs
        - name: filter.search_text
          in: query
          description: Search variants by text
          schema:
            type: string
            examples:
              - Black Medium
            title: search_text
            description: Search variants by text
        - name: filter.size_codes
          in: query
          description: Filter by size codes (internal codes)
          schema:
            type: array
            items:
              type: string
              examples:
                - SIZE_M
              maxLength: 100
              minLength: 1
            title: size_codes
            description: Filter by size codes (internal codes)
        - name: filter.sizes
          in: query
          description: Filter by sizes (display names)
          schema:
            type: array
            items:
              type: string
              examples:
                - M
              maxLength: 100
              minLength: 1
            title: sizes
            description: Filter by sizes (display names)
        - name: filter.skus
          in: query
          description: Filter by SKUs
          schema:
            type: array
            items:
              type: string
              examples:
                - SKU-TS-BLK-M
              maxLength: 100
              minLength: 1
            title: skus
            description: Filter by SKUs
        - name: filter.stock_labels
          in: query
          description: Filter by stock availability
          schema:
            type: array
            items:
              $ref: >-
                #/components/schemas/api.catalog.v1.VendorCatalogVariantStockLabel
            title: stock_labels
            description: Filter by stock availability
        - name: filter.variant_ids
          in: query
          description: Filter by specific variant IDs
          schema:
            type: array
            items:
              type: string
              examples:
                - var_123
              maxLength: 100
              minLength: 1
            title: variant_ids
            description: Filter by specific variant IDs
        - name: paging.limit
          in: query
          schema:
            type: integer
            title: limit
            format: int32
        - name: paging.page
          in: query
          schema:
            type: integer
            title: page
            format: int32
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/api.catalog.v1.VendorListCatalogVariantResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security: []
components:
  schemas:
    ErrorResponse:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: Machine-readable error code
          example: INVALID_ARGUMENT
        message:
          type: string
          description: Human-readable error message
          example: The request parameters are invalid
        details:
          type: array
          description: Additional error details
          items:
            type: object
            properties:
              field:
                type: string
                description: Field that caused the error
              issue:
                type: string
                description: Description of the issue
    api.webhook.v1.LegacyVendorCreateWebhookRequest:
      type: object
      properties:
        topic:
          type: string
          title: topic
          enum:
            - orders_completed
            - orders_canceled
            - tracking_updated
            - shipping_address_unverified
        address:
          type: string
          title: address
          maxLength: 2048
          minLength: 1
          format: uri
        api_key:
          type: string
          title: api_key
          maxLength: 255
          minLength: 1
        api_signature:
          type: string
          title: api_signature
          maxLength: 255
          minLength: 1
      title: LegacyVendorCreateWebhookRequest
      additionalProperties: false
    api.webhook.v1.LegacyVendorCreateWebhookResponse:
      type: object
      properties:
        status:
          type: string
          title: status
        message:
          type: string
          title: message
        result:
          title: result
          $ref: '#/components/schemas/api.webhook.v1.VendorWebhook.Legacy'
      title: LegacyVendorCreateWebhookResponse
      additionalProperties: false
    api.webhook.v1.VendorCreateWebhookRequest:
      type: object
      properties:
        status:
          title: status
          description: 'Webhook status: ACTIVE or INACTIVE (default: ACTIVE)'
          $ref: '#/components/schemas/api.webhook.v1.VendorWebhook.Status'
        topic:
          title: topic
          description: |-
            Event topic to subscribe to (required)
             Choose from: ORDER_COMPLETED, ORDER_CANCELED, TRACKING_UPDATED, ADDRESS_UNVERIFIED
          $ref: '#/components/schemas/api.webhook.v1.VendorWebhook.Topic'
        name:
          type: string
          examples:
            - Production Order Completed Notifications
          title: name
          maxLength: 255
          description: >-
            Human-readable webhook name (optional, helps identify webhook
            purpose, max length: 255 characters)
        version:
          title: version
          description: >-
            Webhook payload version (recommended: use latest version for new
            webhooks)
          $ref: '#/components/schemas/api.webhook.v1.VendorWebhook.Version'
        delivery_url:
          type: string
          examples:
            - https://yourapp.com/webhooks/gearment/orders
          title: delivery_url
          maxLength: 2048
          minLength: 1
          format: uri
          description: >-
            HTTPS URL to receive webhook POST requests (required, must be
            publicly accessible and respond within 30 seconds, must use HTTPS)
        store_id:
          type: string
          examples:
            - store_abc123
          title: store_id
          description: >-
            Optional store ID to filter events (if provided, only events for
            this store will trigger the webhook)
      title: VendorCreateWebhookRequest
      additionalProperties: false
    api.webhook.v1.VendorCreateWebhookResponse:
      type: object
      properties:
        status:
          type: string
          title: status
          description: 'Response status: "success" or "error"'
        message:
          type: string
          title: message
          description: |-
            Human-readable message
             Success: "Webhook created successfully"
             Error: "Invalid delivery URL" or "Duplicate webhook"
        data:
          title: data
          description: |-
            Created webhook details
             Includes: webhook_id, topic, delivery_url, created_at
          $ref: '#/components/schemas/api.webhook.v1.VendorWebhook'
      title: VendorCreateWebhookResponse
      additionalProperties: false
    api.webhook.v1.VendorDeleteWebhookRequest:
      type: object
      title: VendorDeleteWebhookRequest
      additionalProperties: false
      description: |-
        Webhook ID is provided in URL path parameter
         No request body needed
    api.webhook.v1.VendorDeleteWebhookResponse:
      type: object
      properties:
        status:
          type: string
          title: status
          description: 'Response status: "success" or "error"'
        message:
          type: string
          title: message
          description: |-
            Human-readable message
             Success: "Webhook deleted successfully"
             Error: "Webhook not found"
        data:
          title: data
          description: Deleted webhook information
          $ref: '#/components/schemas/api.webhook.v1.VendorWebhook'
      title: VendorDeleteWebhookResponse
      additionalProperties: false
    api.webhook.v1.VendorListWebhookRequest:
      type: object
      properties:
        filter:
          title: filter
          description: Filter criteria for webhooks
          $ref: '#/components/schemas/api.webhook.v1.VendorWebhook.Filter'
        paging:
          title: paging
          description: Pagination parameters
          $ref: '#/components/schemas/common.type.v1.Paging'
      title: VendorListWebhookRequest
      additionalProperties: false
    api.webhook.v1.VendorListWebhookResponse:
      type: object
      properties:
        status:
          type: string
          title: status
          description: 'Response status: "success" or "error"'
        message:
          type: string
          title: message
          description: Human-readable message
        paging:
          title: paging
          description: Pagination metadata
          $ref: '#/components/schemas/common.type.v1.PagingResponse'
        data:
          type: array
          items:
            $ref: '#/components/schemas/api.webhook.v1.VendorWebhook'
          title: data
          description: |-
            List of registered webhooks
             Each webhook includes: ID, topic, delivery URL, status, created_at
      title: VendorListWebhookResponse
      additionalProperties: false
    api.webhook.v1.VendorWebhook:
      type: object
      properties:
        webhook_id:
          type: string
          title: webhook_id
          maxLength: 255
          minLength: 1
          description: Unique webhook ID
        topic:
          title: topic
          description: Event topic this webhook subscribes to
          $ref: '#/components/schemas/api.webhook.v1.VendorWebhook.Topic'
        status:
          title: status
          description: Webhook status (active/inactive)
          $ref: '#/components/schemas/api.webhook.v1.VendorWebhook.Status'
        delivery_url:
          type: string
          title: delivery_url
          maxLength: 2048
          minLength: 1
          format: uri
          description: URL where webhook events will be delivered (HTTPS required)
        version:
          title: version
          description: Webhook payload version
          $ref: '#/components/schemas/api.webhook.v1.VendorWebhook.Version'
        created_at:
          title: created_at
          description: When this webhook was created
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        updated_at:
          title: updated_at
          description: When this webhook was last updated
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        team_id:
          type: string
          title: team_id
          description: Team ID this webhook belongs to
        store_id:
          type: string
          title: store_id
          description: Store ID this webhook is scoped to (optional)
      title: VendorWebhook
      additionalProperties: false
    api.webhook.v1.VendorWebhook.Filter:
      type: object
      properties:
        webhook_ids:
          type: array
          items:
            type: string
            examples:
              - wh_abc123
            minLength: 1
          title: webhook_ids
          description: Filter by specific webhook IDs
        team_ids:
          type: array
          items:
            type: string
            examples:
              - team_abc123
            minLength: 1
          title: team_ids
          description: Filter by team IDs (internal use)
        store_ids:
          type: array
          items:
            type: string
            examples:
              - store_abc123
            minLength: 1
          title: store_ids
          description: Filter by store IDs
        topics:
          type: array
          items:
            $ref: '#/components/schemas/api.webhook.v1.VendorWebhook.Topic'
          title: topics
          description: Filter by event topics
        statuses:
          type: array
          items:
            $ref: '#/components/schemas/api.webhook.v1.VendorWebhook.Status'
          title: statuses
          description: Filter by webhook status (e.g., to see only active webhooks)
        versions:
          type: array
          items:
            $ref: '#/components/schemas/api.webhook.v1.VendorWebhook.Version'
          title: versions
          description: Filter by webhook version
      title: Filter
      additionalProperties: false
    api.webhook.v1.VendorWebhook.Legacy:
      type: object
      properties:
        id:
          exclusiveMinimum: 0
          type: integer
          title: id
          format: int32
        topic:
          type: string
          title: topic
          enum:
            - orders_completed
            - orders_canceled
            - tracking_updated
            - shipping_address_unverified
        address:
          type: string
          title: address
          maxLength: 2048
          minLength: 1
          format: uri
        created_at:
          title: created_at
          $ref: '#/components/schemas/google.protobuf.StringValue'
        updated_at:
          title: updated_at
          $ref: '#/components/schemas/google.protobuf.StringValue'
      title: Legacy
      additionalProperties: false
    api.webhook.v1.VendorWebhook.Status:
      type:
        - string
        - number
      title: Status
      enum:
        - STATUS_ACTIVE
        - 2
        - STATUS_INACTIVE
        - 3
    api.webhook.v1.VendorWebhook.Topic:
      type:
        - string
        - number
      title: Topic
      enum:
        - TOPIC_ORDER_COMPLETED
        - 2
        - TOPIC_ORDER_CANCELLED
        - 3
        - TOPIC_TRACKING_ORDER_UPDATED
        - 4
        - TOPIC_ORDER_ON_HOLD
        - 5
        - TOPIC_SHIPPING_ADDRESS_VERIFIED
        - 6
        - TOPIC_SHIPPING_ADDRESS_UNVERIFIED
        - 7
        - TOPIC_PRODUCT_OUT_OF_STOCK
        - 8
    api.webhook.v1.VendorWebhook.Version:
      type:
        - string
        - number
      title: Version
      enum:
        - VERSION_V1
        - 2
        - VERSION_V3
        - 3
    common.type.v1.LegacyCredentials:
      type: object
      properties:
        api_key:
          type: string
          title: api_key
          maxLength: 255
          minLength: 1
        api_signature:
          type: string
          title: api_signature
          maxLength: 255
          minLength: 1
      title: LegacyCredentials
      additionalProperties: false
    common.type.v1.Paging:
      type: object
      properties:
        page:
          type: integer
          title: page
          format: int32
        limit:
          type: integer
          title: limit
          format: int32
      title: Paging
      additionalProperties: false
    common.type.v1.PagingResponse:
      type: object
      properties:
        total:
          type:
            - integer
            - string
          title: total
          format: int64
        total_page:
          type: integer
          title: total_page
          format: int32
        page:
          type: integer
          title: page
          format: int32
        limit:
          type: integer
          title: limit
          format: int32
      title: PagingResponse
      additionalProperties: false
    google.protobuf.StringValue:
      type: string
      description: |-
        Wrapper message for `string`.

         The JSON representation for `StringValue` is JSON string.

         Not recommended for use in new APIs, but still useful for legacy APIs and
         has no plan to be removed.
    google.protobuf.Timestamp:
      type: string
      examples:
        - '2023-01-15T01:30:15.01Z'
        - '2024-12-25T12:00:00Z'
      format: date-time
      description: >-
        A Timestamp represents a point in time independent of any time zone or
        local
         calendar, encoded as a count of seconds and fractions of seconds at
         nanosecond resolution. The count is relative to an epoch at UTC midnight on
         January 1, 1970, in the proleptic Gregorian calendar which extends the
         Gregorian calendar backwards to year one.

         All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
         second table is needed for interpretation, using a [24-hour linear
         smear](https://developers.google.com/time/smear).

         The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
         restricting to that range, we ensure that we can convert to and from [RFC
         3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.

         # Examples

         Example 1: Compute Timestamp from POSIX `time()`.

             Timestamp timestamp;
             timestamp.set_seconds(time(NULL));
             timestamp.set_nanos(0);

         Example 2: Compute Timestamp from POSIX `gettimeofday()`.

             struct timeval tv;
             gettimeofday(&tv, NULL);

             Timestamp timestamp;
             timestamp.set_seconds(tv.tv_sec);
             timestamp.set_nanos(tv.tv_usec * 1000);

         Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.

             FILETIME ft;
             GetSystemTimeAsFileTime(&ft);
             UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

             // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
             // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
             Timestamp timestamp;
             timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
             timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

         Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.

             long millis = System.currentTimeMillis();

             Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
                 .setNanos((int) ((millis % 1000) * 1000000)).build();

         Example 5: Compute Timestamp from Java `Instant.now()`.

             Instant now = Instant.now();

             Timestamp timestamp =
                 Timestamp.newBuilder().setSeconds(now.getEpochSecond())
                     .setNanos(now.getNano()).build();

         Example 6: Compute Timestamp from current time in Python.

             timestamp = Timestamp()
             timestamp.GetCurrentTime()

         # JSON Mapping

         In JSON format, the Timestamp type is encoded as a string in the
         [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
         format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
         where {year} is always expressed using four digits while {month}, {day},
         {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
         seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
         are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
         is required. A proto3 JSON serializer should always use UTC (as indicated by
         "Z") when printing the Timestamp type and a proto3 JSON parser should be
         able to accept both UTC and other timezones (as indicated by an offset).

         For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
         01:30 UTC on January 15, 2017.

         In JavaScript, one can convert a Date object to this format using the
         standard
         [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
         method. In Python, a standard `datetime.datetime` object can be converted
         to this format using
         [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
         the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
         the Joda Time's [`ISODateTimeFormat.dateTime()`](
         http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()
         ) to obtain a formatter capable of generating timestamps in this format.
    api.order.v1.LegacyItem:
      type: object
      properties:
        order_item_id:
          type: integer
          title: order_item_id
          format: int32
        item_subtotal:
          type: string
          title: item_subtotal
        item_total:
          type: string
          title: item_total
        style:
          type: string
          title: style
        size:
          type: string
          title: size
        color:
          type: string
          title: color
        quantity:
          type: string
          title: quantity
        product_name:
          type: string
          title: product_name
        product_sku:
          type: string
          title: product_sku
        product_sku1:
          type: string
          title: product_sku1
        availability_status:
          type: string
          title: availability_status
      title: LegacyItem
      additionalProperties: false
    api.order.v1.LegacyTracking:
      type: object
      properties:
        tracking_number:
          type: string
          title: tracking_number
        tracking_company:
          type: string
          title: tracking_company
        link_tracking:
          type: string
          title: link_tracking
        product_type:
          type: string
          title: product_type
        date_created:
          title: date_created
          $ref: '#/components/schemas/google.protobuf.StringValue'
        new_tracking:
          type: string
          title: new_tracking
      title: LegacyTracking
      additionalProperties: false
    api.order.v1.LegacyVendorCreateOrderDraftRequest:
      type: object
      properties:
        order_id:
          type: string
          title: order_id
          maxLength: 255
        external_id:
          type: string
          title: external_id
          maxLength: 255
        store_id:
          type: string
          title: store_id
          maxLength: 255
        agree_at_risk:
          title: agree_at_risk
          $ref: '#/components/schemas/google.protobuf.BoolValue'
        shipping_email:
          type: string
          title: shipping_email
          maxLength: 255
        shipping_name:
          type: string
          title: shipping_name
          maxLength: 255
          minLength: 1
        shipping_phone:
          type: string
          title: shipping_phone
          maxLength: 255
        shipping_company_name:
          type: string
          title: shipping_company_name
          maxLength: 255
        shipping_address1:
          type: string
          title: shipping_address1
          maxLength: 255
          minLength: 1
        shipping_address2:
          type: string
          title: shipping_address2
          maxLength: 255
        shipping_province_code:
          type: string
          title: shipping_province_code
          maxLength: 255
        shipping_city:
          type: string
          title: shipping_city
          maxLength: 255
          minLength: 1
        shipping_zipcode:
          type: string
          title: shipping_zipcode
          maxLength: 255
          minLength: 1
        shipping_country_code:
          type: string
          title: shipping_country_code
          maxLength: 255
          minLength: 1
        shipping_method:
          type: integer
          title: shipping_method
          format: int32
          enum:
            - 0
            - 1
            - 2
            - 3
        gift_message_body:
          type: string
          title: gift_message_body
          maxLength: 1000
        ioss_number:
          type: string
          title: ioss_number
          maxLength: 255
        ioss_number_total:
          type: number
          title: ioss_number_total
          format: float
        tax_number:
          type: string
          title: tax_number
          maxLength: 255
        order_tax_number:
          type: number
          title: order_tax_number
          format: float
        line_items:
          type: array
          items:
            $ref: >-
              #/components/schemas/api.order.v1.LegacyVendorLineItemCreationParams
          title: line_items
          maxItems: 1000
          minItems: 1
        api_key:
          type: string
          title: api_key
          maxLength: 255
          minLength: 1
        api_signature:
          type: string
          title: api_signature
          maxLength: 255
          minLength: 1
      title: LegacyVendorCreateOrderDraftRequest
      additionalProperties: false
    api.order.v1.LegacyVendorCreateOrderDraftResponse:
      type: object
      properties:
        status:
          type: string
          title: status
        message:
          type: string
          title: message
        result:
          title: result
          $ref: '#/components/schemas/api.order.v1.LegacyVendorCreationResult'
      title: LegacyVendorCreateOrderDraftResponse
      additionalProperties: false
    api.order.v1.LegacyVendorCreateOrderDraftWithLabelRequest:
      type: object
      properties:
        order_id:
          type: string
          title: order_id
          maxLength: 255
        store_id:
          type: string
          title: store_id
          maxLength: 255
        agree_at_risk:
          title: agree_at_risk
          $ref: '#/components/schemas/google.protobuf.BoolValue'
        shipping_service_type:
          type: string
          title: shipping_service_type
          maxLength: 255
          minLength: 1
        shipping_label_link:
          type: string
          title: shipping_label_link
          maxLength: 1000
          minLength: 1
        gift_message_body:
          type: string
          title: gift_message_body
          maxLength: 1000
        line_items:
          type: array
          items:
            $ref: >-
              #/components/schemas/api.order.v1.LegacyVendorLineItemCreationParams
          title: line_items
          maxItems: 1000
          minItems: 1
        api_key:
          type: string
          title: api_key
          maxLength: 255
          minLength: 1
        api_signature:
          type: string
          title: api_signature
          maxLength: 255
          minLength: 1
      title: LegacyVendorCreateOrderDraftWithLabelRequest
      additionalProperties: false
    api.order.v1.LegacyVendorCreateOrderDraftWithLabelResponse:
      type: object
      properties:
        status:
          type: string
          title: status
        message:
          type: string
          title: message
        result:
          title: result
          $ref: '#/components/schemas/api.order.v1.LegacyVendorCreationResult'
      title: LegacyVendorCreateOrderDraftWithLabelResponse
      additionalProperties: false
    api.order.v1.LegacyVendorCreationResult:
      type: object
      properties:
        id:
          type: integer
          title: id
          format: int32
          description: Created order draft ID (legacy integer format)
        name:
          type: string
          title: name
          description: Created order draft name/reference
      title: LegacyVendorCreationResult
      additionalProperties: false
    api.order.v1.LegacyVendorGetOrderRequest:
      type: object
      properties:
        order_id:
          title: order_id
          $ref: '#/components/schemas/google.protobuf.Any'
        api_key:
          type: string
          title: api_key
          maxLength: 255
          minLength: 1
        api_signature:
          type: string
          title: api_signature
          maxLength: 255
          minLength: 1
      title: LegacyVendorGetOrderRequest
      additionalProperties: false
    api.order.v1.LegacyVendorGetOrderResponse:
      type: object
      properties:
        result:
          title: result
          $ref: '#/components/schemas/api.order.v1.LegacyVendorOrder'
        status:
          type: string
          title: status
        message:
          type: string
          title: message
      title: LegacyVendorGetOrderResponse
      additionalProperties: false
    api.order.v1.LegacyVendorGetPriceQuoteRequest:
      type: object
      properties:
        store_id:
          type: string
          title: store_id
        shipping_email:
          type: string
          title: shipping_email
        shipping_name:
          type: string
          title: shipping_name
          maxLength: 30
          minLength: 1
        shipping_phone:
          type: string
          title: shipping_phone
        shipping_company_name:
          type: string
          title: shipping_company_name
        shipping_address1:
          type: string
          title: shipping_address1
          maxLength: 300
          minLength: 1
        shipping_address2:
          type: string
          title: shipping_address2
        shipping_province_code:
          type: string
          title: shipping_province_code
        shipping_city:
          type: string
          title: shipping_city
          maxLength: 30
          minLength: 1
        shipping_zipcode:
          exclusiveMinimum: 0
          type: integer
          title: shipping_zipcode
          maximum: 10000000
          format: int32
        shipping_country_code:
          type: string
          title: shipping_country_code
          maxLength: 30
          minLength: 1
        shipping_method:
          type: integer
          title: shipping_method
          format: int32
          enum:
            - 0
            - 1
            - 2
            - 3
        line_items:
          type: array
          items:
            $ref: >-
              #/components/schemas/api.order.v1.LegacyVendorGetPriceQuoteRequest.LineItem
          title: line_items
        api_key:
          type: string
          title: api_key
          maxLength: 255
          minLength: 1
        api_signature:
          type: string
          title: api_signature
          maxLength: 255
          minLength: 1
      title: LegacyVendorGetPriceQuoteRequest
      additionalProperties: false
    api.order.v1.LegacyVendorGetPriceQuoteRequest.LineItem:
      type: object
      properties:
        variant_id:
          exclusiveMinimum: 0
          type: integer
          title: variant_id
          maximum: 100000
          format: int32
        quantity:
          exclusiveMinimum: 0
          type: integer
          title: quantity
          format: int32
        side:
          type: string
          title: side
        design_link:
          type: string
          title: design_link
        design_link_back:
          type: string
          title: design_link_back
      title: LineItem
      additionalProperties: false
    api.order.v1.LegacyVendorGetPriceQuoteResponse:
      type: object
      properties:
        status:
          type: string
          title: status
        message:
          type: string
          title: message
        data:
          title: data
          $ref: >-
            #/components/schemas/api.order.v1.LegacyVendorGetPriceQuoteResponse.PriceCalculation
      title: LegacyVendorGetPriceQuoteResponse
      additionalProperties: false
    api.order.v1.LegacyVendorGetPriceQuoteResponse.PriceCalculation:
      type: object
      properties:
        total:
          type: number
          title: total
          format: float
        sub_total:
          type: number
          title: sub_total
          format: float
        tax:
          type: number
          title: tax
          format: float
        shipping_fee:
          type: number
          title: shipping_fee
          format: float
        gift_message_fee:
          type: number
          title: gift_message_fee
          format: float
        handle_fee:
          type: number
          title: handle_fee
          format: float
        total_discount:
          type: number
          title: total_discount
          format: float
        currency:
          type: string
          title: currency
      title: PriceCalculation
      additionalProperties: false
    api.order.v1.LegacyVendorLineItemCreationParams:
      type: object
      properties:
        variant_id:
          exclusiveMinimum: 0
          type: integer
          examples:
            - 12345
          title: variant_id
          format: int32
          description: Product variant ID (required, legacy integer format)
        product_name:
          type: string
          examples:
            - Unisex T-Shirt
          title: product_name
          maxLength: 255
          description: Product name (optional)
        product_style:
          type: string
          examples:
            - Classic Fit
          title: product_style
          maxLength: 255
          description: Product style (optional)
        product_sku:
          type: string
          examples:
            - TS-BLK-M
          title: product_sku
          maxLength: 255
          description: Product SKU (optional)
        quantity:
          exclusiveMinimum: 0
          type: integer
          examples:
            - 2
          title: quantity
          maximum: 1000
          format: int32
          description: Quantity to order (1-1000)
        barcode_link:
          type: string
          examples:
            - https://example.com/barcodes/item-12345.png
          title: barcode_link
          maxLength: 1000
          description: Barcode URL for inventory tracking (optional)
        designs:
          title: designs
          description: Design URLs for various print locations
          $ref: >-
            #/components/schemas/api.order.v1.LegacyVendorLineItemCreationParams.Designs
      title: LegacyVendorLineItemCreationParams
      additionalProperties: false
    api.order.v1.LegacyVendorLineItemCreationParams.Designs:
      type: object
      properties:
        front:
          type: string
          examples:
            - https://example.com/designs/front-design.png
          title: front
          maxLength: 1000
          description: Front design URL (PNG, JPEG, or PDF)
        pocket:
          type: string
          examples:
            - https://example.com/designs/pocket-design.png
          title: pocket
          maxLength: 1000
          description: Pocket design URL (PNG, JPEG, or PDF)
        back:
          type: string
          examples:
            - https://example.com/designs/back-design.png
          title: back
          maxLength: 1000
          description: Back design URL (PNG, JPEG, or PDF)
        whole:
          type: string
          examples:
            - https://example.com/designs/whole-design.png
          title: whole
          maxLength: 1000
          description: Whole/all-over design URL (PNG, JPEG, or PDF)
        left_sleeve:
          type: string
          examples:
            - https://example.com/designs/left-sleeve-design.png
          title: left_sleeve
          maxLength: 1000
          description: Left sleeve design URL (PNG, JPEG, or PDF)
        right_sleeve:
          type: string
          examples:
            - https://example.com/designs/right-sleeve-design.png
          title: right_sleeve
          maxLength: 1000
          description: Right sleeve design URL (PNG, JPEG, or PDF)
      title: Designs
      additionalProperties: false
    api.order.v1.LegacyVendorLineItemUpdateParams:
      type: object
      properties:
        order_item_id:
          exclusiveMinimum: 0
          type: integer
          examples:
            - 12345
          title: order_item_id
          format: int32
          description: Order item ID to update (required, legacy integer format)
        variant_id:
          exclusiveMinimum: 0
          type: integer
          examples:
            - 67890
          title: variant_id
          format: int32
          description: Product variant ID (required, legacy integer format)
        quantity:
          exclusiveMinimum: 0
          type: integer
          examples:
            - 2
          title: quantity
          maximum: 1000
          format: int32
          description: Quantity to order (1-1000)
        design_link:
          title: design_link
          description: Front design URL (PNG, JPEG, or PDF)
          $ref: '#/components/schemas/google.protobuf.StringValue'
        design_link_back:
          title: design_link_back
          description: Back design URL (PNG, JPEG, or PDF)
          $ref: '#/components/schemas/google.protobuf.StringValue'
      title: LegacyVendorLineItemUpdateParams
      additionalProperties: false
    api.order.v1.LegacyVendorListOrderRequest:
      type: object
      properties:
        order_status:
          type: string
          title: order_status
          minLength: 1
          enum:
            - any
            - pending
            - processing
            - completed
            - canceled
        payment_status:
          type: string
          title: payment_status
          minLength: 1
          enum:
            - any
            - unpaid
            - paid
            - failure
            - canceled
        created_at_min:
          type: string
          title: created_at_min
          maxLength: 255
          minLength: 1
        created_at_max:
          type: string
          title: created_at_max
          maxLength: 255
          minLength: 1
        page:
          type: integer
          title: page
          format: int32
        limit:
          type: integer
          title: limit
          format: int32
        api_key:
          type: string
          title: api_key
          maxLength: 255
          minLength: 1
        api_signature:
          type: string
          title: api_signature
          maxLength: 255
          minLength: 1
      title: LegacyVendorListOrderRequest
      additionalProperties: false
    api.order.v1.LegacyVendorListOrderResponse:
      type: object
      properties:
        paging:
          title: paging
          $ref: '#/components/schemas/common.type.v1.LegacyPagingResponse'
        result:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.LegacyVendorOrder'
          title: result
        status:
          type: string
          title: status
        message:
          type: string
          title: message
      title: LegacyVendorListOrderResponse
      additionalProperties: false
    api.order.v1.LegacyVendorOrder:
      type: object
      properties:
        ord_id:
          type: integer
          title: ord_id
          format: int32
        order_number:
          type: string
          title: order_number
        external_id:
          type: string
          title: external_id
        ord_time:
          title: ord_time
          $ref: '#/components/schemas/google.protobuf.StringValue'
        ord_payment_at:
          title: ord_payment_at
          $ref: '#/components/schemas/google.protobuf.StringValue'
        ord_subtotal:
          type: string
          title: ord_subtotal
        ord_fee_shipping:
          type: string
          title: ord_fee_shipping
        ord_tax:
          type: string
          title: ord_tax
        ord_total:
          type: string
          title: ord_total
        verify_address:
          type: string
          title: verify_address
        fulfillment_notes:
          type: string
          title: fulfillment_notes
        ord_status:
          type: string
          title: ord_status
        ord_completed_time:
          title: ord_completed_time
          $ref: '#/components/schemas/google.protobuf.StringValue'
        is_approve:
          type: string
          title: is_approve
        ord_archive:
          type: string
          title: ord_archive
        ord_payment_status:
          type: string
          title: ord_payment_status
        ord_ioss_number:
          type: string
          title: ord_ioss_number
        ord_ioss_number_total:
          type: string
          title: ord_ioss_number_total
        trackings:
          title: trackings
          $ref: '#/components/schemas/api.order.v1.LegacyTracking'
        items:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.LegacyItem'
          title: items
      title: LegacyVendorOrder
      additionalProperties: false
    api.order.v1.LegacyVendorUpdateOrderDraftLineItemsRequest:
      type: object
      properties:
        order_id:
          exclusiveMinimum: 0
          type: integer
          title: order_id
          format: int32
        line_items:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.LegacyVendorLineItemUpdateParams'
          title: line_items
          maxItems: 1000
          minItems: 1
        api_key:
          type: string
          title: api_key
          maxLength: 255
          minLength: 1
        api_signature:
          type: string
          title: api_signature
          maxLength: 255
          minLength: 1
      title: LegacyVendorUpdateOrderDraftLineItemsRequest
      additionalProperties: false
    api.order.v1.LegacyVendorUpdateOrderDraftLineItemsResponse:
      type: object
      properties:
        status:
          type: string
          title: status
        message:
          type: string
          title: message
        result:
          title: result
          $ref: >-
            #/components/schemas/api.order.v1.LegacyVendorUpdateOrderDraftLineItemsResponse.Data
      title: LegacyVendorUpdateOrderDraftLineItemsResponse
      additionalProperties: false
    api.order.v1.LegacyVendorUpdateOrderDraftLineItemsResponse.Data:
      type: object
      properties:
        id:
          type: integer
          title: id
          format: int32
      title: Data
      additionalProperties: false
    api.order.v1.VendorAddress:
      type: object
      properties:
        first_name:
          type: string
          examples:
            - John
          title: first_name
          maxLength: 255
          minLength: 1
          description: Recipient's first name (required)
        last_name:
          type: string
          examples:
            - Doe
          title: last_name
          maxLength: 255
          description: Recipient's last name (optional)
        company:
          type: string
          examples:
            - Acme Corporation
          title: company
          maxLength: 255
          description: Company name (optional)
        contact_pronoun:
          type: string
          examples:
            - Mr.
          title: contact_pronoun
          maxLength: 255
          description: Contact pronoun (optional)
        street_1:
          type: string
          examples:
            - 123 Main Street
          title: street_1
          maxLength: 50
          minLength: 1
          description: Street address line 1 (required)
        street_2:
          type: string
          examples:
            - Apt 4B
          title: street_2
          maxLength: 30
          description: Street address line 2 (optional, for apartment/suite)
        state_code:
          type: string
          examples:
            - CA
          title: state_code
          maxLength: 255
          description: State/province code (ISO 3166-2)
        state_name:
          type: string
          examples:
            - California
          title: state_name
          maxLength: 255
          description: State/province full name (optional)
        city:
          type: string
          examples:
            - Los Angeles
          title: city
          maxLength: 255
          minLength: 1
          description: City name (required)
        zip_code:
          type: string
          examples:
            - '90001'
          title: zip_code
          maxLength: 255
          minLength: 1
          description: Postal/ZIP code (required)
        country_code:
          type: string
          examples:
            - US
          title: country_code
          maxLength: 255
          minLength: 1
          description: Country code (ISO 3166-1 alpha-2, required)
        country_name:
          type: string
          examples:
            - United States
          title: country_name
          maxLength: 255
          description: Country full name (optional)
        phone_no:
          type: string
          examples:
            - +1-555-123-4567
          title: phone_no
          maxLength: 50
          description: Phone number (optional)
        email:
          type: string
          examples:
            - john.doe@example.com
          title: email
          maxLength: 255
          description: Email address (optional)
        type:
          title: type
          description: Address type
          $ref: '#/components/schemas/api.order.v1.VendorAddress.Type'
      title: VendorAddress
      additionalProperties: false
    api.order.v1.VendorAddress.Type:
      type:
        - string
        - number
      title: Type
      enum:
        - TYPE_SHIP_FROM
        - 2
        - TYPE_SHIP_TO
        - 3
        - TYPE_BILL_TO
        - 4
        - TYPE_RETURN_TO
        - 5
    api.order.v1.VendorBillingOption:
      type: object
      properties:
        ioss_number:
          type: string
          examples:
            - IM1234567890
          title: ioss_number
          maxLength: 255
          description: |-
            IOSS (Import One-Stop Shop) number for EU tax compliance (optional)
             Required for shipments to EU countries to avoid customs delays
        ioss_value:
          title: ioss_value
          description: Total value for IOSS declaration (optional)
          $ref: '#/components/schemas/common.type.v1.Money'
        tax_number:
          type: string
          examples:
            - GB123456789
          title: tax_number
          maxLength: 255
          description: |-
            Tax identification number (optional)
             Used for VAT/GST compliance in various countries
        tax_value:
          title: tax_value
          description: Tax value/amount (optional)
          $ref: '#/components/schemas/common.type.v1.Money'
      title: VendorBillingOption
      additionalProperties: false
    api.order.v1.VendorCancelReason:
      type: object
      properties:
        reason_id:
          type: string
          title: reason_id
          description: Cancellation reason ID
        display_name:
          type: string
          title: display_name
          description: Human-readable cancellation reason
        custom_reason:
          type: string
          title: custom_reason
          description: Custom cancellation reason (if not using predefined reasons)
      title: VendorCancelReason
      additionalProperties: false
    api.order.v1.VendorCreateOrderDraftRequest:
      type: object
      properties:
        data:
          title: data
          description: >-
            Order draft creation parameters (required fields: platform,
            store_id, shipping address, line_items)
          $ref: >-
            #/components/schemas/api.order.v1.VendorOrderDraftManualCreationParams
      title: VendorCreateOrderDraftRequest
      additionalProperties: false
    api.order.v1.VendorCreateOrderDraftResponse:
      type: object
      properties:
        status:
          type: string
          title: status
          description: 'Response status: "success" or "error"'
        message:
          type: string
          title: message
          description: Human-readable message
        data:
          title: data
          description: |-
            Created order draft details
             Includes: order_id, status, pricing, line items
          $ref: '#/components/schemas/api.order.v1.VendorOrderDraft.Short'
      title: VendorCreateOrderDraftResponse
      additionalProperties: false
    api.order.v1.VendorCreateOrderDraftWithLabelRequest:
      type: object
      properties:
        data:
          title: data
          description: >-
            Order draft creation with shipping label parameters (required:
            shipping label URL and service type)
          $ref: >-
            #/components/schemas/api.order.v1.VendorOrderDraftWithLabelCreationParams
      title: VendorCreateOrderDraftWithLabelRequest
      additionalProperties: false
    api.order.v1.VendorCreateOrderDraftWithLabelResponse:
      type: object
      properties:
        status:
          type: string
          title: status
          description: 'Response status: "success" or "error"'
        message:
          type: string
          title: message
          description: Human-readable message describing the result
        data:
          title: data
          description: Created order draft with shipping label
          $ref: '#/components/schemas/api.order.v1.VendorOrderDraft.Short'
      title: VendorCreateOrderDraftWithLabelResponse
      additionalProperties: false
    api.order.v1.VendorCreatedMethod:
      type:
        - string
        - number
      title: VendorCreatedMethod
      enum:
        - VENDOR_CREATED_METHOD_SYNC
        - 2
        - VENDOR_CREATED_METHOD_MANUAL
        - 3
        - VENDOR_CREATED_METHOD_API
        - 4
        - VENDOR_CREATED_METHOD_IMPORT
        - 5
        - VENDOR_CREATED_METHOD_LABEL
        - 6
    api.order.v1.VendorFulfillmentOption:
      type: object
      properties:
        purchase_tracking_config:
          title: purchase_tracking_config
          description: Tracking purchase timing configuration
          $ref: '#/components/schemas/api.order.v1.VendorPurchaseTrackingConfig'
      title: VendorFulfillmentOption
      additionalProperties: false
    api.order.v1.VendorFulfillmentPriority:
      type:
        - string
        - number
      title: VendorFulfillmentPriority
      enum:
        - VENDOR_FULFILLMENT_PRIORITY_NORMAL
        - 2
        - VENDOR_FULFILLMENT_PRIORITY_RUSH
        - 3
    api.order.v1.VendorFulfillmentVendor:
      type:
        - string
        - number
      title: VendorFulfillmentVendor
      enum:
        - VENDOR_FULFILLMENT_VENDOR_GEARMENT
        - 2
        - VENDOR_FULFILLMENT_VENDOR_AMAZON
        - 3
    api.order.v1.VendorGetOrderDraftRequest:
      type: object
      title: VendorGetOrderDraftRequest
      additionalProperties: false
      description: |-
        Order draft ID is provided in the URL path parameter
         No request body needed for GET requests
    api.order.v1.VendorGetOrderDraftResponse:
      type: object
      properties:
        status:
          type: string
          title: status
          description: 'Response status: "success" or "error"'
        message:
          type: string
          title: message
          description: Human-readable message
        data:
          title: data
          description: |-
            Complete order draft details
             Includes: line items, shipping, pricing, status
          $ref: '#/components/schemas/api.order.v1.VendorOrderDraft'
      title: VendorGetOrderDraftResponse
      additionalProperties: false
    api.order.v1.VendorGetOrderRequest:
      type: object
      title: VendorGetOrderRequest
      additionalProperties: false
      description: |-
        Order ID is provided in the URL path parameter
         No request body needed for GET requests
    api.order.v1.VendorGetOrderResponse:
      type: object
      properties:
        status:
          type: string
          title: status
          description: 'Response status: "success" or "error"'
        message:
          type: string
          title: message
          description: Human-readable message
        data:
          title: data
          description: |-
            Complete order details
             Includes: line items, tracking, shipping, payment, pricing
          $ref: '#/components/schemas/api.order.v1.VendorOrder'
      title: VendorGetOrderResponse
      additionalProperties: false
    api.order.v1.VendorGetPriceQuoteRequest:
      type: object
      properties:
        order_platform:
          type: string
          examples:
            - shopify
          title: order_platform
          enum:
            - ''
            - ebay
            - amazon
            - shopify
            - woocommerce
            - etsy
            - shopbase
            - gearment
            - orderdesk
            - tiktokshop
            - poshmark
            - prestashop
            - inkgo
            - wish
            - bigcommerce
            - customily
          description: Platform where the order originates
        billing:
          title: billing
          description: >-
            Billing information (optional, used for tax calculation and billing
            address)
          $ref: >-
            #/components/schemas/api.order.v1.VendorOrderPriceCalculation.Billing
        shipping:
          title: shipping
          description: >-
            Shipping address and method (required: country_code, state_code,
            method)
          $ref: >-
            #/components/schemas/api.order.v1.VendorOrderPriceCalculation.Shipping
        line_items:
          type: array
          items:
            $ref: >-
              #/components/schemas/api.order.v1.VendorOrderPriceCalculation.LineItem
          title: line_items
          description: >-
            List of line items to quote (each item requires: variant_id,
            quantity, print_locations)
        gift_messages:
          type: array
          items:
            $ref: >-
              #/components/schemas/api.order.v1.VendorOrderPriceCalculation.GiftMessage
          title: gift_messages
          description: Optional gift messages (adds fee if present)
      title: VendorGetPriceQuoteRequest
      additionalProperties: false
    api.order.v1.VendorGetPriceQuoteResponse:
      type: object
      properties:
        status:
          type: string
          title: status
          description: 'Response status: "success" or "error"'
        message:
          type: string
          title: message
          description: Human-readable message
        data:
          title: data
          description: >-
            Price quote breakdown (includes: order_total, order_subtotal,
            order_shipping_fee, order_tax, currency; all amounts are in USD
            unless specified otherwise)
          $ref: >-
            #/components/schemas/api.order.v1.VendorOrderPriceCalculation.OrderPriceQuote
      title: VendorGetPriceQuoteResponse
      additionalProperties: false
    api.order.v1.VendorGiftMessage:
      type: object
      properties:
        order_id:
          type: string
          title: order_id
          description: Order ID this gift message belongs to
        gift_message_id:
          type: string
          title: gift_message_id
          description: Gift message ID (unique identifier)
        type:
          title: type
          description: Gift message type (custom or uploaded image)
          $ref: '#/components/schemas/api.order.v1.VendorGiftMessage.Type'
        content:
          type: string
          title: content
          description: Gift message text content (max 1000 characters)
        avatar_url:
          type: string
          title: avatar_url
          description: Avatar/image URL for the gift message card
        gift_message_name:
          type: string
          title: gift_message_name
          description: Gift message template/design name
      title: VendorGiftMessage
      additionalProperties: false
    api.order.v1.VendorGiftMessage.Type:
      type:
        - string
        - number
      title: Type
      enum:
        - TYPE_CUSTOM_IMAGE
        - 1
        - TYPE_UPLOAD_IMAGE
        - 2
    api.order.v1.VendorLineItem:
      type: object
      properties:
        order_id:
          type: string
          title: order_id
          description: Order ID this line item belongs to
        quantity:
          type: integer
          title: quantity
          minimum: 1
          format: int32
          description: Quantity ordered (minimum 1)
        printing_options:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorPrintingOption'
          title: printing_options
          description: Printing options for this line item (design URLs and locations)
        origin_options:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorLineItem.OriginOption'
          title: origin_options
          description: >-
            Original product options from marketplace (e.g., color, size
            selections)
        fulfillment_option:
          title: fulfillment_option
          description: Fulfillment options (barcode, etc.)
          $ref: '#/components/schemas/api.order.v1.VendorLineItem.FulfillmentOption'
        variant:
          title: variant
          description: Product variant details
          $ref: '#/components/schemas/api.order.v1.VendorLineItem.Variant'
        product:
          title: product
          description: Product details
          $ref: '#/components/schemas/api.order.v1.VendorLineItem.Product'
        id:
          type:
            - integer
            - string
          title: id
          format: int64
          description: Internal line item ID
        item_price:
          title: item_price
          description: Unit price per item
          $ref: '#/components/schemas/common.type.v1.Money'
        line_tax:
          title: line_tax
          description: Tax amount for this line
          $ref: '#/components/schemas/common.type.v1.Money'
        line_fee:
          title: line_fee
          description: Additional fees for this line
          $ref: '#/components/schemas/common.type.v1.Money'
        line_discount:
          title: line_discount
          description: Discount applied to this line
          $ref: '#/components/schemas/common.type.v1.Money'
        line_subtotal:
          title: line_subtotal
          description: Subtotal before tax and fees (item_price × quantity)
          $ref: '#/components/schemas/common.type.v1.Money'
        line_total:
          title: line_total
          description: Total amount for this line (subtotal + tax + fees - discount)
          $ref: '#/components/schemas/common.type.v1.Money'
        line_item_id:
          type: string
          title: line_item_id
          description: Line item ID (string format)
      title: VendorLineItem
      additionalProperties: false
    api.order.v1.VendorLineItem.FulfillmentOption:
      type: object
      properties:
        barcode_url:
          type: string
          title: barcode_url
          description: Barcode URL for inventory tracking (optional)
      title: FulfillmentOption
      additionalProperties: false
    api.order.v1.VendorLineItem.OriginOption:
      type: object
      properties:
        name:
          type: string
          title: name
          description: Option display name (e.g., "Color", "Size")
        key:
          type: string
          title: key
          description: Option key/identifier
        value:
          type: string
          title: value
          description: Option value (e.g., "Black", "Medium")
      title: OriginOption
      additionalProperties: false
    api.order.v1.VendorLineItem.Product:
      type: object
      properties:
        product_id:
          type: string
          title: product_id
          description: Product ID
        name:
          type: string
          title: name
          description: Product name (e.g., "Unisex T-Shirt")
        description:
          type: string
          title: description
          description: Product description
        images:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorLineItem.ProductImage'
          title: images
          description: Product images
        print_locations:
          type: array
          items:
            $ref: >-
              #/components/schemas/api.order.v1.VendorLineItem.ProductPrintLocation
          title: print_locations
          description: Available print locations for this product
        sku:
          type: string
          title: sku
          description: Product SKU
      title: Product
      additionalProperties: false
    api.order.v1.VendorLineItem.ProductImage:
      type: object
      properties:
        url:
          type: string
          title: url
          description: Image URL
        tag:
          type: string
          title: tag
          description: Image tag/category (e.g., "front", "back", "detail")
      title: ProductImage
      additionalProperties: false
    api.order.v1.VendorLineItem.ProductPrintLocation:
      type: object
      properties:
        code:
          type: string
          title: code
          description: Print location code (e.g., "front", "back")
        name:
          type: string
          title: name
          description: Print location display name
        location_id:
          type: integer
          title: location_id
          format: int32
          description: Internal location ID
      title: ProductPrintLocation
      additionalProperties: false
    api.order.v1.VendorLineItem.Short:
      type: object
      properties:
        order_id:
          type: string
          title: order_id
          description: Order ID this line item belongs to
        quantity:
          type: integer
          title: quantity
          minimum: 1
          format: int32
          description: Quantity ordered (minimum 1)
        printing_options:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorPrintingOption'
          title: printing_options
          description: Printing options for this line item (design URLs and locations)
        origin_options:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorLineItem.OriginOption'
          title: origin_options
          description: >-
            Original product options from marketplace (e.g., color, size
            selections)
        fulfillment_option:
          title: fulfillment_option
          description: Fulfillment options (barcode, etc.)
          $ref: '#/components/schemas/api.order.v1.VendorLineItem.FulfillmentOption'
        variant:
          title: variant
          description: Product variant details
          $ref: '#/components/schemas/api.order.v1.VendorLineItem.Variant'
        product:
          title: product
          description: Product details
          $ref: '#/components/schemas/api.order.v1.VendorLineItem.Product'
        id:
          type:
            - integer
            - string
          title: id
          format: int64
          description: Internal line item ID
        line_total:
          title: line_total
          description: Total amount for this line (subtotal + tax + fees - discount)
          $ref: '#/components/schemas/common.type.v1.Money'
        line_item_id:
          type: string
          title: line_item_id
          description: Line item ID (string format)
      title: Short
      additionalProperties: false
      description: >-
        Short is a lightweight version of VendorLineItem containing essential
        fields
         for compact representation in order listings, including only the total price
    api.order.v1.VendorLineItem.Variant:
      type: object
      properties:
        variant_id:
          type: string
          title: variant_id
          description: Variant ID (string format)
        legacy_id:
          type: integer
          title: legacy_id
          format: int32
          description: Legacy variant ID (integer format, for backward compatibility)
        sku:
          type: string
          title: sku
          description: SKU (Stock Keeping Unit)
        name:
          type: string
          title: name
          description: Variant name (e.g., "Black / Medium")
        description:
          type: string
          title: description
          description: Variant description
        option_1:
          type: string
          title: option_1
          description: First option value (e.g., "Black" for color)
        option_2:
          type: string
          title: option_2
          description: Second option value (e.g., "Medium" for size)
        option_3:
          type: string
          title: option_3
          description: Third option value (optional)
        option_1_name:
          type: string
          title: option_1_name
          description: First option name (e.g., "Color")
        option_2_name:
          type: string
          title: option_2_name
          description: Second option name (e.g., "Size")
        price:
          title: price
          description: Variant price
          $ref: '#/components/schemas/common.type.v1.Money'
        price_gm:
          title: price_gm
          description: Gearment price (internal)
          $ref: '#/components/schemas/common.type.v1.Money'
        images:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorLineItem.ProductImage'
          title: images
          description: Variant images
        stock_label:
          title: stock_label
          description: Stock availability status
          $ref: '#/components/schemas/api.order.v1.VendorStockLabel'
      title: Variant
      additionalProperties: false
    api.order.v1.VendorListOrderDraftRequest:
      type: object
      properties:
        filter:
          title: filter
          description: Filter criteria for order drafts
          $ref: '#/components/schemas/api.order.v1.VendorOrderDraftFilter'
        paging:
          title: paging
          description: Pagination parameters
          $ref: '#/components/schemas/common.type.v1.Paging'
      title: VendorListOrderDraftRequest
      additionalProperties: false
    api.order.v1.VendorListOrderDraftResponse:
      type: object
      properties:
        status:
          type: string
          title: status
          description: 'Response status: "success" or "error"'
        message:
          type: string
          title: message
          description: Human-readable message describing the result
        paging:
          title: paging
          description: |-
            Pagination metadata
             Contains: total count, current page, total pages
          $ref: '#/components/schemas/common.type.v1.PagingResponse'
        data:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorOrderDraft.Short'
          title: data
          description: List of order drafts matching the filter criteria
      title: VendorListOrderDraftResponse
      additionalProperties: false
    api.order.v1.VendorListOrderRequest:
      type: object
      properties:
        filter:
          title: filter
          description: Filter criteria for orders
          $ref: '#/components/schemas/api.order.v1.VendorOrderFilter'
        paging:
          title: paging
          description: 'Pagination parameters (default: page=1, limit=20; max limit: 100)'
          $ref: '#/components/schemas/common.type.v1.Paging'
      title: VendorListOrderRequest
      additionalProperties: false
    api.order.v1.VendorListOrderResponse:
      type: object
      properties:
        status:
          type: string
          title: status
          description: 'Response status: "success" or "error"'
        message:
          type: string
          title: message
          description: Human-readable message describing the result
        paging:
          title: paging
          description: Pagination metadata including total count and pages
          $ref: '#/components/schemas/common.type.v1.PagingResponse'
        data:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorOrder.Short'
          title: data
          description: |-
            List of orders matching the filter criteria
             Each order includes: ID, status, line items, tracking info, pricing
      title: VendorListOrderResponse
      additionalProperties: false
    api.order.v1.VendorOrder:
      type: object
      properties:
        order_id:
          type: string
          title: order_id
          description: Unique order ID
        store_id:
          type: string
          title: store_id
          description: Store ID this order belongs to
        team_id:
          type: string
          title: team_id
          description: Team ID (your account ID)
        created_method:
          title: created_method
          description: How this order was created (manual, API, store sync, etc.)
          $ref: '#/components/schemas/api.order.v1.VendorCreatedMethod'
        order_platform:
          title: order_platform
          description: Marketplace platform (Shopify, Etsy, WooCommerce, etc.)
          $ref: '#/components/schemas/common.platform.v1.MarketplacePlatform'
        platform_ref:
          type: string
          title: platform_ref
          description: >-
            Platform reference ID (deprecated, will be removed) will be deleted
            soon
        fulfillment_vendor:
          title: fulfillment_vendor
          description: Fulfillment vendor (Gearment, etc.)
          $ref: '#/components/schemas/api.order.v1.VendorFulfillmentVendor'
        vendor_ref:
          type: string
          title: vendor_ref
          description: Vendor's reference ID for this order
        priority:
          title: priority
          description: Fulfillment priority (standard, rush, etc.)
          $ref: '#/components/schemas/api.order.v1.VendorFulfillmentPriority'
        fulfillment_option:
          title: fulfillment_option
          description: Fulfillment configuration options
          $ref: '#/components/schemas/api.order.v1.VendorFulfillmentOption'
        shipping_option:
          title: shipping_option
          description: Shipping method and carrier details
          $ref: '#/components/schemas/api.order.v1.VendorShippingOption'
        billing_option:
          title: billing_option
          description: Billing and tax options (IOSS, etc.)
          $ref: '#/components/schemas/api.order.v1.VendorBillingOption'
        shipping_labels:
          type: array
          items:
            type: string
          title: shipping_labels
          description: Shipping label URLs (if pre-purchased)
        order_date:
          title: order_date
          description: When the order was originally placed
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        approved_at:
          title: approved_at
          description: When the order was approved for fulfillment
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        paid_at:
          title: paid_at
          description: When the payment was confirmed
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        order_status:
          title: order_status
          description: Current order status
          $ref: '#/components/schemas/api.order.v1.VendorOrderStatus'
        primary_package_id:
          type: string
          title: primary_package_id
          description: Primary package ID for this order
        primary_shipment_id:
          type: string
          title: primary_shipment_id
          description: Primary shipment ID for this order
        is_label_attached:
          type: boolean
          title: is_label_attached
          description: Whether shipping label is attached
        order_subtotal:
          title: order_subtotal
          description: Subtotal (sum of all line items before fees/tax/discount)
          $ref: '#/components/schemas/common.type.v1.Money'
        order_tax:
          title: order_tax
          description: Total tax amount
          $ref: '#/components/schemas/common.type.v1.Money'
        order_fee:
          title: order_fee
          description: Additional processing fees
          $ref: '#/components/schemas/common.type.v1.Money'
        order_discount:
          title: order_discount
          description: Total discount applied
          $ref: '#/components/schemas/common.type.v1.Money'
        order_total:
          title: order_total
          description: Final total amount (subtotal + fees + tax - discount)
          $ref: '#/components/schemas/common.type.v1.Money'
        order_redeem:
          title: order_redeem
          description: Amount redeemed from credits/wallet
          $ref: '#/components/schemas/common.type.v1.Money'
        paid_total:
          title: paid_total
          description: Amount already paid
          $ref: '#/components/schemas/common.type.v1.Money'
        paid_needed:
          title: paid_needed
          description: Amount still needed to complete payment
          $ref: '#/components/schemas/common.type.v1.Money'
        tracking_no:
          type: string
          title: tracking_no
          description: Primary tracking number
        created_at:
          title: created_at
          description: When this order record was created
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        updated_at:
          title: updated_at
          description: When this order was last updated
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        line_items:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorOrderLineItem'
          title: line_items
          description: All line items in this order
        store_name:
          type: string
          title: store_name
          description: Store name for display
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorAddress'
          title: addresses
          description: Shipping and billing addresses
        stages:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorProcessingStage'
          title: stages
          description: Processing stages (printing, packing, shipping, etc.)
        order_gift_message_fee:
          title: order_gift_message_fee
          description: Gift message fee (if applicable)
          $ref: '#/components/schemas/common.type.v1.Money'
        order_shipping_fee:
          title: order_shipping_fee
          description: Shipping cost
          $ref: '#/components/schemas/common.type.v1.Money'
        order_handle_fee:
          title: order_handle_fee
          description: Order handling fee
          $ref: '#/components/schemas/common.type.v1.Money'
        order_surcharge:
          title: order_surcharge
          description: Additional surcharges
          $ref: '#/components/schemas/common.type.v1.Money'
        order_rush_fee:
          title: order_rush_fee
          description: Rush processing fee (if applicable)
          $ref: '#/components/schemas/common.type.v1.Money'
        order_thank_card_fee:
          title: order_thank_card_fee
          description: Thank you card fee (if applicable)
          $ref: '#/components/schemas/common.type.v1.Money'
        order_trackings:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorOrderTracking'
          title: order_trackings
          description: All tracking information for this order
        gift_messages:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorGiftMessage'
          title: gift_messages
          description: Gift messages for this order
        refund_status:
          title: refund_status
          description: Refund status
          $ref: '#/components/schemas/api.order.v1.VendorOrderRefundStatus'
        cancel_status:
          title: cancel_status
          description: Cancellation status
          $ref: '#/components/schemas/api.order.v1.VendorOrderCancelStatus'
        order_priority:
          type: string
          title: order_priority
          description: Order priority label (for display)
        transaction_info:
          title: transaction_info
          description: Payment transaction details
          $ref: '#/components/schemas/api.order.v1.VendorTransactionInfo'
        cancel_reason:
          title: cancel_reason
          description: Cancellation reason (if canceled)
          $ref: '#/components/schemas/api.order.v1.VendorCancelReason'
        refunded_total:
          title: refunded_total
          description: Total amount refunded
          $ref: '#/components/schemas/common.type.v1.Money'
        legacy_external_id:
          type: string
          title: legacy_external_id
          description: >-
            Legacy external ID (for OMS backward compatibility) for oms order's
            external id
        reference_id:
          type: string
          title: reference_id
          description: Your custom reference ID
      title: VendorOrder
      additionalProperties: false
    api.order.v1.VendorOrder.Short:
      type: object
      properties:
        order_id:
          type: string
          title: order_id
          description: Unique order ID
        store_id:
          type: string
          title: store_id
          description: Store ID this order belongs to
        store_name:
          type: string
          title: store_name
          description: Store name for display
        team_id:
          type: string
          title: team_id
          description: Team ID (your account ID)
        created_method:
          title: created_method
          description: How this order was created (manual, API, store sync, etc.)
          $ref: '#/components/schemas/api.order.v1.VendorCreatedMethod'
        order_platform:
          title: order_platform
          description: Marketplace platform (Shopify, Etsy, WooCommerce, etc.)
          $ref: '#/components/schemas/common.platform.v1.MarketplacePlatform'
        platform_ref:
          type: string
          title: platform_ref
          description: >-
            Platform reference ID (deprecated, will be removed) will be deleted
            soon
        shipping_labels:
          type: array
          items:
            type: string
          title: shipping_labels
          description: Shipping label URLs (if pre-purchased)
        order_date:
          title: order_date
          description: When the order was originally placed
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        approved_at:
          title: approved_at
          description: When the order was approved for fulfillment
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        paid_at:
          title: paid_at
          description: When the payment was confirmed
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        order_status:
          title: order_status
          description: Current order status
          $ref: '#/components/schemas/api.order.v1.VendorOrderStatus'
        order_subtotal:
          title: order_subtotal
          description: Subtotal (sum of all line items before fees/tax/discount)
          $ref: '#/components/schemas/common.type.v1.Money'
        order_shipping_fee:
          title: order_shipping_fee
          description: Shipping cost
          $ref: '#/components/schemas/common.type.v1.Money'
        order_gift_message_fee:
          title: order_gift_message_fee
          description: Gift message fee (if applicable)
          $ref: '#/components/schemas/common.type.v1.Money'
        order_tax:
          title: order_tax
          description: Total tax amount
          $ref: '#/components/schemas/common.type.v1.Money'
        order_total:
          title: order_total
          description: Final total amount (subtotal + fees + tax - discount)
          $ref: '#/components/schemas/common.type.v1.Money'
        fulfillment_option:
          title: fulfillment_option
          description: Fulfillment configuration options
          $ref: '#/components/schemas/api.order.v1.VendorFulfillmentOption'
        shipping_option:
          title: shipping_option
          description: Shipping method and carrier details
          $ref: '#/components/schemas/api.order.v1.VendorShippingOption'
        billing_option:
          title: billing_option
          description: Billing and tax options (IOSS, etc.)
          $ref: '#/components/schemas/api.order.v1.VendorBillingOption'
        line_items:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorOrderLineItem.Short'
          title: line_items
          description: All line items in this order
        tracking_number:
          type: string
          title: tracking_number
          description: Primary tracking number
        tracking_link:
          type: string
          title: tracking_link
          description: Tracking link URL
        tracking_company:
          type: string
          title: tracking_company
          description: Carrier name
        tracking_product_type:
          type: string
          title: tracking_product_type
          description: Product type for tracking
        tracking_date_created:
          title: tracking_date_created
          description: When tracking was created
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        tracking_type:
          type: string
          title: tracking_type
          description: Tracking type
        payment_status:
          title: payment_status
          description: Payment status
          $ref: '#/components/schemas/api.order.v1.VendorOrderPaymentStatus'
        shipped_at:
          title: shipped_at
          description: When the order was shipped
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        legacy_external_id:
          type: string
          title: legacy_external_id
          description: >-
            Legacy external ID (for OMS backward compatibility) for oms order's
            external id
        reference_id:
          type: string
          title: reference_id
          description: Your custom reference ID
        gift_messages:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorGiftMessage'
          title: gift_messages
          description: Gift messages for this order
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorAddress'
          title: addresses
          description: Shipping and billing addresses
      title: Short
      additionalProperties: false
      description: >-
        Short is a lightweight version of VendorOrder containing essential
        fields
         for listing and display purposes, with flattened tracking data and minimal nested objects
    api.order.v1.VendorOrderCancelStatus:
      type:
        - string
        - number
      title: VendorOrderCancelStatus
      enum:
        - VENDOR_ORDER_CANCEL_STATUS_NOT_REQUESTED
        - 2
        - VENDOR_ORDER_CANCEL_STATUS_REQUESTED
        - 3
        - VENDOR_ORDER_CANCEL_STATUS_PROCESSING
        - 4
        - VENDOR_ORDER_CANCEL_STATUS_CANCELED
        - 5
        - VENDOR_ORDER_CANCEL_STATUS_PARTIALLY_CANCELED
        - 6
        - VENDOR_ORDER_CANCEL_STATUS_RETURN_REQUESTED
        - 7
        - VENDOR_ORDER_CANCEL_STATUS_RETURNED
        - 8
        - VENDOR_ORDER_CANCEL_STATUS_RETURN_REJECTED
        - 9
        - VENDOR_ORDER_CANCEL_STATUS_REJECTED
        - 10
        - VENDOR_ORDER_CANCEL_STATUS_FAILED
        - 11
    api.order.v1.VendorOrderDraft:
      type: object
      properties:
        order_id:
          type: string
          title: order_id
          description: Unique draft order ID
        team_id:
          type: string
          title: team_id
          description: Team ID (your account ID)
        store_id:
          type: string
          title: store_id
          description: Store ID this draft belongs to
        store_name:
          type: string
          title: store_name
          description: Store name for display
        platform_ref:
          type: string
          title: platform_ref
          description: >-
            Platform reference ID (deprecated, will be removed) will be deleted
            soon
        order_platform:
          title: order_platform
          description: Marketplace platform (Shopify, Etsy, WooCommerce, etc.)
          $ref: '#/components/schemas/common.platform.v1.MarketplacePlatform'
        import_id:
          type: string
          title: import_id
          description: Import batch ID (if created via import)
        pull_id:
          type: string
          title: pull_id
          description: Store sync pull ID (if created via store sync)
        request_id:
          type: string
          title: request_id
          description: Request ID for tracking purposes
        created_method:
          title: created_method
          description: How this draft was created (manual, API, store sync, import, etc.)
          $ref: '#/components/schemas/api.order.v1.VendorCreatedMethod'
        fulfillment_vendor:
          title: fulfillment_vendor
          description: Fulfillment vendor (Gearment, etc.)
          $ref: '#/components/schemas/api.order.v1.VendorFulfillmentVendor'
        priority:
          title: priority
          description: Fulfillment priority (standard, rush, etc.)
          $ref: '#/components/schemas/api.order.v1.VendorFulfillmentPriority'
        fulfillment_option:
          title: fulfillment_option
          description: Fulfillment configuration options
          $ref: '#/components/schemas/api.order.v1.VendorFulfillmentOption'
        shipping_option:
          title: shipping_option
          description: Shipping method and carrier details
          $ref: '#/components/schemas/api.order.v1.VendorShippingOption'
        billing_option:
          title: billing_option
          description: Billing and tax options (IOSS, etc.)
          $ref: '#/components/schemas/api.order.v1.VendorBillingOption'
        order_date:
          title: order_date
          description: Original order date from marketplace
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        status:
          title: status
          description: Current draft status
          $ref: '#/components/schemas/api.order.v1.VendorOrderDraftStatus'
        shipping_labels:
          type: array
          items:
            type: string
          title: shipping_labels
          description: Shipping label URLs (if pre-purchased)
        is_label_attached:
          type: boolean
          title: is_label_attached
          description: Whether shipping label is attached
        shipping_verification_status:
          title: shipping_verification_status
          description: Shipping address verification status
          $ref: '#/components/schemas/api.order.v1.VendorShippingVerificationStatus'
        product_matching_status:
          title: product_matching_status
          description: Product matching status (matched/unmatched to catalog)
          $ref: '#/components/schemas/api.order.v1.VendorProductMatchingStatus'
        is_shipping_verification_bypassed:
          type: boolean
          title: is_shipping_verification_bypassed
          description: Whether shipping verification was manually bypassed
        is_approved:
          type: boolean
          title: is_approved
          description: Whether this draft has been approved for checkout
        approved_at:
          title: approved_at
          description: When this draft was approved
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        origin_draft_id:
          type: string
          title: origin_draft_id
          description: Original draft ID (if this is a revised version)
        origin_order_id:
          type: string
          title: origin_order_id
          description: Order ID this draft was converted to (if checked out)
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorAddress'
          title: addresses
          description: Shipping and billing addresses
        line_items:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorLineItem'
          title: line_items
          description: All line items in this draft
        gift_messages:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorGiftMessage'
          title: gift_messages
          description: Gift messages for this order
        legacy_external_id:
          type: string
          title: legacy_external_id
          description: >-
            Legacy external ID (for OMS backward compatibility) for oms order's
            external id
        order_subtotal:
          title: order_subtotal
          description: Subtotal (sum of all line items before fees/tax/discount)
          $ref: '#/components/schemas/common.type.v1.Money'
        order_shipping_fee:
          title: order_shipping_fee
          description: Shipping cost
          $ref: '#/components/schemas/common.type.v1.Money'
        order_handle_fee:
          title: order_handle_fee
          description: Order handling fee
          $ref: '#/components/schemas/common.type.v1.Money'
        order_tax:
          title: order_tax
          description: Total tax amount
          $ref: '#/components/schemas/common.type.v1.Money'
        order_fee:
          title: order_fee
          description: Additional processing fees
          $ref: '#/components/schemas/common.type.v1.Money'
        order_discount:
          title: order_discount
          description: Total discount applied
          $ref: '#/components/schemas/common.type.v1.Money'
        order_total:
          title: order_total
          description: Final total amount (subtotal + fees + tax - discount)
          $ref: '#/components/schemas/common.type.v1.Money'
        reference_id:
          type: string
          title: reference_id
          description: Your custom reference ID
      title: VendorOrderDraft
      additionalProperties: false
    api.order.v1.VendorOrderDraft.Short:
      type: object
      properties:
        order_id:
          type: string
          title: order_id
          description: Unique draft order ID
        team_id:
          type: string
          title: team_id
          description: Team ID (your account ID)
        store_id:
          type: string
          title: store_id
          description: Store ID this draft belongs to
        store_name:
          type: string
          title: store_name
          description: Store name for display
        reference_id:
          type: string
          title: reference_id
          description: Your custom reference ID
        order_platform:
          title: order_platform
          description: Marketplace platform (Shopify, Etsy, WooCommerce, etc.)
          $ref: '#/components/schemas/common.platform.v1.MarketplacePlatform'
        import_id:
          type: string
          title: import_id
          description: Import batch ID (if created via import)
        pull_id:
          type: string
          title: pull_id
          description: Store sync pull ID (if created via store sync)
        request_id:
          type: string
          title: request_id
          description: Request ID for tracking purposes
        created_method:
          title: created_method
          description: How this draft was created (manual, API, store sync, import, etc.)
          $ref: '#/components/schemas/api.order.v1.VendorCreatedMethod'
        fulfillment_vendor:
          title: fulfillment_vendor
          description: Fulfillment vendor (Gearment, etc.)
          $ref: '#/components/schemas/api.order.v1.VendorFulfillmentVendor'
        priority:
          title: priority
          description: Fulfillment priority (standard, rush, etc.)
          $ref: '#/components/schemas/api.order.v1.VendorFulfillmentPriority'
        fulfillment_option:
          title: fulfillment_option
          description: Fulfillment configuration options
          $ref: '#/components/schemas/api.order.v1.VendorFulfillmentOption'
        shipping_option:
          title: shipping_option
          description: Shipping method and carrier details
          $ref: '#/components/schemas/api.order.v1.VendorShippingOption'
        billing_option:
          title: billing_option
          description: Billing and tax options (IOSS, etc.)
          $ref: '#/components/schemas/api.order.v1.VendorBillingOption'
        order_date:
          title: order_date
          description: Original order date from marketplace
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        status:
          title: status
          description: Current draft status
          $ref: '#/components/schemas/api.order.v1.VendorOrderDraftStatus'
        shipping_labels:
          type: array
          items:
            type: string
          title: shipping_labels
          description: Shipping label URLs (if pre-purchased)
        is_label_attached:
          type: boolean
          title: is_label_attached
          description: Whether shipping label is attached
        shipping_verification_status:
          title: shipping_verification_status
          description: Shipping address verification status
          $ref: '#/components/schemas/api.order.v1.VendorShippingVerificationStatus'
        product_matching_status:
          title: product_matching_status
          description: Product matching status (matched/unmatched to catalog)
          $ref: '#/components/schemas/api.order.v1.VendorProductMatchingStatus'
        is_shipping_verification_bypassed:
          type: boolean
          title: is_shipping_verification_bypassed
          description: Whether shipping verification was manually bypassed
        is_approved:
          type: boolean
          title: is_approved
          description: Whether this draft has been approved for checkout
        approved_at:
          title: approved_at
          description: When this draft was approved
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        origin_draft_id:
          type: string
          title: origin_draft_id
          description: Original draft ID (if this is a revised version)
        origin_order_id:
          type: string
          title: origin_order_id
          description: Order ID this draft was converted to (if checked out)
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorAddress'
          title: addresses
          description: Shipping and billing addresses
        line_items:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorLineItem.Short'
          title: line_items
          description: All line items in this draft
        gift_messages:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorGiftMessage'
          title: gift_messages
          description: Gift messages for this order
        legacy_external_id:
          type: string
          title: legacy_external_id
          description: >-
            Legacy external ID (for OMS backward compatibility) for oms order's
            external id
        order_total:
          title: order_total
          description: Final total amount (subtotal + fees + tax - discount)
          $ref: '#/components/schemas/common.type.v1.Money'
        order_subtotal:
          title: order_subtotal
          description: Subtotal (sum of all line items before fees/tax/discount)
          $ref: '#/components/schemas/common.type.v1.Money'
        order_shipping_fee:
          title: order_shipping_fee
          description: Shipping cost
          $ref: '#/components/schemas/common.type.v1.Money'
        order_handle_fee:
          title: order_handle_fee
          description: Order handling fee
          $ref: '#/components/schemas/common.type.v1.Money'
        order_tax:
          title: order_tax
          description: Total tax amount
          $ref: '#/components/schemas/common.type.v1.Money'
        order_fee:
          title: order_fee
          description: Additional processing fees
          $ref: '#/components/schemas/common.type.v1.Money'
        order_discount:
          title: order_discount
          description: Total discount applied
          $ref: '#/components/schemas/common.type.v1.Money'
      title: Short
      additionalProperties: false
      description: >-
        Short is a lightweight version of VendorOrderDraft containing essential
        fields
         for listing and display purposes, excluding nested collections and detailed pricing breakdowns
    api.order.v1.VendorOrderDraftCreationParams.LineItem:
      type: object
      properties:
        variant_id:
          type: string
          examples:
            - variant_abc123
          title: variant_id
          description: >-
            Product variant ID from catalog (use variant_id OR legacy_id, not
            both)
        legacy_id:
          type:
            - integer
            - string
          title: legacy_id
          format: int64
          description: Legacy variant ID (for backward compatibility)
        quantity:
          exclusiveMinimum: 0
          type: integer
          examples:
            - 2
          title: quantity
          maximum: 1000
          format: int32
          description: Quantity to order (1-1000)
        printing_options:
          type: array
          items:
            $ref: >-
              #/components/schemas/api.order.v1.VendorOrderDraftCreationParams.PrintingOption
          title: printing_options
          minItems: 1
          description: Printing options (at least 1 required, must include front or back)
        barcode_url:
          type: string
          examples:
            - https://example.com/barcodes/item-12345.png
          title: barcode_url
          maxLength: 1000
          description: Barcode URL for inventory tracking (optional)
      title: LineItem
      additionalProperties: false
      description: >
        has_front_or_back_printing_option // A line item must include at least
        one printing option with location_code front or back

        oneof_variant_id_legacy_id // Exactly one of 'variant_id' or 'legacy_id'
        must be set
    api.order.v1.VendorOrderDraftCreationParams.PrintingOption:
      type: object
      properties:
        location_code:
          title: location_code
          description: Print location on product
          $ref: >-
            #/components/schemas/api.order.v1.VendorPrintingOption.PrintLocationCode
        url:
          type: string
          examples:
            - https://example.com/designs/design-12345.png
          title: url
          maxLength: 1000
          description: Design file URL (PNG, JPEG, or PDF)
      title: PrintingOption
      additionalProperties: false
    api.order.v1.VendorOrderDraftFilter:
      type: object
      properties:
        order_ids:
          type: array
          items:
            type: string
            examples:
              - draft_abc123
            maxLength: 100
            minLength: 1
          title: order_ids
          description: Filter by specific order draft IDs
        statuses:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorOrderDraftStatus'
          title: statuses
          description: Filter by draft statuses
        created_methods:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorCreatedMethod'
          title: created_methods
          description: Filter by creation methods
        created_at_min:
          title: created_at_min
          description: Filter drafts created after this date (ISO 8601 format)
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        created_at_max:
          title: created_at_max
          description: Filter drafts created before this date (ISO 8601 format)
          $ref: '#/components/schemas/google.protobuf.Timestamp'
      title: VendorOrderDraftFilter
      additionalProperties: false
    api.order.v1.VendorOrderDraftManualCreationParams:
      type: object
      properties:
        reference_id:
          type: string
          examples:
            - my-order-12345
          title: reference_id
          maxLength: 255
          description: Your reference ID for this order (optional)
        platform:
          title: platform
          description: Platform where this order originates
          $ref: '#/components/schemas/common.platform.v1.MarketplacePlatform'
        store_id:
          type: string
          examples:
            - store_abc123xyz
          title: store_id
          maxLength: 255
          description: Your store ID from Gearment
        agree_at_risk:
          title: agree_at_risk
          description: >-
            Acknowledge production risks (e.g., unverified address, to proceed
            with order despite warnings)
          $ref: '#/components/schemas/google.protobuf.BoolValue'
        address:
          title: address
          description: Shipping address details
          $ref: '#/components/schemas/api.order.v1.VendorAddress'
        shipping_method:
          title: shipping_method
          description: Shipping method selection
          $ref: '#/components/schemas/api.order.v1.VendorShippingOption.Method'
        billing_option:
          title: billing_option
          description: Billing options (taxes, IOSS, etc.)
          $ref: '#/components/schemas/api.order.v1.VendorBillingOption'
        gift_message_body:
          type: string
          examples:
            - Happy Birthday! Hope you enjoy this gift. - Sarah
          title: gift_message_body
          maxLength: 1000
          description: Optional gift message (max 1000 chars)
        line_items:
          type: array
          items:
            $ref: >-
              #/components/schemas/api.order.v1.VendorOrderDraftCreationParams.LineItem
          title: line_items
          maxItems: 1000
          minItems: 1
          description: Line items to order (at least 1, max 1000)
      title: VendorOrderDraftManualCreationParams
      additionalProperties: false
    api.order.v1.VendorOrderDraftStatus:
      type:
        - string
        - number
      title: VendorOrderDraftStatus
      enum:
        - VENDOR_ORDER_DRAFT_STATUS_DRAFT
        - 2
        - VENDOR_ORDER_DRAFT_STATUS_AWAITING_CHECKOUT
        - 3
        - VENDOR_ORDER_DRAFT_STATUS_CHECKED_OUT
        - 4
        - VENDOR_ORDER_DRAFT_STATUS_DELETED
        - 5
        - VENDOR_ORDER_DRAFT_STATUS_ARCHIVED
        - 6
    api.order.v1.VendorOrderDraftUpdateParams.LineItem:
      type: object
      properties:
        line_item_id:
          type: string
          examples:
            - li_abc123
          title: line_item_id
          description: Line item ID to update (required)
        variant_id:
          type: string
          examples:
            - variant_abc123
          title: variant_id
          description: Product variant ID (use variant_id OR legacy_id, not both)
        legacy_id:
          type:
            - integer
            - string
          title: legacy_id
          format: int64
          description: >-
            Legacy variant ID (for backward compatibility, use variant_id OR
            legacy_id, not both)
        quantity:
          exclusiveMinimum: 0
          type: integer
          examples:
            - 2
          title: quantity
          maximum: 1000
          format: int32
          description: Quantity to order (1-1000)
        printing_options:
          type: array
          items:
            $ref: >-
              #/components/schemas/api.order.v1.VendorOrderDraftCreationParams.PrintingOption
          title: printing_options
          minItems: 1
          description: Printing options (at least 1 required, must include front or back)
        barcode_url:
          type: string
          examples:
            - https://example.com/barcodes/item-12345.png
          title: barcode_url
          maxLength: 1000
          description: Barcode URL for inventory tracking (optional)
      title: LineItem
      additionalProperties: false
      description: >
        has_front_or_back_printing_option // A line item must include at least
        one printing option with location_code front or back

        oneof_variant_id_legacy_id // Exactly one of 'variant_id' or 'legacy_id'
        must be set
    api.order.v1.VendorOrderDraftWithLabelCreationParams:
      type: object
      properties:
        reference_id:
          type: string
          examples:
            - my-order-12345
          title: reference_id
          maxLength: 255
          description: Your reference ID for this order (optional)
        platform:
          title: platform
          description: Platform where this order originates (required)
          $ref: '#/components/schemas/common.platform.v1.MarketplacePlatform'
        store_id:
          type: string
          examples:
            - store_abc123xyz
          title: store_id
          maxLength: 255
          description: Your store ID from Gearment (required)
        agree_at_risk:
          title: agree_at_risk
          description: >-
            Acknowledge production risks (e.g., unverified address, to proceed
            with order despite warnings)
          $ref: '#/components/schemas/google.protobuf.BoolValue'
        shipping_label_urls:
          type: array
          items:
            type: string
            examples:
              - https://example.com/labels/shipping-label-001.pdf
            maxLength: 1000
            minLength: 1
            minItems: 1
          title: shipping_label_urls
          minItems: 1
          description: >-
            Pre-purchased shipping label URLs (required, at least 1, PDF or
            image format)
             Use this when you've already purchased shipping labels and want Gearment to use them
        gift_message_body:
          type: string
          examples:
            - Happy Birthday! Hope you enjoy this gift. - Sarah
          title: gift_message_body
          maxLength: 1000
          description: Optional gift message (max 1000 chars)
        line_items:
          type: array
          items:
            $ref: >-
              #/components/schemas/api.order.v1.VendorOrderDraftCreationParams.LineItem
          title: line_items
          maxItems: 1000
          minItems: 1
          description: Line items to order (at least 1, max 1000)
      title: VendorOrderDraftWithLabelCreationParams
      additionalProperties: false
    api.order.v1.VendorOrderFilter:
      type: object
      properties:
        order_ids:
          type: array
          items:
            type: string
            examples:
              - ord_abc123xyz
            maxLength: 100
            minLength: 1
          title: order_ids
          description: Filter by specific order IDs
        statuses:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorOrderStatus'
          title: statuses
          description: Filter by order statuses
        created_methods:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorCreatedMethod'
          title: created_methods
          description: Filter by order creation methods
        created_at_min:
          title: created_at_min
          description: |-
            Filter orders created after this date (inclusive, ISO 8601 format)
             In query params, this is sent as a string, not as seconds/nanos
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        created_at_max:
          title: created_at_max
          description: Filter orders created before this date (inclusive, ISO 8601 format)
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        payment_status:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorOrderPaymentStatus'
          title: payment_status
          description: Filter by payment status (for legacy API compatibility)
      title: VendorOrderFilter
      additionalProperties: false
    api.order.v1.VendorOrderLineItem:
      type: object
      properties:
        id:
          type:
            - integer
            - string
          title: id
          format: int64
          description: Internal line item ID
        variant_id:
          type: string
          title: variant_id
          description: Product variant ID
        quantity:
          type: integer
          title: quantity
          minimum: 1
          format: int32
          description: Quantity ordered (minimum 1)
        printing_options:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorPrintingOption'
          title: printing_options
          description: Printing options for this line item
        seller_variant_id:
          type: string
          title: seller_variant_id
          description: Seller's variant ID (from marketplace)
        product_id:
          type: string
          title: product_id
          description: Product ID
        option_1:
          type: string
          title: option_1
          description: First option value (e.g., "Black" for color)
        option_2:
          type: string
          title: option_2
          description: Second option value (e.g., "Medium" for size)
        product_name:
          type: string
          title: product_name
          description: Product name
        item_price:
          title: item_price
          description: Unit price per item
          $ref: '#/components/schemas/common.type.v1.Money'
        line_tax:
          title: line_tax
          description: Tax amount for this line
          $ref: '#/components/schemas/common.type.v1.Money'
        line_fee:
          title: line_fee
          description: Additional fees for this line
          $ref: '#/components/schemas/common.type.v1.Money'
        line_discount:
          title: line_discount
          description: Discount applied to this line
          $ref: '#/components/schemas/common.type.v1.Money'
        line_subtotal:
          title: line_subtotal
          description: Subtotal before tax and fees
          $ref: '#/components/schemas/common.type.v1.Money'
        line_total:
          title: line_total
          description: Total amount for this line
          $ref: '#/components/schemas/common.type.v1.Money'
        variant_name:
          type: string
          title: variant_name
          description: Variant name (e.g., "Black / Medium")
        product_url:
          type: string
          title: product_url
          description: Product URL (link to product page)
        variant_sku:
          type: string
          title: variant_sku
          description: Variant SKU
        product_type_name:
          type: string
          title: product_type_name
          description: Product type name (e.g., "T-Shirt", "Hoodie")
        order_id:
          type: string
          title: order_id
          description: Order ID this line item belongs to
        line_item_id:
          type: string
          title: line_item_id
          description: Line item ID (string format)
      title: VendorOrderLineItem
      additionalProperties: false
    api.order.v1.VendorOrderLineItem.FulfillmentOption:
      type: object
      properties:
        barcode_url:
          type: string
          title: barcode_url
      title: FulfillmentOption
      additionalProperties: false
    api.order.v1.VendorOrderLineItem.Short:
      type: object
      properties:
        id:
          type:
            - integer
            - string
          title: id
          format: int64
          description: Internal line item ID
        quantity:
          type: integer
          title: quantity
          minimum: 1
          format: int32
          description: Quantity ordered (minimum 1)
        printing_options:
          type: array
          items:
            $ref: '#/components/schemas/api.order.v1.VendorPrintingOption'
          title: printing_options
          description: Printing options for this line item
        seller_variant_id:
          type: string
          title: seller_variant_id
          description: Seller's variant ID (from marketplace)
        product_id:
          type: string
          title: product_id
          description: Product ID
        product_name:
          type: string
          title: product_name
          description: Product name
        item_price:
          title: item_price
          description: Unit price per item
          $ref: '#/components/schemas/common.type.v1.Money'
        line_tax:
          title: line_tax
          description: Tax amount for this line
          $ref: '#/components/schemas/common.type.v1.Money'
        line_fee:
          title: line_fee
          description: Additional fees for this line
          $ref: '#/components/schemas/common.type.v1.Money'
        line_discount:
          title: line_discount
          description: Discount applied to this line
          $ref: '#/components/schemas/common.type.v1.Money'
        line_subtotal:
          title: line_subtotal
          description: Subtotal before tax and fees
          $ref: '#/components/schemas/common.type.v1.Money'
        line_total:
          title: line_total
          description: Total amount for this line
          $ref: '#/components/schemas/common.type.v1.Money'
        fulfillment_option:
          title: fulfillment_option
          description: Fulfillment options (barcode, etc.)
          $ref: >-
            #/components/schemas/api.order.v1.VendorOrderLineItem.FulfillmentOption
        product_url:
          type: string
          title: product_url
          description: Product URL (link to product page)
        product_sku:
          type: string
          title: product_sku
          description: Product SKU
        variant:
          title: variant
          description: Variant details
          $ref: '#/components/schemas/api.order.v1.VendorOrderLineItem.Short.Variant'
        order_id:
          type: string
          title: order_id
          description: Order ID this line item belongs to
        line_item_id:
          type: string
          title: line_item_id
          description: Line item ID (string format)
      title: Short
      additionalProperties: false
      description: >-
        Short is a lightweight version of VendorOrderLineItem with essential
        fields
         for compact order representation, including variant details in a nested Short.Variant message
    api.order.v1.VendorOrderLineItem.Short.Variant:
      type: object
      properties:
        variant_id:
          type: string
          title: variant_id
          description: Variant ID (string format)
        variant_name:
          type: string
          title: variant_name
          description: Variant name (e.g., "Black / Medium")
        legacy_id:
          type: integer
          title: legacy_id
          format: int32
          description: Legacy variant ID (integer format, for backward compatibility)
        sku:
          type: string
          title: sku
          description: SKU (Stock Keeping Unit)
        name:
          type: string
          title: name
          description: Variant name
        description:
          type: string
          title: description
          description: Variant description
        option_1:
          type: string
          title: option_1
          description: First option value (e.g., "Black" for color)
        option_2:
          type: string
          title: option_2
          description: Second option value (e.g., "Medium" for size)
        option_3:
          type: string
          title: option_3
          description: Third option value (optional)
        option_1_name:
          type: string
          title: option_1_name
          description: First option name (e.g., "Color")
        option_2_name:
          type: string
          title: option_2_name
          description: Second option name (e.g., "Size")
        option_3_name:
          type: string
          title: option_3_name
          description: Third option name (optional)
        stock_label:
          title: stock_label
          description: Stock availability status
          $ref: '#/components/schemas/api.order.v1.VendorStockLabel'
      title: Variant
      additionalProperties: false
      description: >-
        Variant contains essential variant information for the short line item
        representation
    api.order.v1.VendorOrderPaymentStatus:
      type:
        - string
        - number
      title: VendorOrderPaymentStatus
      enum:
        - VENDOR_ORDER_PAYMENT_STATUS_PENDING
        - 2
        - VENDOR_ORDER_PAYMENT_STATUS_SUCCESS
        - 3
        - VENDOR_ORDER_PAYMENT_STATUS_FAILED
        - 4
        - VENDOR_ORDER_PAYMENT_STATUS_EXPIRED
        - 5
        - VENDOR_ORDER_PAYMENT_STATUS_SUCCESS_PARTIALLY
        - 6
    api.order.v1.VendorOrderPriceCalculation.Address:
      type: object
      properties:
        method:
          type: string
          examples:
            - standard
          title: method
          enum:
            - standard
            - METHOD_STANDARD
            - stamp
            - METHOD_STAMP
            - ground
            - METHOD_GROUND
            - fastship
            - METHOD_FAST_SHIP
          description: Shipping method
        state_code:
          type: string
          examples:
            - CA
          title: state_code
          description: State/province code (ISO 3166-2)
        country_code:
          type: string
          examples:
            - US
          title: country_code
          description: Country code (ISO 3166-1 alpha-2)
      title: Address
      additionalProperties: false
    api.order.v1.VendorOrderPriceCalculation.Billing:
      type: object
      properties:
        ioss_number:
          type: string
          examples:
            - IM1234567890
          title: ioss_number
          description: IOSS number for EU tax compliance
        tax_number:
          type: string
          examples:
            - GB123456789
          title: tax_number
          description: Tax identification number
      title: Billing
      additionalProperties: false
    api.order.v1.VendorOrderPriceCalculation.FeePriceQuote:
      type: object
      properties:
        order_id:
          type: string
          title: order_id
          description: Order ID this fee applies to
        line_item_id:
          type: string
          title: line_item_id
          description: Line item ID this fee applies to
        fee_code:
          type: string
          title: fee_code
          description: Fee code/identifier (e.g., "RUSH_FEE", "GIFT_MESSAGE_FEE")
        amount:
          title: amount
          description: Fee amount
          $ref: '#/components/schemas/common.type.v1.Money'
      title: FeePriceQuote
      additionalProperties: false
    api.order.v1.VendorOrderPriceCalculation.GiftMessage:
      type: object
      properties:
        gift_message_id:
          type: string
          examples:
            - gift_msg_123
          title: gift_message_id
          maxLength: 30
          minLength: 1
          description: Unique identifier for the gift message
        content:
          type: string
          examples:
            - Happy Birthday! Wishing you all the best. - John
          title: content
          maxLength: 300
          description: Gift message text content (max 300 characters)
      title: GiftMessage
      additionalProperties: false
    api.order.v1.VendorOrderPriceCalculation.Label:
      type: object
      properties:
        url:
          type: string
          examples:
            - https://example.com/shipping-label.pdf
          title: url
          description: URL to pre-purchased shipping label (PDF or image)
      title: Label
      additionalProperties: false
    api.order.v1.VendorOrderPriceCalculation.LineItem:
      type: object
      properties:
        variant_id:
          type: string
          examples:
            - variant_abc123
          title: variant_id
          maxLength: 30
          minLength: 1
          description: Product variant ID from catalog
        quantity:
          exclusiveMinimum: 0
          type: integer
          examples:
            - 2
          title: quantity
          format: int32
          description: Quantity to order
        print_locations:
          type: array
          items:
            type: string
            examples:
              - front
            enum:
              - front
              - PRINT_LOCATION_CODE_FRONT
              - back
              - PRINT_LOCATION_CODE_BACK
              - left_sleeve
              - PRINT_LOCATION_CODE_LEFT_SLEEVE
              - right_sleeve
              - PRINT_LOCATION_CODE_RIGHT_SLEEVE
              - pocket
              - PRINT_LOCATION_CODE_POCKET
              - whole
              - PRINT_LOCATION_CODE_WHOLE
          title: print_locations
          description: Print locations on the product
      title: LineItem
      additionalProperties: false
    api.order.v1.VendorOrderPriceCalculation.LineItemPriceQuote:
      type: object
      properties:
        line_sub_total:
          title: line_sub_total
          description: Line item subtotal (item_price × quantity, before tax/fees/discount)
          $ref: '#/components/schemas/common.type.v1.Money'
        line_tax:
          title: line_tax
          description: Tax for this line item
          $ref: '#/components/schemas/common.type.v1.Money'
        line_fee:
          title: line_fee
          description: Additional fees for this line item
          $ref: '#/components/schemas/common.type.v1.Money'
        line_discount:
          title: line_discount
          description: Discount applied to this line item
          $ref: '#/components/schemas/common.type.v1.Money'
        line_total:
          title: line_total
          description: Total for this line item (subtotal + tax + fee - discount)
          $ref: '#/components/schemas/common.type.v1.Money'
        item_price:
          title: item_price
          description: Unit price per item
          $ref: '#/components/schemas/common.type.v1.Money'
        item_fee:
          title: item_fee
          description: Per-item fee
          $ref: '#/components/schemas/common.type.v1.Money'
        item_discount:
          title: item_discount
          description: Per-item discount
          $ref: '#/components/schemas/common.type.v1.Money'
        item_quantity:
          type: integer
          title: item_quantity
          format: int32
          description: Quantity of items
        id:
          type:
            - integer
            - string
          title: id
          format: int64
          description: Internal line item ID
        unit_base_price:
          title: unit_base_price
          description: Base price per unit (before fees/discount)
          $ref: '#/components/schemas/common.type.v1.Money'
      title: LineItemPriceQuote
      additionalProperties: false
    api.order.v1.VendorOrderPriceCalculation.OrderPriceQuote:
      type: object
      properties:
        order_shipping_fee:
          title: order_shipping_fee
          description: Total shipping fee for the order
          $ref: '#/components/schemas/common.type.v1.Money'
        order_fee:
          title: order_fee
          description: Additional processing fees
          $ref: '#/components/schemas/common.type.v1.Money'
        order_tax:
          title: order_tax
          description: Total tax for the order
          $ref: '#/components/schemas/common.type.v1.Money'
        order_sub_total:
          title: order_sub_total
          description: Order subtotal (sum of all line items before tax/fees/discount)
          $ref: '#/components/schemas/common.type.v1.Money'
        order_total:
          title: order_total
          description: Final order total (subtotal + shipping + tax + fees - discount)
          $ref: '#/components/schemas/common.type.v1.Money'
        order_discount:
          title: order_discount
          description: Total discount applied to the order
          $ref: '#/components/schemas/common.type.v1.Money'
        line_items:
          type: array
          items:
            $ref: >-
              #/components/schemas/api.order.v1.VendorOrderPriceCalculation.LineItemPriceQuote
          title: line_items
          description: Price breakdown for each line item
        fees:
          type: array
          items:
            $ref: >-
              #/components/schemas/api.order.v1.VendorOrderPriceCalculation.FeePriceQuote
          title: fees
          description: Detailed fee breakdown
        order_gift_message_fee:
          title: order_gift_message_fee
          description: Gift message fee (if applicable)
          $ref: '#/components/schemas/common.type.v1.Money'
        order_handle_fee:
          title: order_handle_fee
          description: Order handling fee
          $ref: '#/components/schemas/common.type.v1.Money'
      title: OrderPriceQuote
      additionalProperties: false
    api.order.v1.VendorOrderPriceCalculation.Shipping:
      type: object
      properties:
        address:
          title: address
          description: Shipping address information
          $ref: >-
            #/components/schemas/api.order.v1.VendorOrderPriceCalculation.Address
        label:
          title: label
          description: Pre-purchased shipping label (optional)
          $ref: '#/components/schemas/api.order.v1.VendorOrderPriceCalculation.Label'
      title: Shipping
      additionalProperties: false
    api.order.v1.VendorOrderRefundStatus:
      type:
        - string
        - number
      title: VendorOrderRefundStatus
      enum:
        - VENDOR_ORDER_REFUND_STATUS_NOT_REQUESTED
        - 2
        - VENDOR_ORDER_REFUND_STATUS_NOT_APPLICABLE
        - 3
        - VENDOR_ORDER_REFUND_STATUS_REQUESTED
        - 4
        - VENDOR_ORDER_REFUND_STATUS_PROCESSING
        - 5
        - VENDOR_ORDER_REFUND_STATUS_REFUNDED
        - 6
        - VENDOR_ORDER_REFUND_STATUS_PARTIALLY_REFUNDED
        - 7
        - VENDOR_ORDER_REFUND_STATUS_RETURN_REFUND_REQUESTED
        - 8
        - VENDOR_ORDER_REFUND_STATUS_RETURN_REFUNDED
        - 9
        - VENDOR_ORDER_REFUND_STATUS_REJECTED
        - 10
        - VENDOR_ORDER_REFUND_STATUS_FAILED
        - 11
    api.order.v1.VendorOrderStatus:
      type:
        - string
        - number
      title: VendorOrderStatus
      enum:
        - VENDOR_ORDER_STATUS_AWAITING_PAYMENT
        - 2
        - VENDOR_ORDER_STATUS_PAYMENT_FAILED
        - 3
        - VENDOR_ORDER_STATUS_AWAITING_FULFILLMENT
        - 4
        - VENDOR_ORDER_STATUS_IN_PRODUCTION
        - 5
        - VENDOR_ORDER_STATUS_PACKED
        - 6
        - VENDOR_ORDER_STATUS_SHIPPED
        - 7
        - VENDOR_ORDER_STATUS_CANCELLED
        - 8
        - VENDOR_ORDER_STATUS_ON_HOLD
        - 9
    api.order.v1.VendorOrderTracking:
      type: object
      properties:
        tracking_no:
          type: string
          title: tracking_no
          description: Tracking number (e.g., "1Z999AA10123456784" for UPS)
        tracking_updated_at:
          title: tracking_updated_at
          description: Last update timestamp for tracking information
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        carrier:
          type: string
          title: carrier
          description: Shipping carrier (e.g., "USPS", "FedEx", "UPS", "DHL")
        service:
          type: string
          title: service
          description: Shipping service level (e.g., "Priority Mail", "Ground", "Express")
        type:
          type: string
          title: type
          description: Legacy tracking type field (deprecated, use tracking_type instead)
        label_file:
          title: label_file
          description: Shipping label file (PDF or image)
          $ref: '#/components/schemas/common.type.v1.File'
        tracking_type:
          title: tracking_type
          description: >-
            Tracking type (indicates if this is the primary, secondary, or
            outdated tracking)
          $ref: '#/components/schemas/api.order.v1.VendorTrackingType'
        tracking_url:
          type: string
          title: tracking_url
          description: >-
            Tracking URL for carrier's tracking page (e.g.,
            "https://tools.usps.com/go/TrackConfirmAction?tLabels=...")
      title: VendorOrderTracking
      additionalProperties: false
    api.order.v1.VendorPrintingOption:
      type: object
      properties:
        print_location_code:
          title: print_location_code
          description: Print location on the product (required)
          $ref: >-
            #/components/schemas/api.order.v1.VendorPrintingOption.PrintLocationCode
        design_url:
          type: string
          examples:
            - https://example.com/designs/front-design.png
          title: design_url
          maxLength: 1000
          description: Design file URL (PNG, JPEG, or PDF format)
      title: VendorPrintingOption
      additionalProperties: false
    api.order.v1.VendorPrintingOption.PrintLocationCode:
      type:
        - string
        - number
      title: PrintLocationCode
      enum:
        - PRINT_LOCATION_CODE_WHOLE
        - 1
        - PRINT_LOCATION_CODE_FRONT
        - 2
        - PRINT_LOCATION_CODE_BACK
        - 3
        - PRINT_LOCATION_CODE_LEFT_SLEEVE
        - 4
        - PRINT_LOCATION_CODE_RIGHT_SLEEVE
        - 5
        - PRINT_LOCATION_CODE_POCKET
        - 6
    api.order.v1.VendorProcessingStage:
      type: object
      properties:
        stage_id:
          type: string
          title: stage_id
          description: Processing stage ID
        stage_name:
          type: string
          title: stage_name
          description: Processing stage name (e.g., "Printing", "Packing", "Shipping")
        stage_started_at:
          title: stage_started_at
          description: When this stage started
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        stage_completed_at:
          title: stage_completed_at
          description: When this stage completed
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        is_completed:
          type: boolean
          title: is_completed
          description: Whether this stage is completed
      title: VendorProcessingStage
      additionalProperties: false
    api.order.v1.VendorProductMatchingStatus:
      type:
        - string
        - number
      title: VendorProductMatchingStatus
      enum:
        - VENDOR_PRODUCT_MATCHING_STATUS_MATCHED
        - 2
        - VENDOR_PRODUCT_MATCHING_STATUS_UNMATCHED
        - 3
    api.order.v1.VendorPurchaseTrackingConfig:
      type:
        - string
        - number
      title: VendorPurchaseTrackingConfig
      enum:
        - VENDOR_PURCHASE_TRACKING_TIME_DEFAULT
        - 1
        - VENDOR_PURCHASE_TRACKING_TIME_IMMEDIATELY_AFTER_THE_PAYMENT_TIME
        - 2
        - VENDOR_PURCHASE_TRACKING_TIME_ONCE_ALL_ITEMS_ARE_PRINTED
        - 3
        - VENDOR_PURCHASE_TRACKING_TIME_WITHIN_A_SPECIFIC_NUMBER_OF_DAY
        - 4
    api.order.v1.VendorShippingOption:
      type: object
      properties:
        method:
          title: method
          description: Shipping method (required)
          $ref: '#/components/schemas/api.order.v1.VendorShippingOption.Method'
      title: VendorShippingOption
      additionalProperties: false
    api.order.v1.VendorShippingOption.Method:
      type:
        - string
        - number
      title: Method
      enum:
        - METHOD_STANDARD
        - 2
        - METHOD_GROUND
        - 3
        - METHOD_FAST_SHIP
        - 4
        - METHOD_STAMP
        - 5
    api.order.v1.VendorShippingVerificationStatus:
      type:
        - string
        - number
      title: VendorShippingVerificationStatus
      enum:
        - VENDOR_SHIPPING_VERIFICATION_STATUS_PENDING
        - 2
        - VENDOR_SHIPPING_VERIFICATION_STATUS_CONSTRAINT_INVALID
        - 3
        - VENDOR_SHIPPING_VERIFICATION_STATUS_CONSTRAINT_VALID
        - 4
        - VENDOR_SHIPPING_VERIFICATION_STATUS_ADDRESS_UNVERIFIED
        - 5
        - VENDOR_SHIPPING_VERIFICATION_STATUS_ADDRESS_VERIFIED
        - 6
    api.order.v1.VendorStockLabel:
      type:
        - string
        - number
      title: VendorStockLabel
      enum:
        - VENDOR_STOCK_LABEL_IN_STOCK
        - 1
        - VENDOR_STOCK_LABEL_OUT_OF_STOCK
        - 2
        - VENDOR_STOCK_LABEL_AT_RISK
        - 3
        - VENDOR_STOCK_LABEL_DISCONTINUED
        - 4
    api.order.v1.VendorTrackingType:
      type:
        - string
        - number
      title: VendorTrackingType
      enum:
        - TRACKING_TYPE_PRIMARY
        - 1
        - TRACKING_TYPE_SECONDARY
        - 2
        - TRACKING_TYPE_OUTDATED
        - 3
    api.order.v1.VendorTransactionInfo:
      type: object
      properties:
        txn_id:
          type: string
          title: txn_id
          description: Transaction ID (unique identifier for this payment transaction)
        team_id:
          type: string
          title: team_id
          description: Team ID (your account identifier)
        method_code:
          type: string
          title: method_code
          description: Payment method code (e.g., "credit_card", "paypal", "stripe")
        method_icon_urls:
          type: string
          title: method_icon_urls
          description: Payment method icon URL (for displaying payment method logo)
        list_invoice_detail:
          type: array
          items:
            $ref: >-
              #/components/schemas/api.order.v1.VendorTransactionInfo.VendorInvoiceInfo
          title: list_invoice_detail
          description: List of invoice details included in this transaction
      title: VendorTransactionInfo
      additionalProperties: false
    api.order.v1.VendorTransactionInfo.VendorInvoiceInfo:
      type: object
      properties:
        invoice_id:
          type: string
          title: invoice_id
          description: Invoice ID (unique identifier for this invoice)
        order_id:
          type: string
          title: order_id
          description: Order ID associated with this invoice line
        variant_name:
          type: string
          title: variant_name
          description: Product variant name (e.g., "Unisex T-Shirt - Black - M")
        quantity:
          type: integer
          title: quantity
          format: int32
          description: Quantity of items in this invoice line
        shipping_service:
          type: string
          title: shipping_service
          description: Shipping service used (e.g., "USPS Priority Mail", "FedEx Ground")
        tracking_number:
          type: string
          title: tracking_number
          description: Tracking number for shipment
        product_image_url:
          type: string
          title: product_image_url
          description: Product image URL
        line_total:
          title: line_total
          description: Total amount for this invoice line
          $ref: '#/components/schemas/common.type.v1.Money'
      title: VendorInvoiceInfo
      additionalProperties: false
    api.order.v1.VendorUpdateOrderDraftLineItemsRequest:
      type: object
      properties:
        order_id:
          type: string
          title: order_id
          maxLength: 255
          minLength: 1
          description: 'Order draft ID to update (format: draft_xxxxx or UUID)'
        line_items:
          type: array
          items:
            $ref: >-
              #/components/schemas/api.order.v1.VendorOrderDraftUpdateParams.LineItem
          title: line_items
          maxItems: 1000
          minItems: 1
          description: >-
            Updated line items (can update: quantity, designs, printing options;
            max 1000 line items per request)
      title: VendorUpdateOrderDraftLineItemsRequest
      additionalProperties: false
    api.order.v1.VendorUpdateOrderDraftLineItemsResponse:
      type: object
      properties:
        status:
          type: string
          title: status
          description: 'Response status: "success" or "error"'
        message:
          type: string
          title: message
          description: Human-readable message
        data:
          title: data
          description: Updated order draft information
          $ref: >-
            #/components/schemas/api.order.v1.VendorUpdateOrderDraftLineItemsResponse.Data
      title: VendorUpdateOrderDraftLineItemsResponse
      additionalProperties: false
    api.order.v1.VendorUpdateOrderDraftLineItemsResponse.Data:
      type: object
      properties:
        order_id:
          type: string
          title: order_id
          description: Order draft ID that was updated
      title: Data
      additionalProperties: false
    common.platform.v1.MarketplacePlatform:
      type:
        - string
        - number
      title: MarketplacePlatform
      enum:
        - MARKETPLACE_PLATFORM_EBAY
        - 2
        - MARKETPLACE_PLATFORM_AMAZON
        - 3
        - MARKETPLACE_PLATFORM_SHOPIFY
        - 4
        - MARKETPLACE_PLATFORM_WOOCOMMERCE
        - 5
        - MARKETPLACE_PLATFORM_ETSY
        - 6
        - MARKETPLACE_PLATFORM_SHOPBASE
        - 7
        - MARKETPLACE_PLATFORM_GEARMENT
        - 8
        - MARKETPLACE_PLATFORM_ORDERDESK
        - 9
        - MARKETPLACE_PLATFORM_TIKTOKSHOP
        - 10
        - MARKETPLACE_PLATFORM_POSHMARK
        - 11
        - MARKETPLACE_PLATFORM_PRESTASHOP
        - 12
        - MARKETPLACE_PLATFORM_INKGO
        - 13
        - MARKETPLACE_PLATFORM_WISH
        - 14
        - MARKETPLACE_PLATFORM_BIGCOMMERCE
        - 15
        - MARKETPLACE_PLATFORM_CUSTOMILY
        - 16
    common.type.v1.File:
      type: object
      properties:
        file_name:
          type: string
          title: file_name
          maxLength: 1000
        file_path:
          type: string
          title: file_path
          maxLength: 1000
        file_url:
          type: string
          title: file_url
          maxLength: 1000
        file_id:
          type: string
          title: file_id
          maxLength: 2048
      title: File
      additionalProperties: false
    common.type.v1.LegacyPagingResponse:
      type: object
      properties:
        total:
          type:
            - integer
            - string
          title: total
          format: int64
        total_page:
          type: integer
          title: total_page
          format: int32
        offset:
          type: integer
          title: offset
          format: int32
        limit:
          type: integer
          title: limit
          format: int32
      title: LegacyPagingResponse
      additionalProperties: false
    common.type.v1.Money:
      type: object
      properties:
        currency_code:
          type: string
          title: currency_code
          description: The three-letter currency code defined in ISO 4217.
        units:
          type:
            - integer
            - string
          title: units
          format: int64
          description: |-
            The whole units of the amount.
             For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
        nanos:
          type: integer
          title: nanos
          format: int32
          description: |-
            Number of nano (10^-9) units of the amount.
             The value must be between -999,999,999 and +999,999,999 inclusive.
             If `units` is positive, `nanos` must be positive or zero.
             If `units` is zero, `nanos` can be positive, zero, or negative.
             If `units` is negative, `nanos` must be negative or zero.
             For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
      title: Money
      additionalProperties: false
      description: Represents an amount of money with its currency type.
    google.protobuf.Any:
      type: object
      properties:
        type:
          type: string
        value:
          type: string
          format: binary
      additionalProperties: true
      description: >-
        Contains an arbitrary serialized message along with a @type that
        describes the type of the serialized message.
    google.protobuf.BoolValue:
      type: boolean
      description: |-
        Wrapper message for `bool`.

         The JSON representation for `BoolValue` is JSON `true` and `false`.

         Not recommended for use in new APIs, but still useful for legacy APIs and
         has no plan to be removed.
    api.payment.v1.StaffCheckoutRequest.Detail:
      type: object
      properties:
        order_id:
          type: string
          title: order_id
        draft_id:
          type: string
          title: draft_id
        order_date:
          title: order_date
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        created_at:
          title: created_at
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        updated_at:
          title: updated_at
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        status:
          title: status
          $ref: >-
            #/components/schemas/api.payment.v1.StaffCheckoutRequest.DetailStatus
        txn_id:
          type: string
          title: txn_id
      title: Detail
      additionalProperties: false
    api.payment.v1.StaffCheckoutRequest.DetailStatus:
      type:
        - string
        - number
      title: DetailStatus
      enum:
        - DETAIL_STATUS_PENDING
        - 2
        - DETAIL_STATUS_SUCCESS
        - 3
        - DETAIL_STATUS_FAILED
        - 4
        - DETAIL_STATUS_PROCESSING
        - 5
    api.payment.v1.StaffCheckoutRequest.Filter:
      type: object
      properties:
        ids:
          type: array
          items:
            exclusiveMinimum: 0
            type:
              - integer
              - string
            format: int64
          title: ids
        team_ids:
          type: array
          items:
            type: string
            minLength: 1
          title: team_ids
        payment_method_codes:
          type: array
          items:
            type: string
            minLength: 1
          title: payment_method_codes
        statuses:
          type: array
          items:
            $ref: '#/components/schemas/api.payment.v1.StaffCheckoutRequest.Status'
          title: statuses
        types:
          type: array
          items:
            $ref: '#/components/schemas/api.payment.v1.StaffCheckoutRequest.Type'
          title: types
        exact_order_ids:
          type: array
          items:
            type: string
            minLength: 1
          title: exact_order_ids
        all_order_ids:
          type: array
          items:
            type: string
            minLength: 1
          title: all_order_ids
        any_order_ids:
          type: array
          items:
            type: string
            minLength: 1
          title: any_order_ids
        exact_txn_ids:
          type: array
          items:
            type: string
            minLength: 1
          title: exact_txn_ids
        all_txn_ids:
          type: array
          items:
            type: string
            minLength: 1
          title: all_txn_ids
        any_txn_ids:
          type: array
          items:
            type: string
            minLength: 1
          title: any_txn_ids
        created_from:
          title: created_from
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        created_to:
          title: created_to
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        updated_from:
          title: updated_from
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        updated_to:
          title: updated_to
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        expired_from:
          title: expired_from
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        expired_to:
          title: expired_to
          $ref: '#/components/schemas/google.protobuf.Timestamp'
      title: Filter
      additionalProperties: false
    api.payment.v1.StaffCheckoutRequest.Message:
      type: object
      properties:
        id:
          type:
            - integer
            - string
          title: id
          format: int64
        team_id:
          type: string
          title: team_id
        payment_method_code:
          type: string
          title: payment_method_code
        payment_method_name:
          type: string
          title: payment_method_name
        amount:
          title: amount
          $ref: '#/components/schemas/common.type.v1.Money'
        status:
          title: status
          $ref: '#/components/schemas/api.payment.v1.StaffCheckoutRequest.Status'
        type:
          title: type
          $ref: '#/components/schemas/api.payment.v1.StaffCheckoutRequest.Type'
        order_ids:
          type: array
          items:
            type: string
          title: order_ids
        draft_ids:
          type: array
          items:
            type: string
          title: draft_ids
        note:
          type: string
          title: note
        created_at:
          title: created_at
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        updated_at:
          title: updated_at
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        expired_at:
          title: expired_at
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        txn_ids:
          type: array
          items:
            type: string
          title: txn_ids
        payment_method_icon_url:
          type: string
          title: payment_method_icon_url
        team_name:
          type: string
          title: team_name
      title: Message
      additionalProperties: false
    api.payment.v1.StaffCheckoutRequest.SortCriterion:
      type: object
      properties:
        sort_by:
          title: sort_by
          $ref: >-
            #/components/schemas/api.payment.v1.StaffCheckoutRequest.SortCriterion.SortBy
        sort_direction:
          title: sort_direction
          $ref: >-
            #/components/schemas/api.payment.v1.StaffCheckoutRequest.SortCriterion.SortDirection
      title: SortCriterion
      additionalProperties: false
    api.payment.v1.StaffCheckoutRequest.SortCriterion.SortBy:
      type:
        - string
        - number
      title: SortBy
      enum:
        - SORT_BY_CREATED_AT
        - 1
        - SORT_BY_UPDATED_AT
        - 2
        - SORT_BY_EXPIRED_AT
        - 3
    api.payment.v1.StaffCheckoutRequest.SortCriterion.SortDirection:
      type:
        - string
        - number
      title: SortDirection
      enum:
        - SORT_DIRECTION_ASC
        - 1
        - SORT_DIRECTION_DESC
        - 2
    api.payment.v1.StaffCheckoutRequest.Status:
      type:
        - string
        - number
      title: Status
      enum:
        - STATUS_PENDING
        - 2
        - STATUS_SUCCESS
        - 3
        - STATUS_SUCCESS_PARTIALLY
        - 4
        - STATUS_FAILED
        - 5
        - STATUS_EXPIRED
        - 6
        - STATUS_PROCESSING
        - 7
    api.payment.v1.StaffCheckoutRequest.Type:
      type:
        - string
        - number
      title: Type
      enum:
        - TYPE_MANUAL
        - 2
        - TYPE_AUTO
        - 3
    api.payment.v1.StaffCountCheckoutRequestForExportRequest:
      type: object
      properties:
        filter:
          title: filter
          $ref: '#/components/schemas/api.payment.v1.StaffCheckoutRequest.Filter'
      title: StaffCountCheckoutRequestForExportRequest
      additionalProperties: false
    api.payment.v1.StaffCountCheckoutRequestForExportResponse:
      type: object
      properties:
        total:
          type:
            - integer
            - string
          title: total
          format: int64
        total_filtered:
          type:
            - integer
            - string
          title: total_filtered
          format: int64
      title: StaffCountCheckoutRequestForExportResponse
      additionalProperties: false
    api.payment.v1.StaffCountCheckoutRequestStatusRequest:
      type: object
      properties:
        filter:
          title: filter
          $ref: '#/components/schemas/api.payment.v1.StaffCheckoutRequest.Filter'
      title: StaffCountCheckoutRequestStatusRequest
      additionalProperties: false
    api.payment.v1.StaffCountCheckoutRequestStatusResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: >-
              #/components/schemas/api.payment.v1.StaffCountCheckoutRequestStatusResponse.Counter
          title: data
      title: StaffCountCheckoutRequestStatusResponse
      additionalProperties: false
    api.payment.v1.StaffCountCheckoutRequestStatusResponse.Counter:
      type: object
      properties:
        status:
          title: status
          $ref: '#/components/schemas/api.payment.v1.StaffCheckoutRequest.Status'
        count:
          type:
            - integer
            - string
          title: count
          format: int64
      title: Counter
      additionalProperties: false
    api.payment.v1.StaffExportCheckoutRequestRequest:
      type: object
      properties:
        filter:
          title: filter
          $ref: '#/components/schemas/api.payment.v1.StaffCheckoutRequest.Filter'
        sort_criterion:
          title: sort_criterion
          $ref: >-
            #/components/schemas/api.payment.v1.StaffCheckoutRequest.SortCriterion
      title: StaffExportCheckoutRequestRequest
      additionalProperties: false
    api.payment.v1.StaffGetCheckoutRequestRequest:
      type: object
      properties:
        id:
          type:
            - integer
            - string
          title: id
          format: int64
        pagination:
          title: pagination
          $ref: '#/components/schemas/common.type.v1.Paging'
      title: StaffGetCheckoutRequestRequest
      additionalProperties: false
    api.payment.v1.StaffGetCheckoutRequestResponse:
      type: object
      properties:
        data:
          title: data
          $ref: >-
            #/components/schemas/api.payment.v1.StaffGetCheckoutRequestResponse.Data
      title: StaffGetCheckoutRequestResponse
      additionalProperties: false
    api.payment.v1.StaffGetCheckoutRequestResponse.Data:
      type: object
      properties:
        message:
          title: message
          $ref: '#/components/schemas/api.payment.v1.StaffCheckoutRequest.Message'
        pagination:
          title: pagination
          $ref: '#/components/schemas/common.type.v1.PagingResponse'
        details:
          type: array
          items:
            $ref: '#/components/schemas/api.payment.v1.StaffCheckoutRequest.Detail'
          title: details
      title: Data
      additionalProperties: false
    api.payment.v1.StaffListCheckoutRequestFilterCriteriaRequest:
      type: object
      title: StaffListCheckoutRequestFilterCriteriaRequest
      additionalProperties: false
    api.payment.v1.StaffListCheckoutRequestFilterCriteriaResponse:
      type: object
      properties:
        payment_methods:
          type: array
          items:
            $ref: >-
              #/components/schemas/api.payment.v1.StaffListCheckoutRequestFilterCriteriaResponse.Criteria
          title: payment_methods
      title: StaffListCheckoutRequestFilterCriteriaResponse
      additionalProperties: false
    api.payment.v1.StaffListCheckoutRequestFilterCriteriaResponse.Criteria:
      type: object
      properties:
        code:
          type: string
          title: code
        name:
          type: string
          title: name
      title: Criteria
      additionalProperties: false
    api.payment.v1.StaffListCheckoutRequestRequest:
      type: object
      properties:
        pagination:
          title: pagination
          $ref: '#/components/schemas/common.type.v1.Paging'
        filter:
          title: filter
          $ref: '#/components/schemas/api.payment.v1.StaffCheckoutRequest.Filter'
        sort_criterion:
          title: sort_criterion
          $ref: >-
            #/components/schemas/api.payment.v1.StaffCheckoutRequest.SortCriterion
      title: StaffListCheckoutRequestRequest
      additionalProperties: false
    api.payment.v1.StaffListCheckoutRequestResponse:
      type: object
      properties:
        pagination:
          title: pagination
          $ref: '#/components/schemas/common.type.v1.PagingResponse'
        data:
          type: array
          items:
            $ref: '#/components/schemas/api.payment.v1.StaffCheckoutRequest.Message'
          title: data
      title: StaffListCheckoutRequestResponse
      additionalProperties: false
    common.type.v1.FileAttachmentOrMessageResponse:
      type: object
      oneOf:
        - properties:
            file:
              title: file
              $ref: >-
                #/components/schemas/common.type.v1.FileAttachmentOrMessageResponse.File
          title: file
          required:
            - file
        - properties:
            message:
              title: message
              $ref: >-
                #/components/schemas/common.type.v1.FileAttachmentOrMessageResponse.Message
          title: message
          required:
            - message
      title: FileAttachmentOrMessageResponse
      additionalProperties: false
    common.type.v1.FileAttachmentOrMessageResponse.File:
      type: object
      properties:
        content_type:
          type: string
          title: content_type
          maxLength: 255
        file_name:
          type: string
          title: file_name
          maxLength: 255
        data:
          type: string
          title: data
          format: byte
      title: File
      additionalProperties: false
    common.type.v1.FileAttachmentOrMessageResponse.Message:
      type: object
      properties:
        message:
          type: string
          title: message
          maxLength: 255
      title: Message
      additionalProperties: false
    connect-protocol-version:
      type: number
      title: Connect-Protocol-Version
      enum:
        - 1
      description: Define the version of the Connect protocol
      const: 1
    connect-timeout-header:
      type: number
      title: Connect-Timeout-Ms
      description: Define the timeout, in ms
    connect.error:
      type: object
      properties:
        code:
          type: string
          examples:
            - not_found
          enum:
            - canceled
            - unknown
            - invalid_argument
            - deadline_exceeded
            - not_found
            - already_exists
            - permission_denied
            - resource_exhausted
            - failed_precondition
            - aborted
            - out_of_range
            - unimplemented
            - internal
            - unavailable
            - data_loss
            - unauthenticated
          description: >-
            The status code, which should be an enum value of
            [google.rpc.Code][google.rpc.Code].
        message:
          type: string
          description: >-
            A developer-facing error message, which should be in English. Any
            user-facing error message should be localized and sent in the
            [google.rpc.Status.details][google.rpc.Status.details] field, or
            localized by the client.
        details:
          type: array
          items:
            $ref: '#/components/schemas/connect.error_details.Any'
          description: >-
            A list of messages that carry the error details. There is no limit
            on the number of messages.
      title: Connect Error
      additionalProperties: true
      description: >-
        Error type returned by Connect:
        https://connectrpc.com/docs/go/errors/#http-representation
    connect.error_details.Any:
      type: object
      properties:
        type:
          type: string
          description: >-
            A URL that acts as a globally unique identifier for the type of the
            serialized message. For example:
            `type.googleapis.com/google.rpc.ErrorInfo`. This is used to
            determine the schema of the data in the `value` field and is the
            discriminator for the `debug` field.
        value:
          type: string
          format: binary
          description: >-
            The Protobuf message, serialized as bytes and base64-encoded. The
            specific message type is identified by the `type` field.
        debug:
          oneOf:
            - type: object
              title: Any
              additionalProperties: true
              description: Detailed error information.
          discriminator:
            propertyName: type
          title: Debug
          description: >-
            Deserialized error detail payload. The 'type' field indicates the
            schema. This field is for easier debugging and should not be relied
            upon for application logic.
      additionalProperties: true
      description: >-
        Contains an arbitrary serialized message along with a @type that
        describes the type of the serialized message, with an additional debug
        field for ConnectRPC error details.
    api.catalog.v1.LegacyVendorCatalog:
      type: object
      properties:
        product_name:
          type: string
          title: product_name
          description: Product name
        product_id:
          type: string
          title: product_id
          description: Product ID (legacy integer format as string)
        product_img:
          type: string
          title: product_img
          description: Product image URL
        print_areas:
          type: array
          items:
            type: string
          title: print_areas
          description: Available print areas (e.g., ["front", "back"])
        variants:
          type: array
          items:
            $ref: '#/components/schemas/api.catalog.v1.LegacyVendorCatalogVariant'
          title: variants
          description: Available variants
      title: LegacyVendorCatalog
      additionalProperties: false
    api.catalog.v1.LegacyVendorCatalogVariant:
      type: object
      properties:
        variant_id:
          type: string
          title: variant_id
          description: Variant ID (legacy integer format as string)
        name:
          type: string
          title: name
          description: Variant name
        size:
          type: string
          title: size
          description: Size (e.g., "M", "L")
        color:
          type: string
          title: color
          description: Color name
        hex_color_code:
          type: string
          title: hex_color_code
          description: Color hex code
        price:
          type: string
          title: price
          description: Price (as string for legacy compatibility)
        extra_price:
          type: string
          title: extra_price
          description: Extra price (as string for legacy compatibility)
        net_price:
          type: number
          title: net_price
          format: float
          description: Net price (calculated price)
        availability_status:
          type: string
          title: availability_status
          description: Availability status (e.g., "in_stock", "out_of_stock")
        status:
          type: string
          title: status
          description: General status
      title: LegacyVendorCatalogVariant
      additionalProperties: false
    api.catalog.v1.LegacyVendorListCatalogStockStatusRequest:
      type: object
      properties:
        type:
          type: string
          title: type
          minLength: 1
          enum:
            - all
            - in_stock
            - discontinued
            - temporarily_unavailable
        page:
          type: integer
          title: page
          format: int32
        limit:
          type: integer
          title: limit
          format: int32
        api_key:
          type: string
          title: api_key
          maxLength: 255
          minLength: 1
        api_signature:
          type: string
          title: api_signature
          maxLength: 255
          minLength: 1
      title: LegacyVendorListCatalogStockStatusRequest
      additionalProperties: false
    api.catalog.v1.LegacyVendorListCatalogStockStatusResponse:
      type: object
      properties:
        status:
          type: string
          title: status
        message:
          type: string
          title: message
        paging:
          title: paging
          $ref: '#/components/schemas/common.type.v1.LegacyPagingResponse'
        result:
          type: array
          items:
            $ref: '#/components/schemas/api.catalog.v1.LegacyVendorCatalogVariant'
          title: result
      title: LegacyVendorListCatalogStockStatusResponse
      additionalProperties: false
    api.catalog.v1.LegacyVendorListCatalogVariantRequest:
      type: object
      properties:
        page:
          type: integer
          title: page
          format: int32
        limit:
          type: integer
          title: limit
          format: int32
        api_key:
          type: string
          title: api_key
          maxLength: 255
          minLength: 1
        api_signature:
          type: string
          title: api_signature
          maxLength: 255
          minLength: 1
      title: LegacyVendorListCatalogVariantRequest
      additionalProperties: false
    api.catalog.v1.LegacyVendorListCatalogVariantResponse:
      type: object
      properties:
        status:
          type: string
          title: status
        message:
          type: string
          title: message
        paging:
          title: paging
          $ref: '#/components/schemas/common.type.v1.LegacyPagingResponse'
        result:
          type: array
          items:
            $ref: '#/components/schemas/api.catalog.v1.LegacyVendorCatalog'
          title: result
      title: LegacyVendorListCatalogVariantResponse
      additionalProperties: false
    api.catalog.v1.VendorCatalog:
      type: object
      properties:
        product_id:
          type: string
          title: product_id
          description: Product ID
        product_name:
          type: string
          title: product_name
          description: Product name (e.g., "Unisex T-Shirt", "Hoodie")
        product_avatar_url:
          type: string
          title: product_avatar_url
          description: Product main image URL
        print_locations:
          type: array
          items:
            $ref: '#/components/schemas/api.catalog.v1.VendorCatalogPrintLocation'
          title: print_locations
          description: Available print locations for this product
        variants:
          type: array
          items:
            $ref: '#/components/schemas/api.catalog.v1.VendorCatalogVariant'
          title: variants
          description: Available variants (size/color combinations)
        legacy_product_id:
          type: integer
          title: legacy_product_id
          format: int32
          description: Legacy product ID (for backward compatibility)
      title: VendorCatalog
      additionalProperties: false
    api.catalog.v1.VendorCatalogFilter:
      type: object
      properties:
        product_ids:
          type: array
          items:
            type: string
            examples:
              - prod_abc123
            maxLength: 100
            minLength: 1
          title: product_ids
          description: Filter by specific product IDs
        search_text:
          type: string
          examples:
            - Unisex T-Shirt
          title: search_text
          maxLength: 100
          description: Search products by name or description
      title: VendorCatalogFilter
      additionalProperties: false
    api.catalog.v1.VendorCatalogPrintLocation:
      type: object
      properties:
        code:
          type: string
          title: code
          description: Print location code (e.g., "front", "back", "pocket")
        name:
          type: string
          title: name
          description: Print location display name
        location_id:
          type: integer
          title: location_id
          format: int32
          description: Internal location ID
      title: VendorCatalogPrintLocation
      additionalProperties: false
    api.catalog.v1.VendorCatalogVariant:
      type: object
      properties:
        variant_id:
          type: string
          title: variant_id
          description: Variant ID (unique identifier)
        name:
          type: string
          title: name
          description: Variant name (e.g., "Black / Medium")
        size:
          type: string
          title: size
          description: Size (e.g., "S", "M", "L", "XL")
        color:
          type: string
          title: color
          description: Color name (e.g., "Black", "White", "Navy")
        hex_color_code:
          type: string
          title: hex_color_code
          description: Color hex code (e.g., "#000000", "#FFFFFF")
        price:
          title: price
          description: Base price for this variant
          $ref: '#/components/schemas/common.type.v1.Money'
        recommended_price:
          title: recommended_price
          description: Recommended retail price
          $ref: '#/components/schemas/common.type.v1.Money'
        extra_price:
          title: extra_price
          description: Extra price for special features (if applicable)
          $ref: '#/components/schemas/common.type.v1.Money'
        stock_label:
          title: stock_label
          description: Stock availability status
          $ref: '#/components/schemas/api.catalog.v1.VendorCatalogVariantStockLabel'
        product:
          title: product
          description: Parent product information
          $ref: '#/components/schemas/api.catalog.v1.VendorCatalog'
        legacy_variant_id:
          type: integer
          title: legacy_variant_id
          format: int32
          description: Legacy variant ID (for backward compatibility)
      title: VendorCatalogVariant
      additionalProperties: false
    api.catalog.v1.VendorCatalogVariantFilter:
      type: object
      properties:
        product_ids:
          type: array
          items:
            type: string
            examples:
              - prod_abc123
            maxLength: 100
            minLength: 1
          title: product_ids
          description: Filter by product IDs
        variant_ids:
          type: array
          items:
            type: string
            examples:
              - var_123
            maxLength: 100
            minLength: 1
          title: variant_ids
          description: Filter by specific variant IDs
        skus:
          type: array
          items:
            type: string
            examples:
              - SKU-TS-BLK-M
            maxLength: 100
            minLength: 1
          title: skus
          description: Filter by SKUs
        sizes:
          type: array
          items:
            type: string
            examples:
              - M
            maxLength: 100
            minLength: 1
          title: sizes
          description: Filter by sizes (display names)
        size_codes:
          type: array
          items:
            type: string
            examples:
              - SIZE_M
            maxLength: 100
            minLength: 1
          title: size_codes
          description: Filter by size codes (internal codes)
        colors:
          type: array
          items:
            type: string
            examples:
              - Black
            maxLength: 100
            minLength: 1
          title: colors
          description: Filter by colors (display names)
        color_codes:
          type: array
          items:
            type: string
            examples:
              - COLOR_BLACK
            maxLength: 100
            minLength: 1
          title: color_codes
          description: Filter by color codes (internal codes or hex)
        stock_labels:
          type: array
          items:
            $ref: '#/components/schemas/api.catalog.v1.VendorCatalogVariantStockLabel'
          title: stock_labels
          description: Filter by stock availability
        search_text:
          type: string
          examples:
            - Black Medium
          title: search_text
          description: Search variants by text
        legacy_variant_ids:
          type: array
          items:
            exclusiveMinimum: 0
            type: integer
            examples:
              - 12345
            format: int32
          title: legacy_variant_ids
          description: Filter by legacy variant IDs (for backward compatibility)
      title: VendorCatalogVariantFilter
      additionalProperties: false
    api.catalog.v1.VendorCatalogVariantStockLabel:
      type:
        - string
        - number
      title: VendorCatalogVariantStockLabel
      enum:
        - VENDOR_CATALOG_VARIANT_STOCK_LABEL_IN_STOCK
        - 1
        - VENDOR_CATALOG_VARIANT_STOCK_LABEL_OUT_OF_STOCK
        - 2
        - VENDOR_CATALOG_VARIANT_STOCK_LABEL_OUT_OF_STOCK_5D
        - 3
        - VENDOR_CATALOG_VARIANT_STOCK_LABEL_DISCONTINUED
        - 4
    api.catalog.v1.VendorListCatalogRequest:
      type: object
      properties:
        filter:
          title: filter
          description: Filter criteria for products
          $ref: '#/components/schemas/api.catalog.v1.VendorCatalogFilter'
        paging:
          title: paging
          description: 'Pagination parameters (default: page=1, limit=20; max limit: 100)'
          $ref: '#/components/schemas/common.type.v1.Paging'
      title: VendorListCatalogRequest
      additionalProperties: false
    api.catalog.v1.VendorListCatalogResponse:
      type: object
      properties:
        status:
          type: string
          title: status
          description: 'Response status: "success" or "error"'
        message:
          type: string
          title: message
          description: Human-readable message describing the result
        paging:
          title: paging
          description: |-
            Pagination metadata
             Contains: total count, current page, total pages
          $ref: '#/components/schemas/common.type.v1.PagingResponse'
        data:
          type: array
          items:
            $ref: '#/components/schemas/api.catalog.v1.VendorCatalog'
          title: data
          description: |-
            List of products matching the filter
             Each product includes: name, description, images, available variants
      title: VendorListCatalogResponse
      additionalProperties: false
    api.catalog.v1.VendorListCatalogVariantRequest:
      type: object
      properties:
        filter:
          title: filter
          description: Filter criteria for variants
          $ref: '#/components/schemas/api.catalog.v1.VendorCatalogVariantFilter'
        paging:
          title: paging
          description: 'Pagination parameters (max limit: 200)'
          $ref: '#/components/schemas/common.type.v1.Paging'
      title: VendorListCatalogVariantRequest
      additionalProperties: false
    api.catalog.v1.VendorListCatalogVariantResponse:
      type: object
      properties:
        status:
          type: string
          title: status
          description: 'Response status: "success" or "error"'
        message:
          type: string
          title: message
          description: Human-readable message
        paging:
          title: paging
          description: Pagination metadata
          $ref: '#/components/schemas/common.type.v1.PagingResponse'
        data:
          type: array
          items:
            $ref: '#/components/schemas/api.catalog.v1.VendorCatalogVariant'
          title: data
          description: |-
            List of product variants
             Each variant includes: size, color, SKU, price, stock status, print specifications
      title: VendorListCatalogVariantResponse
      additionalProperties: false
    api.iam.v1.StaffListTeamForFilteringRequest:
      type: object
      properties:
        search_tokens:
          type: array
          items:
            type: string
            minLength: 1
          title: search_tokens
        pagination:
          title: pagination
          $ref: '#/components/schemas/common.type.v1.Paging'
      title: StaffListTeamForFilteringRequest
      additionalProperties: false
    api.iam.v1.StaffListTeamForFilteringResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: >-
              #/components/schemas/api.iam.v1.StaffListTeamForFilteringResponse.Team
          title: data
        pagination:
          title: pagination
          $ref: '#/components/schemas/common.type.v1.PagingResponse'
      title: StaffListTeamForFilteringResponse
      additionalProperties: false
    api.iam.v1.StaffListTeamForFilteringResponse.Team:
      type: object
      properties:
        team_id:
          type: string
          title: team_id
        name:
          type: string
          title: name
        status:
          title: status
          $ref: '#/components/schemas/api.iam.v1.TeamStatus'
        created_at:
          type: string
          title: created_at
        updated_at:
          type: string
          title: updated_at
      title: Team
      additionalProperties: false
    api.iam.v1.TeamStatus:
      type:
        - string
        - number
      title: TeamStatus
      enum:
        - TEAM_STATUS_ACTIVE
        - 1
        - TEAM_STATUS_INACTIVE
        - 2
  responses:
    BadRequest:
      description: Bad Request - The request was malformed or contained invalid parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: INVALID_ARGUMENT
            message: The request parameters are invalid
            details:
              - field: product_id
                issue: Product ID must be a valid format
    Forbidden:
      description: >-
        Forbidden - The authenticated user does not have permission to access
        this resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: PERMISSION_DENIED
            message: You do not have permission to perform this action
    InternalError:
      description: Internal Server Error - An unexpected error occurred on the server
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: INTERNAL
            message: An unexpected error occurred. Please try again later
    NotFound:
      description: Not Found - The requested resource does not exist
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: NOT_FOUND
            message: The requested resource was not found
    Unauthorized:
      description: Unauthorized - Authentication credentials are missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: UNAUTHENTICATED
            message: Authentication credentials are missing or invalid
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      in: header
      name: Authorization
    CookieAuth:
      type: apiKey
      scheme: bearer
      in: cookie
      name: accessToken
