List of inventory related API requests

getWarehouses

This call is deprecated. We recommend to use Account Administration API instead.

The corresponding new call is: GET /v1/warehouse.

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.


getAllowedWarehouses

This call is deprecated. Use Account Administration API instead.

The corresponding new call is: GET /v1/user/warehouse.

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


saveWarehouse

This call is deprecated. We recommend to use Account Administration API instead.

The corresponding new call is: POST /v1/warehouse.

Create or update a store (location, warehouse). Access right to newly created store will be given to creator only. If its require to give access to newly created store for all existing users, specify addAccessForAllUsers = 1

To retrieve a list of locations, see getWarehouses.


getProducts

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.

Note: PIM API offers a REST interface for retrieving products. PIM API supports more flexible filtering, for example; products can be filtered by any field, not just the predefined filters presented here.


saveProduct

Create or update a product.

Note: PIM API offers a REST interface for creating products.


deleteProduct

This call is deprecated. We recommend to use PIM API instead.

The corresponding new call is: DELETE /v1/product/{ids}.

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.


getProductGroups

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)

Note: PIM API offers a better REST interface for retrieving and managing product groups.


saveProductGroup

This call is deprecated. We recommend to use PIM API instead.

The corresponding new call is: POST /v1/product/group.

Create or update a product group.


deleteProductGroup

This call is deprecated. We recommend to use PIM API instead.

The corresponding new call is: DELETE /v1/product/group/{ids}.

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


getProductUnits

Returns an array of product units.

Note: PIM API offers a REST interface for retrieving and managing product units.


getProductStock

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.


saveInventoryRegistration

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


saveInventoryTransfer

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.


saveInventoryWriteOff

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.


getStocktakings

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. To delete an act, see deleteStocktaking.


saveStocktaking

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, deleteStocktaking, getStocktakingReadings, saveStocktakingReadings and incrementStocktakingReading.


getStocktakingReadings

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


saveStocktakingReadings

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.


getPurchaseDocuments

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.


savePurchaseDocument

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

To update document row prices see API call updatePurchaseDocumentRows.

To update additional costs see API call updatePurchaseDocumentAdditionalCosts.
To make savePurchaseDocument calls idempotent, use the "temporaryUUID" field.


deletePurchaseDocument

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