openapi: 3.0.1
info:
  title: Dropship
  version: 1.0.0
  description: >-
    fabric Dropship is a simple, intuitive, dropship platform built for business
    users. It offers easy integration with Shopify, BigCommerce, or existing
    stacks; supports retailer onboarding; and offers dedicated vendor onboarding
    support.  With fabric Dropship, you can connect with new vendors with no
    inventory risk; offer extended aisles of products; expand assortments with
    existing vendors; test new categories, SKUs, and price points; explore brand
    partnerships; and increase marketing and search opportunities. Using
    dropshipping effectivity can fuel data-driven merchandising decisions,
    maximizing margin and customer experience.  Dropship assortment strategies
    enable you to: <br /> 1) Cross-sell and upsell to raise your average order
    value <br /> 2) Offer substitute products to supplement out-of-stock
    inventory <br /> 3) Capitalize on fast-moving market trends with readily
    sourceable products <br /> 4) Test and validate new products, brands, and
    categories before manufacturing or placing POs <br /> 5) Add depth to your
    existing product assortment with variations and endless aisles <br /> 6)
    Offer seasonal products without the risking of over-buying or unhealthy
    inventory.
  contact:
    email: support@fabric.inc
  license:
    name: fabric API License
    url: https://fabric.inc/api-license
externalDocs:
  description: Find out more about Dropship
  url: https://developer.fabric.inc/docs/marketplace-suppliers-overview
servers:
  - url: https://marketplace-api.fabric.inc
security:
  - Bearer: []
paths:
  /v1/retailers/{retailer_pk}/inventory/:
    get:
      tags:
        - Inventory
      summary: Get a list of variant inventory positions
      description: >-
        Get variants and their inventory details, including total inventory and
        inventory based on location.To get items with inventory updated since a
        Unix epoch Time, pass the `updated_at_{operator}` as a query paramater,
        where `{operator}` is <br /> **lt** (less than) <br /> **lte** (less
        than or equal) <br /> **gt** (greater than) <br /> **gte** (greater than
        or equal).
      operationId: v1_retailers_inventory_list
      parameters:
        - name: retailer_pk
          in: path
          required: true
          schema:
            type: number
          description: Retailer ID
          example: 100024
        - name: identifier
          in: query
          description: Unique identifier assigned to the variant by the brand
          schema:
            type: string
          example: ABC123
        - name: brand_id
          in: query
          description: Brand ID. Multiple values may be separated by commas
          schema:
            type: array
            items:
              type: integer
          example:
            - 2020
            - 1455
        - name: connection_id
          in: query
          description: Connection ID. Multiple values may be separated by comma.
          schema:
            type: number
          example: 1000
        - name: parent_identifier
          in: query
          description: >-
            Parent product identifier. Multiple values may be separated by
            commas
          schema:
            type: array
            items:
              type: string
          example:
            - 123A1
            - 528A5
        - name: retailer_sku
          in: query
          description: Retailer SKU
          schema:
            type: string
          example: SKU123
        - name: in_stock
          in: query
          description: '1: Variant is in stock <br /> 0: Variant is out of stock'
          schema:
            type: integer
          example: 1
        - name: ignore_deleted
          in: query
          description: '1: Ignore deleted variant <br /> 0: Include deleted variant'
          schema:
            type: integer
          example: 1
        - name: is_sellable
          in: query
          description: '1: Variant is sellable <br /> 0: Variant is not sellable'
          schema:
            type: integer
          example: 1
        - name: is_discontinued
          in: query
          description: '1: Variant is discontinued <br /> 0: Variant is active'
          schema:
            type: integer
          example: 0
        - name: no_ead
          in: query
          description: >-
            1: Variant has no estimated availability date <br />  0: Variant has
            estimated delivery date
          schema:
            type: integer
          example: 1
        - name: no_stock_no_ead
          in: query
          description: >-
            1: Variant does not have an estimated availability date. <br /> 0:
            Variant has an estimated availability
          schema:
            type: number
          example: 1
        - name: inventory_updated_at_lt
          in: query
          description: Inventory update was less than specified Time (Unix epoch format)
          schema:
            type: number
          example: 1165550936
        - name: inventory_updated_at_lte
          in: query
          description: >-
            Inventory update was less than or equal to specified Time (Unix
            epoch format) Time
          schema:
            type: number
          example: 1265550936
        - name: inventory_updated_at_gt
          in: query
          description: Inventory update was greater than specified Time (Unix epoch format)
          schema:
            type: number
          example: 1365550936
        - name: inventory_updated_at_gte
          in: query
          description: >-
            Inventory update was greater than or equal to a specified Time (Unix
            epoch format)
          schema:
            type: number
          example: 1165550936
        - name: order_by
          in: query
          description: Sorting criteria
          schema:
            type: string
          example: Ascending
        - name: page
          in: query
          description: Page number within the paginated result set
          schema:
            type: integer
          example: 2
        - name: limit
          in: query
          description: Number of records per page
          schema:
            type: integer
          example: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                required:
                  - count
                  - results
                type: object
                properties:
                  count:
                    description: Total number of records
                    example: 805
                    type: integer
                  next:
                    description: Next page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=5
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    description: Previous page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=3
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/Inventory'
            text/csv:
              schema:
                required:
                  - count
                  - results
                type: object
                properties:
                  count:
                    description: Total number of records
                    example: 780
                    type: integer
                  next:
                    description: Next page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=5
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    description: Previous page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=3
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/Inventory'
  /v1/retailers/{retailer_pk}/inventory/{id}/:
    get:
      tags:
        - Inventory
      summary: Get inventory of a single variant
      description: Gets the inventory position for a single variant.
      operationId: v1_retailers_inventory_read
      parameters:
        - name: retailer_pk
          in: path
          required: true
          schema:
            type: number
          description: Retailer ID
          example: 500
        - name: id
          in: path
          required: true
          schema:
            type: number
          description: Inventory ID
          example: 100024
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory'
            text/csv:
              schema:
                $ref: '#/components/schemas/Inventory'
  /v1/retailers/{retailer_pk}/connections/:
    get:
      tags:
        - Connections
      summary: Get vendor connections
      description: Gets a list of vendor connections.
      operationId: v1_retailers_connections_list
      parameters:
        - name: retailer_pk
          in: path
          required: true
          schema:
            type: number
          description: Retailer ID
          example: 5001
        - name: brand_id
          in: query
          description: Brand (vendor) IDs. Multiple comma separated values may be added
          schema:
            type: array
            items:
              type: number
          example:
            - 500
            - 550
        - name: retailer_id
          in: query
          description: >-
            Retailer IDs. Multiple values may be separated by commas. Retailer
            ID
          schema:
            type: array
            items:
              type: number
          example:
            - 2050
            - 1001
        - name: vertical_id
          in: query
          description: >-
            ID for verticals such as shoes, clothing, furniture. Multiple values
            may be added, separated by commas
          schema:
            type: array
            items:
              type: number
          example:
            - 2054
            - 5646
        - name: integration_type
          in: query
          description: >-
            Integration types such as EDI, API, WooCommerce, etc. Multiple
            values may be separated by commas
          schema:
            type: array
            items:
              type: string
          example:
            - EDI
            - API
        - name: brand_has_adjustments
          in: query
          description: >-
            1: Brand (vendor) has monetary adjustments <br /> 0: Brand doesn't
            have adjustments
          schema:
            type: number
          example: 1
        - name: brand_has_allowances
          in: query
          description: >-
            1: brand has allowances such as discounts <br /> 0: brand does not
            have allowances
          schema:
            type: number
          example: 1
        - name: brand_has_charges
          in: query
          description: >-
            1: brand has charges such as shipping and handling <br /> 0: brand
            does not have charges
          schema:
            type: number
          example: 1
        - name: brand_inventory_policy
          in: query
          description: >-
            Managed: brand wants to manage inventory; Unmanaged: brand does not
            want to manage inventory
          schema:
            type: string
        - name: retailer_identifier
          in: query
          description: Retailer IDs. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 1023
            - 2044
        - name: options_enabled
          in: query
          description: >-
            Connection options enabled. Multiple values may be separated by
            commas.
          schema:
            type: array
            items:
              type: string
          example:
            - Auto-close invoice
            - Manual invoice
        - name: options_disabled
          in: query
          description: Connection options disabled
          schema:
            type: string
        - name: status
          in: query
          description: Connection status. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: string
          example:
            - Active
            - Pending
        - name: onboarding_target_date_lt
          in: query
          description: >-
            Onboarding target date is less than specified Time (Unix epoch
            format)
          schema:
            type: number
          example: 1165550936
        - name: onboarding_target_date_lte
          in: query
          description: >-
            Onboarding target date is less than or equal to specified Time (Unix
            epoch format)
          schema:
            type: number
          example: 1265550936
        - name: onboarding_target_date_gt
          in: query
          description: >-
            Onboarding target date is greater than specified Time (Unix epoch
            format)
          schema:
            type: number
          example: 1365550936
        - name: onboarding_target_date_gte
          in: query
          description: >-
            Onboarding target date is greater than or equal to specified Time
            (Unix epoch format)
          schema:
            type: number
          example: 1465550936
        - name: order_by
          in: query
          description: Sorting criteria
          schema:
            type: string
          example: Ascending
        - name: page
          in: query
          description: Page number within the paginated result set
          schema:
            type: integer
          example: 2
        - name: limit
          in: query
          description: Number of records per page
          schema:
            type: integer
          example: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                required:
                  - count
                  - results
                type: object
                properties:
                  count:
                    description: Total number of records
                    example: 1023
                    type: integer
                  next:
                    description: Next page (applicable in a paginated response)
                    example: https://api.example.org/demo/accounts/?page=5
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    description: Previous page (applicable in a paginated response)
                    example: https://api.example.org/demo/accounts/?page=3
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/Connection'
  /v1/retailers/{retailer_pk}/connections/{id}/:
    get:
      tags:
        - Connections
      summary: Get connections of a single vendor
      description: Gets the connection details for a specified vendor
      operationId: v1_retailers_connections_read
      parameters:
        - name: id
          in: path
          description: Connection ID
          required: true
          schema:
            type: integer
          example: 11001
        - name: retailer_pk
          in: path
          required: true
          description: Retailer ID
          schema:
            type: number
          example: 1000
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetailerConnectionDetail'
  /v1/retailers/{retailer_pk}/orders/:
    post:
      tags:
        - Orders
      summary: Create a new order (for a single vendor)
      description: >-
        Accepts orders from retailers for a single vendor. When an order is
        created by a retailer, the order is immediately distributed to the
        vendor however the vendor is connected to fabric (example: EDI, API, or
        portal)
      operationId: v1_retailers_orders_create
      parameters:
        - name: retailer_pk
          in: path
          required: true
          schema:
            type: number
          example: 2050
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RetailerOrder'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetailerOrder'
            text/csv:
              schema:
                $ref: '#/components/schemas/RetailerOrder'
      x-codegen-request-body-name: data
    get:
      tags:
        - Orders
      summary: Get orders
      description: Gets a list of orders.
      operationId: v1_retailers_orders_list
      parameters:
        - name: retailer_pk
          in: path
          required: true
          schema:
            type: string
          description: Retailer ID
          example: '50236'
        - name: retailer_order_num
          in: query
          description: Retailer order number
          schema:
            type: string
          example: '9119111'
        - name: tags
          in: query
          description: >-
            Tags used for categorization. Multiple values may be added,
            separated by commas.
          schema:
            type: array
            items:
              type: string
          example:
            - demo
            - sample
        - name: metadata
          in: query
          description: Meta data. Multiple values may be added, separated by commas.
          schema:
            type: array
            items:
              type: string
          example:
            - Shipping service, UPS ground
        - name: metadata_value
          in: query
          description: Metadata values
          schema:
            type: string
          example: About us
        - name: generic_shipping_method
          in: query
          description: >-
            Shipping methods (names). Multiple values may be added, separated by
            comma
          schema:
            type: array
            items:
              type: string
          example:
            - Gen1
            - Gen2
        - name: purchase_order_number
          in: query
          description: Purchase order number
          schema:
            type: string
          example: CS192169
        - name: customer_order_number
          in: query
          description: Customer order number
          schema:
            type: string
          example: '12311'
        - name: retailer_order_number
          in: query
          description: Retailer order number
          schema:
            type: string
          example: '9029111'
        - name: search_order_number
          in: query
          description: >-
            Search by purchase order number, customer order number or retailer
            order number
          schema:
            type: string
          example: PO911
        - name: variant_id
          in: query
          description: Variant IDs. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 9112
            - 56887
        - name: variant_identifier
          in: query
          description: Variant SKUs. Multiple values may be added, separated by commas.
          schema:
            type: array
            items:
              type: string
          example:
            - SKU1
            - SKU2
        - name: retailer_category
          in: query
          description: Retailer categories. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: string
          example:
            - category1
            - category2
        - name: retailer_category_id
          in: query
          description: Retailer category IDs. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 1023
            - 2041
        - name: workflow
          in: query
          description: >-
            Status of the order such as *pending*, *new*, *creating_shipments*,
            *ship*, *invoice*, *creating_invoices*, *on_hold*, *closed*,
            *shipping_errors*, and *invoice_errors*. Multiple values may be
            separated by commas.
          schema:
            type: array
            items:
              type: string
          example:
            - pending
            - new
        - name: status
          in: query
          description: >-
            Order status such as *open*, *closed* *partial*, *pending and
            *cancelled*.
          schema:
            type: string
          example: open
        - name: shipment_status
          in: query
          description: >-
            Shipment status such as *open*, *closed*, *partial*, *pending, and
            *cancelled*
          schema:
            type: string
          example: open
        - name: orderline_status
          in: query
          description: Order line status
          schema:
            type: string
          example: OLS2121-1
        - name: is_gift
          in: query
          description: '1: Order is a gift <br /> 0: Order is not a gift'
          schema:
            type: number
          example: 0
        - name: is_replacement
          in: query
          description: '1: Order is a replacement <br /> 0: Order is not a replacement'
          schema:
            type: number
          example: 0
        - name: is_backordered
          in: query
          description: '1: Product is backordered <br /> 0: Product is not backordered'
          schema:
            type: number
          example: 0
        - name: shipment_is_acknowledged
          in: query
          description: '1: Shipment is acknowledged <br /> 0: Shipment is not acknowledged'
          schema:
            type: number
          example: 1
        - name: cancel_is_acknowledged
          in: query
          description: >-
            1: Cancellation is acknowledged <br /> 0: Cancellation is not
            acknowledged
          schema:
            type: number
          example: 0
        - name: invoice_is_acknowledged
          in: query
          description: '1: Invoice is acknowledged <br /> 0: Invoice is not acknowledged'
          schema:
            type: number
          example: 0
        - name: rma_is_acknowledged
          in: query
          description: '1: RMA is acknowledged <br /> 0: RMA is not acknowledged'
          schema:
            type: number
          example: 0
        - name: backorder_is_acknowledged
          in: query
          description: '1: Backorder is acknowledged <br /> 0: Backorder is not acknowledged'
          schema:
            type: number
          example: 0
        - name: has_shipments
          in: query
          description: '1: Order has shipments <br /> 0: Order does not have shipments'
          schema:
            type: number
          example: 0
        - name: has_cancels
          in: query
          description: '1: Order has cancellation <br /> 0: Order does not have cancellation'
          schema:
            type: number
          example: 0
        - name: has_invoices
          in: query
          description: '1: Order has invoices <br /> 0: Order does not have invoices'
          schema:
            type: number
          example: 0
        - name: has_rmas
          in: query
          description: '1: Order has RMA <br /> 0: Order does not have RMA'
          schema:
            type: number
          example: 0
        - name: not_fully_shipped
          in: query
          description: '1: Order is not fully shipped <br /> 0: Order is fully shipped'
          schema:
            type: number
          example: 0
        - name: not_fully_invoiced
          in: query
          description: '1: Order is not fully invoiced <br /> 0: Order is fully invoiced'
          schema:
            type: number
          example: 1
        - name: cancel_acknowledged_at_gt
          in: query
          description: >-
            Cancellation acknowledgement date is greater than specified Time
            (Unix epoch format)
          schema:
            type: number
          example: 1165550936
        - name: cancel_acknowledged_at_gte
          in: query
          description: >-
            Cancellation acknowledgement date is greater than or equal to
            specified Time (Unix epoch format)
          schema:
            type: number
          example: 1265550936
        - name: cancel_acknowledged_at_lt
          in: query
          description: >-
            Cancellation acknowledgement date is less than specified Time (Unix
            epoch format)
          schema:
            type: number
          example: 1665550936
        - name: cancel_acknowledged_at_lte
          in: query
          description: >-
            Cancellation acknowledgement date is less than or equal to specified
            Time (Unix epoch format)
          schema:
            type: number
          example: 1565550936
        - name: backordered_until_gt
          in: query
          description: Backordered date is greater than specified Time (Unix epoch format)
          schema:
            type: number
          example: 1565550936
        - name: backordered_until_gte
          in: query
          description: >-
            Backordered date is greater than or equal to specified Time (Unix
            epoch format)
          schema:
            type: number
          example: 1165550936
        - name: backordered_until_lt
          in: query
          description: Backordered date is less than specified Time (Unix epoch format)
          schema:
            type: number
          example: 1265550936
        - name: backordered_until_lte
          in: query
          description: >-
            Backordered date is less than or equal to specified Time (Unix epoch
            format)
          schema:
            type: number
          example: 1365550936
        - name: memos_created_at_gte
          in: query
          description: >-
            Memos creation date is greater than or equal to specified Time (Unix
            epoch format)
          schema:
            type: number
          example: 1665550936
        - name: since
          in: query
          description: Past date till the current time (Unix epoch format)
          schema:
            type: number
          example: 1565550936
        - name: order_batch_id
          in: query
          description: Batch ID of order. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 4568
            - 4567
        - name: brand_id
          in: query
          description: Vendor IDs. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 600
            - 603
        - name: retailer_id
          in: query
          description: Retailer ID. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 500
            - 503
        - name: connection_id
          in: query
          description: >-
            Connection ID. Multiple values may be separated by commas.Connection
            ID
          schema:
            type: array
            items:
              type: number
          example:
            - 10024
            - 15879
        - name: order_by
          in: query
          description: Sorting preference
          schema:
            type: string
          example: Ascending
        - name: page
          in: query
          description: Page number of the paginated response
          schema:
            type: integer
          example: 2
        - name: limit
          in: query
          description: Number of results per page
          schema:
            type: integer
          example: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                required:
                  - count
                  - results
                type: object
                properties:
                  count:
                    description: Total number of records
                    example: 100
                    type: integer
                  next:
                    description: Next page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=5
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    description: Previous page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=3
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/RetailerOrder'
            text/csv:
              schema:
                required:
                  - count
                  - results
                type: object
                properties:
                  count:
                    description: Total number of records
                    example: 1001
                    type: integer
                  next:
                    description: Next page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=5
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    description: Previous page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=3
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/RetailerOrder'
  /v1/retailers/{retailer_pk}/orders/{id}/:
    get:
      tags:
        - Orders
      summary: Get single order details
      description: >-
        Gets the details of a single order by specifying retailer ID and order
        ID.
      operationId: v1_retailers_orders_read
      parameters:
        - name: id
          in: path
          description: Order ID
          required: true
          schema:
            type: integer
          example: 1009
        - name: retailer_pk
          in: path
          required: true
          description: Retailer ID
          schema:
            type: number
          example: 500
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetailerOrder'
            text/csv:
              schema:
                $ref: '#/components/schemas/RetailerOrder'
  /v1/retailers/{retailer_pk}/sales-orders/:
    post:
      tags:
        - Orders
      summary: Create a new order (mixed vendors)
      description: Creates a new order (mixed vendors)
      operationId: v1_retailers_sales-orders_create
      parameters:
        - name: retailer_pk
          in: path
          required: true
          description: Retailer ID
          schema:
            type: number
          example: 500
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RetailerOrder'
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetailerOrder'
      x-codegen-request-body-name: data
  /v1/retailers/{retailer_pk}/shipments/:
    get:
      tags:
        - Shipments
      summary: List fulfillments or shipments from vendors
      description: >-
        Gets a list of fulfillments or shipments that contain details about the
        variants included in the shipment along with the tracking number.
        Generally, the is_acknowledged=0 is passed as a query to return only new
        shipments not yet processed by the retailer.
      operationId: v1_retailers_shipments_list
      parameters:
        - name: retailer_pk
          in: path
          required: true
          schema:
            type: number
          example: 500
          description: Retailer ID
        - name: status
          in: query
          description: Shipment status
          schema:
            type: string
          example: Shipped
        - name: is_acknowledged
          in: query
          description: '1: shipment is picked up <br /> 0: shipment is not picked up'
          schema:
            type: number
          example: 0
        - name: search
          in: query
          description: Search by tracking or purchase order number
          schema:
            type: string
          example: CS192168
        - name: order_id
          in: query
          description: Order IDs. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 1005
            - 1501
        - name: since
          in: query
          description: Past date till current (Unix epoch format)
          schema:
            type: number
          example: 1065550936
        - name: connection_id
          in: query
          description: Connection ID. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 2551
            - 5546
        - name: order_by
          in: query
          description: Sorting preference
          schema:
            type: string
          example: Ascending
        - name: page
          in: query
          description: Page number within the paginated result set
          schema:
            type: integer
          example: 2
        - name: limit
          in: query
          description: Number of records per page
          schema:
            type: integer
          example: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                required:
                  - count
                  - results
                type: object
                properties:
                  count:
                    description: Total number of records
                    example: 600
                    type: integer
                  next:
                    description: Next page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=5
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    description: Previous page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=3
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/RetailerShipmentList'
            text/csv:
              schema:
                required:
                  - count
                  - results
                type: object
                properties:
                  count:
                    description: Total number of records
                    example: 600
                    type: integer
                  next:
                    description: Next page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=5
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    description: Previous page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=3
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/RetailerShipmentList'
  /v1/retailers/{retailer_pk}/shipments/{id}/:
    get:
      tags:
        - Shipments
      summary: Get details of a single shipment.
      description: Gets the details of a specified single shipment.
      operationId: v1_retailers_shipments_read
      parameters:
        - name: id
          in: path
          description: Shipment ID
          required: true
          schema:
            type: integer
          example: 4060
        - name: retailer_pk
          in: path
          description: Retailer ID
          required: true
          schema:
            type: number
          example: 500
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetailerShipmentList'
            text/csv:
              schema:
                $ref: '#/components/schemas/RetailerShipmentList'
  /v1/retailers/{retailer_pk}/shipments/{id}/acknowledge/:
    put:
      tags:
        - Shipments
      summary: Acknowledge shipment receipt
      description: >-
        After successfully processing a shipment, the shipment should be
        acknowledged so that it does not appear in subsequent requests to
        /shipments/?is_acknowledged=0.
      operationId: v1_retailers_shipments_acknowledge
      parameters:
        - name: id
          in: path
          description: Shipment ID
          required: true
          schema:
            type: integer
          example: 4050
        - name: retailer_pk
          in: path
          description: Retailer ID
          required: true
          schema:
            type: number
          example: 506
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RetailerShipmentList'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetailerShipmentList'
            text/csv:
              schema:
                $ref: '#/components/schemas/RetailerShipmentList'
      x-codegen-request-body-name: data
  /v1/retailers/{retailer_pk}/invoices/:
    get:
      tags:
        - Invoices
      summary: List invocies from vendors
      description: Gets a list of invoices from vendors
      operationId: v1_retailers_invoices_list
      parameters:
        - name: retailer_pk
          in: path
          required: true
          schema:
            type: number
          description: Retailer ID
          example: 405
        - name: search
          in: query
          description: Search by invoice or purchase order number
          schema:
            type: string
          example: PO-1234
        - name: is_acknowledged
          in: query
          description: '1: Acknowledged invoices <br /> 0: Unacknowledged invoices'
          schema:
            type: number
          example: 1
        - name: is_paid
          in: query
          description: '1: Paid invoices <br /> 0: Unpaid invoices'
          schema:
            type: number
          example: 1
        - name: invoiced_at_lt
          in: query
          description: Invoice date is lesser than specified Time (Unix epoch format)
          schema:
            type: number
          example: 1665550936
        - name: invoiced_at_lte
          in: query
          description: >-
            Invoice date is lesser than or equal to specified Time (Unix epoch
            format)
          schema:
            type: number
          example: 1665550936
        - name: invoiced_at_gt
          in: query
          description: Invoice date is greater than specified Time (Unix epoch format)
          schema:
            type: number
          example: 1165550936
        - name: invoiced_at_gte
          in: query
          description: Invoice date is greater than or equal to specified unix Time
          schema:
            type: number
          example: 1065550936
        - name: terms_date_due_lt
          in: query
          description: Invoice due date is less than specified Time(Unix epoch format)
          schema:
            type: number
          example: 1665550936
        - name: terms_date_due_lte
          in: query
          description: >-
            Invoice due date is less than or equal to specified Time (Unix epoch
            format)
          schema:
            type: number
          example: 1665550936
        - name: terms_date_due_gt
          in: query
          description: Invoice due date is greater than specified Time (Unix epoch format)
          schema:
            type: number
          example: 1165550936
        - name: terms_date_due_gte
          in: query
          description: >-
            Invoice due date is greater than or equal to specified Time (Unix
            epoch format)
          schema:
            type: number
          example: 1165550936
        - name: connection_id
          in: query
          description: Connection ID. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 1001
            - 1005
        - name: brand_id
          in: query
          description: Vendor IDs. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 500
            - 589
        - name: retailer_id
          in: query
          description: Retailer IDs. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 34
            - 56
        - name: payment_id
          in: query
          description: Payment IDs. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 12353
            - 12455
        - name: has_payment
          in: query
          description: '1: Invoice is paid <br /> 0: Invoice is unpaid'
          schema:
            type: number
        - name: purchase_order_number
          in: query
          description: Purchase order number
          schema:
            type: string
          example: PO-15492456
        - name: total_due_lt
          in: query
          description: Total due amount is less than the specified amount
          schema:
            type: number
        - name: total_due_lte
          in: query
          description: Total due amount is less than or equal to the specified amount
          schema:
            type: number
        - name: total_due_gt
          in: query
          description: Total due amount is greater than the specified amount
          schema:
            type: number
        - name: total_due_gte
          in: query
          description: Total due amount is greater than or equal to the specified amount
          schema:
            type: number
          example: 1165550936
        - name: paid_at_lt
          in: query
          description: Paid on date is less than specified Time (Unix epoch format)
          schema:
            type: number
          example: 1165550936
        - name: paid_at_lte
          in: query
          description: >-
            Paid on date is less than or equal to specified Time (Unix epoch
            format)
          schema:
            type: number
          example: 1665550936
        - name: paid_at_gt
          in: query
          description: Paid on date is greater than specified Time (Unix epoch format)
          schema:
            type: number
          example: 1165550936
        - name: paid_at_gte
          in: query
          description: >-
            Paid on date is greater than or equal to specified Time (Unix epoch
            format)
          schema:
            type: number
          example: 1165550936
        - name: order_closed_at_lt
          in: query
          description: Order closure date is less than specified Time (Unix epoch format).
          schema:
            type: number
          example: 1665550936
        - name: order_closed_at_lte
          in: query
          description: >-
            Order closure date is less than or equal to specified Time (Unix
            epoch format).
          schema:
            type: number
          example: 1665550936
        - name: order_closed_at_gt
          in: query
          description: Order close date is greater than specified Time (Unix epoch format)
          schema:
            type: number
          example: 1265550936
        - name: order_closed_at_gte
          in: query
          description: >-
            Order closure date is greater than or equal to specified Time (Unix
            epoch format)
          schema:
            type: number
          example: 1165550936
        - name: order_by
          in: query
          description: Sorting preference
          schema:
            type: string
          example: Ascending
        - name: page
          in: query
          description: Page number within the paginated response
          schema:
            type: integer
          example: 3
        - name: limit
          in: query
          description: Number of records per page
          schema:
            type: integer
          example: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                required:
                  - count
                  - results
                type: object
                properties:
                  count:
                    description: Total number of records
                    example: 100
                    type: integer
                  next:
                    description: Next page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=5
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    description: Previous page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=3
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/Invoice'
            text/csv:
              schema:
                required:
                  - count
                  - results
                type: object
                properties:
                  count:
                    description: Total number of records
                    example: 100
                    type: integer
                  next:
                    description: Next page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=5
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    description: Previous page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=3
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/Invoice'
  /v1/retailers/{retailer_pk}/invoices/{id}/:
    get:
      tags:
        - Invoices
      summary: Get details of a single invoice
      description: Gets details of a single invoice
      operationId: v1_retailers_invoices_read
      parameters:
        - name: id
          in: path
          description: Invoice ID
          required: true
          schema:
            type: integer
          example: 124
        - name: retailer_pk
          in: path
          required: true
          description: Retailer ID
          schema:
            type: number
          example: 1053
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
            text/csv:
              schema:
                $ref: '#/components/schemas/Invoice'
  /v1/retailers/{retailer_pk}/invoices/{id}/acknowledge/:
    put:
      tags:
        - Invoices
      summary: Acknowledge receipt of an invoice.
      description: >-
        Retailers, generally, include is_acknowledged=0 as a query string
        parameter to get only new invoices. Then, for each shipment returned,
        the retailer should process the shipment and update any necessary
        internal systems (such as OMS or ERP). After processing a shipment
        successfully, the retailer should acknowledge the shipment using this
        endpoint so that subsequent queries to the /shipments/?is_acknowledged=0
        endpoing does not return processed shipments.
      operationId: v1_retailers_invoices_acknowledge
      parameters:
        - name: id
          in: path
          description: Invoice ID
          required: true
          schema:
            type: integer
          example: 77717358
        - name: retailer_pk
          in: path
          description: Retailer ID
          required: true
          schema:
            type: number
          example: 1020
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Invoice'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
            text/csv:
              schema:
                $ref: '#/components/schemas/Invoice'
      x-codegen-request-body-name: data
  /v1/retailers/{retailer_pk}/rmas/:
    post:
      tags:
        - Returns
      summary: Register a pending return for a vendor
      description: Registers a pending return for a vendor.
      operationId: v1_retailers_rmas_create
      parameters:
        - name: retailer_pk
          in: path
          required: true
          schema:
            type: number
          example: 1047
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RMA'
        required: true
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RMA'
            text/csv:
              schema:
                $ref: '#/components/schemas/RMA'
      x-codegen-request-body-name: data
    get:
      tags:
        - Returns
      summary: Get a list of returns
      description: >-
        Gets a list of returns. RMAs are issued when merchandise needs to be, or
        has already been, returned to the vendor. Either party (vendor or
        retailer) can initiate the return. Once created, the return's status is
        set to *pending* while the vendor awaits the delivery of the items to
        the return address. Upon receipt, the vendor will inspect the items, and
        if all is well, *close* the return.
      operationId: v1_retailers_rmas_list
      parameters:
        - name: retailer_pk
          in: path
          required: true
          schema:
            type: number
          example: 1075
          description: Retailer ID
        - name: search
          in: query
          description: Search by RMA status or identifier
          schema:
            type: string
          example: RMA-21
        - name: status
          in: query
          description: RMA status
          schema:
            type: string
          example: Open
        - name: purchase_order_number
          in: query
          description: Purchase order number
          schema:
            type: string
          example: PO-13979ER
        - name: rma_number
          in: query
          description: RMA number
          schema:
            type: string
          example: '154689'
        - name: reason_id
          in: query
          description: >-
            Reason IDs associated with RMAs. Multiple values may be separated by
            commas.
          schema:
            type: array
            items:
              type: number
          example: 245
        - name: reason
          in: query
          description: RMA reason
          schema:
            type: string
          example: Retailer Requested RMA
        - name: since
          in: query
          description: From a past date till current time (Unix epoch format)
          schema:
            type: number
          example: 1665550936
        - name: brand_id
          in: query
          description: Vendor ID. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 1445
            - 5467
        - name: connection_id
          in: query
          description: Connection IDs. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 1001
            - 1010
        - name: order_by
          in: query
          description: Sorting criteria
          schema:
            type: string
          example: Ascending
        - name: page
          in: query
          description: Page number within the paginated response
          schema:
            type: integer
          example: 3
        - name: limit
          in: query
          description: Number of records per page
          schema:
            type: integer
          example: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                required:
                  - count
                  - results
                type: object
                properties:
                  count:
                    description: Total number of records
                    example: 1005
                    type: integer
                  next:
                    description: Next page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=5
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    description: Previous page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=3
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/RMA'
            text/csv:
              schema:
                required:
                  - count
                  - results
                type: object
                properties:
                  ccount:
                    description: Total number of records
                    example: 1005
                    type: integer
                  next:
                    description: Next page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=5
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    description: Previous page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=3
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/RMA'
  /v1/retailers/{retailer_pk}/rmas/{id}/:
    get:
      tags:
        - Returns
      summary: Get details of a return.
      description: Gets the details of a return.
      operationId: v1_retailers_rmas_read
      parameters:
        - name: id
          in: path
          description: RMA ID
          required: true
          schema:
            type: integer
          example: 12
        - name: retailer_pk
          in: path
          required: true
          description: Retailer ID
          schema:
            type: number
          example: 1047
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RMA'
            text/csv:
              schema:
                $ref: '#/components/schemas/RMA'
  /v1/retailers/{retailer_pk}/rmas/{id}/acknowledge/:
    put:
      tags:
        - Returns
      summary: Acknowledge return
      description: Acknowledge receipt of an approved return.
      operationId: v1_retailers_rmas_acknowledge
      parameters:
        - name: id
          in: path
          description: RMA ID
          required: true
          schema:
            type: number
          example: 12
        - name: retailer_pk
          in: path
          description: Retailer ID
          required: true
          schema:
            type: number
          example: 506
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RMA'
        required: true
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RMA'
            text/csv:
              schema:
                $ref: '#/components/schemas/RMA'
      x-codegen-request-body-name: data
  /v1/retailers/{retailer_pk}/products/:
    get:
      tags:
        - Products
      summary: List products
      description: Gets a list of products.
      operationId: v1_retailers_products_list
      parameters:
        - name: retailer_pk
          in: path
          required: true
          description: Retailer ID
          schema:
            type: number
          example: 1047
        - name: since
          in: query
          description: Past date till current (Unix epoch format)
          schema:
            type: number
          example: 1665550936
        - name: search
          in: query
          description: Search by variant ID, identifier, UPC, name, and retailer_identifier
          schema:
            type: string
          example: '12342'
        - name: search_id
          in: query
          description: Variant ID
          schema:
            type: number
          example: 100024
        - name: search_name
          in: query
          description: Search by name
          schema:
            type: string
          example: T-Shirt
        - name: search_upc
          in: query
          description: Search by UPC
          schema:
            type: string
          example: '555555555202'
        - name: search_sku
          in: query
          description: Search by SKU
          schema:
            type: string
          example: SKU123
        - name: retailer_sku
          in: query
          description: Retailer SKU
          schema:
            type: string
          example: RSKU123
        - name: product_search
          in: query
          description: Search by product name, identifier, or brand category
          schema:
            type: string
          example: DemoProd1
        - name: attribute
          in: query
          description: Product attributes
          schema:
            type: string
          example: Size
        - name: retailer_attribute
          in: query
          description: Retailer attribute
          schema:
            type: string
          example: Size
        - name: retailer_id
          in: query
          description: Retailer ID
          schema:
            type: number
          example: 206
        - name: brand_id
          in: query
          description: Vendor IDs. Multiple values may be added, separated by commas.
          schema:
            type: array
            items:
              type: number
          example: 1234
        - name: brand_code
          in: query
          description: Brand codes. Multiple values may be added, separated by commas.
          schema:
            type: array
            items:
              type: string
          example:
            - demo-brand1
            - demo-brand2
        - name: brand_category
          in: query
          description: Brand categories. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: string
          example:
            - category 1
            - category 2
        - name: manufacturer_id
          in: query
          description: Manufacturer IDs. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 2056
            - 5898
        - name: connection_id
          in: query
          description: Connection ID.
          schema:
            type: number
          example: 1056
        - name: manufacturer_code
          in: query
          description: Manufacturer codes. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: string
          example:
            - ManC-1
            - ManC-2
        - name: identifier
          in: query
          description: Stock Keeping Unit (SKU), unique identifier of a product
          schema:
            type: string
          example: 2341SD
        - name: parent_identifier
          in: query
          description: SKU of parent product
          schema:
            type: string
          example: Main-1
        - name: is_discontinued
          in: query
          description: '1: Product is discontinued <br /> 0: Product is not discontinued'
          schema:
            type: number
        - name: is_sellable
          in: query
          description: '1: Product is sellable <br /> 0: Product is not sellable'
          schema:
            type: number
          example: 1
        - name: in_stock
          in: query
          description: '1: Product is in stock <br /> 0: Product is out of stock'
          schema:
            type: number
        - name: taxonomy_id
          in: query
          description: Taxonomy ID
          schema:
            type: string
          example: Tax123
        - name: has_images
          in: query
          description: '1: Product has images <br /> 0: Product does not have images'
          schema:
            type: number
          example: 1
        - name: has_shipping
          in: query
          description: '1: Product has shipping <br /> 0: Product does not have shipping'
          schema:
            type: number
          example: 1
        - name: decision
          in: query
          description: Internal only
          schema:
            type: string
        - name: order_by
          in: query
          description: Sorting preference
          schema:
            type: string
          example: Ascending
        - name: page
          in: query
          description: Page number within the paginated result set
          schema:
            type: integer
          example: 2
        - name: limit
          in: query
          description: Number of records per page
          schema:
            type: integer
          example: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                required:
                  - count
                  - results
                type: object
                properties:
                  count:
                    description: Total number of records
                    example: 100
                    type: integer
                  next:
                    description: Next page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=5
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    description: Previous page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=3
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ProductShort'
  /v1/retailers/{retailer_pk}/products/{id}/:
    get:
      tags:
        - Products
      summary: Get single product details
      description: Gets the details for a specified product.
      operationId: v1_retailers_products_read
      parameters:
        - name: id
          in: path
          description: Product ID
          required: true
          schema:
            type: integer
          example: 12421
        - name: retailer_pk
          in: path
          required: true
          schema:
            type: number
          example: 1057
          description: Retailer ID
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductWithAttributes'
  /v1/retailers/{retailer_pk}/variants/:
    get:
      tags:
        - Products
      summary: Get variants
      description: 'Gets variants '
      operationId: v1_retailers_variants_list
      parameters:
        - name: retailer_pk
          in: path
          required: true
          schema:
            type: number
          example: 1075
        - name: inventory_updated_at_lt
          in: query
          description: >-
            Inventory updated date is less than specified date (Unix epoch
            format)
          schema:
            type: number
          example: 1365550936
        - name: inventory_updated_at_lte
          in: query
          description: >-
            Inventory updated date is less than or equal to specified date (Unix
            epoch format)
          schema:
            type: number
          example: 1365550936
        - name: inventory_updated_at_gt
          in: query
          description: >-
            Inventory updated date is greater than specified date (Unix epoch
            format)
          schema:
            type: number
          example: 1365550936"
        - name: inventory_updated_at_gte
          in: query
          description: >-
            Inventory updated date is greater than or equal to specified date
            (Unix epoch format)
          schema:
            type: number
          example: 1365550936
        - name: search
          in: query
          description: Search criteria
          schema:
            type: string
          example: Sample134
        - name: search_id
          in: query
          description: Search ID
          schema:
            type: string
          example: Demo123
        - name: search_name
          in: query
          description: Search name
          schema:
            type: string
          example: Sample1
        - name: search_upc
          in: query
          description: Search by UPC
          schema:
            type: string
          example: '9119119111'
        - name: search_sku
          in: query
          description: Search by SKUs
          schema:
            type: string
          example: SKU897
        - name: retailer_sku
          in: query
          description: Retailer SKUs
          schema:
            type: string
          example: RSKU-123
        - name: attribute
          in: query
          description: Product attribute
          schema:
            type: string
          example: Weight
        - name: retailer_id
          in: query
          description: Retailer ID
          schema:
            type: number
          example: 124
        - name: brand_id
          in: query
          description: Vendor Ids. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 5008
            - 5566
        - name: brand_code
          in: query
          description: Brand codes. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: string
          example:
            - demo-brand
            - sample-brand
        - name: manufacturer_id
          in: query
          description: Manufacturer IDs. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 26879
            - 4464
        - name: manufacturer_code
          in: query
          description: Manufacturer codes. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: string
          example:
            - manufacturer1
            - manufacturer2
        - name: failed_rule_id
          in: query
          description: Failed rule ID
          schema:
            type: string
        - name: rule_id
          in: query
          description: Rule ID
          schema:
            type: number
          example: 5456
        - name: ruleset_id
          in: query
          description: Ruleset ID
          schema:
            type: string
          example: RID-123
        - name: failure_type
          in: query
          description: Failure type
          schema:
            type: string
        - name: taxonomy_id
          in: query
          description: Taxonomy ID
          schema:
            type: string
          example: TXNMY123
        - name: retailer_category
          in: query
          description: >-
            Retailer category. Multiple values may be added, separated by
            commas.
          schema:
            type: array
            items:
              type: string
          example:
            - Demo1
            - Sample2
        - name: retailer_category_id
          in: query
          description: Retailer category IDs
          schema:
            type: array
            items:
              type: number
          example:
            - 1341
            - 4564
        - name: connection_id
          in: query
          description: Connection ID
          schema:
            type: number
          example: 1001
        - name: product_id
          in: query
          description: Product IDs. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: number
          example:
            - 1231
            - 34232
        - name: parent_identifier
          in: query
          description: Parent identifiers. Multiple values may be separated by commas.
          schema:
            type: array
            items:
              type: string
          example:
            - Main-1
            - Main-2
        - name: is_replenishable
          in: query
          description: '1: Variant is replenishable <br />  0: Variant is not replenishable'
          schema:
            type: number
          example: 1
        - name: is_discontinued
          in: query
          description: '1: Variant is discontinued <br /> 0: Variant is not discontinued'
          schema:
            type: number
          example: 1
        - name: is_sellable
          in: query
          description: '1: Variant is sellable <br /> 0: Variant is not sellable'
          schema:
            type: number
          example: 1
        - name: in_stock
          in: query
          description: '1: Variant is in stock <br /> 0: Variant is out of stock'
          schema:
            type: number
          example: 1
        - name: has_images
          in: query
          description: '1: Variant has images <br /> 0: Variant does not have images.'
          schema:
            type: number
          example: 1
        - name: has_shipping
          in: query
          description: '1: Variant has shipping <br /> 0: Variant does not have shipping.'
          schema:
            type: number
          example: 1
        - name: order_by
          in: query
          description: Sorting preference
          schema:
            type: string
          example: Ascending
        - name: page
          in: query
          description: Page number within the paginated result set
          schema:
            type: integer
          example: 3
        - name: limit
          in: query
          description: Number of records per page
          schema:
            type: integer
          example: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                required:
                  - count
                  - results
                type: object
                properties:
                  count:
                    description: Total number of records
                    example: 100
                    type: integer
                  next:
                    description: Next page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=5
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    description: Previous page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_pk}/?page=3
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/Variant'
  /v1/retailers/{retailer_pk}/variants/{id}/:
    get:
      tags:
        - Products
      summary: Get details of a single variant
      description: Gets the details of a specified variant.
      operationId: v1_retailers_variants_read
      parameters:
        - name: id
          in: path
          description: Variant ID
          required: true
          schema:
            type: integer
          example: 100024
        - name: retailer_pk
          in: path
          description: Retailer ID
          required: true
          schema:
            type: number
          example: 2513
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Variant'
    patch:
      tags:
        - Products
      summary: Update attributes of a variant
      description: Updates the attributes of a variant
      operationId: v1_retailers_variants_partial_update
      parameters:
        - name: id
          in: path
          description: Variant ID
          required: true
          schema:
            type: integer
          example: 100024
        - name: retailer_pk
          in: path
          description: Retailer ID
          required: true
          schema:
            type: number
          example: 10011
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Variant'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Variant'
      x-codegen-request-body-name: data
  /v1/retailers/{retailer_pk}/permits/{id}/:
    get:
      tags:
        - Products
      summary: Get active permits
      description: Gets active permits by retailer ad permit IDs.
      operationId: v1_retailers_permits_read
      parameters:
        - name: id
          in: path
          description: Permit ID
          required: true
          schema:
            type: integer
          example: 10004
        - name: retailer_pk
          in: path
          required: true
          description: Retailer ID
          schema:
            type: number
          example: 10011
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermitWithVariant'
  /v1/retailers/{retailer_pk}/permits/{id}/acknowledge/:
    put:
      tags:
        - Products
      summary: Acknowledge receipt of a new permit
      description: >-
        Retailers, generally, include is_acknowledged=0 as a query parameter to
        get only new permits. Then, for each permit returned, retailers should
        process the permit and update any necessary internal systems, such as
        Product Catalog. After processing a permit successfully, they should
        acknowledge the permit using this endpoint so that subsequent queries to
        the /shipments/?is_acknowledged=0 endpoint does not return the processed
        shipment.
      operationId: v1_retailers_permits_acknowledge
      parameters:
        - name: id
          in: path
          description: Permit ID
          required: true
          schema:
            type: integer
          example: 10004
        - name: retailer_pk
          in: path
          description: Retailer ID
          required: true
          schema:
            type: number
          example: 10011
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PermitWithVariant'
        required: true
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermitWithVariant'
      x-codegen-request-body-name: data
components:
  schemas:
    Inventory:
      required:
        - brand_inventory_updated_at
        - estimated_availability_date
        - inventory_last_submitted_at
        - inventory_updated_at
        - sellable_updated_at
      type: object
      properties:
        variant:
          $ref: '#/components/schemas/VariantShort'
        inventory_policy:
          description: Represents whether vendor wants to manage the inventory or not
          example: managed
          type: string
          enum:
            - unmanaged
            - managed
        inventory:
          description: Count of variant available for sale
          example: 0
          type: integer
          readOnly: true
        inventory_updated_at:
          description: Time of inventory update (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
        inventory_last_submitted_at:
          description: Time of inventory submit (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
        brand_inventory_updated_at:
          description: Time of vendor inventory update (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
        discontinued:
          description: 'true: Variant is discontinued <br /> false: Variant is active'
          example: false
          type: boolean
          readOnly: true
        discontinued_updated_at:
          description: Time variant marked discontinued (UTC format)
          example: null
          type: string
          format: date-time
          readOnly: true
        replenishable:
          description: >-
            true: Variant is replenishable <br /> false: Variant is not
            replenishable
          example: true
          type: boolean
          readOnly: true
        sellable:
          description: 'true: Variant is sellable <br /> false: Variant is not sellable'
          example: 'No'
          type: string
          readOnly: true
        sellable_updated_at:
          description: Time variant was marked sellable (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
        estimated_availability_date:
          description: Estimated availability date of variant
          example: null
          minLength: 1
          type: string
        locations:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/InventoryLocation'
    InventoryLocation:
      type: object
      properties:
        id:
          description: Location ID
          example: 1
          type: integer
          readOnly: true
        address:
          $ref: '#/components/schemas/Address'
        inventory:
          description: Count of sellable variants
          example: 0
          type: integer
          readOnly: true
        nickname:
          description: Nickname of location
          example: LA Warehouse
          type: string
          readOnly: true
    Address:
      required:
        - city
        - country
        - name1
        - postal_code
        - province
        - street1
      type: object
      properties:
        id:
          description: Address ID
          example: 10
          type: integer
          readOnly: true
        type:
          description: Type of address
          example: residential
          type: string
          nullable: true
          enum:
            - residential
            - commercial
        name1:
          description: Name of the primary contact?
          example: Demo Brand, Inc
          maxLength: 64
          minLength: 1
          type: string
        name2:
          description: Name of the alternative contact?
          example: null
          maxLength: 64
          type: string
          nullable: true
        street1:
          description: Line 1 of the address
          example: 1332 Hermosa Ave
          maxLength: 128
          minLength: 1
          type: string
        street2:
          description: Line 2 of the address
          example: null
          maxLength: 128
          type: string
          nullable: true
        city:
          description: City name
          example: Hermosa Beach
          maxLength: 64
          minLength: 1
          type: string
        province:
          description: State name
          example: CA
          maxLength: 32
          minLength: 1
          type: string
        postal_code:
          description: Postal code
          example: '90254'
          maxLength: 32
          minLength: 1
          type: string
        country:
          description: Country name
          example: US
          maxLength: 128
          minLength: 1
          type: string
        phone1:
          description: Primary contact number
          example: '3105551212'
          maxLength: 32
          type: string
          nullable: true
        phone2:
          description: Alternate contact number
          example: '3105551213'
          maxLength: 32
          type: string
          nullable: true
        fax:
          description: Fax number
          example: null
          maxLength: 32
          type: string
          nullable: true
        email:
          description: Contact email address
          example: null
          maxLength: 128
          type: string
          nullable: true
        federal_tax_id:
          description: 'Federal tax ID '
          example: null
          maxLength: 32
          type: string
          nullable: true
    VariantShort:
      type: object
      properties:
        id:
          description: Variant ID
          example: 100024
          type: integer
          readOnly: true
        name:
          description: Variant Name
          example: T-Shirt, Blue, L
          maxLength: 200
          type: string
          nullable: true
        brand:
          $ref: '#/components/schemas/BrandShort'
        brand_identifier:
          description: Unique SKU assigned by the Brand
          example: 1000-BL-L
          minLength: 1
          type: string
          readOnly: true
        identifier:
          description: >-
            Identifier assigned by the retailer (if set). Otherwise, returns the
            unique SKU assigned by the Brand.
          example: '5000001'
          maxLength: 128
          type: string
          nullable: true
        upc:
          description: UPC or other GTIN
          example: 9119119111
          maxLength: 64
          type: string
        cartons:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Carton'
        color:
          description: Color of the item (from attributes.color)
          example: Red
          maxLength: 128
          type: string
          nullable: true
        style:
          description: Style of the item (will be the same value as attributes.style)
          example: Print
          maxLength: 128
          type: string
          nullable: true
        size:
          description: Size of the item (will be the same value as attributes.size)
          example: Large
          maxLength: 128
          type: string
          nullable: true
        media:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/VariantImage'
        attributes:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Attribute'
        ruleset_variants:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/RulesetVariant'
        ruleset_variant_summary:
          description: Number of items that are passed and failed in rule validation.
          example: '21'
          type: string
          readOnly: true
        active_permit:
          $ref: '#/components/schemas/Permit'
        permits:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Permit'
        is_compatible:
          description: >-
            true: variant meets requirement <br /> false: variant doesn not meet
            requirement
          example: true
          type: boolean
          readOnly: true
        proposal_variant:
          $ref: '#/components/schemas/ProposalVariant'
        retailer_identifiers:
          $ref: '#/components/schemas/RetailerIdentifier'
        retailer_categories:
          $ref: '#/components/schemas/RetailerCategory'
        inventory:
          $ref: '#/components/schemas/InventoryBase'
    BrandShort:
      required:
        - code
      type: object
      properties:
        id:
          description: Vendor (brand) ID
          example: 500
          type: integer
          readOnly: true
        name:
          description: Vendor name
          example: Marla Cielo
          maxLength: 64
          minLength: 1
          type: string
        code:
          description: Vendor code, which is vendor name in lower case and underscore
          example: demo-brand
          maxLength: 64
          minLength: 1
          pattern: ^[-a-zA-Z0-9_]+$
          type: string
          format: slug
        joined_at:
          description: Time when vendor joined Dropship (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        logo_url:
          description: URL of the brand logo
          example: https://images.revcascade.com/retailers/defaults/logo-lg.png
          minLength: 1
          type: string
          format: uri
          readOnly: true
        cover_url:
          description: URL of the cover image
          example: https://images.revcascade.com/retailers/defaults/cover.png
          minLength: 1
          type: string
          format: uri
          readOnly: true
        profile_tile_url:
          description: URL of the profile image
          example: https://images.revcascade.com/retailers/defaults/profile-tile.png
          minLength: 1
          type: string
          format: uri
          readOnly: true
        website:
          description: URL of brand website
          example: null
          maxLength: 100
          type: string
          format: uri
          nullable: true
        is_onboarded:
          description: 'true: Vendor is onboarded <br /> false: Vendor is not onboarded'
          example: false
          type: boolean
          readOnly: true
        is_on_rcn:
          description: 'true: is on Dropship network <br /> false: not on Dropship network'
          example: false
          type: boolean
        requires_subscription:
          description: Represents whether subscription is required
          example: enabled
          type: string
          enum:
            - disabled
            - enabled
            - upcoming
        subscription_expires_at:
          description: Subscription expiry Time (UTC format)
          example: '2024-09-19T13:32:10Z'
          type: string
          format: date-time
          nullable: true
        grace_period_ends_at:
          description: Time of grace period expiration (UTC format)
          example: '2024-10-26T13:32:10Z'
          type: string
          format: date-time
          nullable: true
        subscription_is_expired:
          description: 'true: subscription is expired <br /> false: subscription is active'
          example: false
          type: boolean
          readOnly: true
        subscription_is_on_grace_period:
          description: >-
            true: subscription is on grace period <br /> false: subscription is
            not on grace period
          example: false
          type: boolean
          readOnly: true
        subscription_is_delinquent:
          description: 'true: subscription is overdue <br /> false: subscription is paid'
          example: false
          type: boolean
          readOnly: true
        inventory_policy:
          description: Inventory policy
          example: managed
          type: string
          enum:
            - unmanaged
            - managed
            - use_variant_policy
        status:
          description: Vendor status
          example: active
          type: string
          enum:
            - active
            - pending
            - inactive
    Carton:
      type: object
      properties:
        id:
          description: Carton ID
          example: 48
          type: integer
          readOnly: true
        number:
          description: Carton number
          example: 1
          maximum: 2147483647
          minimum: -2147483648
          type: integer
        length:
          description: Carton length
          example: '1'
          type: string
          format: decimal
          nullable: true
        length_unit:
          description: Unit of length
          example: '1'
          type: string
          readOnly: true
        width:
          description: Carton width
          example: '1'
          type: string
          format: decimal
          nullable: true
        width_unit:
          description: Unit of width
          example: meter
          type: string
          readOnly: true
        height:
          description: Carton height
          example: '1'
          type: string
          format: decimal
          nullable: true
        height_unit:
          description: Unit of height
          example: meter
          type: string
          readOnly: true
        weight:
          description: Carton weight
          example: '15'
          type: string
          format: decimal
          nullable: true
        weight_unit:
          description: Unit of weight
          example: KG
          type: string
          readOnly: true
        package_girth_inches:
          description: Girth of the package, in inches
          example: '1'
          type: string
          readOnly: true
        package_size_inches:
          description: Size of the package, in inches
          example: '1'
          type: string
          readOnly: true
    VariantImage:
      type: object
      properties:
        id:
          description: Variant ID
          example: 249
          type: integer
          readOnly: true
        width:
          description: Width of variant image
          example: 100
          maximum: 2147483647
          minimum: -2147483648
          type: integer
          nullable: true
        height:
          description: Height of variant image
          example: 100
          maximum: 2147483647
          minimum: -2147483648
          type: integer
          nullable: true
        media:
          description: Variant images
          example: default
          type: string
          readOnly: true
        priority:
          description: >-
            Order in which the vendor prefers the images to be shown image 1 is
            shown first.
          example: 1
          maximum: 2147483647
          minimum: -2147483648
          type: integer
        url:
          description: URL of variant image
          example: 192.168.99.100/media/default/original
          type: string
          readOnly: true
        updated_at:
          description: Time of variant image update (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        created_at:
          description: Time of variant image creation (UTC format)
          example: '2022-08-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    Attribute:
      required:
        - code
        - name
        - type
      type: object
      properties:
        id:
          description: Attribute ID
          example: 44
          type: integer
          readOnly: true
        code:
          description: Attribute code
          example: size
          maxLength: 200
          minLength: 1
          type: string
        name:
          description: Attribute name
          example: Size
          maxLength: 200
          minLength: 1
          type: string
        editable_by:
          description: User permission to edit attribute
          example: brand
          type: string
          nullable: true
          enum:
            - retailer
            - brand
            - any
            - none
        grouping:
          description: Criteria to group attribute
          example: general
          type: string
          nullable: true
          enum:
            - description
            - general
            - images
            - inventory
            - misc
            - retailer
            - shipping
            - identifiers
            - pricing
        description:
          description: Attribute description
          example: demo product description
          type: string
          nullable: true
        type:
          description: Attribute type
          example: money
          type: string
          enum:
            - boolean
            - date
            - list
            - media
            - money
            - number
            - percent
            - string
            - text
            - url
        units:
          description: >-
            Unit of the selected attribute **type**. If the attribute type is
            money, the unit is USD.
          example: USD
          maxLength: 32
          type: string
          nullable: true
        values:
          $ref: '#/components/schemas/AttributeValue'
    RulesetVariant:
      type: object
      properties:
        id:
          description: ID of ruleset variant
          example: 1232
          type: integer
          readOnly: true
        status:
          description: Status of ruleset variant
          example: processing
          type: string
          enum:
            - processing
            - passed
            - failed
        ruleset:
          $ref: '#/components/schemas/RulesetVariant'
        results:
          description: Response
          type: string
        created_at:
          description: Time of creation (UTC format)
          example: '2022-08-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        updated_at:
          description: Time of last update (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    Permit:
      type: object
      properties:
        id:
          description: Permit ID
          example: 10104
          type: integer
          readOnly: true
        retailer:
          $ref: '#/components/schemas/RetailerShort'
        retailer_price:
          description: Retailer price of the variant
          example: '12.99'
          type: string
          format: decimal
          nullable: true
        retailer_cost:
          description: Retailer cost of variant
          example: '8.99'
          type: string
          format: decimal
          nullable: true
        pricing:
          type: object
          properties: {}
        attributes:
          type: object
          properties: {}
        start_at:
          description: Time of permit start (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        end_at:
          description: Time of permit end (UTC format)
          example: '2024-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        is_in_effect:
          description: 'true: permit is in effect <br /> false: permit is not in effect'
          example: true
          type: boolean
          readOnly: true
        revoked_at:
          description: Time when permit got revoked (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        is_acknowledged:
          description: >-
            true: permit is acknowledged <br /> false: permit is not
            acknowledged
          example: true
          type: boolean
          readOnly: true
        acknowledged_at:
          description: Time of acknowledgement (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
    ProposalVariant:
      type: object
      properties:
        id:
          description: Proposal variant ID
          example: 3456
          type: integer
          readOnly: true
        pricing:
          description: Pricing of variant
          example: '12.00'
          type: string
          readOnly: true
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/AttributeValue'
        memos:
          type: array
          items:
            $ref: '#/components/schemas/Memo'
        issues:
          type: array
          items:
            $ref: '#/components/schemas/IssueElementOnly'
          readOnly: true
        variant_id:
          description: Variant ID
          example: 249
          type: integer
          readOnly: true
        approved_at:
          description: Time of approval (UTC format)
          example: '2022-10-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        created_at:
          description: Time of creation (UTC format)
          example: '2022-07-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        updated_at:
          description: Time of last update (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        rejected_at:
          description: Time of proposal rejection (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        reject_reason:
          description: Rejection reason
          example: Incomplete
          maxLength: 32
          type: string
          nullable: true
        reject:
          description: 'true: proposal is rejected <br /> false: proposal is not rejected'
          example: true
          type: boolean
        approve:
          description: 'true: proposal is approved <br /> false: proposal is not approved'
          example: false
          type: boolean
        delete:
          description: 'true: proposal is deleted <br /> false: proposal is not deleted'
          example: false
          type: boolean
    RetailerIdentifier:
      type: object
      properties:
        id:
          description: Retailer ID
          example: 5642
          type: integer
          readOnly: true
        retailer:
          $ref: '#/components/schemas/RetailerShort'
        identifier:
          description: Stock Keeping Unit (SKU), unique identifier of a product
          example: SKU976
          maxLength: 256
          type: string
          nullable: true
        name:
          description: Retailer name
          example: Retailer Sample
          maxLength: 256
          type: string
          nullable: true
    RetailerCategory:
      required:
        - category
      type: object
      properties:
        id:
          description: Retailer category ID
          example: 453
          type: integer
          readOnly: true
        retailer:
          $ref: '#/components/schemas/RetailerShort'
        category:
          description: Category name
          example: CategoryANC
          maxLength: 256
          minLength: 1
          type: string
    InventoryBase:
      required:
        - brand_inventory_updated_at
        - estimated_availability_date
        - inventory_last_submitted_at
        - inventory_updated_at
        - sellable_updated_at
      type: object
      properties:
        discontinued:
          description: 'true: Product is discontinued <br /> false: Product is active'
          example: true
          type: boolean
          readOnly: true
        discontinued_updated_at:
          description: Time of when product inventory was discontinued (UTC format)
          example: null
          type: string
          format: date-time
          readOnly: true
        inventory:
          description: Inventory of variant
          example: 0
          type: integer
          readOnly: true
        inventory_updated_at:
          description: Time of inventory update (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
        inventory_last_submitted_at:
          description: Time of inventory submit (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
        brand_inventory_updated_at:
          description: Time of vendor inventory update (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
        sellable:
          description: 'yes: Variant is sellable <br /> No: Variant is not sellable'
          example: 'No'
          type: string
          readOnly: true
        sellable_updated_at:
          description: Time when product or variant was marked sellable (UTC format)
          example: '2022-11-10T15:24:56Z'
          type: string
          format: date-time
        replenishable:
          description: >-
            true: product is replenishable <br /> false: product is not
            replenishable
          example: true
          type: boolean
          readOnly: true
        estimated_availability_date:
          description: Estimated delivery date (UTC format)
          example: '2022-09-10T15:24:56Z'
          minLength: 1
          type: string
        locations:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/InventoryLocation'
    Connection:
      type: object
      properties:
        id:
          description: Connection ID
          example: 1000
          type: integer
          readOnly: true
        brand:
          $ref: '#/components/schemas/BrandShort'
        retailer:
          $ref: '#/components/schemas/RetailerShort'
        level:
          description: Connection level
          example: full
          type: string
          enum:
            - basic
            - full
        status:
          description: Connection status
          example: active
          type: string
          enum:
            - active
            - suspended
            - pending
            - onboarding
        suspended_at:
          description: Time of when connection got suspended (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        created_at:
          description: Time of connection creation (UTC format)
          example: '2022-06-22T06:56:16Z'
          type: string
          format: date-time
          readOnly: true
        updated_at:
          description: Time of connection update (UTC format)
          example: '2022-08-08T15:48:05Z'
          type: string
          format: date-time
          readOnly: true
        shipping_accounts:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/ShippingAccountOption'
        options:
          $ref: '#/components/schemas/ConnectionOption'
        attachments:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Attachment'
        approved_items_count:
          description: Count of approved items
          example: 1
          type: integer
          readOnly: true
        orders_last_7_days_count:
          description: Count of orders in the last 7 days
          example: 0
          type: integer
          readOnly: true
        proposals_received_last_7_days_count:
          description: Count of proposals received in the last 7 days
          example: 4
          type: integer
          readOnly: true
        contacts:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Contact'
        memos:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Memo'
        referral:
          $ref: '#/components/schemas/ConnectionReferral'
        integration_type:
          description: Integration type
          example: console
          type: string
          nullable: true
          enum:
            - console
            - edi
            - api
            - storefront
            - console-print-labels
            - console-register-tracking-numbers
            - shopify
            - bigcommerce
            - shipstation
        onboarding_status:
          description: Status of onboarding
          example: pending
          type: string
          nullable: true
          enum:
            - pending
            - complete
        retailer_identifier:
          description: Retailer ID
          example: null
          maxLength: 32
          type: string
          nullable: true
        onboarding_target_date:
          description: Target date of retailer onboarding (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        onboarded_at:
          description: Time of retailer onboarding (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          nullable: true
    RetailerShort:
      required:
        - code
        - name
      type: object
      properties:
        id:
          description: Retailer ID
          example: 500
          type: integer
          readOnly: true
        name:
          description: Retailer name
          example: Demo Retailer
          maxLength: 64
          minLength: 1
          type: string
        code:
          description: Retailer code, which is retailer name in lower case and hyphenated
          example: demo-retailer
          maxLength: 32
          minLength: 1
          pattern: ^[-a-zA-Z0-9_]+$
          type: string
          format: slug
        logo_url:
          description: URL of retailer logo
          example: >-
            https://images.demo.com/retailers/5ef41f6c-3361-40b7-86ce-ecd79c52e9a2/store/logo-lg.png
          minLength: 1
          type: string
          format: uri
          readOnly: true
        cover_url:
          description: URL of retailer cover image
          example: >-
            https://images.sampke.com/retailers/5ef41f6c-3361-40b7-86ce-ecd79c52e9a2/store/cover.jpg
          minLength: 1
          type: string
          format: uri
          readOnly: true
        profile_tile_url:
          description: URL of retailer profile image
          example: >-
            https://images.demo.com/retailers/5ef41f6c-3361-40b7-86ce-ecd79c52e9a2/store/profile-tile.jpg
          minLength: 1
          type: string
          format: uri
          readOnly: true
        joined_at:
          description: Time of retailer joining Dropship (UTC format)
          example: '2021-08-03T17:24:12Z'
          type: string
          format: date-time
          readOnly: true
        is_rcn_retailer:
          description: >-
            true: Retailer is in Dropship network; Retailer is not in Dropship
            network
          example: false
          type: boolean
        is_onboarded:
          description: 'true: Retailer is onboarded <br /> false: Retailer is not onboarded'
          example: false
          type: boolean
        platform:
          description: Platform on which retailer is onboarded
          example: fabric
          type: string
          enum:
            - fabric
        requires_subscription:
          description: Represent whether retailer requires subscription to use the platform
          example: disabled
          type: string
          enum:
            - disabled
            - enabled
            - upcoming
        brand_permit_creation_allowed:
          description: >-
            true: Platform allows creation of brand permit <br /> false:
            Platform doesn't require creation of brand permit
          example: false
          type: boolean
        website:
          description: Website URL
          example: https://demoabc.com
          maxLength: 100
          type: string
          format: uri
          nullable: true
        status:
          description: Retailer status
          example: active
          type: string
          enum:
            - active
            - setup
            - ghost
    ShippingAccountOption:
      required:
        - nickname
      type: object
      properties:
        id:
          description: Shippping account ID
          example: 1
          type: integer
          readOnly: true
        nickname:
          description: Short name of shipping account, for easier identification
          example: Sample13
          maxLength: 64
          minLength: 1
          type: string
        owner:
          description: Owner of shipping account
          example: DemoABC
          type: string
          readOnly: true
        carrier:
          description: Shipping carrier
          example: ALP Brand
          type: string
          readOnly: true
        shipping_methods:
          $ref: '#/components/schemas/ShippingMethod'
    ConnectionOption:
      required:
        - code
        - name
      type: object
      properties:
        id:
          description: Option ID
          example: 8753
          type: integer
          readOnly: true
        name:
          description: Option name
          example: Sample Option
          maxLength: 64
          minLength: 1
          type: string
        code:
          description: Option code
          example: Sample_Option
          maxLength: 64
          minLength: 1
          type: string
        description:
          description: Connection description
          example: Sample description for connection
          type: string
          nullable: true
        viewable_by:
          description: User who can view the connection details
          example: All
          type: string
          nullable: true
          enum:
            - retailer
            - brand
            - all
            - none
        editable_by:
          description: User who can edit connection
          example: Staff
          type: string
          nullable: true
          enum:
            - retailer
            - brand
            - staff
    AttachmentTag:
      required:
        - tag
      type: object
      properties:
        id:
          description: Attachment tag ID
          example: 432
          type: integer
          readOnly: true
        tag:
          description: attachment tag
          example: demotag
          maxLength: 128
          minLength: 1
          type: string
    Attachment:
      type: object
      properties:
        id:
          description: Attachment or document ID
          example: 268
          type: integer
          readOnly: true
        content_type:
          description: Content type
          example: 1
          type: integer
        object_id:
          description: Attachement object ID
          example: 666
          type: integer
        file:
          description: File name
          example: Sample file
          type: string
          format: uri
          nullable: true
          readOnly: true
        uploaded_by:
          description: User ID that uploaded the attachment
          example: 646
          type: integer
          nullable: true
        visible_by:
          description: User permission who can view the attachment
          example: connections
          type: string
          enum:
            - me
            - connections
            - everyone
        original_filename:
          description: Original file name
          example: Sample1
          maxLength: 255
          type: string
          nullable: true
        filename:
          description: File name used for sharing
          example: Sample1
          maxLength: 255
          type: string
          nullable: true
        tags:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/AttachmentTag'
        url:
          description: URL of attachment
          example: >-
            https://assets.sample.com/attachments/path_to_attachment/attachment.pdf
          minLength: 1
          type: string
          format: uri
    Contact:
      required:
        - email
        - name
      type: object
      properties:
        id:
          description: Contact ID
          example: 1010
          type: integer
          readOnly: true
        name:
          description: Contact name
          example: sample contact
          maxLength: 128
          minLength: 1
          type: string
        email:
          description: Contact email
          example: demo@xyz.com
          maxLength: 128
          minLength: 1
          type: string
          format: email
        phone:
          description: Contact number
          example: '9765314368'
          maxLength: 16
          type: string
          nullable: true
        description:
          description: A note related to the contact
          example: Call
          maxLength: 128
          type: string
          nullable: true
        created_at:
          description: Time of contact creation (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    UserShort:
      type: object
      properties:
        id:
          description: User ID who accepted or rejected the invoice
          example: 542
          type: integer
          readOnly: true
        first_name:
          description: First name of user
          example: Sample
          maxLength: 64
          type: string
          nullable: true
        last_name:
          description: Last name of user
          example: Demo
          maxLength: 64
          type: string
          nullable: true
        title:
          description: User title
          example: Demo
          maxLength: 64
          type: string
          nullable: true
        status:
          description: User status
          example: Active
          type: string
          enum:
            - active
            - invited
            - locked
        type:
          description: User type
          example: standard
          type: string
          enum:
            - standard
            - api
        photo_url:
          description: URL of the user photo
          example: >-
            https://assets.demo.com/attachments/path_to_attachment/attachment.pdf
          minLength: 1
          type: string
          format: uri
          readOnly: true
        profile_photo:
          description: URL of the user's profile photo
          example: >-
            https://assets.demo.com/attachments/path_to_attachment/attachment.pdf
          minLength: 1
          type: string
          format: uri
          readOnly: true
        is_me:
          description: 'true: user is me: <br /> false: user is not me'
          example: true
          type: boolean
          readOnly: true
    Memo:
      type: object
      properties:
        id:
          description: Memo ID
          example: 1234
          type: integer
          readOnly: true
        text:
          description: Memo text
          example: Immediate requirement
          type: string
        visibility:
          description: Memo visibility
          example: any
          type: string
          enum:
            - any
            - retailer
            - brand
        acknowledged_at:
          description: Time memo acknowledgement (UTC format)
          example: '2022-01-10T15:24:56Z'
          type: string
          readOnly: true
        notify_people:
          description: 'true: notify stakeholders <br /> false: do not notify'
          example: true
          type: boolean
        created_by:
          $ref: '#/components/schemas/UserShort'
        created_by_context:
          description: Represents whether memo is created by retailer or brand?
          example: retailer
          type: string
          nullable: true
          enum:
            - retailer
            - brand
        created_at:
          description: Time of memo creation (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        updated_at:
          description: Time of memo update (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    GenericRetailerOrBrandSerialilzer:
      required:
        - code
        - name
      type: object
      properties:
        id:
          description: Retailer or Vendor (Brand) ID
          example: 675
          type: integer
          readOnly: true
        code:
          description: Retailer or Vendor (Brand) code
          example: retailer_abc
          maxLength: 32
          minLength: 1
          pattern: ^[-a-zA-Z0-9_]+$
          type: string
          format: slug
        name:
          description: Retailer or Vendor (Brand) name
          example: Retailer ABC
          maxLength: 64
          minLength: 1
          type: string
    ConnectionReferral:
      type: object
      properties:
        id:
          description: ID of connection referral
          example: 125
          type: integer
          readOnly: true
        referrer:
          $ref: '#/components/schemas/GenericRetailerOrBrandSerialilzer'
        referee:
          $ref: '#/components/schemas/GenericRetailerOrBrandSerialilzer'
        is_brand_first_connection:
          description: >-
            true: brand is first connection <br /> false: brand is not the first
            connection
          example: false"
          type: boolean
        is_retailer_first_connection:
          description: >-
            true: retailer is first connection <br /> false: brand is not the
            first connection
          example: true
          type: boolean
    ShippingMethod:
      required:
        - code
        - name
      type: object
      properties:
        id:
          description: ID of shipping method
          example: 5
          type: integer
          readOnly: true
        name:
          description: Name of shipping method
          example: White Glove Bronze
          maxLength: 64
          minLength: 1
          type: string
        code:
          description: Code of shipping method
          example: cory_white_glove
          maxLength: 64
          minLength: 1
          type: string
        type:
          description: Type of shipping method
          example: ltl (less than truck load)
          type: string
          enum:
            - small_parcel
            - ltl
        carrier:
          $ref: '#/components/schemas/Carrier'
        generic_shipping_method:
          $ref: '#/components/schemas/GenericShippingMethod'
    Carrier:
      type: object
      properties:
        id:
          description: Carrier ID
          example: 229
          type: integer
          readOnly: true
        name:
          description: Carrier name
          example: Cory Companies
          maxLength: 64
          minLength: 1
          type: string
        code:
          description: Carrier code
          example: CJCD
          maxLength: 64
          minLength: 1
          type: string
    GenericShippingMethod:
      required:
        - description
        - name
      type: object
      properties:
        id:
          description: ID of shipping method
          example: 5
          type: integer
          readOnly: true
        name:
          description: Name of shipping method
          example: LTL
          maxLength: 32
          minLength: 1
          type: string
        description:
          description: Description of shipping method
          example: Less than truckload (LTL)
          maxLength: 128
          minLength: 1
          type: string
        type:
          description: Type of shipping method
          example: ltl
          type: string
          enum:
            - small_parcel
            - ltl
    RetailerConnectionDetail:
      required:
        - brand
        - connection_credentials
      type: object
      properties:
        id:
          description: Retailer connection ID
          example: 1050
          type: integer
          readOnly: true
        brand:
          $ref: '#/components/schemas/BrandContactInfo'
        level:
          description: Retailer connection type
          example: basic
          type: string
          enum:
            - basic
            - full
        status:
          description: Retailer connection status
          example: active
          type: string
          enum:
            - active
            - suspended
            - pending
            - onboarding
        suspended_at:
          description: Time of when the retailer connection got suspended (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        created_at:
          description: Time of retailer connection creation (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        updated_at:
          description: Time of retailer connection update (UTC format)
          example: '2022-11-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        shipping_accounts:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/ShippingAccountOption'
        connection_contacts:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/ConnectionContact'
        connection_credentials:
          type: array
          items:
            $ref: '#/components/schemas/ConnectionCredential'
        connection_fees:
          $ref: '#/components/schemas/ConnectionFee'
        connection_slas:
          $ref: '#/components/schemas/ConnectionSLA'
        connection_adjustments:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/ConnectionAdjustment'
        options:
          $ref: '#/components/schemas/ConnectionOption'
        approved_items_count:
          description: Count of approved items
          example: 2
          type: integer
          readOnly: true
        orders_last_7_days_count:
          description: Count of orders in the last 7 days
          example: 8
          type: integer
          readOnly: true
        proposals_received_last_7_days_count:
          description: Count of proposals received in the last 7 days
          example: 8
          type: integer
          readOnly: true
        metadata:
          description: Additional information, if any
          type: string
          readOnly: true
        attachments:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Attachment'
        memos:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Memo'
        referral:
          $ref: '#/components/schemas/ConnectionReferral'
        packing_slip_template:
          description: Template of the packing slip
          maxLength: 64
          type: string
          nullable: true
        integration_type:
          description: Integration type
          example: API
          type: string
          nullable: true
          enum:
            - console
            - edi
            - api
            - storefront
            - console-print-labels
            - console-register-tracking-numbers
            - shopify
            - bigcommerce
            - shipstation
        retailer_identifier:
          description: Retailer identifier
          example: Retailer 877
          maxLength: 32
          type: string
          nullable: true
        onboarding_status:
          description: Status of retailer onboarding
          example: Completed
          type: string
          nullable: true
          enum:
            - pending
            - complete
        onboarding_target_date:
          description: Target date for retailer onboarding (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        onboarded_at:
          description: Time of retailer onboarding (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
    BrandContactInfo:
      required:
        - code
      type: object
      properties:
        id:
          description: ID of vendor (or brand) contact
          example: 5424
          type: integer
          readOnly: true
        name:
          description: Vendor contact name
          example: Vendor ABC
          maxLength: 64
          minLength: 1
          type: string
        code:
          description: Vendor contact code
          example: vendor_abc
          maxLength: 64
          minLength: 1
          pattern: ^[-a-zA-Z0-9_]+$
          type: string
          format: slug
        logo_url:
          description: URL of vendor logo
          example: >-
            https://assets.demo.com/attachments/path_to_attachment/attachment.pdf
          minLength: 1
          type: string
          format: uri
          readOnly: true
        cover_url:
          description: URL of the vendor cover
          example: >-
            https://assets.demo.com/attachments/path_to_attachment/attachment.pdf
          minLength: 1
          type: string
          format: uri
          readOnly: true
        profile_tile_url:
          description: URL of the vendor profile image
          example: >-
            https://assets.demo.com/attachments/path_to_attachment/attachment.pdf
          minLength: 1
          type: string
          format: uri
          readOnly: true
        uuid:
          description: 'Universally unique identifier (UUID) '
          example: 54a947ea-19db-4563-8447-1bb2f113c127
          maxLength: 36
          type: string
        joined_at:
          description: Time of vendor joining the platform (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        default_ship_from_location:
          $ref: '#/components/schemas/Location'
        connections_manager:
          $ref: '#/components/schemas/UserContactInfo'
        merchandising_manager:
          $ref: '#/components/schemas/UserContactInfo'
        shipping_manager:
          $ref: '#/components/schemas/UserShort'
        preferences:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Preference'
        verticals:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Vertical'
        attachments:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Attachment'
        website:
          description: Brand URL
          example: >-
            https://assets.demo.com/attachments/path_to_attachment/attachment.pdf
          maxLength: 100
          type: string
          format: uri
          nullable: true
        is_onboarded:
          description: 'true: brand is onboarded <br /> false: brand is not onboarded'
          example: true
          type: boolean
          readOnly: true
        onboarded_at:
          description: Time of vendor onboarding (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        assigned_onboarding_tasks:
          $ref: '#/components/schemas/AssignedOnboardingTask'
        requires_subscription:
          description: Represents whether subscription is required
          example: disabled
          type: string
          enum:
            - disabled
            - enabled
            - upcoming
        inventory_policy:
          description: Inventory policy
          example: unmanaged
          type: string
          enum:
            - unmanaged
            - managed
            - use_variant_policy
    ConnectionContact:
      type: object
      properties:
        id:
          description: ID of connection contact
          example: 1546
          type: integer
          readOnly: true
        contact_type:
          description: Contact type
          example: merchandising
          type: string
          enum:
            - orders
            - merchandising
            - finance
            - inventory
        brand:
          $ref: '#/components/schemas/BrandShort'
        retailer:
          $ref: '#/components/schemas/RetailerShort'
        user_id:
          description: User ID
          example: 201
          type: integer
          readOnly: true
        first_name:
          description: First name of contact
          example: Demo
          minLength: 1
          type: string
          readOnly: true
        last_name:
          description: Last name of contact
          example: Sample
          minLength: 1
          type: string
          readOnly: true
        email:
          description: Email ID of contact
          example: demo-sample@anc.com
          minLength: 1
          type: string
          readOnly: true
        phone:
          description: Phone number of contact
          example: '12456245984'
          minLength: 1
          type: string
          readOnly: true
    ConnectionCredential:
      required:
        - code
        - name
        - value
      type: object
      properties:
        id:
          description: Connection credential ID
          example: 125
          type: integer
          readOnly: true
        name:
          description: Connection credential name
          example: SampleCred
          maxLength: 256
          minLength: 1
          type: string
        value:
          description: Connection credential value
          example: Sample1
          maxLength: 2048
          minLength: 1
          type: string
        code:
          description: Connection credential code
          example: sample_cred
          maxLength: 256
          minLength: 1
          type: string
        is_encrypted:
          description: >-
            true: connection is encrypted <br /> <br /> connection is not
            encrypted
          example: true
          type: boolean
    ConnectionFee:
      type: object
      properties:
        id:
          description: Connection fee ID
          example: 1000
          type: integer
          readOnly: true
        payment_model:
          description: Payment model
          example: managed
          type: string
          nullable: true
          enum:
            - direct
            - managed
        payment_terms:
          description: Payment terms
          example: net60
          type: string
          nullable: true
          enum:
            - net15
            - net30
            - net45
            - net60
            - net90
        net_price_method:
          description: Method used to calculate net price
          example: permit_cost
          type: string
          nullable: true
          enum:
            - estimated_commission
            - product_cost
            - specified_in_order
            - revshare
            - permit_cost
        revshare_fraction:
          description: Internal only
          example: '0.4000'
          type: string
          format: decimal
          nullable: true
        revc_fee_flat:
          description: Internal only
          example: '0.00'
          minLength: 1
          type: string
        revc_fee_fraction:
          description: Internal only
          example: '0.0300'
          minLength: 1
          type: string
        brand_fee_flat:
          description: Internal only
          example: '0.00'
          minLength: 1
          type: string
        brand_flat_order_fee:
          description: Internal only
          example: '0.00'
          type: string
          format: decimal
          nullable: true
        brand_percent_order_fee:
          description: Vendor percentage of order fee
          example: '0.0000'
          type: string
          format: decimal
          nullable: true
        effective_at:
          description: Time connection fee became effective (UTC format)
          example: '2015-10-10T00:00:00Z'
          type: string
          format: date-time
          readOnly: true
    ConnectionSLA:
      type: object
      properties:
        id:
          description: Connection SLA ID
          example: 1000
          type: integer
          readOnly: true
        brand_inventory_hours:
          description: Inventory update SLA (in hours)
          example: 24
          maximum: 4294967295
          minimum: 0
          type: integer
        brand_fulfillment_hours:
          description: Fulfillment hours of brand
          example: 48
          maximum: 4294967295
          minimum: 0
          type: integer
        brand_cancel_hours:
          description: Timeframe for vendor to cancel order
          example: 24
          maximum: 4294967295
          minimum: 0
          type: integer
        brand_acknowledge_hours:
          description: Timeframe for vendor to acknowledge order
          example: 12
          maximum: 4294967295
          minimum: 0
          type: integer
        retailer_cancel_hours:
          description: Timeframe for retailers to cancel order
          example: 24
          maximum: 4294967295
          minimum: 0
          type: integer
        retailer_return_hours:
          description: Timeframe for retailers to return order
          example: 720
          maximum: 4294967295
          minimum: 0
          type: integer
    AdjustmentCode:
      required:
        - adjustment_type
        - code
        - description
      type: object
      properties:
        id:
          description: Adjustment ID
          example: 1
          type: integer
          readOnly: true
        adjustment_type:
          description: Adjustment type
          example: Allowance
          type: string
          enum:
            - allowance
            - charge
        code:
          description: Adjustment code
          example: returns_allowance
          maxLength: 64
          minLength: 1
          type: string
        description:
          description: Description of adjustment
          example: returns_allowance
          maxLength: 128
          minLength: 1
          type: string
    ConnectionAdjustment:
      required:
        - description
      type: object
      properties:
        id:
          description: Connection adjustment ID, used for monetary adjustments
          example: 123442
          type: integer
          readOnly: true
        adjustment_code:
          $ref: '#/components/schemas/AdjustmentCode'
        description:
          description: Description of adjustment
          example: Sample description for monetary adjustments
          maxLength: 256
          minLength: 1
          type: string
        adjustment_type:
          description: Adjustment type
          example: Discount
          type: string
          readOnly: true
        adjustment_amount_type:
          description: Adjustment type - dollar amount or percentage
          example: flat
          type: string
          enum:
            - percent
            - flat
        adjustment_amount:
          description: Adjustment amount
          example: '12'
          type: string
          format: decimal
        content_type:
          description: Content type
          example: PDF
          minLength: 1
          type: string
          readOnly: true
        object_id:
          description: Object ID
          example: 45646
          maximum: 4294967295
          minimum: 0
          type: integer
          nullable: true
    Location:
      required:
        - nickname
      type: object
      properties:
        id:
          description: Location ID
          example: 87574
          type: integer
          readOnly: true
        nickname:
          description: Location nickname
          example: Sample Location
          maxLength: 64
          minLength: 1
          type: string
        type:
          description: Location type
          example: warehouse
          type: string
          enum:
            - warehouse
            - store
            - headquarters
            - billing
            - return_center
            - ship_to
        address:
          description: Location address
          example: null
          type: string
          readOnly: true
    UserContactInfo:
      type: object
      properties:
        id:
          description: User ID
          example: 355
          type: integer
          readOnly: true
        first_name:
          description: First name of user
          example: Demo
          maxLength: 64
          type: string
          nullable: true
        last_name:
          description: Last name of user
          example: Sample
          maxLength: 64
          type: string
          nullable: true
        email:
          description: Email address of user
          example: demo.sample@gmail.com
          maxLength: 128
          type: string
          format: email
          nullable: true
        title:
          description: Title of the user
          example: Dr
          maxLength: 64
          type: string
          nullable: true
        phone:
          description: Contact number of user
          example: '1234567890'
          maxLength: 16
          type: string
          nullable: true
        status:
          description: Status of user
          example: active
          type: string
          enum:
            - active
            - invited
            - locked
        type:
          description: User type
          example: standard
          type: string
          enum:
            - standard
            - api
        photo_url:
          description: URL of user image
          example: >-
            https://assets.demo.com/attachments/path_to_attachment/attachment.pdf
          minLength: 1
          type: string
          format: uri
          readOnly: true
        profile_photo:
          description: URL of profile image
          example: >-
            https://assets.demo.com/attachments/path_to_attachment/attachment.pdf
          minLength: 1
          type: string
          format: uri
          readOnly: true
        is_me:
          description: 'true: logged in user is me <br /> logged in user is not me'
          example: true
          type: boolean
          readOnly: true
    Currency:
      type: object
      properties:
        id:
          description: Currency ID
          example: 1
          type: integer
          readOnly: true
        name:
          description: Currency name
          example: United States Dollar
          maxLength: 200
          type: string
        symbol:
          description: Currency symbol
          example: $
          maxLength: 5
          type: string
          nullable: true
        unit:
          description: Currency unit
          example: USD
          type: string
          readOnly: true
    Timezone:
      required:
        - code
        - name
      type: object
      properties:
        id:
          description: Timezone ID
          example: 7567
          type: integer
          readOnly: true
        name:
          description: Timezone name
          example: Demo
          maxLength: 32
          minLength: 1
          type: string
        code:
          description: Timezone code
          example: demo
          maxLength: 32
          minLength: 1
          type: string
    PreferenceOption:
      required:
        - code
        - name
      type: object
      properties:
        id:
          description: Preference option ID
          example: 234
          type: integer
          readOnly: true
        name:
          description: Preference option name
          example: Sample Prefs
          maxLength: 32
          minLength: 1
          type: string
        code:
          description: Preference option code
          example: sample_prefs
          maxLength: 32
          minLength: 1
          type: string
        value:
          description: Preference option value
          maxLength: 256
          type: string
          nullable: true
        currency:
          $ref: '#/components/schemas/Currency'
        timezone:
          $ref: '#/components/schemas/Timezone'
    BrandPreference:
      type: object
      properties:
        id:
          description: Brand preference ID
          example: 545
          type: integer
          readOnly: true
        option_id:
          description: Option ID
          example: '656'
          type: string
          readOnly: true
        currency:
          $ref: '#/components/schemas/Currency'
        timezone:
          $ref: '#/components/schemas/Timezone'
        value:
          description: Value based on the preference
          maxLength: 256
          type: string
          nullable: true
    RetailerPreference:
      type: object
      properties:
        id:
          description: Retailer preference ID
          example: 124
          type: integer
          readOnly: true
        option_id:
          description: Option ID
          example: SampleOpt123
          type: string
          readOnly: true
        currency:
          $ref: '#/components/schemas/Currency'
        timezone:
          $ref: '#/components/schemas/Timezone'
        value:
          description: Value based on the preference
          maxLength: 256
          type: string
          nullable: true
    UserPreference:
      type: object
      properties:
        id:
          description: User preference ID
          example: 154
          type: integer
          readOnly: true
        option_id:
          description: Option ID
          example: Sample Option
          type: string
          readOnly: true
        currency:
          $ref: '#/components/schemas/Currency'
        timezone:
          $ref: '#/components/schemas/Timezone'
        value:
          description: Value based on the preference
          maxLength: 256
          type: string
          nullable: true
    Preference:
      required:
        - code
        - content_type
        - name
        - type
      type: object
      properties:
        id:
          description: Preference ID
          example: 901
          type: integer
          readOnly: true
        name:
          description: Preference name
          example: Currency
          maxLength: 64
          minLength: 1
          type: string
        code:
          description: Preference code
          example: currency
          maxLength: 64
          minLength: 1
          type: string
        type:
          description: Preference type
          example: freeform
          type: string
          enum:
            - boolean
            - link
            - options
            - freeform
            - integer
            - decimal
        grouping:
          description: Grouping preference
          example: Orders
          type: string
          enum:
            - locale
            - misc
            - onboarding
            - orders
            - proposals
            - products
        priority:
          description: Preference priority
          example: 5
          maximum: 4294967295
          minimum: 0
          type: integer
        description:
          description: Preference description
          example: Sample description for demo preference
          type: string
        content_type:
          description: Content type
          example: null
          type: integer
        default_option:
          $ref: '#/components/schemas/PreferenceOption'
        options:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/PreferenceOption'
        payload_type:
          description: Payload type. Default type is value.
          example: value
          type: string
          readOnly: true
        brand_preference:
          $ref: '#/components/schemas/BrandPreference'
        retailer_preference:
          $ref: '#/components/schemas/RetailerPreference'
        user_preference:
          $ref: '#/components/schemas/UserPreference'
    Vertical:
      required:
        - code
        - name
      type: object
      properties:
        id:
          description: Vertical ID
          example: 123
          type: integer
          readOnly: true
        name:
          description: Vertical name
          example: Sample Vertical
          maxLength: 32
          minLength: 1
          type: string
        code:
          description: Vertical code
          example: sample_vertical
          maxLength: 32
          minLength: 1
          type: string
        assets:
          type: array
          items:
            properties: {}
    OnboardingTask:
      required:
        - code
        - name
        - priority
        - status
        - type
      type: object
      properties:
        id:
          description: Onboarding task ID
          example: 345
          type: integer
          readOnly: true
        name:
          description: Task name
          example: Task1
          maxLength: 128
          minLength: 1
          type: string
        code:
          description: Task code
          example: task1
          maxLength: 64
          minLength: 1
          type: string
        description:
          description: Task descripton
          example: Onboard sample task 1
          maxLength: 256
          type: string
          nullable: true
        type:
          description: Task type
          example: Initial
          type: string
          enum:
            - initial
            - conditional
            - network
        priority:
          description: Task prority
          example: 2
          maximum: 4294967295
          minimum: 0
          type: integer
        status:
          description: Task status
          example: In Progress
          type: string
          enum:
            - active
            - inactive
        content_type:
          description: Content type
          example: PDF
          minLength: 1
          type: string
          readOnly: true
        created_at:
          description: Time of task creation (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    UserMini:
      type: object
      properties:
        id:
          description: User ID
          example: 145
          type: integer
          readOnly: true
        first_name:
          description: First name of user
          example: Demo
          maxLength: 64
          type: string
          nullable: true
        last_name:
          description: Last name of user
          example: Sample
          maxLength: 64
          type: string
          nullable: true
        name:
          description: Full name of user
          example: Demo Sample
          minLength: 1
          type: string
          readOnly: true
        email:
          description: Email address of user
          example: demo@xyz.com
          maxLength: 128
          type: string
          format: email
          nullable: true
        title:
          description: Title of user
          example: Mr
          maxLength: 64
          type: string
          nullable: true
        status:
          description: User status
          example: active
          type: string
          enum:
            - active
            - invited
            - locked
        type:
          description: User type
          example: standard
          type: string
          enum:
            - standard
            - api
    AssignedOnboardingTask:
      type: object
      properties:
        id:
          description: Onboarding task ID (vendor context)
          example: 125
          type: integer
          readOnly: true
        onboarding_task:
          $ref: '#/components/schemas/OnboardingTask'
        info:
          description: JSON object with details, if applicable
          type: object
          properties: {}
        completed_at:
          description: Time of task completion (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        completed_by:
          $ref: '#/components/schemas/UserMini'
        created_at:
          description: Time of task creation (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    RetailerOrderLine:
      required:
        - ordered_at
        - quantity
      type: object
      properties:
        id:
          description: Order line ID
          example: 10013
          type: integer
          readOnly: true
        order_line_number:
          description: Order line number (auto-incremental number)
          example: SampleOL-1
          type: string
          readOnly: true
        quantity:
          description: Total products in the order
          example: 2
          type: integer
        quantity_open:
          description: Quantity to be shipped
          example: 2
          type: integer
          readOnly: true
        quantity_shipped:
          description: Quantity shipped
          example: 0
          type: integer
          readOnly: true
        quantity_returned:
          description: Quantity returned
          example: 0
          type: integer
          readOnly: true
        quantity_canceled:
          description: Quantity cancelled
          example: 0
          type: string
          readOnly: true
        quantity_invoiced:
          description: Quantity invoiced
          example: 0
          type: integer
          readOnly: true
        packages_per_quantity:
          description: Number of packages per quantity
          type: integer
        price:
          description: Discounted price
          example: '8.99'
          type: string
          readOnly: true
        net_price:
          description: Net price
          example: '5.39'
          type: string
          readOnly: true
        subtotal:
          description: Subtotal amount
          example: '17.98'
          type: string
          readOnly: true
        estimated_price:
          description: Estimated price
          example: null
          type: string
          format: decimal
          nullable: true
        shipping_charged:
          description: Shipping cost
          example: '0.00'
          type: string
          format: decimal
        gift_fee:
          description: Gift fee
          example: null
          type: string
          format: decimal
          nullable: true
        subtotal_charged:
          description: Subtotal charged
          example: '17.98'
          type: string
          readOnly: true
        tax_charged:
          description: Tax charged
          example: '0.00'
          type: string
          format: decimal
        total_charge:
          description: Total charge
          example: '12'
          type: string
          format: decimal
        status:
          description: Order status
          example: open
          minLength: 1
          type: string
          readOnly: true
        fulfill_by:
          description: >-
            Time all products in the order are expected to be completely
            fulfilled. Automatically determined based on a combination of item
            lead time and the connection's SLA.
          example: '2022-12-19T03:59:59Z'
          type: string
          readOnly: true
        canceled_at:
          description: Time of cancellation (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        ordered_at:
          description: Time of order finalization (UTC format)
          example: '2022-08-01T12:00:00Z'
          type: string
          format: date-time
        backordered_until:
          description: Time till when product is backordered (UTC format)
          example: null
          type: string
          format: date-time
          readOnly: true
        variant:
          description: Details of product variant
          type: string
        metadata:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/OrderMetadataValue'
    OrderMetadataValue:
      type: object
      properties:
        id:
          description: Metadata ID
          example: 456
          type: integer
          readOnly: true
        name:
          description: Metadata name
          example: MD143
          minLength: 1
          type: string
          readOnly: true
        value:
          description: Metadata value, depending on the *type*
          example: '12'
          type: string
          nullable: true
        type:
          description: Metadata type such as integer, float, etc.
          example: string
          minLength: 1
          type: string
          readOnly: true
        created_at:
          description: Time of metadata creation (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    ShippingProvider:
      type: object
      properties:
        id:
          description: Shipping provider ID
          example: 2455
          type: integer
          readOnly: true
        name:
          description: Name of shipping provider
          example: Sample shipping provider
          maxLength: 32
          type: string
          nullable: true
        credentials:
          description: Credentials for shipping provider
          type: string
          readOnly: true
        shipping_methods:
          description: Shipping methods
          example: Next day delivery
          type: string
          readOnly: true
        created_at:
          description: Time of shipping provider creation (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        updated_at:
          description: Time of shipping provider update (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    Credential:
      required:
        - code
        - data_type
        - name
      type: object
      properties:
        id:
          description: Credentials ID
          example: 656
          type: integer
          readOnly: true
        code:
          description: Credentials code
          example: cred_sample
          maxLength: 64
          minLength: 1
          type: string
        name:
          description: Credentials code
          example: Cred Sample
          maxLength: 64
          minLength: 1
          type: string
        data_type:
          description: Data type of credentials
          example: text
          type: string
          enum:
            - text
            - boolean
        is_required:
          description: '1: Credentials are required <br /> 0: Credentials are not required'
          example: 1
          maximum: 2147483647
          minimum: -2147483648
          type: integer
        is_encrypted:
          description: '1: Credentials are encrypted <br /> 0: Credentials are not encrypted'
          example: 1
          maximum: 2147483647
          minimum: -2147483648
          type: integer
        created_at:
          description: Time of credentials creation (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        updated_at:
          description: Time of credentials update (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    CredentialValue:
      type: object
      properties:
        id:
          description: Credentials ID
          example: 165
          type: integer
          readOnly: true
        credential:
          $ref: '#/components/schemas/Credential'
        value:
          description: Credentials value
          type: string
          readOnly: true
        created_at:
          description: Time of credentials creation (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        updated_at:
          description: Time of credentials update (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    ShippingProviderAccount:
      type: object
      properties:
        id:
          description: Account ID of shipping provider
          example: 76546
          type: integer
          readOnly: true
        shipping_provider:
          $ref: '#/components/schemas/ShippingProvider'
        shipping_methods:
          $ref: '#/components/schemas/ShippingMethod'
        credential_values:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/CredentialValue'
        created_at:
          description: Time of account (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        updated_at:
          description: Time of account update (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    ConnectionShippingProviderAccount:
      type: object
      properties:
        id:
          description: Shipping carrier account ID
          example: 123
          type: integer
          readOnly: true
        connection:
          $ref: '#/components/schemas/ConnectionShort'
        shipping_provider_account:
          $ref: '#/components/schemas/ShippingProviderAccount'
        shipping_methods:
          $ref: '#/components/schemas/ShippingMethod'
        created_at:
          description: Time of creation (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        updated_at:
          description: Time of last update (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    EdiAccount:
      required:
        - identifier
        - secondary_identifier
      type: object
      properties:
        id:
          description: EDI account ID
          example: 2344
          type: integer
          readOnly: true
        status:
          description: EDI account status
          example: active
          type: string
          enum:
            - setup
            - testing
            - active
            - disabled
            - suspended
        retailer:
          $ref: '#/components/schemas/RetailerShort'
        brand:
          $ref: '#/components/schemas/BrandShort'
        identifier:
          description: Unique identifier of EDI account
          example: SKU1
          maxLength: 32
          minLength: 1
          type: string
        secondary_identifier:
          description: Secondary identifier of EDI account
          example: ACF1
          maxLength: 32
          type: string
          nullable: true
        qualifier:
          description: >-
            Type of identifier used by EDI account. 01 means EDI account is
            using DUNS number as identifier
          example: '01'
          type: string
          default: ZZ
          enum:
            - ZZ
            - '01'
            - '02'
            - '08'
            - '09'
            - '12'
            - '13'
            - '14'
            - '15'
            - '16'
    Document:
      required:
        - transaction_set
        - transaction_set_control_number
      type: object
      properties:
        id:
          description: Document ID
          example: 254
          type: integer
          readOnly: true
        jobs:
          type: array
          items:
            $ref: '#/components/schemas/Job'
        transaction_set:
          description: Transaction set
          example: '810'
          type: string
          enum:
            - '810'
            - '846'
            - '850'
            - '855'
            - '856'
            - '860'
            - '997'
        transaction_set_control_number:
          description: Transaction set control number related to EDI
          example: 456
          maximum: 4294967295
          minimum: 0
          type: integer
        accepted_at:
          description: Time of document acceptance (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        rejected_at:
          description: Time of document rejection (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
    EnvelopeEntity:
      required:
        - content_type
        - envelope
        - object_id
      type: object
      properties:
        id:
          description: Envelop entity ID
          example: 2145
          type: integer
          readOnly: true
        envelope:
          $ref: '#/components/schemas/Envelope'
        content_type:
          description: Content type
          example: PDF
          type: integer
        object_id:
          description: Object ID associated with the content type
          example: 666
          maximum: 4294967295
          minimum: 0
          type: integer
    Envelope:
      required:
        - data_interchange_control_number
        - direction
        - functional_identifier
        - interchange_control_number
      type: object
      properties:
        id:
          description: Envelop ID
          example: 663
          type: integer
          readOnly: true
        sender:
          $ref: '#/components/schemas/EdiAccount'
        receiver:
          $ref: '#/components/schemas/EdiAccount'
        edi:
          description: Electronic data exchange (EDI)
          type: string
          readOnly: true
        interchange_control_number:
          description: Interchange control number
          example: 2545
          maximum: 4294967295
          minimum: 0
          type: integer
        data_interchange_control_number:
          description: Data interchange control number
          example: 12455
          maximum: 4294967295
          minimum: 0
          type: integer
        direction:
          description: Direction of envelop
          example: incoming
          type: string
          enum:
            - incoming
            - outgoing
        request_acknowledgment:
          description: >-
            true: Request is acknowledged <br /> false: Request is not
            acknowledged.
          example: true
          type: boolean
        functional_identifier:
          description: Functional identifier
          example: PO
          type: string
          enum:
            - PO
            - IN
            - SH
            - IB
            - FA
            - PR
            - PC
        sub_element_delimiter:
          description: Sub element delimiter
          maxLength: 12
          minLength: 1
          type: string
        segment_delimiter:
          description: Segment delimited
          example: demo12
          maxLength: 12
          minLength: 1
          type: string
        element_delimiter:
          description: Element delimiter
          maxLength: 12
          minLength: 1
          type: string
        accepted_at:
          description: Time of envelope acceptance (UTC format)
          example: '2021-10-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        created_at:
          description: Time of envelope creation (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        rejected_at:
          description: Time of envelope rejection (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        transmitted_at:
          description: Time of envelope transmittance (UTC format)
          example: '2021-11-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        documents:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Document'
        entities:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/EnvelopeEntity'
    RetailerMini:
      required:
        - code
        - name
      type: object
      properties:
        id:
          description: Retailer ID
          example: 510
          type: integer
          readOnly: true
        code:
          description: >-
            Retailer code, which same as retailer name but in lower case and
            underscore
          example: hobie_store
          maxLength: 32
          minLength: 1
          pattern: ^[-a-zA-Z0-9_]+$
          type: string
          format: slug
        name:
          description: Retailer name
          example: Hobie Store
          maxLength: 64
          minLength: 1
          type: string
    BrandMini:
      required:
        - code
      type: object
      properties:
        id:
          description: Vendor ID
          example: 456
          type: integer
          readOnly: true
        code:
          description: Vendor code. Same as vendor name in lower case and hyphenated
          example: marla-store
          maxLength: 64
          minLength: 1
          pattern: ^[-a-zA-Z0-9_]+$
          type: string
          format: slug
        name:
          description: Vendor name
          example: Marla Store
          maxLength: 64
          minLength: 1
          type: string
    CancelLine:
      type: object
      properties:
        id:
          description: Cancel line ID
          example: 7898
          type: integer
          readOnly: true
        variant:
          description: Variant name
          example: Var1
          type: string
          readOnly: true
        quantity:
          description: Variant quantity
          example: 3
          maximum: 2147483647
          minimum: -2147483648
          type: integer
        estimated_availability_date:
          description: Estimated availability date of variant
          example: 12-12-2022
          type: string
          format: date
          nullable: true
    Cancel:
      required:
        - reason_id
      type: object
      properties:
        id:
          description: Cancellation ID
          example: 456
          type: integer
          readOnly: true
        retailer:
          $ref: '#/components/schemas/RetailerMini'
        brand:
          $ref: '#/components/schemas/BrandMini'
        canceled_at:
          description: Time of cancellation (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        canceled_by:
          description: User that initiated cancellation
          example: retailer
          type: string
          nullable: true
          enum:
            - retailer
            - brand
        cancel_lines:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/CancelLine'
        reason_id:
          description: Reason ID associated with cancellation
          example: 879
          type: integer
        order_id:
          description: Order ID
          example: '5465'
          type: integer
          readOnly: true
        purchase_order_number:
          description: Purchase order number
          example: CS192168
          minLength: 1
          type: string
          readOnly: true
        reason:
          description: Cancellation reason
          example: Incorrect
          minLength: 1
          type: string
          readOnly: true
        acknowledged_at:
          description: Time of cancellation acknowledgement (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
    ShippingAccount:
      required:
        - nickname
      type: object
      properties:
        id:
          description: Shipping account ID
          example: 3
          type: integer
          readOnly: true
        nickname:
          description: Nickname of shipping account
          example: Hobie FedEx
          maxLength: 64
          minLength: 1
          type: string
        owner:
          description: Owner of shipping account
          example: Sample Owner
          type: string
          readOnly: true
        carrier:
          $ref: '#/components/schemas/Carrier'
        is_first_party_bill:
          description: >-
            true: is first party billed shipment <br /> false Is not first party
            bill
          example: true
          type: boolean
    TrackingDetail:
      required:
        - status
        - status_detail
        - Time
      type: object
      properties:
        id:
          description: Tracking ID
          example: 78895456
          type: integer
          readOnly: true
        Time:
          description: Time of tracking (UTC format)
          example: 10-10-2022
          type: string
          format: date-time
        status:
          description: Tracking status
          example: Delivered
          maxLength: 32
          minLength: 1
          type: string
        status_detail:
          description: Status details
          example: Out for delivery
          maxLength: 64
          minLength: 1
          type: string
        country:
          description: Country of delivery
          example: USA
          maxLength: 8
          type: string
          nullable: true
        state:
          description: State of delivery
          example: New york
          maxLength: 8
          type: string
          nullable: true
        city:
          description: City of delivery
          example: New york
          maxLength: 32
          type: string
          nullable: true
        postal_code:
          description: Postal code for delivery
          example: 123R32
          maxLength: 16
          type: string
          nullable: true
    Tracking:
      type: object
      properties:
        picked_up_at:
          description: Time of order pickup
          example: '2022-08-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        delivered_at:
          description: Time of order delivery
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        tracking_details:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/TrackingDetail'
    VariantMini:
      type: object
      properties:
        id:
          description: Variant ID
          example: 249
          type: integer
          readOnly: true
        name:
          description: Variant name
          example: Var45
          maxLength: 200
          type: string
          nullable: true
        brand:
          $ref: '#/components/schemas/BrandMini'
        identifier:
          description: Stock Keeping Unit (SKU), unique identifier of a product
          example: 123-DEF12345
          maxLength: 128
          type: string
          nullable: true
        brand_identifier:
          description: Brand identifier
          example: HATR
          minLength: 1
          type: string
          readOnly: true
        upc:
          description: >-
            Universal product code (UPC) is a 12-digit combination of numbers
            assigned to each product in your drop-shipping store
          example: 555555555202
          maxLength: 64
          type: string
        retailer_identifiers:
          type: array
          items:
            $ref: '#/components/schemas/RetailerIdentifier'
    RetailerOrder:
      required:
        - ordered_at
        - purchase_order_number
      type: object
      properties:
        id:
          description: Order ID
          example: 1016
          type: integer
          readOnly: true
        customer_order_number:
          description: Customer order number
          example: '100000'
          maxLength: 64
          type: string
          nullable: true
        purchase_order_number:
          description: Purchase order number
          example: 1234-100000
          minLength: 1
          type: string
        retailer_order_number:
          description: Retailer order number
          example: '1225466845'
          minLength: 1
          type: string
        brand_identifier:
          description: Vendor identifier
          example: '423432322'
          maxLength: 64
          type: string
          nullable: true
        retailer:
          $ref: '#/components/schemas/RetailerShort'
        brand:
          $ref: '#/components/schemas/BrandShort'
        brands:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/BrandShort'
        connection_id:
          description: A numeric connection ID
          example: 10
          type: integer
        shipping_method:
          $ref: '#/components/schemas/ShippingMethod'
        requested_shipping_method_id:
          description: ID of the requested shipping method
          example: 768
          type: integer
        requested_shipping_method:
          $ref: '#/components/schemas/GenericShippingMethod'
        shipment_count:
          description: Shipment count
          example: 1
          type: integer
          readOnly: true
        invoice_count:
          description: Invoice count
          example: 1
          type: integer
          readOnly: true
        bill_to:
          $ref: '#/components/schemas/Address'
        sold_to:
          $ref: '#/components/schemas/Address'
        ship_to:
          $ref: '#/components/schemas/Address'
        ship_from:
          $ref: '#/components/schemas/Address'
        return_to:
          $ref: '#/components/schemas/Address'
        allow_shipping_label_generation:
          description: >-
            true: Automatically generates shipping labels based on the carrier
            <br /> false: Does not support generation of shipping labels
          example: true
          type: boolean
        subtotal_charged:
          description: Subtotal amount excluding shipping
          example: '25.96'
          type: string
          readOnly: true
        shipping_charged:
          description: Shipped charged
          example: '2.99'
          type: string
          format: decimal
        is_gift:
          description: 'true: Order is a gift <br /> false: Order is not a gift'
          example: false
          type: boolean
        gift_fee:
          description: Gift fee (if applicable)
          example: null
          type: string
          format: decimal
          nullable: true
        is_replacement:
          description: >-
            true: order is a replacement <br /> false: order is not a
            replacement
          example: false
          type: boolean
        status:
          description: Order status
          example: open
          minLength: 1
          type: string
          readOnly: true
        currency:
          $ref: '#/components/schemas/Currency'
        is_acknowledged:
          description: 'true: Order is acknowledged <br /> false: Order is not acknowledged'
          example: false
          type: boolean
          readOnly: true
        ordered_at:
          description: Time of order finalization (UTC format)
          example: '2017-08-01T12:00:00Z'
          type: string
          format: date-time
        acknowledged_at:
          description: Time of order acknowledgement (UTC format)
          example: '2022-08-01T12:00:00Z'
          type: string
          format: date-time
          nullable: true
        fulfill_by:
          description: Time when order will be completely fulfilled (UTC format)
          example: '2022-12-19T03:59:59Z'
          type: string
          readOnly: true
        fulfilled_at:
          description: Time of order fulfillment (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        closed_at:
          description: Time of complete order fulfillment (UTC format)
          example: null
          type: string
          format: date-time
          readOnly: true
        received_at:
          description: Time of when order was received (UTC format)
          example: null
          type: string
          format: date-time
          readOnly: true
        is_on_hold:
          description: 'true: Order is on hold <br /> false: Order is not on hold'
          example: false
          type: boolean
          readOnly: true
        pickup_on:
          description: Time of when order was picked up (UTC format)
          example: null
          type: string
          format: date
          nullable: true
        on_hold_at:
          description: Time of when order got placed on hold (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        on_hold_until:
          description: Date till when the order will be on hold
          example: null
          type: string
          format: date
          nullable: true
        backordered_until:
          description: Time till when product or order is backordered (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        backorder_acknowledged_at:
          description: Time of backorder acknowledgement (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        canceled_at:
          description: Time of order cancellation (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        updated_at:
          description: Time of order update (UTC format)
          example: '2022-08-03T17:45:11Z'
          type: string
          format: date-time
          readOnly: true
        order_lines:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/RetailerOrderLine'
        cancels:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Cancel'
        shipments:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/RetailerShipmentList'
        attachments:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Attachment'
        memos:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Memo'
        memos_count:
          description: Total memos
          example: 1
          type: integer
          readOnly: true
        unread_memos_count:
          description: Number of unread memos
          example: 0
          type: integer
          readOnly: true
        tags:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/ObjectTagItem'
        gift_message:
          description: Gift message
          example: Gift
          type: string
          readOnly: true
        fill_time:
          description: Fill time
          example: null
          type: string
          format: decimal
          nullable: true
        invoices:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Invoice'
        signature:
          description: Represents whether signature is required
          example: null
          type: string
          nullable: true
          enum:
            - required
            - not_required
            - adult
        rmas:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/RMA'
        credits:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Credit'
        order_batches:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/OrderBatchId'
        metadata:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/OrderMetadataValue'
        connection_shipping_provider_account:
          $ref: '#/components/schemas/ConnectionShippingProviderAccount'
        is_priority:
          description: 'true: Priority order <br /> false: Not a priority order'
          example: false
          type: boolean
        priority_user:
          $ref: '#/components/schemas/UserShort'
        envelopes:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Envelope'
    ConnectionShort:
      type: object
      properties:
        id:
          description: Connection ID
          example: '1001'
          type: integer
          readOnly: true
        brand:
          $ref: '#/components/schemas/BrandShort'
        retailer:
          $ref: '#/components/schemas/RetailerShort'
        status:
          description: Connection status
          example: active
          type: string
          enum:
            - active
            - suspended
            - pending
            - onboarding
        created_at:
          description: Time of connection creation
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        level:
          description: Connection type
          example: full
          type: string
          enum:
            - basic
            - full
        options:
          $ref: '#/components/schemas/ConnectionOption'
        metadata:
          description: Metadata
          example: About us
          type: string
          readOnly: true
        connection_adjustments:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/ConnectionAdjustment'
        integration_type:
          description: Integration type
          example: API
          type: string
          nullable: true
          enum:
            - console
            - edi
            - api
            - storefront
            - console-print-labels
            - console-register-tracking-numbers
            - shopify
            - bigcommerce
            - shipstation
        retailer_identifier:
          description: Variant identifier specific to retailer
          example: R566A
          maxLength: 32
          type: string
          nullable: true
    RetailerShipmentList:
      required:
        - order_id
      type: object
      properties:
        id:
          description: Shipment ID
          example: 767
          type: integer
          readOnly: true
        order_id:
          description: Order ID
          example: 677
          type: integer
        batch_number:
          description: Batch number of shipment
          example: 6
          maximum: 2147483647
          minimum: -2147483648
          type: integer
          nullable: true
        label_reference:
          description: Label reference
          example: Sample label 123
          maxLength: 30
          type: string
          nullable: true
        ordered_at:
          description: Time of shipment creation (UTC format)
          example: '2021-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        customer_order_number:
          description: Customer order number
          example: '765637'
          minLength: 1
          type: string
          readOnly: true
        retailer_order_number:
          description: Retailer order number
          example: '66367'
          minLength: 1
          type: string
          readOnly: true
        purchase_order_number:
          description: Purchase order number
          example: PO-576
          minLength: 1
          type: string
          readOnly: true
        shipping_method:
          $ref: '#/components/schemas/ShippingMethod'
        shipping_account:
          $ref: '#/components/schemas/ShippingAccount'
        tracking_number:
          description: Tracking number for shipment
          example: 1Z9999999999999988
          maxLength: 128
          type: string
          nullable: true
        tracking_url:
          description: URL for tracking shipment
          example: >-
            https://wwwapps.demo.com/WebTracking/track?track=yes&trackNums=1Z9999999999999988
          type: string
          readOnly: true
        tracking:
          $ref: '#/components/schemas/Tracking'
        status:
          description: Status of shipment
          example: Shipped
          minLength: 1
          type: string
          readOnly: true
        is_acknowledged:
          description: >-
            true: Shipment is acknowledged <br /> false: Shipment is not
            acknowledged
          example: true
          type: boolean
          readOnly: true
        has_commercial_invoice:
          description: >-
            true: Shipment has commercial invoice <br /> Shipment does not have
            commercial invoice
          example: true
          type: boolean
        canceled_at:
          description: Time of cancellation (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        sold_to:
          $ref: '#/components/schemas/Address'
        ship_to:
          $ref: '#/components/schemas/Address'
        ship_from:
          $ref: '#/components/schemas/Address'
        ship_weight:
          description: Shipment weight
          example: 10
          type: number
          nullable: true
        ship_width:
          description: Shipment width
          example: 1
          type: number
          nullable: true
        ship_length:
          description: Shipment length
          example: 1
          type: number
          nullable: true
        ship_height:
          description: Shipment height
          example: 1
          type: number
          nullable: true
        ship_girth:
          description: Shipment girth
          type: string
          readOnly: true
        ship_volume:
          description: Shipment volume
          example: 4
          type: string
          readOnly: true
        valid_packing_slip:
          description: >-
            true: Shipment has valid packing slip <br /> false: Shipment does
            not valid packing slip
          example: true
          type: boolean
          readOnly: true
        valid_shipping_label:
          description: >-
            true: Shipment has valid shipping label <br /> false: Shipment does
            not valid valid shipping label
          example: true
          type: boolean
          readOnly: true
        shipping_provider_identifier:
          description: Identifier of the shipping provider
          example: shp_3a61e10243da49ab92f0e3861d5d256b
          maxLength: 64
          type: string
          nullable: true
        error_logs:
          $ref: '#/components/schemas/ErrorLog'
        acknowledged_at:
          description: Time of acknowledgement (UTC format)
          example: '2022-08-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        closed_at:
          description: Time of shipment closure (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        delivered_at:
          description: Time of delivery (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        shipped_at:
          description: Time of shipping (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        updated_at:
          description: Time of shipment update (UTC format)
          example: '2022-09-10T15:25:56Z'
          type: string
          format: date-time
          readOnly: true
        created_at:
          description: Time of shipment creation (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        shipment_lines:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/RetailerShipmentLine'
        signature:
          description: Signature criteria
          example: null
          nullable: true
          enum:
            - required
            - not_required
            - adult
        brand:
          $ref: '#/components/schemas/BrandShort'
        invoice_number:
          description: Invoice number
          example: RC123456
          type: string
          readOnly: true
    ObjectTagItem:
      type: object
      properties:
        id:
          description: Object tag ID
          example: 536
          type: integer
          readOnly: true
        tag:
          description: Object tag
          example: Demo tag
          type: string
          readOnly: true
        created_by:
          $ref: '#/components/schemas/UserShort'
        created_at:
          description: Time of object tag creation (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        updated_at:
          description: Time of last update (UTC format)
          example: '2022-10-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    InvoiceLine:
      required:
        - price
        - quantity
      type: object
      properties:
        id:
          description: Invoice line ID
          example: 765
          type: integer
          readOnly: true
        variant:
          $ref: '#/components/schemas/VariantShort'
        invoice_line_number:
          description: Invoice line number
          example: 2
          maximum: 2147483647
          minimum: -2147483648
          type: integer
          nullable: true
        item_brand_identifier:
          description: Vendor identifier of product
          example: Vend134
          maxLength: 128
          type: string
          nullable: true
        item_upc:
          description: >-
            Universal product code (UPC) is a 12-digit combination of numbers
            assigned to each product in your dropshipping store
          example: '911911911112'
          maxLength: 32
          type: string
          nullable: true
        quantity:
          description: Product quantity
          example: 45
          maximum: 2147483647
          minimum: -2147483648
          type: integer
        name:
          description: Product name
          example: SamPro1
          maxLength: 128
          type: string
          nullable: true
        description:
          description: Product description
          example: Sample description of product
          maxLength: 128
          type: string
          nullable: true
        canceled_at:
          description: Time of cancellation (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        price:
          description: Discounted price
          example: '12.00'
          type: string
          format: decimal
        retail_price:
          description: Retail price
          example: '14.00'
          type: string
          format: decimal
          readOnly: true
    InvoiceAcceptance:
      type: object
      properties:
        id:
          description: Invoice acceptance ID
          example: 565
          type: integer
          readOnly: true
        accepted_by:
          description: Vendor acceptanc
          $ref: '#/components/schemas/UserShort'
        rejected_by:
          $ref: '#/components/schemas/UserShort'
        reject_reason:
          description: Reason for invoice rejection
          example: Incorrect
          maxLength: 128
          type: string
          nullable: true
        accepted_at:
          description: Time of invoice acceptance (UTC format)
          example: '2022-08-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        rejected_at:
          description: Time of invoice rejection (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
    Invoice:
      required:
        - invoice_number
      type: object
      properties:
        id:
          description: Invoice ID
          example: 1
          type: integer
          readOnly: true
        retailer:
          $ref: '#/components/schemas/RetailerShort'
        brand:
          $ref: '#/components/schemas/BrandShort'
        connection_id:
          description: Connection ID
          example: 2
          type: string
          readOnly: true
        currency:
          $ref: '#/components/schemas/Currency'
        invoice_number:
          description: Invoice number
          example: RC123456
          maxLength: 32
          minLength: 1
          type: string
        terms_type:
          description: Types of invoice terms
          example: Previously agreed upon
          type: string
          nullable: true
          enum:
            - End of Month (EOM)
            - No Charge
            - Consignment
            - 10 Days After End of Month (10 EOM)
            - Cash Discount Terms Apply
            - Basic
            - Fixed Date, Late Payment Penalty Applies
            - Extended
            - Discount Not Applicable
            - Fixed Date
            - Previously agreed upon
        terms_description:
          description: Description of invoice terms
          example: Previously agreed upon terms will apply
          type: string
          nullable: true
        terms_net_days_due:
          description: Number of days to pay invoice
          example: 35
          maximum: 2147483647
          minimum: -2147483648
          type: integer
          nullable: true
        terms_date_due:
          description: Payment expected date
          example: null
          type: string
          format: date
          nullable: true
        terms_discount_percent:
          description: Discount percentage on selected term
          example: null
          type: string
          format: decimal
          nullable: true
        order_id:
          description: Order ID related to invoice
          example: O-654
          type: integer
        customer_order_number:
          description: Customer order number (for enduser)
          example: CO-435
          maxLength: 64
          type: string
          nullable: true
        purchase_order_number:
          description: Purchase order number (for retailer)
          example: PO-546
          maxLength: 64
          type: string
          nullable: true
        status:
          description: Invoice status
          example: closed
          type: string
          enum:
            - closed
            - open
        remit_to:
          $ref: '#/components/schemas/Address'
        ship_from:
          $ref: '#/components/schemas/Address'
        sold_to:
          $ref: '#/components/schemas/Address'
        ship_to:
          $ref: '#/components/schemas/Address'
        shipping_carrier_name:
          description: Name of shipping carrier
          example: ALZ carrier
          maxLength: 32
          type: string
          nullable: true
        shipping_carrier_code:
          description: Code of shipping carrier
          example: 230F
          maxLength: 32
          type: string
          nullable: true
        shipping_account_number:
          description: Shipping account number
          example: SH879
          maxLength: 32
          type: string
          nullable: true
        shipping_method_name:
          description: Name of shipping method
          example: Next day delivery
          maxLength: 32
          type: string
          nullable: true
        shipping_method_code:
          description: Code of shipping method
          example: ND
          maxLength: 32
          type: string
          nullable: true
        shipping_tracking_number:
          description: Shipping tracking number
          example: 1Z9999999999999988
          maxLength: 32
          type: string
          nullable: true
        shipping_weight:
          description: Shipping weight
          example: '7.00'
          type: string
          format: decimal
          nullable: true
        notes:
          description: Addition info adding to shipping
          example: Signature required
          type: string
          nullable: true
        invoiced_at:
          description: Time of invoice creation (UTC format)
          example: '2022-05-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        ordered_at:
          description: Time of order finalization (UTC format)
          example: '2022-05-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        shipped_at:
          description: Time of shipping (UTC format)
          example: '2022-05-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        acknowledged_at:
          description: Time of retailer acknowledgement (UTC format)
          example: '2022-06-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        paid_at:
          description: Time of payment (UTC format)
          example: '2022-06-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        closed_at:
          description: Time of complete invoice payment (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        canceled_at:
          description: Time of order cancellation (UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        allowances:
          type: array
          items:
            $ref: '#/components/schemas/InvoiceAllowance'
        charges:
          type: array
          items:
            $ref: '#/components/schemas/InvoiceCharge'
        invoice_lines:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/InvoiceLine'
        net_amount:
          description: Total invoice amount (exluding taxes)
          example: '12.89'
          type: string
          format: decimal
          nullable: true
        due_amount:
          description: Pending amount
          example: '2.89'
          type: string
          format: decimal
          nullable: true
        expected_due_amount:
          description: Expected due amount (excluding *allowances* and *charges*)
          example: '2.89'
          type: string
          format: decimal
          nullable: true
        subtotal:
          description: Sub-total
          example: '10.89'
          type: string
          format: decimal
          nullable: true
        tax:
          description: Total tax on the invoice
          example: '2.00'
          type: string
          format: decimal
          nullable: true
        invoice_acceptance:
          $ref: '#/components/schemas/InvoiceAcceptance'
    InvoiceAllowance:
      required:
        - description
        - price
      type: object
      properties:
        id:
          description: Allowance ID
          example: 1
          type: integer
          readOnly: true
        adjustment_code:
          $ref: '#/components/schemas/AdjustmentCode'
        description:
          description: Description of allowance
          example: Sample-discount-allowance
          maxLength: 128
          minLength: 1
          type: string
        price:
          description: Allowance price
          example: '12.10'
          type: string
          format: decimal
    InvoiceCharge:
      required:
        - description
        - price
      type: object
      properties:
        id:
          description: Invoice ID
          example: 654
          type: integer
          readOnly: true
        adjustment_code:
          $ref: '#/components/schemas/AdjustmentCode'
        description:
          description: Invoice description
          example: Sample invoice and its description
          maxLength: 128
          minLength: 1
          type: string
        price:
          description: Invoice price
          example: '23.45'
          type: string
          format: decimal
    RMA:
      required:
        - order_id
        - reason_id
      type: object
      properties:
        id:
          description: RMA ID. This ID is required in subsequent endpoints related to RMA.
          example: 4
          type: integer
          readOnly: true
        order_id:
          description: Order ID
          example: 1000
          type: integer
        purchase_order_number:
          description: Purchase order number
          example: CS192168
          minLength: 1
          type: string
          readOnly: true
        rma_number:
          description: RMA number
          example: ABC123
          maxLength: 32
          type: string
          nullable: true
        status:
          description: RMA status. Default is Pending.
          example: Pending
          type: string
          nullable: true
          enum:
            - pending
            - approved
            - rejected
        currency:
          $ref: '#/components/schemas/Currency'
        created_by:
          description: User that initiated RMA
          example: Retailer
          type: string
          nullable: true
          enum:
            - retailer
            - brand
        rmad_at:
          description: Time of RMA creation (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        approved_at:
          description: Time of RMA approval (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        rejected_at:
          description: Time of RMA rejection(UTC format)
          example: null
          type: string
          format: date-time
          nullable: true
        ordered_at:
          description: Time of order finalization (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        acknowledged_at:
          description: Time of RMA acknowledgement (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        rma_lines:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/RMALine'
        reason:
          description: Reason for return
          example: Incorrect
          minLength: 1
          type: string
          readOnly: true
        reason_id:
          description: ID associated with return reason
          example: 344
          type: integer
        memos:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Memo'
        attachments:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Attachment'
        retailer:
          $ref: '#/components/schemas/RetailerShort'
        brand:
          $ref: '#/components/schemas/BrandShort'
        total_amount:
          description: Total amount
          example: '34.00'
          type: string
          readOnly: true
        credits:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Credit'
    Credit:
      type: object
      properties:
        id:
          description: Credit ID
          example: 20
          type: integer
          readOnly: true
        brand:
          $ref: '#/components/schemas/BrandShort'
        retailer:
          $ref: '#/components/schemas/RetailerShort'
        currency:
          $ref: '#/components/schemas/Currency'
        rma:
          $ref: '#/components/schemas/RMA'
        invoice:
          $ref: '#/components/schemas/Invoice'
        order:
          description: Order details
          type: string
        credit_number:
          description: Credit number
          example: '849238'
          maxLength: 32
          type: string
          nullable: true
        credit_lines:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/CreditLine'
        adjustments:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Adjustment'
        acknowledged_at:
          description: Time of credit acknowledgement
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        credited_at:
          description: Time of credit (UTC format)
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        created_at:
          description: Time of creation (UTC format)
          example: '2022-08-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        subtotal:
          description: Subtotal amount
          example: '20.00'
          type: string
          format: decimal
          readOnly: true
        credit_amount:
          description: Credit amount
          example: '24.00'
          type: string
          format: decimal
          readOnly: true
    OrderBatchId:
      type: object
      properties:
        id:
          description: Batch ID of order
          example: 2456
          type: integer
          readOnly: true
    RetailerShipmentLine:
      type: object
      properties:
        id:
          description: Shipment line ID
          example: 1001
          type: integer
          readOnly: true
        order_line_number:
          description: Order line number
          example: '1001'
          type: string
          readOnly: true
        quantity:
          description: Order quantity
          example: 1
          maximum: 2147483647
          minimum: -2147483648
          type: integer
        part:
          description: Internal only
          example: 1
          maximum: 2147483647
          minimum: -2147483648
          type: integer
        freight_class:
          description: Freight class
          example: 50
          type: string
          nullable: true
          enum:
            - '50'
            - '55'
            - '60'
            - '65'
            - '70'
            - '77.5'
            - '85'
            - '92.5'
            - '100'
            - '110'
            - '125'
            - '150'
            - '175'
            - '200'
            - '250'
            - '300'
            - '400'
            - '500'
        updated_at:
          description: Time of last update
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        variant:
          $ref: '#/components/schemas/VariantMini'
    RMALine:
      type: object
      properties:
        id:
          description: RMA line ID
          example: 567
          type: integer
          readOnly: true
        variant:
          $ref: '#/components/schemas/VariantShort'
        quantity:
          description: Total quantity
          example: 20
          maximum: 2147483647
          minimum: -2147483648
          type: integer
        quantity_shipped:
          description: Quantity shipped
          example: 10
          type: integer
          readOnly: true
        net_price:
          description: Net price
          example: '12.00'
          type: string
          readOnly: true
    CreditLine:
      required:
        - quantity
      type: object
      properties:
        id:
          description: Credit line ID
          example: 566
          type: integer
          readOnly: true
        variant:
          $ref: '#/components/schemas/VariantShort'
        quantity:
          description: Quantity
          example: 10
          maximum: 2147483647
          minimum: -2147483648
          type: integer
        net_price:
          description: Credit line net price
          example: '12.99'
          type: string
          format: decimal
    Adjustment:
      type: object
      properties:
        id:
          description: Adjustment ID
          example: 566
          type: integer
          readOnly: true
        description:
          description: Adjustment description
          example: Sample description for adjustment
          maxLength: 128
          type: string
          nullable: true
        net_price:
          description: Adjustment net price
          example: '1.00'
          type: string
          format: decimal
    ErrorLog:
      type: object
      properties:
        id:
          description: Error log ID
          example: 677
          type: integer
          readOnly: true
        message:
          description: Message in error log
          example: Sample errors to fix
          type: string
          nullable: true
        count:
          description: Count of error log
          example: 12
          type: integer
          readOnly: true
        created_at:
          description: Time of error log creation
          example: '2022-08-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    ProductImage:
      type: object
      properties:
        id:
          description: Product image ID
          example: 567
          type: integer
          readOnly: true
        width:
          description: Product image width
          example: 1
          maximum: 2147483647
          minimum: -2147483648
          type: integer
          nullable: true
        height:
          description: Product image height
          example: 1
          maximum: 2147483647
          minimum: -2147483648
          type: integer
          nullable: true
        media:
          description: Product image media
          type: string
          readOnly: true
        priority:
          description: Image priority
          example: 2
          maximum: 2147483647
          minimum: -2147483648
          type: integer
        url:
          description: Product image URL
          example: >-
            https://assets.demo.com/attachments/path_to_attachment/attachment.pdf
          type: string
          readOnly: true
        updated_at:
          description: Time of when product image was last updated
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        created_at:
          description: Time of product image creation
          example: '2022-08-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    ProductShort:
      required:
        - identifier
      type: object
      properties:
        id:
          description: Product ID
          example: 5678
          type: integer
          readOnly: true
        name:
          description: Product name
          example: Sample Product AYX
          maxLength: 200
          type: string
          nullable: true
        identifier:
          description: Stock Keeping Unit (SKU), unique identifier of a product
          example: SKU978
          maxLength: 128
          minLength: 1
          type: string
        brand:
          $ref: '#/components/schemas/BrandMini'
        brand_category:
          description: Brand category
          example: Category 78
          maxLength: 64
          minLength: 1
          type: string
          nullable: true
        brand_name:
          description: Brand name
          example: Sample Brand
          maxLength: 64
          minLength: 1
          type: string
          nullable: true
        parent_identifier:
          description: Parent identifier
          example: Main-1
          minLength: 1
          type: string
          readOnly: true
        parent_name:
          description: Parent name
          example: Main Sample
          minLength: 1
          type: string
          readOnly: true
        description:
          description: Product description
          example: Sample description of product
          type: string
          nullable: true
        rcn_status:
          description: Status of product in Dropship
          example: pending
          type: string
          enum:
            - not_published
            - pending
            - failed
            - expired
            - published
        published_at:
          description: Time of when product was first published
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        expires_at:
          description: Time of expiry (UTC format)
          example: '2022-11-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        primary_media:
          $ref: '#/components/schemas/ProductImage'
        pricing:
          description: Product pricing
          example: '12.00'
          type: string
          readOnly: true
        num_variants:
          description: Number of product variants
          example: 2
          type: integer
          readOnly: true
        created_at:
          description: Time of product creation in Dropship
          example: '2022-07-10T15:24:56Z'
          type: string
          readOnly: true
        updated_at:
          description: Time of when product was last updated in Dropship
          example: '2022-08-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    Unit:
      type: object
      properties:
        id:
          description: Unit ID
          example: 677
          type: integer
          readOnly: true
        name:
          description: Unit name
          example: Sample unit
          minLength: 1
          type: string
          readOnly: true
        standard_unit:
          description: Standard unit
          minLength: 1
          type: string
          readOnly: true
        type:
          description: Unit type
          example: cost
          type: string
          readOnly: true
          enum:
            - area
            - distance
            - energy
            - speed
            - temperature
            - time
            - volume
            - weight
            - cost
        system:
          description: Unit system
          example: metric
          type: string
          nullable: true
          enum:
            - metric
            - imperial
        symbol:
          description: Unit symbol
          example: USD
          maxLength: 5
          type: string
          nullable: true
    AttributeOnly:
      required:
        - code
        - name
        - type
      type: object
      properties:
        id:
          description: Attribute ID
          example: 5463
          type: integer
          readOnly: true
        code:
          description: Attribute code
          example: sample_code
          maxLength: 200
          minLength: 1
          type: string
        name:
          description: Attribute name
          example: Sample Code
          maxLength: 200
          minLength: 1
          type: string
        grouping:
          description: Criteria to group attribute
          example: inventory
          type: string
          nullable: true
          enum:
            - description
            - general
            - images
            - inventory
            - misc
            - retailer
            - shipping
            - identifiers
            - pricing
        priority:
          description: Attribute priority
          example: 2
          maximum: 4294967295
          minimum: 0
          type: integer
        description:
          description: Attribute description
          type: string
          nullable: true
        editable_by:
          description: User who can edit attribute
          example: Brand
          type: string
          nullable: true
          enum:
            - retailer
            - brand
            - any
            - none
        type:
          description: Attribute type
          example: boolean
          type: string
          enum:
            - boolean
            - date
            - list
            - media
            - money
            - number
            - percent
            - string
            - text
            - url
        units:
          description: Unity based on *type*
          maxLength: 32
          type: string
          nullable: true
        default_unit:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Unit'
        available_units:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Unit'
        is_bulk_editable:
          description: >-
            true: allow bulk edit of attributes <br /> false: bulk edit of
            attributes are not allowed
          example: true
          type: boolean
    Taxonomy:
      required:
        - code
      type: object
      properties:
        id:
          description: Taxonomy ID
          example: 4564
          type: integer
          readOnly: true
        name:
          description: Taxonomy name
          example: Sample Taxonomy
          maxLength: 64
          minLength: 1
          type: string
        code:
          description: Taxonomy code
          example: sample_taxonomy
          maxLength: 32
          minLength: 1
          pattern: ^[-a-zA-Z0-9_]+$
          type: string
          format: slug
        thumbnail_url:
          description: URL for thumbnail image
          example: >-
            https://assets.demo.com/attachments/path_to_attachment/attachment.pdf
          minLength: 1
          type: string
          format: uri
          readOnly: true
        number_of_children:
          description: Number of children
          example: '2'
          type: string
          readOnly: true
        pivot_attributes:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/AttributeOnly'
        visible_attributes:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/AttributeOnly'
    PlatformAccount:
      type: object
      properties:
        id:
          description: Platform account ID
          example: 678
          type: integer
          readOnly: true
        platform:
          description: Platform name
          example: Sample Platform
          type: string
          readOnly: true
        retailer:
          description: Retailer name
          example: Retailer XU
          type: string
          readOnly: true
        brand:
          description: Brand name
          example: Brand XU
          type: string
          readOnly: true
        credentials:
          description: Credentials to use account
          example: sample1
          type: string
          readOnly: true
    ProductPublishingHistory:
      type: object
      properties:
        id:
          description: Product ID
          example: 5677
          type: integer
          readOnly: true
        platform_account:
          $ref: '#/components/schemas/PlatformAccount'
        product:
          $ref: '#/components/schemas/ProductShort'
        success:
          description: 'true: product published <br /> false: product is not published'
          example: true
          type: boolean
        message:
          description: Message added while publishing, for future reference
          example: Sample message as a note
          type: string
          nullable: true
        created_at:
          description: Time of creation
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    ManufacturerShort:
      required:
        - code
      type: object
      properties:
        id:
          description: Manufacturer ID
          example: 6775
          type: integer
          readOnly: true
        name:
          description: Manufacturer name
          example: Manu Sample UIO
          maxLength: 64
          minLength: 1
          type: string
        code:
          description: Manufacturer code
          example: manu_sample_uio
          maxLength: 32
          minLength: 1
          pattern: ^[-a-zA-Z0-9_]+$
          type: string
          format: slug
        logo_url:
          description: URL of manufacturer's logo
          example: >-
            https://assets.demo.com/attachments/path_to_attachment/attachment.pdf
          minLength: 1
          type: string
          format: uri
          readOnly: true
        cover_url:
          description: URL of manufacturer's cover image
          example: >-
            https://assets.demo.com/attachments/path_to_attachment/attachment.pdf
          minLength: 1
          type: string
          format: uri
          readOnly: true
        profile_tile_url:
          description: URL of manufacturer's profile image
          example: >-
            https://assets.demo.com/attachments/path_to_attachment/attachment.pdf
          minLength: 1
          type: string
          format: uri
          readOnly: true
        uuid:
          description: A universally unique identifier (UUID)
          maxLength: 36
          type: string
        website:
          description: URL of manufacturer website
          example: https://assets.demo.com
          maxLength: 100
          type: string
          format: uri
          nullable: true
    ProductWithAttributes:
      type: object
      properties:
        id:
          description: product ID
          example: 2863
          type: integer
          readOnly: true
        parent_identifier:
          description: ID of parent product
          example: 1000-BL
          minLength: 1
          type: string
          readOnly: true
        parent_name:
          description: Parent name
          example: T-Shirt, Blue
          minLength: 1
          type: string
          readOnly: true
        description:
          description: Product description
          example: null
          type: string
          nullable: true
        brand:
          $ref: '#/components/schemas/BrandMini'
        brand_category:
          description: Brand category
          example: null
          maxLength: 64
          minLength: 1
          type: string
          nullable: true
        brand_name:
          description: Brand name
          example: null
          maxLength: 64
          minLength: 1
          type: string
          nullable: true
        manufacturer:
          $ref: '#/components/schemas/ManufacturerShort'
        num_variants:
          description: Number of variants
          example: 1
          type: integer
          readOnly: true
        variants:
          $ref: '#/components/schemas/VariantShort'
        media:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/VariantImage'
        rcn_status:
          description: Status of product in Dropship network
          example: not_published
          type: string
          enum:
            - not_published
            - pending
            - failed
            - expired
            - published
        primary_media:
          $ref: '#/components/schemas/ProductImage'
        pivot_attributes:
          type: array
          items:
            $ref: '#/components/schemas/AttributeOnly'
        taxonomy:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Taxonomy'
        revcascade_taxonomy:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Taxonomy'
        attributes:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Attribute'
        last_published:
          $ref: '#/components/schemas/ProductPublishingHistory'
        created_at:
          description: Time of product creation in Dropship
          example: '2022-08-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
        updated_at:
          description: Time of when product was last updated in Dropship
          example: '2022-09-10T15:24:56Z'
          type: string
          format: date-time
          readOnly: true
    Variant:
      type: object
      properties:
        id:
          description: Variant ID
          example: 100024
          type: integer
          readOnly: true
        name:
          description: Variant name
          example: T-Shirt, Blue, L
          maxLength: 200
          type: string
          nullable: true
        brand_identifier:
          description: Brand identifier
          example: 1000-BL-L
          minLength: 1
          type: string
          readOnly: true
        parent_identifier:
          description: Parent identifier of variant
          example: 1000-BL
          maxLength: 100
          type: string
          nullable: true
        parent_name:
          description: Parent name of variant
          example: T-Shirt, Blue
          maxLength: 200
          type: string
          nullable: true
        attributes:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Attribute'
        brand:
          $ref: '#/components/schemas/BrandShort'
        identifier:
          description: Stock Keeping Unit (SKU), unique identifier of a product
          example: 1000-BL-L
          maxLength: 128
          type: string
          nullable: true
        product_id:
          description: Product ID
          example: '4511'
          type: string
          readOnly: true
        cartons:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Carton'
        upc:
          description: >-
            Universal product code (UPC) is a 12-digit combination of numbers
            assigned to each product in your dropshipping store.
          example: '9119119111'
          maxLength: 64
          type: string
        color:
          description: Variant color
          example: Blue
          maxLength: 128
          type: string
          nullable: true
        style:
          description: Variant style
          example: print
          maxLength: 128
          type: string
          nullable: true
        size:
          description: Variant size
          example: Medium
          maxLength: 128
          type: string
          nullable: true
        active_permit:
          $ref: '#/components/schemas/Permit'
        permits:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Permit'
        permits_count:
          description: Count of permits
          example: 1
          type: integer
          readOnly: true
        inventory_policy:
          description: Inventory policy
          example: Managed
          type: string
          readOnly: true
        inventory:
          $ref: '#/components/schemas/InventoryBase'
        media:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/VariantImage'
        ruleset_variants:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/RulesetVariant'
        ruleset_variant_summary:
          description: Summary of ruleset variant
          type: string
          readOnly: true
        is_compatible:
          description: 'true: variant is compatible <br /> false: variant is not compatible'
          example: true
          type: string
          readOnly: true
        proposal_variant:
          $ref: '#/components/schemas/ProposalVariant'
        retailer_identifiers:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/RetailerIdentifier'
        retailer_categories:
          $ref: '#/components/schemas/RetailerCategory'
    CollapsedAttributeValue:
      type: object
      properties: {}
    PermitWithVariant:
      type: object
      properties:
        id:
          description: Permit ID
          example: 10004
          type: integer
          readOnly: true
        retailer:
          $ref: '#/components/schemas/RetailerShort'
        variant:
          $ref: '#/components/schemas/VariantMini'
        connection:
          $ref: '#/components/schemas/ConnectionPermit'
        retailer_price:
          description: Retailer price
          example: '12.99'
          type: string
          format: decimal
          nullable: true
        retailer_cost:
          description: Retailer cost
          example: '8.99'
          type: string
          format: decimal
          nullable: true
        pricing:
          $ref: '#/components/schemas/CollapsedAttributeValue'
        attributes:
          $ref: '#/components/schemas/CollapsedAttributeValue'
        start_at:
          description: Time of permit beginning
          example: '2021-07-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        end_at:
          description: Time of permit ending
          example: '2022-11-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        is_in_effect:
          description: 'true: Permit is in effect <br /> false: Permit is not in effect'
          example: true
          type: boolean
          readOnly: true
        revoked_at:
          description: Time of when permit got revoked
          example: '2022-08-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
        is_acknowledged:
          description: >-
            true: Permit is acknowledged <br /> false: Permit is not
            acknowledged
          example: true
          type: boolean
          readOnly: true
        acknowledged_at:
          description: Time of permit acknowledgement (UTC format)
          example: '2022-08-10T15:24:56Z'
          type: string
          format: date-time
          nullable: true
    ConnectionPermit:
      type: object
      properties:
        id:
          description: Connection permit ID
          example: 1000
          type: integer
          readOnly: true
        connection_fee:
          $ref: '#/components/schemas/ConnectionFee'
    Job:
      type: object
      required:
        - content_type
        - object_id
        - runtime_id
        - module_name
      properties:
        id:
          description: Job ID
          type: integer
          readOnly: true
        content_type:
          description: Content type
          type: integer
          example: 1
        object_id:
          description: Object ID
          type: integer
          maximum: 4294967295
          minimum: 0
          example: 145
        connection:
          $ref: '#/components/schemas/ConnectionShort'
        runtime_id:
          description: Runtime ID
          type: string
          maxLength: 64
          minLength: 1
        module_name:
          description: Module name
          type: string
          maxLength: 64
          minLength: 1
          example: demo module
        created_at:
          description: Time of job creation (UTC format)
          type: string
          format: date-time
          readOnly: true
          example: '2022-08-10T15:24:56Z'
        start_time:
          description: Time of job beginning (UTC format)
          type: string
          readOnly: true
          example: '2022-11-10T15:24:56Z'
        finish_time:
          description: Time of job ending (UTC format)
          type: string
          readOnly: true
          example: '2022-11-10T15:24:56Z'
        description:
          description: Bried description of job, for future reference
          type: string
          readOnly: true
        total_success:
          description: Successful completion of job
          type: string
          readOnly: true
        total_failure:
          description: Unsuccessful completion of job
          type: string
          readOnly: true
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/Metadata'
          readOnly: true
        error_count:
          description: Error count
          type: string
          readOnly: true
        error_logs:
          $ref: '#/components/schemas/ErrorLog'
    IssueElementOnly:
      type: object
      properties:
        id:
          title: ID
          type: integer
          readOnly: true
          description: Issue ID
        memos:
          type: array
          items:
            $ref: '#/components/schemas/Memo'
          readOnly: true
        created_at:
          description: Time of issue creation
          type: string
          format: date-time
          readOnly: true
        updated_at:
          description: Time of issue update
          type: string
          format: date-time
          readOnly: true
        resolved_at:
          description: Time of issue resolution
          type: string
          format: date-time
          x-nullable: true
        is_resolved:
          description: 'true: Issue is resolved <br /> false: Issue is not resolved'
          type: string
          readOnly: true
        issue_id:
          description: Issue ID
          type: integer
          readOnly: true
        message:
          description: Description or note related to issue
          type: string
          readOnly: true
          minLength: 1
        title:
          description: Issue title
          type: string
          readOnly: true
          minLength: 1
    AttributeValue:
      type: object
      properties:
        id:
          description: Attribute value ID
          type: integer
          readOnly: true
        value:
          description: Attribute value
          type: string
          x-nullable: true
        unit:
          $ref: '#/components/schemas/Unit'
        retailer:
          $ref: '#/components/schemas/RetailerShort'
        updated_at:
          description: Time of update
          type: string
          format: date-time
          x-nullable: true
        created_at:
          description: Time of creation
          type: string
          format: date-time
          readOnly: true
    Metadata:
      type: object
      properties: {}
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
