List of inventory related API requests


Returns a list of warehouses, or locations, or stores.

API call getAllowedWarehouses returns the list of those warehouses that your user has access to.

To populate the drop-down list of "home stores" or "sign-up stores" on customer form, see the API call getHomeStores instead.


Retrieve warehouses that this particular authenticated user has access to. API call getWarehouses, on the other hand, returns all warehouses.


Create or update a store (location, warehouse).

To retrieve a list of locations, see getWarehouses.


Retrieve your product database.

In addition to product card fields, you can have API to return:

  • inventory quantities (set getStockInfo = 1);
  • costs and purchase prices (set getFIFOCost = 1);
  • price list prices in a particular store (set getPriceListPrices = 1);
  • recipes for assembly and bundle products (set getRecipes = 1);
  • package options (set getPackageInfo = 1);
  • replacement products (set getReplacementProducts = 1);
  • related products (set getRelatedProducts = 1);
  • product parameters (set getParameters = 1);
  • quantities of packaging materials that the product contains (set getPackagingMaterials = 1);
  • product files (manuals, specifications) (set getRelatedFiles = 1);
  • beverage containers (set getContainerInfo = 1);
  • detailed list of variations for a matrix product (set getMatrixVariations = 1).
To add or edit a product, use saveProduct. To retrieve inventory quantities ONLY, or to synchronize that data, use getProductStock. To retrieve only price list prices, use getProductPrices.

Services are also considered a special kind of products — non-stock products.


Create or update a product.


Delete a product. Products that have any number of transactions associated with them (sales, purchases or inventory) cannot be deleted; API returns error 1063. Instead, we always recommend to archive the product — setting its status to "ARCHIVED".

In ERPLY backend, deleting products is no longer possible; clicking the "X" button always archives a product.


Returns a HIERARCHICAL array of product groups.

Groups are a way of categorizing your product database, and several API calls support filtering by group.

Products can additionally be organized into categories (getProductCategories, hierarchical), brands (getBrands, a flat list), and priority groups (getProductPriorityGroups, a flat list)


Create or update a product group.


Delete a product group. Note that products belonging to this group, as well as subgroups, will NOT be deleted or recategorized.


Returns an array of product possible units.


Retrieve your ERPLY inventory — quantities on hand, reserved amounts, Reorder Points and Restock Levels, FIFO costs, and most recent purchase prices.

By default, API returns all products that have a non-zero inventory quantity in the warehouse you specified. In other words, items with a zero inventory quantity are skipped.

However, if you use input parameters "changedSince" (all quantities that have changed since last synchronization), or "getProductsWithReorderPointDefined" / "getProductsWithRestockLevelDefined", API will also return items with zero inventory quantity.

To retrieve only a list of reserved inventory quantities, see getReservedStock.

If you need to get total stock across all warehouses, then use API call syncTotalProductStock.


Create an Inventory Registration or update an existing one.

Inventory Registration is a document that takes products into inventory; it has a list of items and quantities. It is similar to a Purchase Invoice, but has fewer fields and is best suited for registering your initial stock quantities when you start using ERPLY — or for making inventory quantity adjustments.

Non-stock products and bundles cannot be on Inventory Registrations (these items do not have inventory).

Products can be removed from stock with Inventory Write-offs (see getInventoryWriteOffs and saveInventoryWriteOff) and moved between locations with Inventory Transfers (see getInventoryTransfers and saveInventoryTransfer).

To retrieve a list of Inventory Registrations, see getInventoryRegistrations.


Create or update an Inventory Transfer.

Inventory Transfer is a document that moves inventory between locations (stores); subtracts from one location and adds to the other. Inventory Transfer has a list of items and quantities.

Non-stock products and bundles cannot be transfered (these items do not have inventory).

For retrieving Inventory Transfers, see getInventoryTransfers.


Create an Inventory Write-Off or update an existing one.

Inventory Write-Off is a document that removes products from inventory; it has a list of items and quantities.

Non-stock products and bundles cannot be on Inventory Write-Offs (these items do not have inventory).

Products can be added to stock with Inventory Registrations (see getInventoryRegistrations and saveInventoryRegistration) and moved between locations with Inventory Transfers (see getInventoryTransfers and saveInventoryTransfer).

To retrieve a list of Inventory Write-Offs, see getInventoryWriteOffs.


Retrieve physical stocktakings.

A physical stocktaking is an operation where inventory is manually re-counted; if actual count differs from the inventory quantity in ERPLY, the quantity in ERPLY is adjusted.

When physical stocktaking is completed, the stocktaking act must be confirmed. Any surplus items can then be taken into inventory with an Inventory Registration, and missing items subtracted with an Inventory Write-Off.

To retrieve all item counts in one specific stocktaking, see getStocktakingReadings. To start a new stocktaking (create a new stocktaking act), see saveStocktaking. To update quantities on an act, see saveStocktakingReadings and incrementStocktakingReading.


Create or update a physical stocktaking act.

Creating the act is the first step in physical stocktaking. Next, it must be filled with quantities counted in the warehouse. After all quantities have been recorded and verified, the act must be confirmed. Finally, surplus quantities should be taken into stock with an Inventory Registration and missing quantites written off with an Inventory Write-off. Note that just confirming the act will not update your inventory yet!

Inventory Registrations and Write-offs can be created manually in Erply back-end.

For related API calls, see getStocktakings, getStocktakingReadings, saveStocktakingReadings and incrementStocktakingReading.


Retrieve item counts on one specific stocktaking act.

To retrieve a list of physical stocktakings, see getStocktakings. To start a new stocktaking (create a new stocktaking act), see saveStocktaking. To update quantities on an act, see saveStocktakingReadings (to make bulk updates) or incrementStocktakingReading (to increment quantities atomically).


Update product count on a physical stocktaking sheet.

Note! This API call should be used only in single-client mode (if your API script or application is the only one updating the quantities). If you have several applications that need to update quantities simultaneously, use incrementStocktakingReading instead.

For related API calls, see getStocktakings, getStocktakingReadings and saveStocktaking.


Returns a list of purchase documents (purchase invoices or orders), according to the supplied filtering parameters.

If you have specified document ID or invoice number, or if the search criteria match a single sales document, or if you have set getRowsForAllInvoices = 1, API returns all documents together with their rows. Otherwise only document headers will be returned.

If you are looking for a way to pull all purchase data for external processing, see getPurchaseReport. getPurchaseReport can output either detailed data or aggregate it as needed: it can provide totals by products, by product groups, by dates, by locations, etc.


Create a new purchase invoice, purchase order or purchase return, or update an existing one.


Delete a purchase document (invoice, order, return).