openapi: 3.0.0
x-mint:
  mcp:
    enabled: true
info:
  title: Shipments API
  version: 1.0.0
  description: >
    APIs for listing, retrieving, and acknowledging shipment and fulfillment
    records.
servers:
  - url: https://marketplace-api.fabric.inc
    description: Production server
tags:
  - name: Shipments
    description: Shipment management
security:
  - Bearer: []
paths:
  /v1/retailers/{retailer_id}/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_id
          in: path
          required: true
          description: >-
            The unique retailer ID. In the Dropship UI this is called the
            **Merchant ID**. To find your Merchant ID, click your merchant name
            in the top nav.
          schema:
            type: number
          example: 500
        - name: status
          in: query
          description: Shipment status
          schema:
            type: string
          example: Shipped
        - name: is_acknowledged
          in: query
          description: '1: shipment is picked up | 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_id}/?page=5
                    type: string
                    format: uri
                    nullable: true
                  previous:
                    description: Previous page (applicable in a paginated response)
                    example: https://api.example.org/demo/{retailer_id}/?page=3
                    type: string
                    format: uri
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/RetailerShipmentList'
  /v1/retailers/{retailer_id}/shipments/{id}/:
    get:
      tags:
        - Shipments
      summary: Get a single shipment
      description: Gets the details of a specified shipment using the shipment's ID.
      operationId: v1_retailers_shipments_read
      parameters:
        - name: retailer_id
          in: path
          description: >-
            The unique retailer ID. In the Dropship UI this is called the
            **Merchant ID**. To find your Merchant ID, click your merchant name
            in the top nav.
          required: true
          schema:
            type: number
          example: 500
        - name: id
          in: path
          description: >-
            The unique shipment ID. This ID is automatically generated when a
            new shipment is created.
          required: true
          schema:
            type: integer
          example: 4060
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetailerShipmentList'
  /v1/retailers/{retailer_id}/orders/{id}/shipments/:
    get:
      tags:
        - Shipments
      summary: Get shipments for an order
      description: Retrieve all shipments related to a specific order.
      parameters:
        - name: retailer_id
          in: path
          required: true
          description: >-
            The unique retailer ID. In the Dropship UI this is called the
            **Merchant ID**. To find your Merchant ID, click your merchant name
            in the top nav.
          schema:
            type: integer
        - name: id
          in: path
          required: true
          description: >-
            The unique order ID. This ID is generated when a new order is
            created.
          schema:
            type: integer
      responses:
        '200':
          description: Shipments for the order
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RetailerOrder'
  /v1/retailers/{retailer_id}/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: retailer_id
          in: path
          description: >-
            The unique retailer ID. In the Dropship UI this is called the
            **Merchant ID**. To find your Merchant ID, click your merchant name
            in the top nav.
          required: true
          schema:
            type: number
          example: 506
        - name: id
          in: path
          description: >-
            The unique shipment ID. This ID is automatically generated when a
            new shipment is created.
          required: true
          schema:
            type: integer
          example: 4050
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RetailerShipmentList'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetailerShipmentList'
components:
  schemas:
    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
    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
    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 | false: Vendor is not onboarded'
          example: false
          type: boolean
          readOnly: true
        is_on_rcn:
          description: 'true: is on Dropship network | 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 | false: subscription is active'
          example: false
          type: boolean
          readOnly: true
        subscription_is_on_grace_period:
          description: >-
            true: subscription is on grace period | false: subscription is not
            on grace period
          example: false
          type: boolean
          readOnly: true
        subscription_is_delinquent:
          description: 'true: subscription is overdue | 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
    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
    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
    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
    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 | false: Shipment is not acknowledged'
          example: true
          type: boolean
          readOnly: true
        has_commercial_invoice:
          description: >-
            true: Shipment has commercial invoice | 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 | false: Shipment does not
            valid packing slip
          example: true
          type: boolean
          readOnly: true
        valid_shipping_label:
          description: >-
            true: Shipment has valid shipping label | 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
    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
    RetailerOrder:
      type: object
      required:
        - purchase_order_number
        - retailer_order_number
        - ordered_at
      properties:
        id:
          description: Unique identifier for the shipment record
          example: 12345
          type: integer
          readOnly: true
        customer_order_number:
          description: Customer's order reference number
          example: CUST-00123
          maxLength: 64
          type: string
          nullable: true
        purchase_order_number:
          description: Purchase order number assigned by the retailer
          example: PO-45678
          minLength: 1
          type: string
        retailer_order_number:
          description: Retailer's internal order number
          example: RET-89012
          minLength: 1
          type: string
        brand_identifier:
          description: Identifier used to specify the brand associated with the shipment
          example: BRD-001
          maxLength: 64
          type: string
          nullable: true
        retailer:
          description: Name of the retailer
          example: Retailer X
          type: string
          readOnly: true
        brand:
          description: Primary brand involved in the order
          example: Brand A
          type: string
          readOnly: true
        brands:
          description: Comma-separated list of brands in the order
          example: Brand A, Brand B
          type: string
          readOnly: true
        connection_id:
          description: Unique identifier for the platform connection
          example: 101
          type: integer
        shipping_method:
          description: Shipping method used for the order
          example: FedEx Ground
          type: string
          readOnly: true
        requested_shipping_method_id:
          description: ID of the requested shipping method
          example: 5
          type: integer
        requested_shipping_method:
          description: Requested shipping method name
          example: UPS 2nd Day Air
          type: string
          readOnly: true
        shipment_count:
          description: Total number of shipments associated with this order
          example: 3
          type: integer
          readOnly: true
        invoice_count:
          description: Total number of invoices associated with the order
          example: 2
          type: integer
          readOnly: true
        bill_to:
          description: Billing recipient
          example: Acme Corp
          type: string
          readOnly: true
        sold_to:
          description: Customer entity who made the purchase
          example: Acme Corp
          type: string
          readOnly: true
        ship_to:
          description: Shipping destination
          example: 123 Warehouse Ave
          type: string
          readOnly: true
        ship_from:
          description: Shipping origin
          example: 456 Supplier Rd
          type: string
          readOnly: true
        return_to:
          description: Return shipping address
          example: 789 Return Ln
          type: string
          readOnly: true
        allow_shipping_label_generation:
          description: Indicates if the platform allows label generation
          example: true
          type: boolean
        subtotal_charged:
          description: Subtotal charged for the order
          example: '99.99'
          type: string
          readOnly: true
        shipping_charged:
          description: Shipping charges applied to the order
          example: '10.00'
          type: string
        is_gift:
          description: Indicates if the shipment is a gift
          example: false
          type: boolean
        gift_fee:
          description: Fee associated with gift wrapping
          example: '5.00'
          type: string
          nullable: true
        is_replacement:
          description: Indicates if this shipment is a replacement
          example: false
          type: boolean
        locale_subtotal_charged:
          description: Subtotal charged in local currency
          example: '89.99'
          type: string
          readOnly: true
        status:
          description: Current status of the shipment
          example: processing
          minLength: 1
          type: string
          readOnly: true
        locale_currency:
          description: Local currency code
          example: EUR
          type: string
          readOnly: true
        currency:
          description: Currency code of the transaction
          example: USD
          type: string
          readOnly: true
        is_acknowledged:
          description: Whether the shipment has been acknowledged
          example: true
          type: boolean
          readOnly: true
        ordered_at:
          description: Date and time when the order was placed
          example: 2024-03-15T08:00:00.000Z
          type: string
          format: date-time
        acknowledged_at:
          description: When the shipment was acknowledged
          example: 2024-03-16T08:00:00.000Z
          type: string
          format: date-time
          nullable: true
        fulfill_by:
          description: Deadline to fulfill the shipment
          example: 2024-03-20T00:00:00.000Z
          type: string
          readOnly: true
        fulfilled_at:
          description: Time the order was fulfilled
          example: 2024-03-19T08:00:00.000Z
          type: string
          format: date-time
          nullable: true
        closed_at:
          description: When the shipment was closed
          example: 2024-03-21T08:00:00.000Z
          type: string
          format: date-time
          readOnly: true
        received_at:
          description: Date the shipment was received
          example: 2024-03-22T08:00:00.000Z
          type: string
          format: date-time
          readOnly: true
        is_on_hold:
          description: Whether the shipment is on hold
          example: false
          type: boolean
          readOnly: true
        pickup_on:
          description: Scheduled pickup date
          example: 2024-03-25T00:00:00.000Z
          type: string
          format: date
          nullable: true
        on_hold_at:
          description: Timestamp when the shipment was put on hold
          example: 2024-03-24T08:00:00.000Z
          type: string
          format: date-time
          nullable: true
        on_hold_until:
          description: Date until which the shipment is on hold
          example: 2024-03-30T00:00:00.000Z
          type: string
          format: date
          nullable: true
        backordered_until:
          description: Date until backorder is expected
          example: 2024-04-01T08:00:00.000Z
          type: string
          format: date-time
          nullable: true
        backorder_acknowledged_at:
          description: Date backorder was acknowledged
          example: 2024-03-28T08:00:00.000Z
          type: string
          format: date-time
          nullable: true
        canceled_at:
          description: Date and time the shipment was canceled
          example: 2024-03-29T08:00:00.000Z
          type: string
          format: date-time
          nullable: true
        updated_at:
          description: Timestamp of the last update
          example: 2024-04-01T12:00:00.000Z
          type: string
          format: date-time
          readOnly: true
          nullable: true
        order_lines:
          description: List of order lines in the shipment
          example: '[...]'
          type: string
          readOnly: true
        cancels:
          description: Information about canceled items
          example: '[...]'
          type: string
          readOnly: true
        shipments:
          description: Shipment information
          example: '[...]'
          type: string
          readOnly: true
        attachments:
          description: Associated documents
          example: '[...]'
          type: string
          readOnly: true
        memos:
          description: List of memos attached to the order
          example: Memo 1
          type: string
          readOnly: true
        memos_count:
          description: Count of memos attached to the order
          example: 1
          type: string
          readOnly: true
        unread_memos_count:
          description: Count of unread memos
          example: 0
          type: string
          readOnly: true
        tags:
          description: Tags associated with the shipment
          example: Priority
          type: string
          readOnly: true
        gift_message:
          description: Gift message included with the order
          example: Happy Birthday!
          type: string
          readOnly: true
        fill_time:
          description: Estimated fill time for the order
          example: '48.00'
          type: string
          nullable: true
        invoices:
          description: Invoice details
          example: '[...]'
          type: string
          readOnly: true
        signature:
          description: Signature requirements for the delivery
          example: required
          type: string
          enum:
            - required
            - not_required
            - adult
          nullable: true
        rmas:
          description: Return merchandise authorizations
          example: '[...]'
          type: string
          readOnly: true
        credits:
          description: Credit notes issued for the order
          example: '[...]'
          type: string
          readOnly: true
        order_batches:
          description: Batches associated with the order
          example: '[...]'
          type: string
          readOnly: true
        metadata:
          description: Additional metadata related to the order
          example: '[...]'
          type: string
          readOnly: true
        connection_shipping_provider_account:
          description: Shipping provider account associated with the connection
          example: USPS-Conn-01
          type: string
          readOnly: true
        is_priority:
          description: Indicates whether the order is prioritized
          example: true
          type: boolean
        priority_user:
          description: User who prioritized the order
          example: admin@example.com
          type: string
          readOnly: true
        envelopes:
          description: Envelope details for the order
          example: Envelope A
          type: string
          readOnly: true
        platform_account_transactions:
          description: Related platform account transactions
          example: '[...]'
          type: string
          readOnly: 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 | 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 | 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
    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'
    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 a first-party billed shipment | false Is not a first-party
            billed shipment bill
          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'
    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'
    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
    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'
    Shipment:
      type: object
      description: Shipment object
      properties:
        id:
          type: integer
          description: Unique shipment identifier
          example: 10010
        carrier_id:
          type: integer
          description: Carrier ID associated with the shipment
          example: 123
        tracking_number:
          type: string
          description: Tracking number of the shipment
          example: TRACK123456789
        status:
          type: string
          description: Current shipment status
          example: in_transit
        shipped_at:
          type: string
          format: date-time
          description: Date and time the shipment was dispatched
          example: '2025-04-10T09:00:00Z'
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
