Geniemode Invoice Controller API

Invoice Controller

Business capability
Accounts Receivable Management BC-200.30

Operations 27

GET /api/v1/path/invoice index #
POST /api/v1/path/invoice create #
GET /api/v1/path/invoice/buyer/pos/{invoiceId} getBuyerPos #
PUT /api/v1/path/invoice/cancel/{invoiceId} cancel #
GET /api/v1/path/invoice/consolidated indexConsolidated #
POST /api/v1/path/invoice/consolidated createConsolidatedInvoice #
GET /api/v1/path/invoice/consolidated/finalInvoiceDocs/{id} getConsolidatedFinalInvoiceDocs #
POST /api/v1/path/invoice/consolidated/finalInvoiceDocs/{id} updateConsolidatedFinalInvoiceDocs #
PUT /api/v1/path/invoice/consolidated/grnDocs/{id} uploadGrnDocsOnConsolidated #
GET /api/v1/path/invoice/consolidated/{consolidatedId}/checkForHops consolidatedInvoiceCheckForHops #
PUT /api/v1/path/invoice/consolidated/{consolidatedId}/hops editConsolidatedInvoiceHop #
GET /api/v1/path/invoice/consolidated/{id} getConsolidatedInvoice #
PUT /api/v1/path/invoice/consolidated/{id} updateConsolidatedInvoice #
GET /api/v1/path/invoice/find-similar-orders-by-shipment findSimilarOrdersToShipment #
GET /api/v1/path/invoice/find-similar-shipments/{shipmentId}/order/{orderId} findSimilarShipmentToGivenShipmentAndOrder #
PUT /api/v1/path/invoice/freeze-invoice-numbers/{country}/{count} freezeInvoiceNumbers #
GET /api/v1/path/invoice/get-buyer-pos getBuyerPos #
GET /api/v1/path/invoice/get-order-eligible-shipments/{orderId} getOrderEligibleShipments #
GET /api/v1/path/invoice/get-shipment-invoice-data/{shipmentId} getShipmentInvoiceData #
PUT /api/v1/path/invoice/move-to-pending-state/{invoiceId} moveToPendingState #
GET /api/v1/path/invoice/orders-eligible-for-invoice findOrdersEligibleForInvoice #
PUT /api/v1/path/invoice/refreshAddresses/{invoiceId} refreshAddresses #
PUT /api/v1/path/invoice/{finalInvoiceId}/grn uploadGrn #
GET /api/v1/path/invoice/{invoiceId} get #
PUT /api/v1/path/invoice/{invoiceId} update #
DELETE /api/v1/path/invoice/{invoiceId} delete #
GET /api/v1/path/invoice/{invoiceId}/logistics/details invoiceLogisticsDetails #

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-invoice-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-invoice-controller-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Cataloguing API.
  version: API V
  title: Cataloguing Invoice 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: invoice-controller
  description: Invoice Controller
paths:
  /api/v1/path/invoice:
    get:
      tags:
      - invoice-controller
      summary: index
      operationId: indexUsingGET_10
      parameters:
      - name: brandId
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: brandIds
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: companyIds
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: companyName
        in: query
        required: false
        schema:
          type: string
      - name: endApprovedTs
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: endRaisedOnTimestamp
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: isConsolidated
        in: query
        required: false
        schema:
          type: boolean
      - name: leadIds
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: manufacturerIds
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: search
        in: query
        required: false
        schema:
          type: string
      - name: startApprovedTs
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: startRaisedOnTimestamp
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: status
        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
    post:
      tags:
      - invoice-controller
      summary: create
      operationId: createUsingPOST_8
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceResponsePayload'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateInvoiceRequestPayload'
        description: createInvoiceRequestPayload
        required: true
  /api/v1/path/invoice/buyer/pos/{invoiceId}:
    get:
      tags:
      - invoice-controller
      summary: getBuyerPos
      operationId: getBuyerPosUsingGET
      parameters:
      - name: invoiceId
        in: path
        description: invoiceId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrderDetailBuyerPODocWithOrdersDto'
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/path/invoice/cancel/{invoiceId}:
    put:
      tags:
      - invoice-controller
      summary: cancel
      operationId: cancelUsingPUT
      parameters:
      - name: invoiceId
        in: path
        description: invoiceId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
  /api/v1/path/invoice/consolidated:
    get:
      tags:
      - invoice-controller
      summary: indexConsolidated
      operationId: indexConsolidatedUsingGET
      parameters:
      - name: brandId
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: brandIds
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: companyIds
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: companyName
        in: query
        required: false
        schema:
          type: string
      - name: endApprovedTs
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: endRaisedOnTimestamp
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: isConsolidated
        in: query
        required: false
        schema:
          type: boolean
      - name: leadIds
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: manufacturerIds
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: search
        in: query
        required: false
        schema:
          type: string
      - name: startApprovedTs
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: startRaisedOnTimestamp
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: status
        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
    post:
      tags:
      - invoice-controller
      summary: createConsolidatedInvoice
      operationId: createConsolidatedInvoiceUsingPOST
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsolidatedInvoiceListingResponsePayload'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateConsolidatedInvoice'
        description: requestPayload
        required: true
  /api/v1/path/invoice/consolidated/finalInvoiceDocs/{id}:
    get:
      tags:
      - invoice-controller
      summary: getConsolidatedFinalInvoiceDocs
      operationId: getConsolidatedFinalInvoiceDocsUsingGET
      parameters:
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
                  additionalProperties:
                    type: object
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
    post:
      tags:
      - invoice-controller
      summary: updateConsolidatedFinalInvoiceDocs
      operationId: updateConsolidatedFinalInvoiceDocsUsingPOST
      parameters:
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsolidatedInvoiceListingResponsePayload'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFinalInvoiceListDocsRequestPayload'
        description: payload
        required: true
  /api/v1/path/invoice/consolidated/grnDocs/{id}:
    put:
      tags:
      - invoice-controller
      summary: uploadGrnDocsOnConsolidated
      operationId: uploadGrnDocsOnConsolidatedUsingPUT
      parameters:
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceResponsePayload'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateInvoiceRequestPayload'
        description: createInvoiceRequestPayload
        required: true
  /api/v1/path/invoice/consolidated/{consolidatedId}/checkForHops:
    get:
      tags:
      - invoice-controller
      summary: consolidatedInvoiceCheckForHops
      operationId: consolidatedInvoiceCheckForHopsUsingGET
      parameters:
      - name: consolidatedId
        in: path
        description: consolidatedId
        required: true
        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/path/invoice/consolidated/{consolidatedId}/hops:
    put:
      tags:
      - invoice-controller
      summary: editConsolidatedInvoiceHop
      operationId: editConsolidatedInvoiceHopUsingPUT
      parameters:
      - name: consolidatedId
        in: path
        description: consolidatedId
        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/path/invoice/consolidated/{id}:
    get:
      tags:
      - invoice-controller
      summary: getConsolidatedInvoice
      operationId: getConsolidatedInvoiceUsingGET
      parameters:
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsolidatedInvoiceListingResponsePayload'
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
    put:
      tags:
      - invoice-controller
      summary: updateConsolidatedInvoice
      operationId: updateConsolidatedInvoiceUsingPUT
      parameters:
      - name: id
        in: path
        description: id
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsolidatedInvoiceListingResponsePayload'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsolidatedInvoiceUpdatePayload'
        description: requestPayload
        required: true
  /api/v1/path/invoice/find-similar-orders-by-shipment:
    get:
      tags:
      - invoice-controller
      summary: findSimilarOrdersToShipment
      operationId: findSimilarOrdersToShipmentUsingGET
      parameters:
      - name: billToType
        in: query
        required: false
        schema:
          type: string
      - name: leadIds
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: manufacturerIds
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: search
        in: query
        required: false
        schema:
          type: string
      - name: shipmentId
        in: query
        required: false
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/path/invoice/find-similar-shipments/{shipmentId}/order/{orderId}:
    get:
      tags:
      - invoice-controller
      summary: findSimilarShipmentToGivenShipmentAndOrder
      operationId: findSimilarShipmentToGivenShipmentAndOrderUsingGET
      parameters:
      - name: orderId
        in: path
        description: orderId
        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: array
                items:
                  $ref: '#/components/schemas/ShipmentInInvoiceResponse'
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/path/invoice/freeze-invoice-numbers/{country}/{count}:
    put:
      tags:
      - invoice-controller
      summary: freezeInvoiceNumbers
      operationId: freezeInvoiceNumbersUsingPUT
      parameters:
      - name: count
        in: path
        description: count
        required: true
        schema:
          type: integer
          format: int64
      - name: country
        in: path
        description: country
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /api/v1/path/invoice/get-buyer-pos:
    get:
      tags:
      - invoice-controller
      summary: getBuyerPos
      operationId: getBuyerPosUsingGET_1
      parameters:
      - name: orderIds
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: search
        in: query
        required: false
        schema:
          type: string
      - 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: object
                additionalProperties:
                  type: object
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/path/invoice/get-order-eligible-shipments/{orderId}:
    get:
      tags:
      - invoice-controller
      summary: getOrderEligibleShipments
      operationId: getOrderEligibleShipmentsUsingGET
      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/ShipmentInInvoiceResponse'
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/path/invoice/get-shipment-invoice-data/{shipmentId}:
    get:
      tags:
      - invoice-controller
      summary: getShipmentInvoiceData
      operationId: getShipmentInvoiceDataUsingGET_1
      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/ShipmentInInvoiceDto'
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/path/invoice/move-to-pending-state/{invoiceId}:
    put:
      tags:
      - invoice-controller
      summary: moveToPendingState
      operationId: moveToPendingStateUsingPUT
      parameters:
      - name: invoiceId
        in: path
        description: invoiceId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
  /api/v1/path/invoice/orders-eligible-for-invoice:
    get:
      tags:
      - invoice-controller
      summary: findOrdersEligibleForInvoice
      operationId: findOrdersEligibleForInvoiceUsingGET_1
      parameters:
      - name: billToType
        in: query
        required: false
        schema:
          type: string
      - name: leadIds
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: manufacturerIds
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: search
        in: query
        required: false
        schema:
          type: string
      - name: shipmentId
        in: query
        required: false
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
  /api/v1/path/invoice/refreshAddresses/{invoiceId}:
    put:
      tags:
      - invoice-controller
      summary: refreshAddresses
      operationId: refreshAddressesUsingPUT
      parameters:
      - name: invoiceId
        in: path
        description: invoiceId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
  /api/v1/path/invoice/{finalInvoiceId}/grn:
    put:
      tags:
      - invoice-controller
      summary: uploadGrn
      operationId: uploadGrnUsingPUT
      parameters:
      - name: finalInvoiceId
        in: path
        description: finalInvoiceId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceResponsePayload'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateInvoiceRequestPayload'
        description: createInvoiceRequestPayload
        required: true
  /api/v1/path/invoice/{invoiceId}:
    get:
      tags:
      - invoice-controller
      summary: get
      operationId: getUsingGET_3
      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/InvoiceResponsePayload'
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
    put:
      tags:
      - invoice-controller
      summary: update
      operationId: updateUsingPUT_5
      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/InvoiceResponsePayload'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateInvoiceRequestPayload'
        description: createInvoiceRequestPayload
        required: true
    delete:
      tags:
      - invoice-controller
      summary: delete
      operationId: deleteUsingDELETE_4
      parameters:
      - name: invoiceId
        in: path
        description: invoiceId
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
  /api/v1/path/invoice/{invoiceId}/logistics/details:
    get:
      tags:
      - invoice-controller
      summary: invoiceLogisticsDetails
      operationId: invoiceLogisticsDetailsUsingGET_1
      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/InvoiceLogisticsDetailsResponsePayload'
        '403':
          description: Forbidden!!!!!
        '500':
          description: 500 message
components:
  schemas:
    InvoiceListingResponsePayload:
      type: object
      properties:
        empty_shipments:
          type: boolean
        final_inspection_complete:
          type: boolean
        final_invoice:
          $ref: '#/components/schemas/FinalInvoiceInInvoiceDto'
        id:
          type: integer
          format: int64
        incomplete_final_inspection_orders:
          type: array
          uniqueItems: true
          items:
            type: integer
            format: int64
        invoice_no:
          type: string
        invoice_raised_date:
          type: string
          format: date-time
        invoice_response_payload:
          $ref: '#/components/schemas/InvoiceResponsePayload'
        invoice_shipments:
          type: array
          items:
            $ref: '#/components/schemas/ShipmentInInvoiceMiniDto'
        net_margin:
          type: number
        pending_days:
          type: integer
          format: int64
        status:
          type: string
        status_change_date:
          type: integer
          format: int64
        total_invoice_amount:
          type: number
        total_invoice_factory_amount:
          type: number
        total_invoice_quantity:
          type: integer
          format: int64
        variant_order_ids:
          type: array
          uniqueItems: true
          items:
            type: integer
            format: int64
      title: InvoiceListingResponsePayload
    ShipmentSingleDocTypeResponsePayload:
      type: object
      properties:
        doc_type:
          type: string
        mandatory:
          type: boolean
        name:
          type: string
      title: ShipmentSingleDocTypeResponsePayload
    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
    ConsolidatedInvoiceListingResponsePayload:
      type: object
      properties:
        ask_buyer_wip_on_order:
          type: boolean
        assignee:
          $ref: '#/components/schemas/UMSUserResponsePayload'
        assignee_id:
          type: integer
          format: int64
        brand_response:
          $ref: '#/components/schemas/BrandResponse'
        consolidated_invoice_hop:
          type: array
          items:
            $ref: '#/components/schemas/ShipmentHopMiniDto'
        created_at:
          type: string
          format: date-time
        current_shipment_status:
          type: string
          enum:
          - booked
          - complete
          - deliveryDate
          - paymentFollowup
          - preplanned
          - shipped
        id:
          type: integer
          format: int64
        invoice_ids:
          type: array
          items:
            type: integer
            format: int64
        invoices:
          type: array
          items:
            $ref: '#/components/schemas/InvoiceListingResponsePayload'
        is_buy_and_sell_model:
          type: boolean
        is_domestic_buyer:
          type: boolean
        order_ids:
          type: array
          items:
            type: integer
            format: int64
        shipment_order_ids:
          type: array
          items:
            type: integer
            format: int64
        status:
          type: string
      title: ConsolidatedInvoiceListingResponsePayload
    OrderDetailBuyerPODocWithOrdersDto:
      type: object
      properties:
        buyer_doc:
          $ref: '#/components/schemas/OrderDocDto'
        buyer_po_id:
          type: integer
          format: int64
        buyer_po_no:
          type: string
        id:
          type: integer
          format: int64
        order_ids:
          type: array
          uniqueItems: true
          items:
            type: integer
            format: int64
        po_type:
          type: string
      title: OrderDetailBuyerPODocWithOrdersDto
    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
    InvoiceLogisticsDetailsResponsePayload:
      type: object
      properties:
        actual_logistic_cost_details:
          $ref: '#/components/schemas/InvoiceActualLogisticsDetailsResponsePayload'
        actual_shipment_mode:
          type: string
        planned_logistic_cost_details:
          type: array
          items:
            $ref: '#/components/schemas/InvoiceOrderPlannedLogisticsDetailsResponsePayload'
        planned_shipment_mode:
          type: string
        total_actual_logistics_cost:
          type: number
        total_planned_custom_duty:
          type: number
        total_planned_logistics_cost:
          type: number
      title: InvoiceLogisticsDetailsResponsePayload
    ConsolidatedInvoiceUpdatePayload:
      type: object
      properties:
        assignee_id:
          type: integer
          format: int64
        brand_id:
          type: integer
          format: int64
        invoice_ids:
          type: array
          items:
            type: integer
            format: int64
        logistics_info:
          type: array
          items:
            $ref: '#/components/schemas/LogisticsInvoiceRequestPayload'
        shipment_hops:
          type: array
          items:
            $ref: '#/components/schemas/InvoiceShipmentHopRequestPayload'
        status:
          type: string
      title: ConsolidatedInvoiceUpdatePayload
    ManufacturerMiniResponsePayload:
      type: object
      properties:
        billing_address:
          $ref: '#/components/schemas/AddressSubmitResponsePayload'
        billing_address_id:
          type: integer
          format: int64
        gst:
          type: string
        id:
          type: integer
          format: int64
        name:
          type: string
        pan:
          type: string
      title: ManufacturerMiniResponsePayload
    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
    LogisticsInvoiceRequestPayload:
      type: object
      properties:
        bl_doc:
          type: string
        carrier_number:
          type: string
        carrier_type:
          type: string
        clearance_charges:
          type: number
        cost_sheet_doc_url:
          type: string
        custom_duty:
          type: number
        custom_inco_term:
          type: string
        factory_invoice_docs:
          type: array
          uniqueItems: true
          items:
            type: string
        factory_invoice_no:
          type: string
        final_destination:
          type: string
        id:
          type: integer
          format: int64
        invoice_id:
          type: integer
          format: int64
        local_freight:
          type: number
        management_approval_doc_url:
          type: string
        packing_list_docs:
          type: array
          uniqueItems: true
          items:
            type: string
        pod_docs:
          type: array
          uniqueItems: true
          items:
            type: string
        port_of_discharge:
          type: string
        port_of_loading:
          type: string
        pre_carriage_by:
          type: string
        sea_freight:
          type: number
        shipping_bill_doc:
          type: string
        total_shipping_cost:
          type: number


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