{
  "openapi": "3.0.1",
  "info": {
    "title": "Ordinavo Connect API",
    "description": "Public API for external Ordinavo Connect integrations.\n\nExternal systems can send inbound targets, inspect their own ImportJobs and create draft Smart Route Suggestions from imported data. API keys are generated and managed in the protected Ordinavo application.",
    "version": "v1"
  },
  "paths": {
    "/api/v1/connect/inventory/items": {
      "get": {
        "tags": [
          "ConnectInventoryLight"
        ],
        "description": "Required integration scope: `connect.inventory.read`\n\nAuthentication: `Authorization: Bearer <ordinavo-integration-api-key>`.\n\nRate limits are enforced per Integration Client.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectInventoryItemDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectInventoryItemDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectInventoryItemDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OrdinavoApiKey": [ ]
          }
        ],
        "x-ordinavo-required-scopes": [
          "connect.inventory.read"
        ]
      }
    },
    "/api/v1/connect/inventory/locations": {
      "get": {
        "tags": [
          "ConnectInventoryLight"
        ],
        "description": "Required integration scope: `connect.inventory.read`\n\nAuthentication: `Authorization: Bearer <ordinavo-integration-api-key>`.\n\nRate limits are enforced per Integration Client.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectInventoryLocationDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectInventoryLocationDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectInventoryLocationDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OrdinavoApiKey": [ ]
          }
        ],
        "x-ordinavo-required-scopes": [
          "connect.inventory.read"
        ]
      }
    },
    "/api/v1/connect/inventory/balances": {
      "get": {
        "tags": [
          "ConnectInventoryLight"
        ],
        "description": "Required integration scope: `connect.inventory.read`\n\nAuthentication: `Authorization: Bearer <ordinavo-integration-api-key>`.\n\nRate limits are enforced per Integration Client.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectInventoryBalanceDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectInventoryBalanceDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectInventoryBalanceDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OrdinavoApiKey": [ ]
          }
        ],
        "x-ordinavo-required-scopes": [
          "connect.inventory.read"
        ]
      }
    },
    "/api/v1/connect/work-orders/{workOrderId}/materials": {
      "get": {
        "tags": [
          "ConnectInventoryLight"
        ],
        "description": "Required integration scope: `connect.workorders.materials.read`\n\nAuthentication: `Authorization: Bearer <ordinavo-integration-api-key>`.\n\nRate limits are enforced per Integration Client.",
        "parameters": [
          {
            "name": "workOrderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WorkOrderMaterialUsageDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WorkOrderMaterialUsageDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WorkOrderMaterialUsageDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OrdinavoApiKey": [ ]
          }
        ],
        "x-ordinavo-required-scopes": [
          "connect.workorders.materials.read"
        ]
      },
      "post": {
        "tags": [
          "ConnectInventoryLight"
        ],
        "description": "Required integration scope: `connect.workorders.materials.write`\n\nAuthentication: `Authorization: Bearer <ordinavo-integration-api-key>`.\n\nRate limits are enforced per Integration Client.",
        "parameters": [
          {
            "name": "workOrderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConnectWorkOrderMaterialUsageRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConnectWorkOrderMaterialUsageRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConnectWorkOrderMaterialUsageRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectWorkOrderMaterialUsageResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectWorkOrderMaterialUsageResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectWorkOrderMaterialUsageResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OrdinavoApiKey": [ ]
          }
        ],
        "x-ordinavo-required-scopes": [
          "connect.workorders.materials.write"
        ]
      }
    },
    "/api/v1/connect/work-orders/by-external-id/{externalWorkOrderId}/materials": {
      "post": {
        "tags": [
          "ConnectInventoryLight"
        ],
        "description": "Required integration scope: `connect.workorders.materials.write`\n\nAuthentication: `Authorization: Bearer <ordinavo-integration-api-key>`.\n\nRate limits are enforced per Integration Client.",
        "parameters": [
          {
            "name": "externalWorkOrderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConnectWorkOrderMaterialUsageRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConnectWorkOrderMaterialUsageRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConnectWorkOrderMaterialUsageRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectWorkOrderMaterialUsageResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectWorkOrderMaterialUsageResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectWorkOrderMaterialUsageResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OrdinavoApiKey": [ ]
          }
        ],
        "x-ordinavo-required-scopes": [
          "connect.workorders.materials.write"
        ]
      }
    },
    "/api/connect/jobs": {
      "post": {
        "tags": [
          "ConnectJobs"
        ],
        "description": "Required integration scope: `connect.jobs.write`\n\nAuthentication: `Authorization: Bearer <ordinavo-integration-api-key>`.\n\nRate limits are enforced per Integration Client.",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectCreateJobResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectCreateJobResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectCreateJobResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectCreateJobResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectCreateJobResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectCreateJobResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OrdinavoApiKey": [ ]
          }
        ],
        "x-ordinavo-required-scopes": [
          "connect.jobs.write"
        ]
      }
    },
    "/api/v1/connect/jobs": {
      "post": {
        "tags": [
          "ConnectJobs"
        ],
        "description": "Required integration scope: `connect.jobs.write`\n\nAuthentication: `Authorization: Bearer <ordinavo-integration-api-key>`.\n\nRate limits are enforced per Integration Client.",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectCreateJobResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectCreateJobResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectCreateJobResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectCreateJobResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectCreateJobResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectCreateJobResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OrdinavoApiKey": [ ]
          }
        ],
        "x-ordinavo-required-scopes": [
          "connect.jobs.write"
        ]
      }
    },
    "/api/v1/import-jobs": {
      "get": {
        "tags": [
          "ImportJobs"
        ],
        "description": "Required integration scope: `import_jobs.read`\n\nAuthentication: `Authorization: Bearer <ordinavo-integration-api-key>`.\n\nRate limits are enforced per Integration Client.",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sourceSystem",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "take",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OrdinavoApiKey": [ ]
          }
        ],
        "x-ordinavo-required-scopes": [
          "import_jobs.read"
        ]
      }
    },
    "/api/v1/import-jobs/{id}": {
      "get": {
        "tags": [
          "ImportJobs"
        ],
        "description": "Required integration scope: `import_jobs.read`\n\nAuthentication: `Authorization: Bearer <ordinavo-integration-api-key>`.\n\nRate limits are enforced per Integration Client.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OrdinavoApiKey": [ ]
          }
        ],
        "x-ordinavo-required-scopes": [
          "import_jobs.read"
        ]
      }
    },
    "/api/v1/import-jobs/{id}/route-suggestion": {
      "post": {
        "tags": [
          "ImportJobs"
        ],
        "description": "Required integration scope: `route_suggestions.create`\n\nAuthentication: `Authorization: Bearer <ordinavo-integration-api-key>`.\n\nRate limits are enforced per Integration Client.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateImportJobRouteSuggestionApiRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateImportJobRouteSuggestionApiRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateImportJobRouteSuggestionApiRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OrdinavoApiKey": [ ]
          }
        ],
        "x-ordinavo-required-scopes": [
          "route_suggestions.create"
        ]
      }
    },
    "/api/v1/inbound/targets": {
      "post": {
        "tags": [
          "InboundTargets"
        ],
        "description": "Required integration scope: `inbound.targets.write`\n\nAuthentication: `Authorization: Bearer <ordinavo-integration-api-key>`.\n\nRate limits are enforced per Integration Client.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InboundTargetDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InboundTargetDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InboundTargetDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InboundImportResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InboundImportResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InboundImportResultDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OrdinavoApiKey": [ ]
          }
        ],
        "x-ordinavo-required-scopes": [
          "inbound.targets.write"
        ]
      }
    },
    "/api/v1/inbound/targets/batch": {
      "post": {
        "tags": [
          "InboundTargets"
        ],
        "description": "Required integration scope: `inbound.targets.batch.write`\n\nAuthentication: `Authorization: Bearer <ordinavo-integration-api-key>`.\n\nRate limits are enforced per Integration Client.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InboundTargetBatchDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InboundTargetBatchDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InboundTargetBatchDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InboundImportResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InboundImportResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InboundImportResultDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OrdinavoApiKey": [ ]
          }
        ],
        "x-ordinavo-required-scopes": [
          "inbound.targets.batch.write"
        ]
      }
    },
    "/api/v1/integration/health": {
      "get": {
        "tags": [
          "IntegrationApi"
        ],
        "description": "Required integration scope: `integration.health.read`\n\nAuthentication: `Authorization: Bearer <ordinavo-integration-api-key>`.\n\nRate limits are enforced per Integration Client.",
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OrdinavoApiKey": [ ]
          }
        ],
        "x-ordinavo-required-scopes": [
          "integration.health.read"
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "ApiError": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "correlationId": {
            "type": "string",
            "nullable": true
          },
          "fieldErrors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            },
            "nullable": true
          },
          "details": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiErrorResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          }
        },
        "additionalProperties": false
      },
      "ConnectApiError": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectApiErrorDetail"
            },
            "nullable": true
          },
          "requestId": {
            "type": "string",
            "nullable": true
          },
          "correlationId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConnectApiErrorDetail": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConnectApiErrorResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ConnectApiError"
          }
        },
        "additionalProperties": false
      },
      "ConnectCreateJobResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "nullable": true
          },
          "correlationId": {
            "type": "string",
            "nullable": true
          },
          "externalId": {
            "type": "string",
            "nullable": true
          },
          "fieldJobId": {
            "type": "string",
            "format": "uuid"
          },
          "jobNumber": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "boolean"
          },
          "idempotentReplay": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ConnectInventoryBalanceDto": {
        "type": "object",
        "properties": {
          "inventoryItemId": {
            "type": "string",
            "format": "uuid"
          },
          "itemName": {
            "type": "string",
            "nullable": true
          },
          "sku": {
            "type": "string",
            "nullable": true
          },
          "inventoryLocationId": {
            "type": "string",
            "format": "uuid"
          },
          "locationName": {
            "type": "string",
            "nullable": true
          },
          "externalLocationCode": {
            "type": "string",
            "nullable": true
          },
          "quantityOnHand": {
            "type": "number",
            "format": "double"
          },
          "unitOfMeasure": {
            "type": "string",
            "nullable": true
          },
          "isLowStock": {
            "type": "boolean"
          },
          "isNegative": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ConnectInventoryItemDto": {
        "type": "object",
        "properties": {
          "inventoryItemId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "sku": {
            "type": "string",
            "nullable": true
          },
          "categoryName": {
            "type": "string",
            "nullable": true
          },
          "unitOfMeasure": {
            "type": "string",
            "nullable": true
          },
          "trackStock": {
            "type": "boolean"
          },
          "defaultQuantity": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "lowStockThreshold": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConnectInventoryLocationDto": {
        "type": "object",
        "properties": {
          "inventoryLocationId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "externalCode": {
            "type": "string",
            "nullable": true
          },
          "locationType": {
            "$ref": "#/components/schemas/InventoryLocationType"
          },
          "isDefault": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ConnectMaterialUsageIdempotencyDto": {
        "type": "object",
        "properties": {
          "externalEventId": {
            "type": "string",
            "nullable": true
          },
          "wasAlreadyProcessed": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ConnectMaterialUsageMaterialDto": {
        "type": "object",
        "properties": {
          "inventoryItemId": {
            "type": "string",
            "format": "uuid"
          },
          "sku": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "unitOfMeasure": {
            "type": "string",
            "nullable": true
          },
          "trackStock": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ConnectMaterialUsageStockImpactDto": {
        "type": "object",
        "properties": {
          "locationId": {
            "type": "string",
            "format": "uuid"
          },
          "locationName": {
            "type": "string",
            "nullable": true
          },
          "quantityBefore": {
            "type": "number",
            "format": "double"
          },
          "quantityAfter": {
            "type": "number",
            "format": "double"
          },
          "isNegativeAfterPosting": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ConnectWorkOrderMaterialUsageResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "workOrderId": {
            "type": "integer",
            "format": "int32"
          },
          "externalWorkOrderId": {
            "type": "string",
            "nullable": true
          },
          "usageId": {
            "type": "string",
            "format": "uuid"
          },
          "inventoryMovementId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "material": {
            "$ref": "#/components/schemas/ConnectMaterialUsageMaterialDto"
          },
          "stockImpact": {
            "$ref": "#/components/schemas/ConnectMaterialUsageStockImpactDto"
          },
          "idempotency": {
            "$ref": "#/components/schemas/ConnectMaterialUsageIdempotencyDto"
          }
        },
        "additionalProperties": false
      },
      "CreateConnectWorkOrderMaterialUsageRequest": {
        "type": "object",
        "properties": {
          "externalEventId": {
            "type": "string",
            "nullable": true
          },
          "inventoryItemId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "externalMaterialCode": {
            "type": "string",
            "nullable": true
          },
          "inventoryLocationId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "externalLocationCode": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "isBillable": {
            "type": "boolean"
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "capturedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "externalSource": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateImportJobRouteSuggestionApiRequest": {
        "type": "object",
        "properties": {
          "employeeId": {
            "type": "string",
            "nullable": true
          },
          "routeDate": {
            "type": "string",
            "format": "date"
          },
          "optimizationProfileId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "minimumBufferMinutes": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxStops": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InboundAddressDto": {
        "type": "object",
        "properties": {
          "street": {
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InboundBusinessValueDto": {
        "type": "object",
        "properties": {
          "expectedRevenue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "customerValue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "closeProbability": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "customerTier": {
            "type": "string",
            "nullable": true
          },
          "weight": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InboundContactDto": {
        "type": "object",
        "properties": {
          "externalId": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "role": {
            "type": "string",
            "nullable": true
          },
          "department": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "nullable": true
          },
          "preferredContactMethod": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InboundCustomerDto": {
        "type": "object",
        "properties": {
          "externalId": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "customerNumber": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "industry": {
            "type": "string",
            "nullable": true
          },
          "contactName": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "website": {
            "type": "string",
            "nullable": true
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InboundCustomerMappingResultDto": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "nullable": true
          },
          "customerId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "customerLocationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "customerContactId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InboundImportItemResultDto": {
        "type": "object",
        "properties": {
          "externalId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "targetId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "errorCode": {
            "type": "string",
            "nullable": true
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InboundImportWarningDto"
            },
            "nullable": true
          },
          "customerMapping": {
            "$ref": "#/components/schemas/InboundCustomerMappingResultDto"
          }
        },
        "additionalProperties": false
      },
      "InboundImportResultDto": {
        "type": "object",
        "properties": {
          "importJobId": {
            "type": "integer",
            "format": "int64"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "createdItems": {
            "type": "integer",
            "format": "int32"
          },
          "updatedItems": {
            "type": "integer",
            "format": "int32"
          },
          "cancelledItems": {
            "type": "integer",
            "format": "int32"
          },
          "rejectedItems": {
            "type": "integer",
            "format": "int32"
          },
          "warningItems": {
            "type": "integer",
            "format": "int32"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InboundImportItemResultDto"
            },
            "nullable": true
          },
          "links": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InboundImportWarningDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InboundLocationDto": {
        "type": "object",
        "properties": {
          "externalId": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "street": {
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "region": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "defaultEstimatedWorkMinutes": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "defaultPriority": {
            "type": "string",
            "nullable": true
          },
          "accessNotes": {
            "type": "string",
            "nullable": true
          },
          "parkingNotes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InboundPlanningDto": {
        "type": "object",
        "properties": {
          "routeDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "dueAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "timeWindowStartUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "timeWindowEndUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "estimatedWorkMinutes": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "priority": {
            "type": "string",
            "nullable": true
          },
          "fixedTime": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InboundTargetBatchDto": {
        "type": "object",
        "properties": {
          "sourceSystem": {
            "type": "string",
            "nullable": true
          },
          "batchId": {
            "type": "string",
            "nullable": true
          },
          "operation": {
            "type": "string",
            "nullable": true
          },
          "targets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InboundTargetDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InboundTargetDto": {
        "type": "object",
        "properties": {
          "sourceSystem": {
            "type": "string",
            "nullable": true
          },
          "externalId": {
            "type": "string",
            "nullable": true
          },
          "externalType": {
            "type": "string",
            "nullable": true
          },
          "operation": {
            "type": "string",
            "nullable": true
          },
          "templateKey": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "customer": {
            "$ref": "#/components/schemas/InboundCustomerDto"
          },
          "location": {
            "$ref": "#/components/schemas/InboundLocationDto"
          },
          "contact": {
            "$ref": "#/components/schemas/InboundContactDto"
          },
          "address": {
            "$ref": "#/components/schemas/InboundAddressDto"
          },
          "planning": {
            "$ref": "#/components/schemas/InboundPlanningDto"
          },
          "businessValue": {
            "$ref": "#/components/schemas/InboundBusinessValueDto"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InventoryLocationType": {
        "enum": [
          1,
          2,
          3,
          4,
          99
        ],
        "type": "integer",
        "format": "int32"
      },
      "WorkOrderMaterialUsageDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workOrderId": {
            "type": "integer",
            "format": "int32"
          },
          "inventoryItemId": {
            "type": "string",
            "format": "uuid"
          },
          "itemName": {
            "type": "string",
            "nullable": true
          },
          "itemSku": {
            "type": "string",
            "nullable": true
          },
          "inventoryLocationId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "locationName": {
            "type": "string",
            "nullable": true
          },
          "employeeId": {
            "type": "string",
            "nullable": true
          },
          "employeeName": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "unitOfMeasure": {
            "type": "string",
            "nullable": true
          },
          "isBillable": {
            "type": "boolean"
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/WorkOrderMaterialUsageStatus"
          },
          "source": {
            "$ref": "#/components/schemas/WorkOrderMaterialUsageSource"
          },
          "trackStock": {
            "type": "boolean"
          },
          "inventoryMovementId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "reversalMovementId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "capturedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdByUserId": {
            "type": "string",
            "nullable": true
          },
          "cancelledAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "cancellationReason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WorkOrderMaterialUsageSource": {
        "enum": [
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "format": "int32"
      },
      "WorkOrderMaterialUsageStatus": {
        "enum": [
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      }
    },
    "securitySchemes": {
      "OrdinavoApiKey": {
        "type": "http",
        "description": "Use a Ordinavo Integration API key generated in the Integration Client settings. Example: Authorization: Bearer fio_live_xxxxx",
        "scheme": "bearer",
        "bearerFormat": "Ordinavo Integration API Key"
      }
    }
  },
  "security": [
    {
      "OrdinavoApiKey": [ ]
    }
  ]
}