ApiAddress

ApiAddressPublicApiClient
APIMethod NameDescription
POST public-api/addresses/customer/obsoletesave

SaveAddressesAsync

Obsolete: This method creates/updates the addresses associated with customers. It will not create new Address Types, you will need to first create those in the web, but once you do they can be used here. Requires the Edit Customer permission Accepts a maximum of 500 records at a time

POST public-api/addresses/employee/obsoletesave

SaveAddressesAsync

Obsolete: This method creates/updates the addresses associated with employees. It will not create new Address Types, you will need to first create those in the web, but once you do they can be used here. Requires the Edit Employee permission Accepts a maximum of 500 records at a time

POST public-api/addresses/customer/save

SaveCustomerAddressesAsync

This method creates/updates the addresses associated with customers. It will not create new Address Types, you will need to first create those in the web, but once you do they can be used here. Requires the Edit Customer permission Accepts a maximum of 500 records at a time

POST public-api/addresses/employee/save

SaveEmployeeAddressesAsync

This method creates/updates the addresses associated with employees. It will not create new Address Types, you will need to first create those in the web, but once you do they can be used here. Requires the Edit Employee permission Accepts a maximum of 500 records at a time

POST public-api/addresses/manufacturers/save

SaveManufacturerAddressesAsync

This method creates/updates the addresses associated with manufacturers. It will not create new Address Types, you will need to first create those in the web, but once you do they can be used here. Requires the Edit Manufacturer permission Accepts a maximum of 500 records at a time

POST public-api/addresses/supplier/save

SaveSupplierAddressesAsync

This method creates/updates the addresses associated with suppliers. It will not create new Address Types, you will need to first create those in the web, but once you do they can be used here. Requires the Edit Supplier permission Accepts a maximum of 500 records at a time

ApiAssetPurchaseOrder

ApiAssetPurchaseOrderPublicApiClient
APIMethod NameDescription
POST public-api/ac/purchaseorder/create

CreateAsync

This method creates a new purchase order. It requires the Create Purchase Order permission. It accepts a maximum of 500 records at a time. Only Multi-Quantity Assets can be added to purchase orders

POST public-api/ac/purchaseorder/update

UpdateAsync

This method edits an existing purchase order. It requires the Edit Purchase Order permission. It accepts a maximum of 500 records at a time. Only Multi-Quantity Assets can be added to purchase orders

POST public-api/ac/purchaseorder/advancedinfosearch

ItemInfoAdvancedSearchAsync

This method is Obsolete (Use PurchaseOrderSearch instead). It requires the Allow Purchase Order permission and enforces Role Site permission.

POST public-api/ac/purchaseorder/purchaseordersearch

PurchaseOrderSearchAsync

The method returns a page full of active purchase orders given a precise set of search, sort, or filter criteria. It's a paging API so this is meant to be called with a smaller number of records (approximately 100) to fetch, repeatedly, until you get them all. It requires the Allow Purchase Order permission and enforces Role Site permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ac/purchaseorder/getordersbynumber

GetOrdersByNumberAsync

This method returns existing orders by number. It requires the Allow Purchase Order permission and enforces Role Site permission. Pass an empty list to return every purchase order. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ac/purchaseorder/deleteordersbynumber

DeletePurchaseOrdersByNumberAsync

This method deletes existing purchase orders by number ONLY if they are in Draft status. It requires the Delete Purchase Order permission and enforces Role Site permission. It accepts a maximum of 500 records at a time. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ac/purchaseorder/updateorderstatusbynumber

UpdatePurchaseOrderStatusByNumberAsync

This method updates existing purchase order status by order numbers. Purchase Order - Order Status and Reason Code Combinations are - "Draft-OK","Open-PoOpenIssued","Closed-ReceiverCancel","Closed-VendorCancel". It requires the Edit Purchase Order permission and enforces Role Site permission. It accepts a maximum of 500 records at a time. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ac/purchaseorder/receive-public

ReceiveTransactionAsync

This method is used to receive items on an order. If an item has trackbys they must be entered. The units being received must match the units on the order. Requires the Allow Receive permission. Accepts a maximum of 500 records at a time.

ApiAssets

ApiAssetsPublicApiClient
APIMethod NameDescription
POST public-api/assets/createFixedAssets

CreateFixedAssetsAsync

This method creates a new fixed asset. A fixed asset is unique across all sites and locations. The existing fixed asset is retrieved by calling API function GetAssetsByTags() or one of the searches. Requires Create Asset permission. Accepts a maximum of 500 records at a time.

POST public-api/assets/updateFixedAssets

UpdateFixedAssetsAsync

This method updates an existing fixed asset. The existing fixed asset is retrieved by calling API function GetAssetsByTags() or one of the searches. Requires Edit Asset permission. Accepts a maximum of 500 records at a time.

POST public-api/assets/UpdateSpecificFieldsOfFixedAssets

PartialUpdateFixedAssetAsync

This method updates specific details of an existing fixed asset like updating the unique key asset tag/asset serial number. The existing fixed asset is retrieved by calling API function GetAssetsByTags() or one of the searches. Requires Edit Asset permission and enforces Role Site and Asset Type permission. Accepts a maximum of 500 records at a time.

POST public-api/assets/createMultiQuantityAssets

CreateMultiQuantityAssetsAsync

This method creates a new multi-quantity asset. A multi-quantity asset is not unique across sites and locations and may have quantity associated with it. The existing multi-quantity asset is retrieved by calling API function GetAssetsByTags() or one of the searches. Requires the Create Inventoried Asset (Multi-Quantity Asset) permission. Accepts a maximum of 500 records at a time.

POST public-api/assets/updateMultiQuantityAssets

UpdateMultiQuantityAssetsAsync

This method updates an existing multi-quantity asset. The existing multi-quantity asset is retrieved by calling API function GetAssetsByTags() or one of the searches. Requires the Edit Inventoried Asset (Multi-Quantity Asset) permission. Accepts a maximum of 500 records at a time.

POST public-api/assets/AddAssetQuantity

AddAssetQuantityAsync

This method is used to add quantity to the Multi-Quantity assets. Requires the Allow Asset Add permission. Accepts a maximum of 500 records at a time.

POST public-api/assets/getAssetsByTags

GetAssetsByTagsAsync

This method returns existing assets by asset tag. Does not return location information Note: This is a Post API to avoid limitations inherent to passing parameters on the URL. Requires Allow Asset permission and enforces Role Site and Asset Type security.

POST public-api/assets/getAssetsByTagsLight

GetAssetsByTagsLightAsync

This method returns existing assets by asset tag. Does not return location information Unlike GetAssetsByTags, which always returns attachments and custom fields, this method returns them only when you ask for them, so the response can be kept small. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL. Requires Allow Asset permission and enforces Role Site and Asset Type security.

POST public-api/assets/assetinfosearch

AssetInfoSearchAsync

This method returns all active assets whose asset tag or asset description contains the specified texts that are entered on the combo box. This only returns asset level information, simulating the asset lookup controls in the web, so site, location and check-out values are not populated. Use public-api/assets/assetadvancedinfosearch to return those values. Requires Allow Asset permission and enforces Role Site and Asset Type security. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/assets/assetadvancedinfosearch

AssetInfoAdvancedSearchAsync

This method returns a page full of active assets given a precise set of search, sort or filter criteria. It's a paging API so this is meant to be called with a smaller number of records (approximately 100) to fetch, repeatedly, until you get them all. Requires Allow Asset permission and enforces Role Site and Asset Type security. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

GET public-api/assets/checkout-status/{AssetTag}

AssetCheckOutStatusAsync

This method returns check out information of the specified asset. One entry is returned per open check out, so a multi-quantity asset checked out to several assignees returns several entries. An asset that is not checked out returns no data rather than an error. Requires Allow Asset permission and enforces Role Site and Asset Type security.

POST public-api/assets/saveLdapModelsByAssetSerialNumber

SaveLdapModelsByAssetSerialNumberAsync

A public API created primarily for use with our LDAP sync tool. This API takes a list of asset models and matches each one to an existing asset by asset serial number. By default it only updates the assets it matches: it does not create assets that are absent from the system, and it does not delete assets that are absent from the list. That default is overridden by the optional CommandWord entry carried in each model.

POST public-api/assets/streamgridrequestcsvflat

StreamGridRequestCSVFlatAsync

Request asset inventory records as a stream of data in a CSV formatted stream. If the FieldTitles parameter is null then all available fields are exported with default column titles. When you create Custom Fields on assets you can call this function with the FieldTitles parameter = null as well to see how custom fields look in the output stream. Important! Without this parameter the order and names of fields may change from version to version. Therefore, to ensure consistent results from one version to the next, make sure you set this value after you have determined the values you need. Does not support paging as it is intended to stream all of the data at once This is the flat view, so an asset that is present in more than one location is streamed once per location record. DateTime values are streamed in UTC unless you name them in the ClientLocalDateTimeFields parameter, in which case they are converted using ClientUtcOffset and ExportDateTimeFormat.

POST public-api/assets/streamgridrequestcsvunique

StreamGridRequestCSVUniqueAsync

Request asset records as a stream of data in a CSV formatted stream. If the FieldTitles parameter is null then all available fields are exported with default column titles When you create Custom Fields on assets you can call this function with the FieldTitles parameter = null as well to see how custom fields look in the output stream. Important! Without this parameter the order and names of fields may change from version to version. Therefore, to ensure consistent results from one version to the next, make sure you set this value after you have determined the values you need. Does not support paging as it is intended to stream all of the data at once This is the unique view, so each asset is streamed once with its duplicate location information removed. DateTime values are streamed in UTC unless you name them in the ClientLocalDateTimeFields parameter, in which case they are converted using ClientUtcOffset and ExportDateTimeFormat.

POST public-api/assets/streamgridrequestcsvmqa

StreamGridRequestCSVMQAAsync

Request Multi-Quantity Asset records as a stream of data in a CSV formatted stream. If the FieldTitles parameter is null then all available fields are exported with default column titles. When you create Custom Fields on assets you can call this function with the FieldTitles parameter = null as well to see how custom fields look in the output stream. Important! Without this parameter the order and names of fields may change from version to version. Therefore, to ensure consistent results from one version to the next, make sure you set this value after you have determined the values you need. Does not support paging as it is intended to stream all of the data at once DateTime values are streamed in UTC unless you name them in the ClientLocalDateTimeFields parameter, in which case they are converted using ClientUtcOffset and ExportDateTimeFormat.

ApiAssetTypes

ApiAssetTypesPublicApiClient
APIMethod NameDescription
POST public-api/asset-types/create

CreateAsync

This method creates new asset types. Requires the Create Asset Type permission. Accepts a maximum of 500 records at a time.

POST public-api/asset-types/update

UpdateAsync

This method updates an existing asset type. The existing asset type is retrieved by calling API function GetAssetTypesByNumber() or one of the searches. Requires the Edit Asset Type permission. Accepts a maximum of 500 records at a time.

POST public-api/asset-types/getassettypesbynumber

GetAssetTypesByNumberAsync

This method returns existing asset types by number. Requires the Allow Asset Type permission and enforces Role Asset Type permission. Pass an empty list to return every asset type the caller's role can access. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/asset-types/infosearch

AssetTypeInfoSearchAsync

This method returns all active asset types whose asset type number or asset type description contains the specified texts that are entered on the combo box. Requires the Allow Asset Type permission and enforces Role Asset Type permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/asset-types/advancedinfosearch

AssetTypeInfoAdvancedSearchAsync

This method returns a page full of active asset types given a precise set of search, sort or filter criteria. It's a paging API so this is meant to be called with a smaller number of records (approximately 100) to fetch, repeatedly, until you get them all. Requires the Allow Asset Type permission and enforces Role Asset Type permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/asset-types/deleteassettypesbynumber

DeleteAssetTypesByNumberAsync

This method deletes existing asset types by number. Requires the Delete Asset Type permission. Accepts a maximum of 500 records at a time. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/asset-types/simple/all

GetAssetTypesSimpleAllAsync

This method gets all active asset types. Requires the Allow Asset Type permission and enforces Role Asset Type permission.

ApiAttachments

ApiAttachmentsPublicApiClient
APIMethod NameDescription
POST public-api/attachments/uplodAttachmentsForForms

UplodAttachmentsForFormsAsync

Upload Attachments For Forms works for attaching the list of attachments to an item according to the form type. This Api will cover any form in the application which could have attachment. Requires the Edit permission of the form you are attempting to Edit, Role Site and Asset Type permissions are enforced when relevant Accepts a maximum of 500 attachments at a time

POST public-api/attachments/uplodBatchAttachmentsForForms

UplodBatchAttachmentsForFormsAsync

Upload the batch of Attachments For Forms works for attaching the list of attachments to an item according to the form type for several items as a batch. This Api will cover any form in the application which could have attachment. Requires the Edit permission of the form you are attempting to Edit, Role Site and Asset Type permissions are enforced when relevant Accepts a maximum of 500 items at a time, each carrying its own list of attachments

POST public-api/attachments/download/{guid}

DownloadAttachmentAsync

Use the API, GetAttachmentMetadataByAssociatedTag, to get a list of the attachments associated with an object. You can then loop through the results to download each attachment by using this API to get the attachment by GUID. You can use the file name from GetAttachmentMetadataByAssociatedTag to stream the results to a file. Please refer to the public api sample solution for an example of how this is done.

POST public-api/attachments/getAttachmentmetadataByAssociatedTag

GetAttachmentMetadataByAssociatedTagAsync

Get Attachments By Associated Tag given the associated tag of item and the form name and returns the attachments related to that item nested in the form. Requires the Edit permission of the form you are attempting to retrieve attachments for, Role Site and Asset Type permissions are enforced when relevant In the response, HasSuccessWithMoreDataRemaining and BatchNumber are not used.

POST public-api/attachments/getAttachmentsByAssociatedTag

GetAttachmentsByAssociatedTagAsync

Obsolete, please use GetAttachmentMetadataByAssociatedTag - and download instead Get Attachments By Associated Tag given the associated tag of item and the form name and returns the attachments related to that item nested in the form. Requires the Edit permission of the form you are attempting to retrieve attachments for, Role Site and Asset Type permissions are enforced when relevant In the response, HasSuccessWithMoreDataRemaining and BatchNumber are not used.

POST public-api/attachments/getAttachmentsByAssociatedTagsList

GetAttachmentsByAssociatedTagListAsync

Get Attachments By Associated Tag List given the associated tag of items per form by giving the form name and returns the attachments related to those items nested in the form. Requires the Edit permission of the form you are attempting to retrieve attachments for, Role Site and Asset Type permissions are enforced when relevant

ApiContracts

ApiContractsPublicApiClient
APIMethod NameDescription
POST public-api/contracts/create

CreateAsync

This method creates one or more new contracts. Requires Create Contract permission, enforces Role Site and Asset Type security when associating assets. Accepts a maximum of 500 records at a time.

POST public-api/contracts/update

UpdateAsync

This method updates the header info of one or more existing contracts. This does not affect the assets associated with the contract. The existing contract is retrieved by calling one of the search APIs. Requires Edit Contract permission. Accepts a maximum of 500 records at a time.

POST public-api/contracts/delete

DeleteContractsAsync

This method deletes the listed contracts. The existing contract is retrieved by calling one of the search APIs. Requires Delete Contract permission. Accepts a maximum of 500 records at a time.

POST public-api/contracts/addAssets

AddAssociatedAssetsAsync

This method is used to add assets to a contract that already exists. It provides the contract number and the assets that need to be added. This method takes in a Dictionary of string Lists where the Dictionary key is the Contract Number and the List contains the Asset Tags to add to the contract. Requires Edit Contract permission, enforces Role Site and Asset Type security on the assets being associated. Accepts a maximum of 500 records at a time.

POST public-api/contracts/removeAssets

RemoveAssociatedAssetsAsync

This method is used to remove assets from a contract that already exists. It provides the contract number and the assets that need to be removed. Requires Edit Contract permission, enforces Role Site and Asset Type security on the assets being associated. Accepts a maximum of 500 records at a time.

POST public-api/contracts/search/exact

GetExactContractApiAsync

This method gets the contract that exactly matches the search string. Requires Allow Contract permission and enforces Role Site and Asset Type security.

POST public-api/contracts/getcontractsbynumber

GetContractsByNumberAsync

This method returns existing contracts without notes by number. Requires Allow Contract permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/contracts/getcontractsbynumberV2

GetContractsByNumberV2Async

This method returns existing contracts, including their notes, by contract number. Requires Allow Contract permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/contracts/infosearch

ContractModelHeaderInfoSearchAsync

This method returns all active contracts whose contract number or description contains the specified texts that are entered. Requires Allow Contract permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

ApiCustomer

ApiCustomerPublicApiClient
APIMethod NameDescription
POST public-api/customers/createNew

CreateNewCustomersAsync

This method creates new customers. It requires the Create Customer permission. It accepts a maximum of 500 records at a time. This will ignore the Customer numbers already in existence. To create/update addresses (instead of ignoring them), please use the API public-api/addresses/customer/save. Use “Save” to perform operations including both inserts and updates.

POST public-api/customers/updateExisting

UpdateExistingAsync

This method updates the existing customers. Every customer will have a customer number. It requires the Edit Customer permission. It accepts a maximum of 500 records at a time. This will not work for customers with unknown customer numbers. To create/update addresses (instead of ignoring them), please use the API public-api/addresses/customer/save. Use “Save” to perform operations including both inserts and updates.

POST public-api/customers/save

SaveCustomersAsync

This method allows saving the customer details. This requires both the Create and Edit Customer permission. It accepts a maximum of 500 records at a time. In case the customer does not exist, a new record is created and on creation, it returns the CustomerId. In the case of updating the existing record, then only the columns specified in the request model's "ApplicableFields" field are updated. If this field is null/empty then "all" fields are assumed to be updateable. To create/update addresses please use the API public-api/addresses/customer/save.

POST public-api/customers/savestudentmodels

SaveStudentModelsAsync

This method was created primarily to use with our LDAP sync tool. It takes a list of students and will update or insert as necessary. Any students not on the list, but active in the Cloud system will be deleted. It requires the Create, Update, and Delete Customer permission. It accepts a maximum of 500 records at a time.

POST public-api/customers/savecustomermodels

SaveCustomerModelsAsync

This method was created primarily to use with our LDAP sync tool. It takes a list of customers and will update and insert as necessary. Any customer not in the list, but active in the Cloud system will be deleted. It requires the Create, Update, and Delete Customer permission. It accepts a maximum of 500 records at a time.

POST public-api/customers/delete

DeleteCustomerModelsAsync

This method is used to delete customers. It takes a list of customer numbers to delete. It requires the Delete Customer permission. It accepts a maximum of 500 records at a time. A customer that is still in use, for example one that currently has assets checked out to them, is not deleted and that entry reports an "in use" error.

GET public-api/customers/checkout-status/{CustomerNumber}

AssetCheckOutStatusAsync

This method returns all of the assets currently checked out to the specified customer. It is optimized for customer number, but can search on customer name as well. The value is matched in order of preference: an exact customer number, then a partial customer number, then a partial first or last name, then a partial full name. The first match style that finds any records is the one used. It requires Allow Customer and Allow Asset permission. It enforces the Role Site and Asset Type security.

POST public-api/customers/advancedinfosearch

CustomerAdvancedSearchAsync

This method returns a page full of customers given a precise set of search, sort or filter criteria. It is a paging API so this is meant to be called with a smaller number (ca 100) or records to fetch, repeatedly, until you get em' all. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL. This query does not return Phone Models. It requires the Allow Customer permission.

POST public-api/customers/GetCustomersByNumber

GetCustomerByNumberAsync

This method returns the full detail of specific customers, looked up by exact customer number. Unlike advancedinfosearch, it returns Custom Field values, Address Models and Phone Models for each customer. Only active customers are returned. Duplicate numbers in the request are collapsed, and matching is case-insensitive. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL. It requires the Allow Customer permission.

ApiDepartments

ApiDepartmentsPublicApiClient
APIMethod NameDescription
POST public-api/departments/create

CreateAsync

This method creates a new department. It requires the Create Department permission. It accepts a maximum of 500 records at a time.

POST public-api/departments/update

UpdateAsync

This method updates an existing department. The existing department is retrieved by calling API function infosearch. It requires the Edit Department permission. The TotalRecordsLongCount field is not used by this API. It accepts a maximum of 500 records at a time.

POST public-api/departments/infosearch

DepartmentModelInfoSearchAsync

This method returns all active departments whose department code or name contains the specified text that is submitted. An empty or omitted search value returns all active departments. Either way, no more than 500 records are returned, and departments whose code or name begins with the search text are returned first. Only the department code and name are populated on each returned record. It requires the Allow Department permission. This method does not provide List of Messages on response information. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/departments/deletedepartmentsbycode

DeleteDepartmentsByCodeAsync

This method deletes existing departments by code. A department that is still in use is not deleted and that entry reports an "in use" error. A code that does not match an existing department reports an invalid department error for that entry, and a department that is already inactive is reported as deleted. It requires the Delete Department permission. It accepts a maximum of 500 records at a time. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

ApiEmployee

ApiEmployeePublicApiClient
APIMethod NameDescription
POST public-api/employees/createNew

CreateNewEmployeesAsync

This method creates new employees and return employee ids. This will ignore employee numbers already in existence. Requires Create Employee permission. It accepts a maximum of 500 records at a time. Use "Save" to perform operations including both inserts and updates. To create/update addresses please use the API public-api/addresses/employee/save. To create/update phone numbers please use the API public-api/phones/employee/save.

POST public-api/employees/updateExisting

UpdateExistingEmployeesAsync

This method updates the existing employees. Every employee will have an employee number. Requires Edit Employee permission. It accepts a maximum of 500 records at a time. Given a set of employee numbers, only those records matched in the given set are updated. If there are no matching employees, then no action will be taken. Use "Save" to perform operations including both inserts and updates. To create/update addresses please use the API public-api/addresses/employee/save. To create/update phone numbers please use the API public-api/phones/employee/save. Only the columns specified in the request model's ''ApplicableFields'' field are updated. If this field is null/empty then ''all'' fields are assumed to be updateable.

POST public-api/employees/save

SaveEmployeesAsync

This method allows saving the employee details. Requires both Create and Edit Employee permission. It accepts a maximum of 500 records at a time. In case the employee does not exist, a new record is created and on creation, it returns the employee ID. In the case of updating the existing record, then only the columns specified in the request model's "ApplicableFields" field are updated. If this field is null/empty then "all" fields are assumed to be updateable. To create/update addresses please use the API public-api/addresses/employee/save. To create/update phone numbers please use the API public-api/phones/employee/save.

POST public-api/employees/delete

DeleteEmployeeModelsAsync

This method is used to delete employees. It takes a list of employee numbers to delete. Requires Delete Employee permission or be an App Admin. It accepts a maximum of 500 records at a time. All of the deletions are performed in a single transaction.

POST public-api/employees/search/exact

GetExactEmployeeApiAsync

This method gets the single active employee whose employee number exactly matches the value supplied. No partial or wildcard matching is performed. Requires Allow Employee permission.

POST public-api/employees/advancedinfosearch

EmployeeModelInfoAdvancedSearchAsync

This method returns a page full of active employees given a precise set of search, sort or filter criteria. It is a paging API so this is meant to be called with a smaller number (ca 100) or records to fetch, repeatedly, until you get them all. Requires Allow Employee permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/employees/getemployeesbynumber

GetEmployeesByNumberAsync

This method returns existing active employees by number, including their custom fields, addresses, phone numbers and notes. One result is returned per requested employee, in request order; an entry that matched no active employee carries an employee-retrieve error instead of data. Requires Allow Employee permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/employees/getemployeesbynumber-v2

GetEmployeesByNumberV2Async

This method returns existing active employees by number, including their custom fields, addresses, phone numbers and notes. One result is returned per requested employee number, in request order; an entry that matched no active employee carries an employee-retrieve error instead of data. Requires Allow Employee permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/employees/infosearch

EmployeeModelInfoSearchAsync

This method returns all active employees whose employee number, first name, last name or full name contains the specified search text. Exact matches are ordered first, and at most 500 employees are returned (the tenant-configurable maximum page size). Requires Allow Employee permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

GET public-api/employees/checkout-status/{EmployeeNumber}

AssetCheckOutStatusAsync

This method returns all of the assets currently checked out to the specified employee. It is optimized for employee number, but can search on employee name. Requires Allow Employee and Allow Asset permission as well as enforces the Role Site and Asset Type security.

POST public-api/employees/GetEmployeeByRfScanAsync

GetEmployeeByRfScanAsync

This method returns the single active employee whose employee number matches the scanned UserIdentifier. Role site security is enforced, so employees outside the caller's accessible sites are not returned. If no active employee matches, a RESOURCE_NOT_FOUND message is returned and the data is null.

POST public-api/employees/saveemployeemodels

SaveEmployeeModelsAsync

A public API created primarily for use with our LDAP sync tool. This API takes a list of employees and will update and insert as necessary. Any employees not in the list, but active in the Cloud system will be deleted. Requires Create, Edit, and Delete Employee permission.

POST public-api/employees/savestaffmodels

SaveStaffModelsAsync

A public API created primarily for use with our LDAP sync tool. This API takes a list of staff and will update and insert as necessary. Any staff not in the list, but active in the Cloud system will be deleted. Staff records are stored as employees, so this API requires Create, Edit, and Delete Employee permission.

ApiFunding

ApiFundingPublicApiClient
APIMethod NameDescription
POST public-api/funding/createFunding

CreateAsync

This method creates one or more new fundings. Requires Create Funding permission, enforces Role Site and Asset Type security when associating assets. Accepts a maximum of 500 records at a time.

POST public-api/funding/updateFunding

UpdateAsync

This method updates the header info of one or more existing fundings. This does not affect the assets associated with the funding. The existing funding is retrieved by calling one of the search APIs. Requires Edit Funding permission. Accepts a maximum of 500 records at a time.

POST public-api/funding/deleteFunding

DeleteFundingsAsync

This method deletes the listed fundings. The existing funding is retrieved by calling one of the search APIs. Requires Delete Funding permission. Accepts a maximum of 500 records at a time.

POST public-api/funding/addFundingAssets

AddAssociatedAssetsAsync

This method is used to add assets to a funding that already exists. Provide the funding name and the assets that need to be added. Requires Edit Funding permission, and asset tags are resolved subject to Role Site and Asset Type security, so a tag the caller cannot see is reported as a non-existent asset. Accepts a maximum of 500 records at a time, counted as the number of fundings rather than the total number of assets.

POST public-api/funding/removeFundingAssets

RemoveAssociatedAssetsAsync

This method is used to remove assets from a funding that already exists. Provide the funding name and the assets that need to be removed. Requires Edit Funding permission, and asset tags are resolved subject to Role Site and Asset Type security, so a tag the caller cannot see is reported as a non-existent asset. Accepts a maximum of 500 records at a time, counted as the number of fundings rather than the total number of assets.

POST public-api/funding/addFundingRestrictedSites

AddRestrictedSitesAsync

This method is used to add restricted sites to a funding that already exists. Provide the funding name and the restricted sites that need to be added. Requires Edit Funding permission, and site names are resolved subject to Role Site security, so a site the caller cannot see is reported as an invalid site. Accepts a maximum of 500 records at a time, counted as the number of fundings rather than the total number of sites.

POST public-api/funding/removeFundingRestrictedSites

RemoveRestrictedSitesAsync

This method is used to remove restricted sites from a funding that already exists. Provide the funding name and the restricted sites that need to be removed. Requires Edit Funding permission, and site names are resolved subject to Role Site security, so a site the caller cannot see is reported as an invalid site. Accepts a maximum of 500 records at a time, counted as the number of fundings rather than the total number of sites.

POST public-api/funding/search/exactname

GetExactFundingAsync

This method gets the funding that exactly matches the search string. Requires Allow Funding permission, enforces Role Site and Asset Type security when retrieving associated assets and restricted sites.

POST public-api/funding/getfundingsbyname

GetFundingByNameAsync

This method returns existing fundings by name, only the fund details, not the assets and restricted sites. Requires Allow Funding permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/funding/fundinginfosearch

FundingModelHeaderInfoSearchAsync

This method returns all the active fundings whose funding name or description contains the specified texts that are entered. Requires Allow Funding permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

ApiItemOrder

ApiItemOrderPublicApiClient
APIMethod NameDescription
PUT public-api/ic/order/SaveOrderExtraFields

SaveOrderExtraFieldsAsync

This method updates header level fields on a single existing order, located by the OrderNumber and OrderType supplied in the request. Only the fields supplied are changed - leave a field null to keep the value already in storage. The order can also be renamed (NewOrderNumber), given a new requested quantity on its order lines (OrderLinesToUpdate, honored for purchase orders only and ignored for every other order type), and given a file attachment which is added, or replaced when the file name already exists on that order. On success, the Messages collection will contain a message with the resulting order number in the FieldName field. Negative ResultCode values signal failure.

ApiLocations

ApiLocationsPublicApiClient
APIMethod NameDescription
POST public-api/locations/create

CreateAsync

This method creates a new location. It requires the Create Location permission and access to the Site where the Location is being created. It accepts a maximum of 500 records at a time. Response information does not display BatchNumber if it is null.

POST public-api/locations/update

UpdateAsync

This method updates an existing location. The existing location is retrieved by calling one of the searches. It requires the Edit Location permission and access to the Site where the Location is located. It accepts a maximum of 500 records at a time.

POST public-api/locations/search/exact

GetExactLocationApiAsync

This method gets the location that exactly matches the search string in the specified site. It requires Allow Location permission and access to the site where the location is located.

POST public-api/locations/advancedinfosearch

LocationModelInfoAdvancedSearchAsync

This method returns a page full of active locations given a precise set of search, sort or filter criteria. It is a paging API so this is meant to be called with a smaller number (ca 100) or records to fetch, repeatedly, until you get them all. It requires the Allow Location permission and enforces Role Site permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/locations/getlocationsbycode

GetLocationsByCodeAsync

This method returns existing locations by name. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL. It requires the Allow Location permission and access to the Site where the Location is located.

POST public-api/locations/infosearch

LocationModelInfoSearchAsync

This method returns the active locations whose location code or location description contains the location code that is passed in. The site name parameter is optional; when it is supplied the search is restricted to that site. It requires the Allow Location permission and access to the Site where the Location is located. The number of records returned is capped by the tenant's configured maximum page size (500 by default). Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/locations/deletelocationsbycode

DeleteLocationByCodeAsync

This method deletes existing locations by code. A deleted location is marked inactive rather than removed. It requires the Delete Location permission and access to the Site where the Location is located. It accepts a maximum of 500 records at a time. A location that still holds quantity on hand, or that has active child locations, cannot be deleted and is reported as in use. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

ApiManufacturers

ApiManufacturersPublicApiClient
APIMethod NameDescription
POST public-api/manufacturers/createNew

CreateNewManufacturersAsync

This method creates new Manufacturers. It requires the Create Manufacturer permission. It accepts a maximum of 500 records at a time. A manufacturer name that already exists is skipped and reported as a duplicate error in the results; the remaining records are still created. To create or update addresses (instead of ignoring them), please use the API public-api/addresses/manufacturers/save, which performs both inserts and updates.

POST public-api/manufacturers/updateExisting

UpdateExistingAsync

This method updates existing manufacturers. Every manufacturer is identified by its manufacturer name. It requires the Edit Manufacturer permission. It accepts a maximum of 500 records at a time. A manufacturer name that does not already exist cannot be updated by this method. To create or update addresses (instead of ignoring them), please use the API public-api/addresses/manufacturers/save, which performs both inserts and updates.

ApiPhone

ApiPhonePublicApiClient
APIMethod NameDescription
POST public-api/phones/customer/save

SaveCustomerPhonesAsync

This method creates/updates the phones associated with customers. It will not create new Phone Types, you will need to first create those in the web, but once you do they can be used here. Requires the Edit Customer permission Accepts a maximum of 500 records at a time

POST public-api/phones/employee/save

SaveEmployeephonesAsync

This method creates/updates the phones associated with employees. It will not create new Phone Types, you will need to first create those in the web, but once you do they can be used here. Requires the Edit Employee permission Accepts a maximum of 500 records at a time

POST public-api/phones/manufacturers/save

SaveManufacturerphonesAsync

This method creates/updates the phones associated with manufacturers. It will not create new Phone Types, you will need to first create those in the web, but once you do they can be used here. Requires the Edit Manufacturer permission Accepts a maximum of 500 records at a time

POST public-api/phones/supplier/save

SaveSupplierphonesAsync

This method creates/updates the phones associated with suppliers. It will not create new Phone Types, you will need to first create those in the web, but once you do they can be used here. Requires the Edit Supplier permission Accepts a maximum of 500 records at a time

ApiSites

ApiSitesPublicApiClient
APIMethod NameDescription
POST public-api/sites/create

CreateAsync

This method creates one or more new sites. To update sites that already exist, use the Update() API instead. It requires the Create Site permission. It accepts a maximum of 500 records at a time.

POST public-api/sites/update

UpdateAsync

This method updates existing sites. The existing site is retrieved by calling API function GetSitesByName() or one of the searches. It requires the Edit Site permission and enforces Role Site restriction. The TotalRecordsLongCount field is not used by this API. It accepts a maximum of 500 records at a time.

POST public-api/sites/search/exact

GetExactSiteApiAsync

This method gets the active site that exactly matches the search string. It requires the Allow Site permission and enforces Role Site restriction. If no site matches, the response contains an empty site together with a SUCCESS_NO_DATA message rather than an error.

POST public-api/sites/getsitesbyname

GetSitesByNameAsync

This method returns existing sites by name, including each site's location count, site notes and custom field values. It requires the Allow Site permission and enforces Role Site restriction. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/sites/infosearch

SiteModelInfoSearchAsync

This method returns active sites whose site name or site description contains the specified text, similar to the site drop down controls on the web. It returns the site name, the site description and the site notes. It requires the Allow Site permission and enforces Role Site restriction. It returns a maximum of 500 records at a time; sites whose name matches are ordered ahead of those matched on description only. This method does not provide per-record messages; if no site matches the search, the response returns no data and a SITE_INVALID message. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/sites/advancedinfosearch

SiteModelInfoAdvancedSearchAsync

This method returns a page full of active sites given a precise set of search, sort or filter criteria. It's a paging API so this is meant to be called with a smaller number (ca 100) or records to fetch, repeatedly, until you get them all. It requires the Allow Site permission and enforces Role Site restriction. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/sites/deletesitesbyname

DeleteSitesByNameAsync

This method deletes existing sites by name. It requires the Delete Site permission and enforces Role Site restriction. It accepts a maximum of 500 records at a time. A site that still has active locations cannot be deleted. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/sites/deletesitesbynumber

DeleteSitesByNumberAsync

This method deletes existing sites by name. It is obsolete and has been superseded by deletesitesbyname, to which it forwards the call unchanged. It requires the Delete Site permission and enforces Role Site restriction. It accepts a maximum of 500 records at a time. A site that still has active locations cannot be deleted. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/sites/getlocations/{siteName}

GetLocationsBySiteAsync

This method returns the locations belonging to a single site. It requires the Allow Location permission and enforces Role Site restriction. To retrieve the locations of several sites in one call, use getlocationsmany instead.

POST public-api/sites/getlocationsmany

GetLocationsBySiteAsync

Returns the locations for each of the specified sites. Pass a list of site names; the result contains one entry per requested site, in the same order the names were supplied. Requires the Allow Location permission, and enforces per-site access security.

ApiSystemInfo

ApiSystemInfoPublicApiClient
APIMethod NameDescription
POST public-api/systeminfo/servertype

ServerTypeAsync

This method returns the type of application hosted at this URL. Returns a WaspResult with Data = MobileAsset or InventoryControl, else some error.

ApiTransactions

ApiTransactionsPublicApiClient
APIMethod NameDescription
POST public-api/transactions/dispose

PublicAssetDisposeAsync

This method disposes the assets that are passed in, both Fixed and Inventory assets. For disposing Fixed Assets, you don’t need to provide the Location or Quantity fields. Any record that fails is reported with its zero-based position in the submitted list, so you can show the error message on the correct “row” of the grid. Requires the Allow Dispose permission, enforces Role Site and Asset Type security Accepts a maximum of 500 records at a time

POST public-api/transactions/recover

PublicAssetRecoverAsync

This method recovers the assets that are passed in, Fixed assets only. Requires the Allow Recover permission Accepts a maximum of 500 records at a time

POST public-api/transactions/public/asset/move

PublicAssetMoveAsync

This method moves the assets that are passed in, both Fixed and Inventory assets. For moving Fixed Assets, you don’t need to provide the from location or quantity fields. Requires the Allow Move permission, enforces Role Site and Asset Type security Accepts a maximum of 500 records at a time

POST public-api/transactions/public-api/audit-count

PublicApiAuditCountAsync

This API is used to perform an audit count transaction. Any discrepancies found will need to be resolved using the reconcile transaction Requires the Allow Audit permission, enforces Role Site and Asset Type security Accepts a maximum of 500 records at a time

POST public-api/transactions/audit-count-v2

PublicApiAuditCountV2Async

This API is used to perform an audit count transaction. Any discrepancies found will need to be resolved using the reconcile transaction Requires the Allow Audit permission, enforces Role Site and Asset Type security Accepts a maximum of 500 records at a time Supports Containers

POST public-api/transactions/public/asset/check-in

PublicAssetCheckInAsync

This method checks in the assets that are passed in, both Fixed and Inventory assets. For checking in Fixed Assets, you don’t need to provide the from location or quantity fields. Requires the Allow Check In permission, enforces Role Site and Asset Type security Accepts a maximum of 500 records at a time The entire request is validated before anything is saved: if any record fails validation, no assets are checked in.

POST public-api/transactions/public/asset/check-out

PublicAssetCheckOutAsync

This method checks out the assets that are passed in, both Fixed and Inventory assets. For checking out Fixed Assets, you don’t need to provide the from location or quantity fields. Requires the Allow Check Out permission, enforces Role Site and Asset Type security Accepts a maximum of 500 records at a time

POST public-api/transactions/streamgridrequestcsv

StreamGridRequestCSVAsync

Request transaction history records as a stream of data in a CSV-formatted stream. If the FieldTitles parameter is null then all available fields are exported with default column titles. Important! Without this parameter the order and names of fields may change from version to version. Therefore, to ensure consistent results from one version to the next, make sure you provide this value after you have determined the values you need. If the FieldTitles parameter is not provided the column names returned will be the database column names. This API does not support paging as it is intended to stream all of the data at once. Requires the Allow Transaction History permission. Date and time fields are not converted to local time; they are returned in UTC (Universal Time) using the format yyyy-MM-dd HH:mm:ssZ.

POST public-api/transactions/streamgridrequestarchivecsv

StreamGridRequestArchiveCSVAsync

Request older archived and purged transaction history records as a stream of data in a CSV-formatted stream. This is the archive counterpart of streamgridrequestcsv: it returns transaction history that has already been archived or purged out of the live transaction history, not the records that endpoint returns. If the FieldTitles parameter is null then all available fields are exported with default column titles. Important! Without this parameter the order and names of fields may change from version to version. Therefore, to ensure consistent results from one version to the next, make sure you provide this value after you have determined the values you need. If the FieldTitles parameter is not provided the column names returned will be the database column names. This API does not support paging as it is intended to stream all of the data at once. Date and time fields are not converted to local time; they are returned in UTC (Universal Time) using the format yyyy-MM-dd HH:mm:ssZ.

POST public-api/transactions/grid-query/history-public-api

TransactionHistoryAsync

Returns transaction history matching the supplied filter. Suitable for public API.

POST public-api/transactions/grid-query/history-notes-public-api

TransactionHistoryNotesAsync

Given a list of Unique Transaction History Identifiers, return attachment binary data and any user notes. A Unique Transaction History Identifier is the TransactionUniqueIdentitifer value returned by the api call public-api/transactions/grid-query/history-public-api. These identifiers are short-lived: an identifier more than 8 minutes old is rejected with a NO_NOTES_FOUND message, so request the notes soon after fetching the history page that produced them.

POST public-api/transactions/grid-query/transaction-history

TransactionHistoryGridQueryAsync

Deprecated. Please use grid-query/transaction-history-v2 This API is filterable, sortable, and page-able. It returns a list of the transaction history, very similar to what is returned in the Transaction History web interface. Requires the Allow Transaction History permission.

POST public-api/transactions/grid-query/transaction-history-v2

TransactionHistoryGridQueryV2Async

New transaction history api. This api returns a model that takes out the internal id fields, but works just like the previous one. You can use the gridRequest parameter to specify the page number, page size, filter, and sort criteria. Requires the Allow Transaction History permission, enforces Role Site and Asset Type security

GET public-api/transactions/dispose/reasons

GetDisposeReasonsAsync

The method returns all active dispose reasons in the system as a simple list of strings Requires the Allow Dispose Reason permission

GET public-api/transactions/recover/reasons

GetRecoverReasonsAsync

The method returns all active recover reasons in the system as a simple list of strings Requires the Allow Recover Reason permission

POST public-api/transactions/public-api/reconcile

PublicApiReconcileAsync

This API is used to perform a reconcile transaction. Any audits that resulted in discrepancies can be accepted or corrected using this transaction Requires the Allow Audit Reconciliation permission, enforces Role Site and Asset Type security Accepts a maximum of 500 records at a time

POST public-api/transactions/reconcile-v2

PublicApiReconcileV2Async

This API is used to perform a reconcile transaction. Any audits that resulted in discrepancies can be accepted or corrected using this transaction Requires the Allow Audit Reconciliation permission, enforces Role Site and Asset Type security Accepts a maximum of 500 records at a time Supports Containers

POST public-api/transactions/asset/history

GetTransactionsAsync

Method with paging used to return the transaction history of an asset with optional start and end date parameters Requires the Allow Transaction History permission, enforces Role Site and Asset Type security

POST public-api/transactions/rfscan

RFScanAsync

Stages the payload for an RF-scanned check-in or check-out so that the check-in / check-out process can pick it up later by its transaction identifier. The payload is held for 24 hours, keyed by whether it is a check-out or a check-in and by the TransactionIdentifier supplied on the payload. Posting a payload again with the same identifier and direction replaces the previously staged payload. This call only stages the payload; it does not itself create a check-in or check-out transaction, and it does not validate the identifiers it is given.

ApiVendor

ApiVendorPublicApiClient
APIMethod NameDescription
GET public-api/vendors/checkout-status/{VendorNumber}

AssetCheckOutStatusAsync

This method returns all of the assets currently checked out to the specified vendor. It is optimized for vendor numbers but can search on a vendor name. It requires the Allow Vendor and Allow Asset permission and enforces Role Site and Asset Type security.

POST public-api/vendors/createNew

CreateNewVendorsAsync

This method creates new Vendor. It requires the Create Vendor permission. It accepts a maximum of 500 records at a time. This will ignore the Vendor name already in existence. To create/update addresses (instead of ignoring them), please use the API public-api/addresses/suppliers/save. Use “Save” to perform operations including both inserts and updates.

POST public-api/vendors/updateExisting

UpdateExistingAsync

This method updates the existing Vendors. Every Vendor will have a Vendor number. It requires the Edit Vendor permission. It accepts a maximum of 500 records at a time. This will not work for Vendor with unknown Vendor number. To create/update addresses (instead of ignoring them), please use the API public-api/addresses/suppliers/save. Use “Save” to perform operations including both inserts and updates.

POST public-api/vendors/advancedinfosearch

VendorAdvancedSearchAsync

This method returns a page full of active vendors given a precise set of search, sort or filter criteria. It's a paging API so this is meant to be called with a smaller number (ca 100) of records to fetch, repeatedly, until you get them all. It requires the Allow Vendor permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/vendors/getvendorbynumber

GetVendorByNumberAsync

This method returns existing vendors by their vendor numbers. It requires the Allow Vendor permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

SystemInfo

SystemInfoPublicApiClient
APIMethod NameDescription
POST systeminfo/servertype

ServerType

This method returns the type of application hosted at this URL. Returns a WaspResult with Data = MobileAsset or InventoryControl, else some error.