Geniemode Shipment Controller API

Shipment Controller

Operations 26

PUT /api/v1/order/shipments/assign/bulk/shipments/{userId} assignBulkShipments #
PUT /api/v1/order/shipments/assign/{entityType}/{entityId}/{userId} getOrderShipments #
GET /api/v1/order/shipments/auditor-list getShipmentAuditorList #
GET /api/v1/order/shipments/backfill/{type} backfill #
POST /api/v1/order/shipments/checkForInvoice checkForInvoice #
GET /api/v1/order/shipments/dashboard/docs getShipmentDashboardDocs #
GET /api/v1/order/shipments/dashboard/invoice/{invoiceId} getInvoiceShipment #
GET /api/v1/order/shipments/doc-types getPossibleShipmentDocTypes #
GET /api/v1/order/shipments/docs/{orderId} getShipmentDocs #
GET /api/v1/order/shipments/find-similar-shipment-hops findSimilarShipmentHops #
PUT /api/v1/order/shipments/hop/{docId}/removeDoc removeDocFromShipment #
PUT /api/v1/order/shipments/hop/{shipmentId}/audit/{hopId} updateShipmentHopAudit #
GET /api/v1/order/shipments/hops/audit getShipmentHopsForAudit #
PUT /api/v1/order/shipments/invoice/{invoiceId}/hops editInvoiceShipmentHop #
GET /api/v1/order/shipments/logistics/cost getShipmentLogisticsCost #
GET /api/v1/order/shipments/partners getShipmentPartners #
GET /api/v1/order/shipments/pos getPos #
PUT /api/v1/order/shipments/unassign/bulk/shipments/{userId} unassignBulkShipments #
PUT /api/v1/order/shipments/unassign/{entityType}/{entityId} unassignShipmentEntity #
GET /api/v1/order/shipments/{orderId} getShipments #
POST /api/v1/order/shipments/{orderId} createShipments #
PUT /api/v1/order/shipments/{orderId} updateShipments #
GET /api/v1/order/shipments/{shipmentId}/dashboard getShipment #
POST /api/v1/order/shipments/{shipmentId}/hops addShipmentHop #
PUT /api/v1/order/shipments/{shipmentId}/hops editShipmentHop #
PUT /api/v1/order/shipments/{shipmentId}/refresh/hops refreshHops #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/geniemode-shipment-controller-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

geniemode-shipment-controller-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Cataloguing API.
  version: API V
  title: Cataloguing Shipment Controller API
  termsOfService: Terms of service
  contact:
    name: Mani Bhushan
    url: www.geniemode.com
    email: mani.kumar@geniemode.com
  license:
    name: License of API
    url: API license URL
servers:
- url: https://portal.geniemode.com
tags:
- name: shipment-controller
  description: Shipment Controller
paths:
  /api/v1/order/shipments/assign/bulk/shipments/{userId}:
    put:
      tags:
      - shipment-controller
      summary: assignBulkShipments
      operationId: assignBulkShipmentsUsingPUT
      parameters:
      - name: userId
        in: path
        description: userId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkShipmentAssignmentRequestPayload'
        description: bulkShipmentAssignmentRequestPayload
        required: true
  /api/v1/order/shipments/assign/{entityType}/{entityId}/{userId}:
    put:
      tags:
      - shipment-controller
      summary: getOrderShipments
      operationId: getOrderShipmentsUsingPUT_1
      parameters:
      - name: entityId
        in: path
        description: entityId
        required: true
        schema:
          type: integer
          format: int64
      - name: entityType
        in: path
        description: entityType
        required: true
        schema:
          type: string
      - name: userId
        in: path
        description: userId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
  /api/v1/order/shipments/auditor-list:
    get:
      tags:
      - shipment-controller
      summary: getShipmentAuditorList
      operationId: getShipmentAuditorListUsingGET
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/order/shipments/backfill/{type}:
    get:
      tags:
      - shipment-controller
      summary: backfill
      operationId: backfillUsingGET
      parameters:
      - name: type
        in: path
        description: type
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/order/shipments/checkForInvoice:
    post:
      tags:
      - shipment-controller
      summary: checkForInvoice
      operationId: checkForInvoiceUsingPOST
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckForInvoiceRequestPayload'
        description: checkForInvoiceRequestPayload
        required: true
  /api/v1/order/shipments/dashboard/docs:
    get:
      tags:
      - shipment-controller
      summary: getShipmentDashboardDocs
      operationId: getShipmentDashboardDocsUsingGET
      parameters:
      - name: id
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: isInvoiceId
        in: query
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    $ref: '#/components/schemas/OrderDocDto'
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/order/shipments/dashboard/invoice/{invoiceId}:
    get:
      tags:
      - shipment-controller
      summary: getInvoiceShipment
      operationId: getInvoiceShipmentUsingGET
      parameters:
      - name: invoiceId
        in: path
        description: invoiceId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LogisticsDashboardInvoiceShipmentResponse'
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/order/shipments/doc-types:
    get:
      tags:
      - shipment-controller
      summary: getPossibleShipmentDocTypes
      operationId: getPossibleShipmentDocTypesUsingGET
      parameters:
      - name: finalInvoiceId
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: orderIds
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: shipmentId
        in: query
        required: false
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShipmentDocTypeResponsePayload'
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/order/shipments/docs/{orderId}:
    get:
      tags:
      - shipment-controller
      summary: getShipmentDocs
      operationId: getShipmentDocsUsingGET
      parameters:
      - name: orderId
        in: path
        description: orderId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShipmentHopDocsDTO'
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/order/shipments/find-similar-shipment-hops:
    get:
      tags:
      - shipment-controller
      summary: findSimilarShipmentHops
      operationId: findSimilarShipmentHopsUsingGET
      parameters:
      - name: hopId
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: search
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/order/shipments/hop/{docId}/removeDoc:
    put:
      tags:
      - shipment-controller
      summary: removeDocFromShipment
      operationId: removeDocFromShipmentUsingPUT
      parameters:
      - name: docId
        in: path
        description: docId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
  /api/v1/order/shipments/hop/{shipmentId}/audit/{hopId}:
    put:
      tags:
      - shipment-controller
      summary: updateShipmentHopAudit
      operationId: updateShipmentHopAuditUsingPUT
      parameters:
      - name: hopId
        in: path
        description: hopId
        required: true
        schema:
          type: integer
          format: int64
      - name: shipmentId
        in: path
        description: shipmentId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateShipmentHopAuditRequestPayload'
        description: updateAuditRequestPayload
        required: true
  /api/v1/order/shipments/hops/audit:
    get:
      tags:
      - shipment-controller
      summary: getShipmentHopsForAudit
      operationId: getShipmentHopsForAuditUsingGET
      parameters:
      - name: auditorList
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: auditStatusList
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: documentInsertionDate
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/order/shipments/invoice/{invoiceId}/hops:
    put:
      tags:
      - shipment-controller
      summary: editInvoiceShipmentHop
      operationId: editInvoiceShipmentHopUsingPUT
      parameters:
      - name: invoiceId
        in: path
        description: invoiceId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceShipmentHopRequestPayload'
        description: invoiceShipmentHopDto
        required: true
  /api/v1/order/shipments/logistics/cost:
    get:
      tags:
      - shipment-controller
      summary: getShipmentLogisticsCost
      operationId: getShipmentLogisticsCostUsingGET
      parameters:
      - name: shipmentIds
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShipmentLogisticCostsResponsePayload'
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/order/shipments/partners:
    get:
      tags:
      - shipment-controller
      summary: getShipmentPartners
      operationId: getShipmentPartnersUsingGET
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ShipmentPartnersDto'
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/order/shipments/pos:
    get:
      tags:
      - shipment-controller
      summary: getPos
      operationId: getPosUsingGET
      parameters:
      - name: shipmentIds
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PoMinDto'
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/order/shipments/unassign/bulk/shipments/{userId}:
    put:
      tags:
      - shipment-controller
      summary: unassignBulkShipments
      operationId: unassignBulkShipmentsUsingPUT
      parameters:
      - name: userId
        in: path
        description: userId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkShipmentAssignmentRequestPayload'
        description: bulkShipmentAssignmentRequestPayload
        required: true
  /api/v1/order/shipments/unassign/{entityType}/{entityId}:
    put:
      tags:
      - shipment-controller
      summary: unassignShipmentEntity
      operationId: unassignShipmentEntityUsingPUT
      parameters:
      - name: entityId
        in: path
        description: entityId
        required: true
        schema:
          type: integer
          format: int64
      - name: entityType
        in: path
        description: entityType
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
  /api/v1/order/shipments/{orderId}:
    get:
      tags:
      - shipment-controller
      summary: getShipments
      operationId: getShipmentsUsingGET
      parameters:
      - name: orderId
        in: path
        description: orderId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ShipmentDto'
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
    post:
      tags:
      - shipment-controller
      summary: createShipments
      operationId: createShipmentsUsingPOST
      parameters:
      - name: orderId
        in: path
        description: orderId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ShipmentDto'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ShipmentsRequestPayload'
        description: shipmentsRequestPayload
        required: true
    put:
      tags:
      - shipment-controller
      summary: updateShipments
      operationId: updateShipmentsUsingPUT
      parameters:
      - name: orderId
        in: path
        description: orderId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ShipmentDto'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ShipmentsRequestPayload'
        description: shipmentsRequestPayload
        required: true
  /api/v1/order/shipments/{shipmentId}/dashboard:
    get:
      tags:
      - shipment-controller
      summary: getShipment
      operationId: getShipmentUsingGET
      parameters:
      - name: shipmentId
        in: path
        description: shipmentId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LogisticsDashboardShipmentResponse'
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/order/shipments/{shipmentId}/hops:
    post:
      tags:
      - shipment-controller
      summary: addShipmentHop
      operationId: addShipmentHopUsingPOST
      parameters:
      - name: shipmentId
        in: path
        description: shipmentId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ShipmentHopDto'
        description: shipmentHopDto
        required: true
    put:
      tags:
      - shipment-controller
      summary: editShipmentHop
      operationId: editShipmentHopUsingPUT
      parameters:
      - name: shipmentId
        in: path
        description: shipmentId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ShipmentHopRequestPayload'
        description: shipmentHopDto
        required: true
  /api/v1/order/shipments/{shipmentId}/refresh/hops:
    put:
      tags:
      - shipment-controller
      summary: refreshHops
      operationId: refreshHopsUsingPUT_1
      parameters:
      - name: shipmentId
        in: path
        description: shipmentId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
components:
  schemas:
    ShipmentSingleDocTypeResponsePayload:
      type: object
      properties:
        doc_type:
          type: string
        mandatory:
          type: boolean
        name:
          type: string
      title: ShipmentSingleDocTypeResponsePayload
    ShipmentHopRequestPayload:
      type: object
      properties:
        actual_date:
          type: integer
          format: int64
        actual_shipment_mode:
          type: string
          enum:
          - Air
          - Courier
          - Land
          - Sea
        bl_date:
          type: integer
          format: int64
        bl_doc:
          type: string
        bl_number:
          type: string
        booking_no:
          type: string
        by_pass_checks:
          type: boolean
        courier_partner_name:
          type: string
        eta:
          type: integer
          format: int64
        etd:
          type: integer
          format: int64
        factory_invoice_docs:
          type: array
          items:
            type: string
        factory_invoice_no:
          type: string
        id:
          type: integer
          format: int64
        invoice_doc_url:
          type: string
        other_shipment_hops:
          type: array
          items:
            type: integer
            format: int64
        packing_list_docs:
          type: array
          items:
            type: string
        pod_date:
          type: integer
          format: int64
        pod_number:
          type: string
        projection_date:
          type: integer
          format: int64
        remark:
          type: string
        shipment_docs:
          type: array
          items:
            $ref: '#/components/schemas/ShipmentDocDto'
        shipping_bill_doc:
          type: string
        status:
          type: string
          enum:
          - booked
          - complete
          - deliveryDate
          - paymentFollowup
          - preplanned
          - shipped
        tracking_id:
          type: string
        vessel:
          type: string
      title: ShipmentHopRequestPayload
    CheckForInvoiceRequestPayload:
      type: object
      properties:
        shipment_ids:
          type: array
          items:
            type: integer
            format: int64
      title: CheckForInvoiceRequestPayload
    LeadGenerationLiteResponse:
      type: object
      properties:
        brand:
          $ref: '#/components/schemas/BrandResponse'
        client_id:
          type: integer
          format: int64
        company:
          $ref: '#/components/schemas/CompanyDTO'
        country:
          type: string
        country_code:
          type: string
        created_at:
          type: string
          format: date-time
        creator_id:
          type: integer
          format: int64
        email:
          type: string
        first_name:
          type: string
        id:
          type: integer
          format: int64
        last_name:
          type: string
        lead_projection_list:
          type: array
          items:
            $ref: '#/components/schemas/LeadProjectionMiniDTO'
        name:
          type: string
        phone:
          type: string
      title: LeadGenerationLiteResponse
    ShipmentsRequestPayload:
      type: object
      properties:
        shipments:
          type: array
          items:
            $ref: '#/components/schemas/ShipmentRequestPayload'
      title: ShipmentsRequestPayload
    BrandVpDto:
      type: object
      properties:
        id:
          type: integer
          format: int64
        vp_email:
          type: string
        vp_id:
          type: integer
          format: int64
        vp_name:
          type: string
      title: BrandVpDto
    OrderRmLogisticsCostResponsePayload:
      type: object
      properties:
        acceptable_cost_of:
          type: string
        currency:
          type: string
        currency_price:
          type: number
        delivery_charges:
          type: number
        dollar_price:
          type: number
        factory_dollar_price:
          type: number
        freight_cost:
          type: number
        logistic_cost:
          type: number
        logistic_cost_per_piece:
          type: number
        logistic_cost_type:
          type: string
        order_id:
          type: integer
          format: int64
        quantity:
          type: integer
          format: int64
      title: OrderRmLogisticsCostResponsePayload
    VariantBuyerPoMappingRequestPayload:
      type: object
      properties:
        id:
          type: integer
          format: int64
        locked_quantity:
          type: integer
          format: int64
        order_buyer_po:
          $ref: '#/components/schemas/OrderBuyerPoBaseDto'
        po_no:
          type: string
        quantity:
          type: integer
          format: int64
      title: VariantBuyerPoMappingRequestPayload
    OrderDocDto:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        created_by:
          type: string
        doc_no:
          type: string
        doc_type:
          type: string
        docs:
          $ref: '#/components/schemas/DocDto'
        id:
          type: integer
          format: int64
        is_additional_doc:
          type: boolean
        order_id:
          type: integer
          format: int64
        s3_path:
          type: string
      title: OrderDocDto
    InvoiceVariantBuyerPoMappingDto:
      type: object
      properties:
        buyer_currency_price_total:
          type: number
        commission_amount_buyer_currency:
          type: number
        commission_amount_geniemode_currency:
          type: number
        currency_price_total:
          type: number
        factory_currency_price_total:
          type: number
        geniemode_currency_price_total:
          type: number
        id:
          type: integer
          format: int64
        locked_quantity:
          type: integer
          format: int64
        order_buyer_po:
          $ref: '#/components/schemas/OrderBuyerPoBaseDto'
        quantity:
          type: integer
          format: int64
      title: InvoiceVariantBuyerPoMappingDto
    FinalInvoiceInInvoiceDto:
      type: object
      properties:
        comment:
          type: string
        discount:
          $ref: '#/components/schemas/FinalInvoiceDiscountDto'
        grn_doc_url:
          type: string
        grn_status:
          type: string
        id:
          type: integer
          format: int64
        invoice_doc_url:
          type: string
        invoice_no:
          type: string
        pod_doc_url:
          type: string
        raised_on_timestamp:
          type: integer
          format: int64
        status:
          type: string
        total_amount:
          type: number
      title: FinalInvoiceInInvoiceDto
    PoMinDto:
      type: object
      properties:
        id:
          type: integer
          format: int64
        order_id:
          type: integer
          format: int64
        rejected_reason:
          type: string
        status:
          type: string
        status_change_time:
          type: integer
          format: int64
      title: PoMinDto
    OrderBuyerPoBaseDto:
      type: object
      properties:
        buyer_po_no:
          type: string
        id:
          type: integer
          format: int64
      title: OrderBuyerPoBaseDto
    VariantRequestPayload:
      type: object
      properties:
        buying_price:
          type: number
        color:
          type: string
        currency_price:
          type: number
        factory_currency_price:
          type: number
        factory_dollar_price:
          type: number
        final_currency_price:
          type: number
        final_price:
          type: number
        id:
          type: integer
          format: int64
        identifier:
          type: string
        price:
          type: number
        qc_quantity:
          type: integer
          format: int64
        quantity:
          type: integer
          format: int64
        size:
          type: string
        through_qc:
          type: boolean
        uom:
          type: string
        variant_buyer_po_mappings:
          type: array
          items:
            $ref: '#/components/schemas/VariantBuyerPoMappingRequestPayload'
      title: VariantRequestPayload
    ShipmentInvoiceDto:
      type: object
      properties:
        final_invoice:
          $ref: '#/components/schemas/FinalInvoiceInInvoiceDto'
        id:
          type: integer
          format: int64
        invoice_no:
          type: string
        invoice_status:
          type: string
        is_system_invoice_final:
          type: boolean
        shipments:
          type: array
          items:
            $ref: '#/components/schemas/InvoiceShipmentsResponsePayload'
      title: ShipmentInvoiceDto
    UpdateShipmentHopAuditRequestPayload:
      type: object
      properties:
        audit_actual_date:
          type: integer
          format: int64
        audit_status:
          type: string
      title: UpdateShipmentHopAuditRequestPayload
    ShipmentHopDto:
      type: object
      properties:
        actual_date:
          type: integer
          format: int64
        delay:
          type: integer
          format: int64
        hide:
          type: boolean
        id:
          type: integer
          format: int64
        last_modified_at:
          type: integer
          format: int64
        position:
          type: integer
          format: int32
        projection_date:
          type: integer
          format: int64
        remark:
          type: string
        shipment_docs:
          type: array
          items:
            $ref: '#/components/schemas/ShipmentDocDto'
        status:
          type: string
          enum:
          - booked
          - complete
          - deliveryDate
          - paymentFollowup
          - preplanned
          - shipped
        status_change_date:
          type: integer
          format: int64
      title: ShipmentHopDto
    GeniemodeEntityDto:
      type: object
      properties:
        address:
          type: object
        address_id:
          type: integer
          format: int64
        address_list:
          type: array
          items:
            $ref: '#/components/schemas/AddressSubmitResponsePayload'
        compliance:
          type: string
        currency:
          type: string
        id:
          type: integer
          format: int64
        invoice_declaration:
          type: string
        label:
          type: string
        legal_name:
          type: string
        tally_currency:
          type: string
        value:
          type: string
      title: GeniemodeEntityDto
    DocDto:
      type: object
      properties:
        doc_display_name:
          type: string
        id:
          type: integer
          format: int64
        s3_path:
          type: string
        s3_version:
          type: integer
          format: int64
      title: DocDto
    ShipmentDocTypeResponsePayload:
      type: object
      properties:
        booked:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/ShipmentSingleDocTypeResponsePayload'
        complete:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/ShipmentSingleDocTypeResponsePayload'
        delivery_date:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/ShipmentSingleDocTypeResponsePayload'
        is_delivery_date_step_required:
          type: boolean
        is_payment_followup_step_required:
          type: boolean
        payment_followup:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/ShipmentSingleDocTypeResponsePayload'
        preplanned:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/ShipmentSingleDocTypeResponsePayload'
        shipped:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/ShipmentSingleDocTypeResponsePayload'
      title: ShipmentDocTypeResponsePayload
    InvoiceShipmentsResponsePayload:
      type: object
      properties:
        id:
          type: integer
          format: int64
        shipment:
          $ref: '#/components/schemas/ShipmentInInvoiceDto'
      title: InvoiceShipmentsResponsePayload
    ShipmentLogisticCostsResponsePayload:
      type: object
      properties:
        buyer_currency:
          type: string
        order_custom_duty_costs:
          type: array
          items:
            $ref: '#/components/schemas/OrderCustomDuty'
        order_logistics_costs:
          type: array
          items:
            $ref: '#/components/schemas/OrderRmLogisticsCostResponsePayload'
        total_custom_duty:
          type: number
        total_logistics_cost:
          type: number
      title: ShipmentLogisticCostsResponsePayload
    ShipmentDto:
      type: object
      properties:
        actual_shipment_mode:
          type: string
          enum:
          - Air
          - Courier
          - Land
          - Sea
        address:
          $ref: '#/components/schemas/AddressSubmitResponsePayload'
        address_id:
          type: integer
          format: int64
        cancellation_date:
          type: integer
          format: int64
        current_status:
          type: string


# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/geniemode/refs/heads/main/openapi/geniemode-shipment-controller-api-openapi.yml