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/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

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

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/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.

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.

ApiItemContainer

ApiItemContainerPublicApiClient
APIMethod NameDescription
POST public-api/ic/container/expand-by-container-id-sdk

Container20ExpandParentContainerIdSdkAsync

Given a list of container tags (license plate numbers), returns the immediate children of each container. This api does NOT return any grand children, great-grand-children or anything deeper than 1 level. A container tag that cannot be resolved produces a TRANSACTION_INVALID_CONTAINER_ID message in the Messages collection. Negative ResultCode values signal failure.

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.

ApiItemPickPackShipOrder

ApiItemPickPackShipOrderPublicApiClient
APIMethod NameDescription
POST public-api/ic/pickpackshiporder/create

CreateAsync

This method creates a new pick order. Requires a Create Pick Order permission. Accepts a maximum of 500 records at a time. On success, the Messages collection will contain a message with the Pick order Number in the FieldName field. Negative ResultCode values signal failure.

POST public-api/ic/pickpackshiporder/update

UpdateAsync

This method edits an existing pick order. Requires an Edit Pick Order permission. Accepts a maximum of 500 records at a time. On success, the Messages collection will contain a message with the Pick order Number in the FieldName field. Negative ResultCode values signal failure.

POST public-api/ic/pickpackshiporder/advancedinfosearch

ItemInfoAdvancedSearchAsync

This method returns a page full of active pick 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 (about 100) of records to fetch, repeatedly, until you get them all. Requires Allow Pick Order permission and enforces Role Site restrictions. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/pickpackshiporder/getordersbynumber

GetOrdersByNumberAsync

This method returns existing orders by number. Requires Allow Pick Order permission and enforces Role Site restrictions. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/pickpackshiporder/getorderspickdetails

GetOrdersAndPickTransactionDetailsAsync

This method returns existing orders by number. Unlike the function getordersbynumber, this function returns actual trackby information within each order line (if applicable). Requires Allow Pick Order permission and enforces Role Site restrictions. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/pickpackshiporder/deleteordersbynumber

DeleteOrdersByNumberAsync

This method deletes existing Pick orders by number ONLY if they are in Draft status. Requires Delete Pick Order permission and enforces Role Site restrictions. 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/ic/pickpackshiporder/updateorderstatusbynumber

UpdatePickOrderStatusByNumberAsync

This method updates existing pick orders status by order numbers. Pick - Order Status and Reason Code Combinations are - "Draft-OK","Open-PoIssued","Closed-GeneralCancel","Closed-CustomerCancel". Requires Edit Pick Order permission and enforces Role Site restrictions. 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/ic/pickpackshiporder/deleteordersbynumber_obsolete

DeletePurchaseOrdersByNumberAsync

This method deletes existing Pick orders by number ONLY if they are in Draft status. Requires Delete Pick Order permission and enforces Role Site restrictions. Accepts a maximum of 500 records at a time. Note: Obsolete. This method remains for backward compatibility. Use DeleteOrdersByNumber instead. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/pickpackshiporder/FindOrdersWithMatchingOrderLineItemsSDK

FindOrdersWithMatchingOrderLineItemsSDKAsync

This method returns the pick orders that contain a line item for any one of the supplied item numbers. An order is returned when it matches at least one of the item numbers; the item numbers do not all have to match. If no item numbers are supplied, the result reports an invalid model state. If an item number matches no order line, the result reports that item number as not found. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/pickpackshiporder/execute-container-auto-pick

ExecuteContainerAutoPickAsync

This method automatically picks the available contents of one or more source containers against an existing pick order. Identify the order with PickOrderNumber, and list the containers to pick from in SourceContainerIdList; at least one container is required. When Action is SaveClose and the pick succeeds, the order is closed with a reason code of Pick Complete, or Picked Short when a line is short of the requested quantity. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/pickpackshiporder/prepare-create-pick-order-request

PrepareCreatePickOrderRequestAsync

This method automatically picks the available contents of one or more source containers against an existing pick order. It behaves identically to the execute-container-auto-pick endpoint, which remains available for backward compatibility. Identify the order with PickOrderNumber, and list the containers to pick from in SourceContainerIdList; at least one container is required. When Action is SaveClose and the pick succeeds, the order is closed with a reason code of Pick Complete, or Picked Short when a line is short of the requested quantity. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/pickpackshiporder/pick

PickTransactionAsync

This method is used to pick items on an order. If an item has trackbys they must be entered. The units being picked must match the units on the order. Requires Allow Pick permission and enforces Role Site permission. Accepts a maximum of 500 records at a time.

ApiItemPurchaseOrder

ApiItemPurchaseOrderPublicApiClient
APIMethod NameDescription
POST public-api/ic/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. The Messages collection will contain a message with the Purchase order Number in the FieldName field. Negative ResultCode values signal failure.

POST public-api/ic/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. The Messages collection will contain a message with the Purchase order Number in the FieldName field. Negative ResultCode values signal failure.

POST public-api/ic/purchaseorder/advancedinfosearch

ItemInfoAdvancedSearchAsync

This method is Obsolete (Use PurchaseOrderSearch instead).

POST public-api/ic/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 (approximately 100) of records 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/ic/purchaseorder/getordersbynumber

GetOrdersByNumberAsync

This method returns existing orders by number. 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. The Messages collection will contain a message with the Purchase order Number in the FieldName field where negative result codes signal failure.

POST public-api/ic/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. The Messages collection will contain a message with the Purchase order Number in the FieldName field. Negative ResultCode values signal failure; an order that is not in Draft status is reported as an error and is not deleted. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/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. The Messages collection will contain a message with the Purchase order Number in the FieldName field. Negative ResultCode values signal failure. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/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 Allow Receive permission and enforces Role Site permission. Accepts a maximum of 500 records at a time. Receipts are all or nothing: if any transaction in the request fails, none of them are committed. The Messages collection will contain a message with the Purchase order Number in the FieldName field.

POST public-api/ic/purchaseorder/GetOrdersModifiedAfter

GetOrdersModifiedAfterAsync

This method returns every purchase order that was created or last modified after the supplied date and time, including its order lines and custom field values. It is intended to be used to synchronize a local copy of the purchase orders, by passing the timestamp of the previous synchronization. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/purchaseorder/SaveASNOrderLineTrackbyInfo

SaveASNOrderLineTrackbyInfoAsync

This method saves the preliminary (Advance Shipping Notice) track-by information for the lines of a single purchase order, so that the values are already known when the order is later received. Existing entries are updated and new entries are added. The order is identified by the first non-empty OrderNumber found in the submitted values, and that order number is applied to every value in the request, so all values in a single call must belong to the same purchase order. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/purchaseorder/UpdateASNOrderLineTrackbyInfo

UpdateASNOrderLineTrackbyInfoAsync

This method updates existing preliminary (Advance Shipping Notice) track-by detail records on the lines of a single purchase order. The order is identified by the first entry in the request with an OrderId greater than zero, so all values in a single call must belong to the same purchase order. The update is all or nothing: if any value fails, none of the changes are committed. An empty list is not an error; it simply reports that no action was taken. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/purchaseorder/FindOrdersByASNTrackbyValues

FindOrdersByASNTrackbyValuesAsync

This method finds the purchase orders that match the supplied preliminary (Advance Shipping Notice) track-by values. At least one of order number, container id, lot, or serial number must be supplied; if all of them are empty the order is reported as not found. If an order number is supplied it is matched directly; otherwise the container id, lot, and serial number are matched against the preliminary track-by information, and orders in Draft, Cancelled, Closed, Rejected, Deleted, or Complete status are excluded. A successful search that matches nothing is reported as success with no data rather than as an error. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/purchaseorder/FindOrderByASNTrackbyContainerId

FindOrderByASNTrackbyContainerIdAsync

This method finds the open purchase orders whose preliminary (Advance Shipping Notice) track-by information references any of the supplied container ids. Each container id is searched separately and the matching orders are combined into a single response. Null, empty, and whitespace-only entries are ignored, and duplicate container ids are searched only once regardless of letter case. A container id that matches no order is reported as success with no data, with the container id in the FieldName field. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/purchaseorder/AutoReceiveFromASNContainerIds

AutoReceiveFromASNContainerIdsAsync

This method auto-receives purchase order lines directly from the supplied container ids (license plate numbers). Each container id is resolved to the open purchase order whose preliminary (Advance Shipping Notice) track-by information references it, and only the quantities staged under that container are received. Null, empty, and whitespace-only entries are ignored, and duplicate container ids are processed only once regardless of letter case. A container id that matches no order is reported with an invalid-container-id message and the remaining container ids are still processed. A container id that matches more than one order is reported as a duplicate order number and processing stops. A container id that was already received is reported as a prior request already completed and is skipped. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/purchaseorder/FindOrdersWithMatchingOrderLineItemsSDK

FindOrdersWithMatchingOrderLineItemsSDKAsync

This method finds the purchase orders that have an order line for any one of the supplied item numbers. Only purchase orders are searched, and orders in a Cancelled, Deleted, Rejected, or No Status state are excluded. Every supplied item number must exist as an active item: if any one of them is unknown, no orders are returned at all. An order does not have to reference every supplied item number to be returned — a line for any one of them is enough. Null, empty, and whitespace-only entries are ignored, and duplicate item numbers are searched only once regardless of letter case. An empty item number list is reported as an invalid model state, and a search that matches no order lines returns one order-line-not-found message per submitted item number. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/purchaseorder/AutoReceiveFromASNTrackbyValues

AutoReceiveFromASNTrackbyValuesAsync

This method auto-receives the preliminary (Advance Shipping Notice) track-by information already staged against a single purchase order. The order must be an active purchase order that has not reached a Complete, Closed, or Closed-Complete state; otherwise an invalid order status code is reported and nothing is received. By default every staged container on the order is received. Supply AutoReceiveContainerIdList to limit the receipt to specific container ids (license plate numbers). OverrideSiteName and OverrideLocationCode override the destination stored with the preliminary data, and TransactionNotes and TransactionReferenceNumber are recorded on the resulting receipt transaction. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/purchaseorder/GetASNOrderLineTrackbyInfo

GetASNOrderLineTrackbyInfoAsync

This method retrieves the preliminary (Advance Shipping Notice) track-by information recorded against the order lines of the supplied purchase orders. Each order number is queried separately and the results are combined into a single response. Only outstanding track-by rows are returned — rows whose requested quantity has already been fully received are omitted, as are orders in a Draft, Cancelled, Closed, Closed-Complete, Rejected, Deleted, or e-commerce shipping state. Null, empty, and whitespace-only entries are ignored, and duplicate order numbers are queried only once regardless of letter case. An order number with no preliminary track-by information is reported as success with no data, with the order number in the FieldName field. Note: TotalRecordsLongCount reports the number of order numbers queried successfully, not the number of track-by records returned. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

ApiItems

ApiItemsPublicApiClient
APIMethod NameDescription
POST public-api/ic/item/saveContainerItem

SaveContainerItemAsync

This method is used to create a new container item, identified by its ItemNumber. It creates only container type items, and the item is always created with a License Plate Number track-by. If a container item with that item number already exists it is updated instead; set CreateNewOnly on the request to reject an existing item number as a duplicate rather than update it. An existing item number that belongs to an item that is not a container is rejected as an invalid item class. Supplying a ContainerIdStartingSeedValue of 1 or more also initializes the container id (license plate number) generator for the item, using the supplied prefix and suffix. Requires Create Item permission to create a container item that does not yet exist.

POST public-api/ic/item/createInventoryItems

CreateInventoryItemAsync

This method is used to create new inventory items. You can pass in a list of ItemInventoryInfo to create several new items at once. It creates only inventory type items. Requires Create Item permission. Accepts a maximum of 500 records at a time.

POST public-api/ic/item/updateInventoryItems

UpdateInventoryItemAsync

This method is used to update existing inventory items. You can pass in a list of ItemInventoryInfo to update several existing items at once. It updates only inventory type items. Requires Edit Item permission. Accepts a maximum of 500 records at a time.

POST public-api/ic/item/createAssemblyItems

CreateAssemblyItemAsync

This method is used to create new assembly items. You can pass in a list of ItemAssemblyInfo to create several new items at once. It creates only assembly type items. Assemblies are always created with an empty bill of materials — any lines passed in are ignored; BOM lines are added afterward in the UI. Requires Create Item permission. Accepts a maximum of 500 records at a time.

POST public-api/ic/item/createNonInventoryItems

CreateNonInventoryItemAsync

This method is used to create new non-inventory items. You can pass in a list of ItemNonInventoryInfo to create several new items at once. It creates only non-inventory type items. Requires Create Item permission. Accepts a maximum of 500 records at a time.

POST public-api/ic/item/updateNonInventoryItems

UpdateNonInventoryItemAsync

This method is used to update existing non-inventory items. You can pass in a list of ItemNonInventoryInfo to update several existing items at once. It updates only non-inventory type items. Requires Edit Item permission. Accepts a maximum of 500 records at a time.

POST public-api/ic/item/createServiceItems

CreateServiceItemAsync

This method is used to create new service items. You can pass in a list of ItemServiceInfo to create several new items at once. It creates only service type items. Requires Create Item permission. Accepts a maximum of 500 records at a time.

POST public-api/ic/item/updateServiceItems

UpdateServiceItemAsync

This method is used to update existing service items. You can pass in a list of ItemServiceInfo to update several existing items at once. It updates only service type items. Requires Edit Item permission. Accepts a maximum of 500 records at a time.

POST public-api/ic/item/getitemsbynumber

GetItemsByNumberAsync

This method returns existing items by number. Each requested item number is returned as its own result entry, so a single call can succeed for some item numbers and report an invalid item error for others. Requires Allow Item permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/item/getitemlocationbynumber

GetItemLocationByNumberAsync

This method returns the active stocking locations configured for the specified items, including each location's minimum, maximum and reorder quantities and the quantity currently available there. Results are limited to the sites the calling user's role is allowed to access. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/item/infosearch

ItemInfoSearchAsync

This method returns all active items whose item number, alternate item number or item description contains the specified search text. The number of records returned is capped by the tenant's configured maximum page size. Requires Allow Item permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/item/advancedinfosearch

ItemInfoAdvancedSearchAsync

This method returns a page full of active items 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 (about 100) or records to fetch, repeatedly, until you get them all. Requires Allow Item permission. Note: This is a Post API to avoid limitations inherent to passing parameters on the URL.

POST public-api/ic/item/getinventoryitem/{itemNumber}

GetInventoryItemAsync

This method is used to get an inventory item with an item number that matches the string parameter exactly. Requires Allow Item permission.

POST public-api/ic/item/getmultipleinventoryitem

GetMultipleInventoryItemAsync

This method is used to get up to 20 inventory items by item number, on providing the details about the item. Requires Allow Item permission.

POST public-api/ic/item/getnoninventoryitem/{itemNumber}

GetNonInventoryItemAsync

This method is used to get a non inventory item with an item number that matches the string parameter exactly. Requires Allow Item permission.

POST public-api/ic/item/getserviceitem/{itemNumber}

GetServiceItemAsync

This method is used to get a service item with an item number that matches the string parameter exactly. Requires Allow Item permission.

POST public-api/ic/item/getassemblyitem/{itemNumber}

GetAssemblyItemAsync

This method is used to get an assembly item with an item number that matches the string parameter exactly. Requires Allow Item permission.

POST public-api/ic/item/getkititem/{itemNumber}

GetKitItemAsync

This method is used to get a kit item with an item number that matches the string parameter exactly. Requires Allow Item permission.

POST public-api/ic/item/inventorysearch

InventorySearchAsync

This method is a simple inventory query similar to what is found on the Edit Item screen or on the mobile devices. Requires Allow Item permission and enforces role site permission.

POST public-api/ic/item/advancedinventorysearch

InventoryAdvancedSearchAsync

This method is a robust inventory query similar to the main View Item non tree mode grid. This is a paging API. Requires Allow Item permission and enforces role site permission.

POST public-api/ic/item/inventory-activity

InventoryActivityAsync

This method gets the inventory activity for a given date range and returns it in a json format similar to the other public apis. It can be filtered down to a specific item, move transactions can be excluded, and records with no quantity or activity can be filtered out

POST public-api/ic/item/inventory-activity-csv

InventoryActivityCsvAsync

Returns the same inventory-activity data as , but as a CSV file download (text/csv, attachment). Column names are the raw result field names. All filter options on (ExcludeEmptyQuantity, ExcludeMoveTransaction, etc.) are honored identically to the JSON endpoint.

POST public-api/ic/item/streamgridrequestcsvflat

StreamGridRequestCSVFlatAsync

Request item 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 items 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 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

POST public-api/ic/item/streamgridrequestcsvunique

StreamGridRequestCSVUniqueAsync

Request item 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 items 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 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

POST public-api/ic/item/streamgridrequestcsvlowstock

StreamGridRequestCSVLowStockAsync

Request low stock 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 items 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 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

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/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

ApiSalesTaxCode

ApiSalesTaxCodePublicApiClient
APIMethod NameDescription
POST public-api/ic/salestaxcode/SaveSalesTaxCode

SaveSalesTaxCodeAsync

Call this method to create or update a sales tax code. It requires both the Item Create and Item Edit permissions. When a request model for a Sales Tax Code is given the function checks if the name already exists. If it already exists, then that record is updated and marked as active. If not, then a new record is created. TotalRecordsLongCount field is not used by this API.

POST public-api/ic/salestaxcode/RetrieveSalesTaxCodesByNames

RetrieveSalesTaxCodesByNamesAsync

This method retrieves the details of sales tax codes by name. Given a list of sales tax code names, it returns the matching active sales tax codes. Names that do not match an active record are omitted from the result. The function can accept a maximum of 500 names at a time.

POST public-api/ic/salestaxcode/DeleteSalesTaxCodesByNames

DeleteSalesTaxCodesByNamesAsync

Call this method to delete a sales tax code. It requires the Item Edit permission. Given a list of sales tax code names, will mark the given records as deleted. Note that if the record is already deleted, then a success result code will still be returned and the message will indicate that the previous operation is already successful. If the name does not exist, then it will be ignored.

GET public-api/ic/salestaxcode/TaxCodeSearchGetAll

TaxCodeSearchGetAllAsync

This method returns all active sales tax codes. Sales tax codes that have been deleted are not returned. It requires the Allow Item permission.

POST public-api/ic/salestaxcode/TaxCodeSearch

TaxCodeSearchAsync

This method returns the active sales tax codes matching the search criteria. A record matches when either its name or its description contains the search text, ignoring case. An empty or blank search pattern returns all active sales tax codes. It requires the Allow Item permission.

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/search/exact/v2

GetExactSiteApiv2Async

This method gets the active site that exactly matches the search string. It is the version 2 form of the search/exact API: it reports the site's category restrictions in full - a flag indicating whether the site can access all categories, plus the list of allowed category descriptions - in place of the single has-restrictions flag returned by search/exact. It requires the Allow Site permission and enforces Role Site restriction. If no site matches, the response contains an empty site and no messages.

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/AddCategoriesToSites

AddAllowedCategoriesToSitesAsync

This method is used to add additional allowed categories to existing sites. If the category is already associated with the site the value will be ignored. It requires the Edit Site or Allow Category permission. It accepts a maximum of 500 sites to modify at a time. Only active sites and active categories are matched; a name that does not resolve to one is reported as an error for that entry and the rest of the request still proceeds.

POST public-api/sites/RemoveCategoriesFromSites

RemoveAllowedCategoriesFromSitesAsync

This method is used to remove allowed categories from existing sites. If the category is not associated with the site the value will be ignored. There must be no quantity associated with the category at the site for it to be removed. It requires the Edit Site or Allow Category permission. It accepts a maximum of 500 sites to modify at a time. Only active sites and active categories are matched; a name that does not resolve to one is reported as an error for that entry and the rest of the request still proceeds.

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/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/item/check-in

CheckInTransactionAsync

This api is used to check in quantity of an item. If an item has trackbys they must be entered. Quantity checked-in in this way is always checked in using the stocking units. A Customer or Vendor must be specified and not both. Requires the Allow Check In permission, enforces Role Site security Accepts a maximum of 500 records at a time

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

CheckOutTransactionAsync

This api is used to check out quantity of an item. If an item has trackbys they must be entered. Quantity checked out in this way is always checked out using the stocking units. A Customer or Vendor must be specified and not both. Requires the Allow Check Out permission, enforces Role Site security Accepts a maximum of 500 records at a time

POST public-api/transactions/container20AddMultipleContainers

Container20AddMultipleContainersAsync

Creates one or more nested container (LPN) hierarchies in a single request.

POST public-api/transactions/item/move-container-or-inventory

MoveContainerOrInventoryAsync

Moves tracked containers (LPNs) and/or loose inventory quantities in bulk, from one location or container to another.

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/item/adjustCount/reasons

GetItemAdjustCountReasonsAsync

The method returns all active adjust-Count reasons in the system. Requires the Allow Adjust Reason Code or Adjust permission

GET public-api/transactions/item/adjustDown/reasons

GetItemAdjustDownReasonsAsync

The method returns all active adjust-Down reasons in the system. Requires the Allow Adjust Reason Code or Adjust permission

GET public-api/transactions/item/adjustUp/reasons

GetItemAdjustUpReasonsAsync

The method returns all active adjust-Up reasons in the system. Requires the Allow Adjust Reason Code or Adjust 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/item/add

AddTransactionAsync

This api is used to add quantity to an item. If an item has trackbys they must be entered. Quantity added in this way is always added using the stocking units. Requires the Allow Add permission and enforces Role Site permission Accepts a maximum of 500 records at a time

POST public-api/transactions/item/remove

RemoveTransactionAsync

This api is used to remove quantity of an item. If an item has trackbys they must be entered. Quantity removed in this way is always removed using the stocking units. Requires the Allow Remove permission and enforces Role Site permission Accepts a maximum of 500 records at a time. If error, Returns a list of error message with a zero based index of items that contain errors.

POST public-api/transactions/item/adjust

AdjustTransactionAsync

This api is used to adjust the quantity of an item. If an item has trackbys they must be entered. Quantity adjusted in this way is always adjusted using the stocking units. An adjust type and reason must be provided Requires the Allow Adjust permission and enforces Role Site permission Accepts a maximum of 500 records at a time

POST public-api/transactions/item/move

MoveTransactionAsync

This api is used to move quantity of an item. If an item has trackbys they must be entered. Quantity moved in this way is always moved using the stocking units. Requires the Allow Move permission, enforces Role Site Accepts a maximum of 500 records at a time

ApiVendor

ApiVendorPublicApiClient
APIMethod NameDescription
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.