JobBOSS² Public API

The JobBOSS²-specific REST API for cloud-hosted JobBOSS² customers, covering orders and order line items, order routings, quotes and quote line items, customers, contacts, shipping addresses, estimates and part master, materials and material issues, time tickets, employees and vendors. Uses bearer tokens from the Integration Engine OAuth 2.0 client-credentials flow, take/skip paging, fields/filter/sort expressions, and a Title/Status/Detail/TraceId JSON error envelope.

Operations 142

POST /api/v1/eci-aps/authenticate-user
GET /api/v1/eci-aps/get-schedule
POST /api/v1/shopview/authenticate-user
GET /api/v1/shopview/filters
GET /api/v1/shopview/get-jobs
POST /api/v1/shopview/grid-option
GET /api/v1/shopview/grid-options
GET /api/v1/shopview/kpi-definitions
GET /api/v1/shopview/kpi/jobs-closed
GET /api/v1/shopview/kpi/jobs-in-progress
GET /api/v1/shopview/kpi/jobs-on-hold
GET /api/v1/shopview/kpi/jobs-past-due
POST /api/v1/shopview/reset-grid-options
GET /api/v1/ap-checks Gets a list of AP Checks
POST /api/v1/ap-checks Creates a new AP Check
GET /api/v1/ap-checks/{checkNumber} Gets a single AP Check by check number
GET /api/v1/ar-invoice-details Gets a list of AR Invoice Details
GET /api/v1/ar-invoices Gets a list of AR Invoices
GET /api/v1/attendance-ticket-details Gets a list of Attendance Ticket Details
PATCH /api/v1/attendance-ticket-details/{id} Updates an Attendance Ticket Detail
POST /api/v1/attendance-tickets/{ticketDate}/employees/{employeeCode}/attendance-ticket-details Creates an Attendance Ticket Detail
GET /api/v1/attendance-tickets Gets a list of Attendance Tickets
POST /api/v1/attendance-tickets Creates an Attendance Ticket
GET /api/v1/attendance-tickets/{ticketDate}/employees/{employeeCode} Gets an Attendance Ticket by its unique ID
POST /api/v1/oauth2Exchange
GET /api/v1/bin-locations Gets a list of Bin Locations
GET /api/v1/company Gets a company
GET /api/v1/company-calendars Gets a list of Company Calendars
GET /api/v1/contacts Gets a list of Contacts
POST /api/v1/contacts Creates a Contact
GET /api/v1/contacts/{object}/{contactCode}/{contact} Gets a Contact by specifying the object, the contact code and the contact
PATCH /api/v1/contacts/{object}/{contactCode}/{contact} Updates a Contact
GET /api/v1/corrective-preventive-actions Gets a list of corrective actions
GET /api/v1/corrective-preventive-actions/{correctiveActionNumber} Gets a corrective action by number
GET /api/v1/currency-codes Gets a list of Currency Codes
GET /api/v1/customer-return-line-items Gets a list of Customer Return Line Items
GET /api/v1/customer-return-releases Gets a list of Customer Return Releases
GET /api/v1/customer-returns Gets a list of Customer Returns
GET /api/v1/customers Gets a list of Customers
POST /api/v1/customers Creates a Customer
GET /api/v1/customers/{customerCode} Gets a Customer by customer code
PATCH /api/v1/customers/{customerCode} Updates a Customer
GET /api/v1/departments Gets a list of Departments
GET /api/v1/document-controls Gets a list of Document Controls
GET /api/v1/document-histories Gets a list of Document Histories
GET /api/v1/document-review Gets a list of Document Review records
GET /api/v1/employee-trainings Gets a list of Employee Trainings
GET /api/v1/employees Gets a list of Employees
PATCH /api/v1/employees/{employeeCode} Updates an Employee
GET /api/v1/estimates Gets a list of Estimates
POST /api/v1/estimates Creates an Estimate.
GET /api/v1/estimates/{partNumber} Gets an Estimate by part number
PATCH /api/v1/estimates/{partNumber} Updates an Estimate
GET /api/v1/feedback Gets a list of Feedback
GET /api/v1/gl-codes Gets a list of GL Codes
GET /api/v1/gl-codes/{GLAccountNumber} Gets a GL Code by GL Account Number
GET /api/v1/issuing-materials/bin-locations Gets a list of parts with bin locations and quantity on hand
GET /api/v1/issuing-materials/job-numbers Gets a list of job numbers
GET /api/v1/issuing-materials/routing-steps Gets a list of routing steps for jobs
POST /api/v1/issuing-materials/stock-to-job-transfer Transfer stock materials to a job
GET /api/v1/job-materials Gets a list of Job Materials
GET /api/v1/job-materials/{uniqueID} Gets a Job Material by unique ID
GET /api/v1/job-requirements Gets a list of Job Requirements
GET /api/v1/job-requirements/{uniqueID} Gets a Job Requirement by uniqueID
GET /api/v1/estimates/{partNumber}/materials/{subPartNumber} Gets a Material of an Estimate by part number and sub part number
GET /api/v1/materials Gets a list of Materials
GET /api/v1/non-conformances Gets a list of Non-Conformances
GET /api/v1/non-conformances/{ncNumber} Gets Non-Conformance by number
GET /api/v1/operation-codes Gets a list of Operation Codes
GET /api/v1/operation-codes/{operationCode} Gets an Operation Code by operation code
GET /api/v1/order-line-items Gets a list of Order Line Items
POST /api/v1/orders/{orderNumber}/order-line-items Creates an order line item.
GET /api/v1/orders/{orderNumber}/order-line-items/{itemNumber} Gets an Order Line Item by Order's order number and Order Line Item's item number
PATCH /api/v1/orders/{orderNumber}/order-line-items/{itemNumber} Updates an Order Line Item
GET /api/v1/order-routings Gets a list of Order Routings
POST /api/v1/orders/{orderNumber}/order-line-items/{itemNumber}/order-routings Creates an Order Routing
GET /api/v1/orders/{orderNumber}/order-line-items/{itemNumber}/order-routings/{stepNumber} Gets an order routing by order number and order routing's item number and order routing's step number
PATCH /api/v1/orders/{orderNumber}/order-line-items/{itemNumber}/order-routings/{stepNumber} Updates an Order Routing
GET /api/v1/orders Gets a list of Orders
POST /api/v1/orders Creates an Order
GET /api/v1/orders/{orderNumber} Gets an Order by order number
PATCH /api/v1/orders/{orderNumber} Updates an Order
GET /api/v1/packing-list-line-items Gets a list of Packing List Line Items
GET /api/v1/packing-lists Gets a list of Packing Lists
GET /api/v1/product-codes Gets a list of Product Codes
GET /api/v1/product-codes/{productCode} Gets a Product Code by specifying the productCode
GET /api/v1/purchase-order-line-items Gets a list of Purchase Order Line Items
PATCH /api/v1/purchase-order-line-items/{purchaseOrderNumber}/{partNumber}/{itemNumber} Updates a Purchase Order Line Item
GET /api/v1/purchase-order-releases Gets a list of Purchase Order Releases
GET /api/v1/purchase-orders Gets a list of Purchase Orders
GET /api/v1/purchase-orders/{PONumber} Gets a Purchase Order by PO number
PATCH /api/v1/purchase-orders/{PONumber} Updates a Purchase Order
GET /api/v1/quote-line-items Gets a list of Quote Line Items
GET /api/v1/quotes/{quoteNumber}/quote-line-item/{itemNumber} Gets a Quote Line Item
POST /api/v1/quotes/{quoteNumber}/quote-line-items Creates a Quote Line Item
PATCH /api/v1/quotes/{quoteNumber}/quote-line-items/{itemNumber} Updates a Quote Line Item
GET /api/v1/quotes Gets a list of Quotes
POST /api/v1/quotes Creates a Quote
GET /api/v1/quotes/{quoteNumber} Gets a Quote by order number
PATCH /api/v1/quotes/{quoteNumber} Updates a Quote
GET /api/v1/reason-codes Gets a list of Reason Codes
GET /api/v1/reason-codes/{uniqueID} Gets an reason code by uniqueID
POST /api/v1/orders/{orderNumber}/order-line-items/{itemNumber}/releases Creates a Order Release
GET /api/v1/orders/{orderNumber}/order-line-items/{itemNumber}/releases/{uniqueID} Gets an Order Release from an order by Order Number, Item Number and Unique ID
GET /api/v1/releases Gets a list of Releases
POST /api/v1/reports
GET /api/v1/reports/{requestId}
GET /api/v1/estimates/{partNumber}/routings/{stepNumber} Gets a Routing by estimate's part number and routing's step number
GET /api/v1/routings Gets a list of Routings
GET /api/v1/salespersons Gets a list of Salespersons
PATCH /api/v1/salespersons/{salesID} Updates a Salesperson
GET /api/v1/shipping-addresses Gets a list of Shipping Addresses
POST /api/v1/shipping-addresses Creates a Shipping Address
GET /api/v1/shipping-addresses/{customerCode}/{location} Gets a Shipping Address by customer code and location
PATCH /api/v1/shipping-addresses/{customerCode}/{location} Updates a Shipping Address
GET /api/v1/tax-codes Gets a list of Tax Codes
GET /api/v1/tax-codes/{taxCode} Gets an Tax Code by tax code
GET /api/v1/terms Gets a list of Terms Code
GET /api/v1/terms/{termsCode} Gets a Terms Code Order by Term Code
GET /api/v1/time-ticket-details Gets a list of Time Ticket Details
POST /api/v1/time-ticket-details Creates a Time Ticket Detail
GET /api/v1/time-ticket-details/{timeTicketGUID} Gets a Time Ticket Detail by timeTicketGUID
PATCH /api/v1/time-ticket-details/{timeTicketGUID} Updates a Time Ticket Detail
GET /api/v1/time-tickets Gets a list of Time Tickets
POST /api/v1/time-tickets Creates a Time Ticket
GET /api/v1/time-tickets/{ticketDate}/employees/{employeeCode} Gets a Time Ticket by its unique ID
PATCH /api/v1/time-tickets/{ticketDate}/employees/{employeeCode} Updates a time ticket
GET /api/v1/tooling-maintenance Gets a list of Tooling Maintenance Records
GET /api/v1/user-labels Gets a list of User Labels
GET /api/v1/user-transactions Gets a list of User Transaction records
GET /api/v1/vendor-returns Gets a list of Vendor Return records
GET /api/v1/vendor-returns-line-items Gets a list of Vendor Return Line Item records
GET /api/v1/vendor-returns-releases Gets a list of Vendor Return Release records
GET /api/v1/vendors Gets a list of Vendors
POST /api/v1/vendors Creates a Vendor
GET /api/v1/vendors/{vendorCode} Gets a Vendor by vendor code
PATCH /api/v1/vendors/{vendorCode} Updates a Vendor
GET /api/v1/work-center-maintenance Gets a list of Work Center Maintenance records
GET /api/v1/work-centers Gets a list of Work Centers
POST /api/v1/work-centers Creates a Work Center
GET /api/v1/work-centers/{workCenter} Gets a Work Center by work center code
PATCH /api/v1/work-centers/{workCenter} Updates a Work Center

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/eci-solutions-jobboss2"
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

eci-solutions-jobboss2-openapi.json Raw ↑
{
  "openapi": "3.0.1",
  "info": {
    "title": "JobBOSS² Public API",
    "description": "\nProvides a common API surface for accessing ECI ERP JobBOSS².\n\n## Authentication\n\nPass an access token in the HTTP Authorization header of each request. For example:\n\n```Authorization: Bearer [token]```\n\nAccess tokens are obtained from the Management API. See the <a href='/authenticate.html'>Management API OAuth 2.0 Token endpoint documentation</a> for more information.\n\n## Date and Time Fields\n\nAll dates submitted to the API are assumed to be in UTC. Likewise, all dates returned from the API are in UTC.\n\n### Format of Date/Time Fields\nWhen submitting date and datetime fields through the Web API, values should match the following formats `yyyy-MM-ddTHH:mm:ssZ or yyyy-MM-dd`\n\n<a name='currency-fields'></a>\n## Currency Fields\n\nThe `Quote` and `QuoteLineItem` endpoints contain fields like `price1` and `price1Foreign` or `miscCharge` and `miscChargeForeign`.\nFor a list of the relevant fields for each endpoint, look at the documentation about that endpoint.\n\nIn these cases the value in `price1` and `miscCharge` represents the currency used by the company (as configured in company settings)\nand the value in the `price1Foreign` and `miscChargeForeign` represents the currency used by the customer that is set on that Quote.\n\nIf the customer uses the same currency as the company, then only the non-`foreign` fields should be used. \n\nWhen using a POST or PATCH request to set currency values, only one of the fields may be used in the request. The\nother field will be calculated using the relevant exchange rate. To submit the request with a value using the company's currency, use\nthe `price1` or `miscCharge` field. To submit the request with a value using the customer's currency, use the `price1Foreign` or\n`miscChargeForeign` field.\n\n<a name='fields-expressions'></a>\n## Fields Expressions\n\nBy default, most GET requests will not return all of the available fields for a given resource.\nRefer to the individual GET request documentation for a list of the default fields that will be included.\nIf you do not want the default fields, you can apply a fields expression to the query string parameters\nin the format `fields=fieldOne,fieldTwo,fieldThree`.\n\n<a name='filter-expressions'></a>\n## Filter Expressions\n\nFor resources that support filtering, filter expressions can be applied as query string parameters in\nthe format ```fieldName[operator]=value```\n\nNote, for simple equality, you can omit the operator, e.g. `?firstName=Jane`\n\n### Operators\n\n- `[eq]` Equal to the given value.\n\n- `[ne]` Not Equal to the given value.\n\n- `[gte]` Greater than or equal to the given value.\n\n- `[lte]` Less than or equal to the given value.\n\n- `[gt]` Greater than the given value.\n\n- `[lt]` Less than the given value.\n\n- `[in]` Is in a list of pipe separated values.\n\n- `[notin]` Is not in a list of pipe separated values.\n\n- `[null]` Is null. To test if a field is null use `fieldName[NULL]=true`. Please note that the `revisedDate` field cannot be tested for null (it can never be null). Using `[NULL]` with `revisedDate` will result in a 500 server error.\n\nIf you have multiple filters to apply, concatenate them in the query string using `&` just for joining other parameters.\n\nExamples:\n```\n?customerCode=ACME\n?customerCode[eq]=ACME&orderTotal[gte]=3700\n```\n\n<a name = 'pageparam' ></a>\n## Paging Parameters\nThe parameters ```take``` and ```skip``` can be provided separately but can be combined to implement\nserver-side paging of results.\n\nFor example:\n```\n?take=100\n?take=100&skip=200\n```\nBy default `take` is set to 200.\n\n\n<a name='sort-expressions'></a>\n## Sort Expressions\nFor resources that support sorting, the sort expression is specified by adding the ```sort```\nquery string parameter, with a comma separated list of expressions as its value,\neach expression having an optional prefix of ```+``` or ```-``` to indicate ascending or descending order.\n\nFor example:\n```\n?sort=firstName\n?sort=+lastName,+firstName\n?sort=-createDate\n```\n\n## Error Responses\n\nError responses are return in the JSON format shown below:\n\n### A sample 404 Not Found\n```json\n{\n    \"Title\": \"Not Found\",\n    \"Status\": 404,\n    \"Detail\": \"\",\n    \"TraceId\": \"\"\n}\n```\n### A sample 500 Internal Server Error\n\n```json\n{\n    \"Title\": \"An error occured while processing your request.\",\n    \"Status\": 500,\n    \"Detail\": \"\",\n    \"TraceId\": \"\"\n}\n```\n",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://api-jb2.integrations.ecimanufacturing.com:443",
      "description": "API Host"
    }
  ],
  "paths": {
    "/api/v1/eci-aps/authenticate-user": {
      "post": {
        "tags": [
          "null"
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/api/v1/eci-aps/get-schedule": {
      "get": {
        "tags": [
          "null"
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/api/v1/shopview/authenticate-user": {
      "post": {
        "tags": [
          "null"
        ],
        "parameters": [
          {
            "name": "userID",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/api/v1/shopview/filters": {
      "get": {
        "tags": [
          "null"
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/api/v1/shopview/get-jobs": {
      "get": {
        "tags": [
          "null"
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/api/v1/shopview/grid-option": {
      "post": {
        "tags": [
          "null"
        ],
        "parameters": [
          {
            "name": "option",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "columnID",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "value",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/api/v1/shopview/grid-options": {
      "get": {
        "tags": [
          "null"
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/api/v1/shopview/kpi-definitions": {
      "get": {
        "tags": [
          "null"
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/api/v1/shopview/kpi/jobs-closed": {
      "get": {
        "tags": [
          "null"
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/api/v1/shopview/kpi/jobs-in-progress": {
      "get": {
        "tags": [
          "null"
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/api/v1/shopview/kpi/jobs-on-hold": {
      "get": {
        "tags": [
          "null"
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/api/v1/shopview/kpi/jobs-past-due": {
      "get": {
        "tags": [
          "null"
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/api/v1/shopview/reset-grid-options": {
      "post": {
        "tags": [
          "null"
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/api/v1/ap-checks": {
      "get": {
        "tags": [
          "AP Checks"
        ],
        "summary": "Gets a list of AP Checks",
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of fields to include in the result.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "A comma separated list of field to sort by.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "description": "Filters as query string parameters",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "The number of records to skip.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "take",
            "in": "query",
            "description": "The number of records to retrieve.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      },
      "post": {
        "tags": [
          "AP Checks"
        ],
        "summary": "Creates a new AP Check",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": { }
            },
            "application/json": {
              "schema": { }
            },
            "text/json": {
              "schema": { }
            },
            "application/*+json": {
              "schema": { }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Check created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectSuccessResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "example": {
                  "Error": {
                    "Title": "Internal Server Error",
                    "Status": 500,
                    "Detail": "Internal Server Error",
                    "TraceId": "21b68bf3-57a4-4012-9562-58c154c63908"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "example": {
                  "Error": {
                    "Title": "Internal Server Error",
                    "Status": 500,
                    "Detail": "Internal Server Error",
                    "TraceId": "6ccd7c18-189a-48d2-ab44-888d0488261b"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/ap-checks/{checkNumber}": {
      "get": {
        "tags": [
          "AP Checks"
        ],
        "summary": "Gets a single AP Check by check number",
        "parameters": [
          {
            "name": "checkNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "404": {
            "description": "Check not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "example": {
                  "Error": {
                    "Title": "Internal Server Error",
                    "Status": 500,
                    "Detail": "Internal Server Error",
                    "TraceId": "45de8eec-9710-44af-b8b9-8e6d5abb002a"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/ar-invoice-details": {
      "get": {
        "tags": [
          "AR Invoice Details"
        ],
        "summary": "Gets a list of AR Invoice Details",
        "description": "By default an AR invoice details response will include only the fields: commissionPercent, contactName, deliveryTicketDate, deliveryTicketNumber, discountPercent, GLAccount1, inventoryItemNumber, invoiceNumber, isTaxable, jobNumber, lastModDate, lineTotal, lineTotalForeign, partDescription, partNumber, PONumber, productCode, quantityCancelled, quantityOrdered, quantityShipped, revision, salesAccount, salesAmount1, salesAmountForeign1, taxStatus, uniqueID, unit, unitPrice, unitPriceForeign, workCode. You may specify the exact fields to return using the fields parameter.",
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of fields to include in the result.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "A comma separated list of field to sort by. See the <a href='#sort-expressions'>Sort Expressions</a> section for more information.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "description": "Filters must be provided as query string parameters as defined in the <a href='#filter-expressions'>Filter Expressions</a> section.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "examples": {
              "No filters": { },
              "Filter by Invoice Number": {
                "value": {
                  "invoiceNumber": "4691"
                }
              }
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "The number of records at the start of the result set to skip over.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "take",
            "in": "query",
            "description": "The number of records to retrieve.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ARInvoiceDetailListSuccessResponse"
                },
                "example": {
                  "Data": [
                    {
                      "accountingID": "string",
                      "commissionPercent": 0,
                      "contactName": "string",
                      "deliveryTicketDate": "2026-09-06T17:13:12.0000000+00:00",
                      "deliveryTicketNumber": "string",
                      "discountPercent": 0,
                      "FOB": "string",
                      "GLAccount1": "string",
                      "GLAccount2": "string",
                      "GLAccount3": "string",
                      "GLAccount4": "string",
                      "GLAccount5": "string",
                      "inventoryItemNumber": 0,
                      "invoiceNumber": "string",
                      "isTaxable": false,
                      "jobNumber": "string",
                      "lastModDate": "2026-09-06T17:13:12.0000000+00:00",
                      "lastModUser": "string",
                      "lineTotal": 0,
                      "lineTotalForeign": 0,
                      "partDescription": "string",
                      "partNumber": "string",
                      "PONumber": "string",
                      "productCode": "string",
                      "quantityCancelled": 0,
                      "quantityOrdered": 0,
                      "quantityShipped": 0,
                      "revision": "string",
                      "salesAccount": "string",
                      "salesAmount1": 0,
                      "salesAmount2": 0,
                      "salesAmount3": 0,
                      "salesAmount4": 0,
                      "salesAmount5": 0,
                      "salesAmountForeign1": 0,
                      "salesAmountForeign2": 0,
                      "salesAmountForeign3": 0,
                      "salesAmountForeign4": 0,
                      "salesAmountForeign5": 0,
                      "taxStatus": false,
                      "uniqueID": 0,
                      "unit": "string",
                      "unitPrice": 0,
                      "unitPriceForeign": 0,
                      "workCode": "string"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/ar-invoices": {
      "get": {
        "tags": [
          "AR Invoices"
        ],
        "summary": "Gets a list of AR Invoices",
        "description": "By default an AR invoice response will include only the fields: amountPaidSoFar, amountPaidSoFarForeign, ARAccount, currencyCode, customerCode, customerDescription, daysOverdue, deliverTicketNumber, discountDate, enteredBy, exchangeRate, invoiceDate, invoiceNumber, invoiceTotal, invoiceTotalForeign, lastModDate, location, netDueDate, notes, openInvoiceAmount, paymentDate, paymentStatus, periodNumber, projectedPayDate, salesID, taxAccount, taxCode, termsCode, territory, uniqueID, workCode. You may specify the exact fields to return using the fields parameter.",
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of fields to include in the result.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "A comma separated list of field to sort by. See the <a href='#sort-expressions'>Sort Expressions</a> section for more information.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "description": "Filters must be provided as query string parameters as defined in the <a href='#filter-expressions'>Filter Expressions</a> section.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "examples": {
              "No filters": { },
              "Filter by Status (Unpaid)": {
                "value": {
                  "paymentStatus": "UNPAID"
                }
              }
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "The number of records at the start of the result set to skip over.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "take",
            "in": "query",
            "description": "The number of records to retrieve.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ARInvoiceListSuccessResponse"
                },
                "example": {
                  "Data": [
                    {
                      "accountingID": "string",
                      "amountPaidSoFar": 0,
                      "amountPaidSoFarForeign": 0,
                      "ARAccount": "string",
                      "cashDiscountAmount": 0,
                      "cashDiscountAmountForeign": 0,
                      "country": "string",
                      "currencyCode": "string",
                      "customerCheckNumber": "string",
                      "customerCode": "string",
                      "customerDescription": "string",
                      "dateEntered": "2026-09-06T17:13:12.0000000+00:00",
                      "daysOverdue": 0,
                      "deliverTicketNumber": "string",
                      "discountAccount": "string",
                      "discountDate": "2026-09-06T17:13:12.0000000+00:00",
                      "enteredBy": "string",
                      "exchangeRate": 0,
                      "exportedToEDI": false,
                      "exportedToQB": false,
                      "freightAccount": "string",
                      "GSTAccount": "string",
                      "GSTCharges": 0,
                      "GSTChargesForeign": 0,
                      "GSTCode": "string",
                      "ignoreMinimumOrder": false,
                      "invoiceDate": "2026-09-06T17:13:12.0000000+00:00",
                      "invoiceNumber": "string",
                      "invoicePosted": false,
                      "invoicePrinted": false,
                      "invoiceTotal": 0,
                      "invoiceTotalForeign": 0,
                      "lastModDate": "2026-09-06T17:13:12.0000000+00:00",
                      "lastModUser": "string",
                      "location": "string",
                      "netDueDate": "2026-09-06T17:13:12.0000000+00:00",
                      "notes": "string",
                      "openInvoiceAmount": 0,
                      "paymentDate": "2026-09-06T17:13:12.0000000+00:00",
                      "paymentStatus": "string",
                      "periodNumber": "string",
                      "projectedPayDate": "2026-09-06T17:13:12.0000000+00:00",
                      "salesID": "string",
                      "salesTaxCharges": 0,
                      "salesTaxChargesForeign": 0,
                      "shippingAddress1": "string",
                      "shippingCharges": 0,
                      "shippingChargesForeign": 0,
                      "shippingCity": "string",
                      "shippingCode": "string",
                      "shippingStreet": "string",
                      "shippingZip": "string",
                      "shipToName": "string",
                      "shipVia": "string",
                      "taxAccount": "string",
                      "taxCode": "string",
                      "termsCode": "string",
                      "territory": "string",
                      "uniqueID": 0,
                      "workCode": "string"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/attendance-ticket-details": {
      "get": {
        "tags": [
          "Attendance Ticket Details"
        ],
        "summary": "Gets a list of Attendance Ticket Details",
        "description": "By default an Attendance Ticket Detail item response will include only the fields: accountingID, actualClockInDate, actualClockInTime, actualClockOutDate, actualClockOutTime, adjustedClockInDate, adjustedClockInTime, adjustedClockOutDate, adjustedClockOutTime, attendanceCode, clockOutDate, comments, createdBy, deviceNumber, employeeCode, employeeName, GLCode, isHoliday, isOvertime, lastModDate, lastModUser, OTCalcFlag, payRateCode, payRollRate, searchDate, shift, ticketDate, totalActualTime, totalAdjustedTime, uniqueID",
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "A comma separated list of fields to include in the result.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "A comma separated list of field to sort by. See the <a href='#sort-expressions'>Sort Expressions</a> section for more information.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "description": "Filters must be provided as query string parameters as defined in the <a href='#filter-expressions'>Filter Expressions</a> section.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "examples": {
              "No filters": { },
              "Filter by Employee": {
                "value": {
                  "employeeCode": "101"
                }
              }
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "The number of records at the start of the result set to skip over.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "take",
            "in": "query",
            "description": "The number of records to retrieve.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimeAndAttendanceDetailListSuccessResponse"
                },
                "example": {
                  "Data": [
                    {
                      "accountingID": "string",
                      "actualClockInDate": "string",
                      "actualClockInTime": "string",
                      "actualClockOutDate": "string",
                      "actualClockOutTime": "string",
                      "adjustedClockInDate": "string",
                      "adjustedClockInTime": "string",
                      "adjustedClockOutDate": "string",
                      "adjustedClockOutTime": "string",
                      "attendanceCode": 0,
                      "clockOutDate": "2026-09-06T17:13:13.0000000+00:00",
                      "comments": "string",
                      "createdBy": "string",
                      "deviceNumber": 0,
                      "employeeCode": 0,
                      "employeeName": "string",
                      "GLCode": "string",
                      "isHoliday": false,
                      "isOvertime": false,
                      "lastModDate": "2026-09-06T17:13:13.0000000+00:00",
                      "lastModUser": "string",
                      "OTCalcFlag": "string",
                      "payRateCode": 0,
                      "payRollRate": 0,
                      "searchDate": 0,
                      "shift": 0,
                      "ticketDate": "2026-09-06T17:13:13.0000000+00:00",
                      "totalActualTime": 0,
                      "totalAdjustedTime": 0,
                      "uniqueID": 0
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/attendance-ticket-details/{id}": {
      "patch": {
        "tags": [
          "Attendance Ticket Details"
        ],
        "summary": "Updates an Attendance Ticket Detail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TimeAndAttendanceDetailUpdate"
              },
              "example": {
                "actualClockInTime": "string",
                "actualClockOutTime": "string",
                "adjustedClockInTime": "string",
                "adjustedClockOutTime": "string",
                "attendanceCode": 0,
                "clockOutDate": "2026-09-06T17:13:13.0000000+00:00",
                "comments": "string",
                "GLCode": "string",
                "isHoliday": false,
                "isOvertime": false,
                "payRateCode": 0,
                "shift": 0
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Success"
          }
        }
      }
    },
    "/api/v1/attendance-tickets/{ticketDate}/employees/{employeeCode}/attendance-ticket-details": {
      "post": {
        "tags": [
          "Attendance Ticket Details"
        ],
        "summary": "Creates an Attendance Ticket Detail",
        "parameters": [
          {
            "name": "ticketDate",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "employeeCode",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TimeAndAttendanceDetailCreate"
              },
              "example": {
                "actualClockInTime": "string",
                "actualClockOutTime": "string",
                "adjustedClockInTime": "string",
                "adjustedClockOutTime": "string",
                "attendanceCode": 0,
                "clockOutDate": "2026-09-06T17:13:13.0000000+00:00",
                "comments": "string",
                "GLCode": "string",
                "isHoliday": false,
                "isOvertime": false,
                "payRateCode": 0,
                "shift": 0
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimeAndAttendanceDetail"
                },
                "example": {
                  "accountingID": "string",
                  "actualClockInDate": "string",
                  "actualClockInTime": "string",
                  "actualClockOutDate": "string",
                  "actualClockOutTime": "string",
                  "adjustedClockInDate": "string",
                  "adjustedClockInTime": "string",
                  "adjustedClockOutDate": "string",
                  "adjustedClockOutTime": "string",
                  "attendanceCode": 0,
                  "clockOutDate": "2026-09-06T17:13:13.0000000+00:00",
                  "comments": "string",
                  "createdBy": "string",
                  "deviceNumber": 0,
                  "employeeCode": 0,
                  "employeeName": "string",
                  "GLCode": "string",
                  "isHoliday": false,
                  "isOvertime": false,
                  "lastModDate": "2026-09-06T17:13:13.0000000+00:00",
                  "lastModUser": "string",
                  "OTCalcFlag": "string",
                  "payRateCode": 0,
                  "payRollRate": 0,
                  "searchDate": 0,
                  "shift": 0,
                  "ticketDate": "2026-09-06T17:13:13.0000000+00:00",
                  "totalActualTime": 0,
                  "totalAdjustedTime": 0,
                  "uniqueID": 0
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/attendance-tickets": {
      "get": {
        "tags": [
          "Attendance Tickets"
        ],
        "summary": "Gets a list of Attendance Tickets",
        "description": "By default an attendance ticket response will include only the fields: employeeCode, employeeName, entere

# --- truncated at 32 KB (893 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/eci-solutions/refs/heads/main/openapi/eci-solutions-jobboss2-openapi.json