Contact support:


    14 Jul, 2021
    Also available in:EstonianFinnish

    API Version 1.49.0

    Jun 3, 2020

    New Features

    1. API now respects IP address access restrictions if account administrator has set those up in back office. API calls will return error code 1201 if user is not allowed to access Erply from that particular IP.

      More information: "IP-based Access Restrictions" at

      Note to first-party integrations (eg. web shop integrations, accounting integrations, import tools, server-side reports): please contact back office team to whitelist your application, so that it would work even if users enable the restrictions.

    2. API calls getIPWhitelistSettings and saveIPWhitelistSettings have been added.

    3. Sales document rows now have a new property called a "stable row ID" that remains constant across document re-saves.

      This property can be used to extend sales document rows with additional information (attach extra data) using the new JSON API. More information will be available shortly on

      The row IDs are assigned automatically when a new document is created, and API saveSalesDocument will return them:

          "status": { ... },
          "records": [
                  "invoiceID": "384",
                  "invoiceNo": "100001",
                  "rows": [
                          "rowID": 1048,
                          "stableRowID": 1043,
                          "productID": 38,
                          "serviceID": 0,
                          "amount": "1"

      If an API client re-saves a sales document and keeps the rows as-is (does not add, remove or reorder lines, and does not change the products on document lines), then the stable row IDs are automatically preserved by API.

      If an API client re-saves a sales document and modifies its rows, API cannot detect the correspondence between the old and the new set of rows, and will assign new Stable Row IDs instead. To prevent that from happening, API client must explicitly specify the row IDs as input to API saveSalesDocument:

    4. API call getSalesDocuments will also return the extra data that has been attached to sales document rows with JSON API. The new field is "jdoc".

    5. Field "webShopOrderNumbers" has been added to API calls saveSalesDocument and getSalesDocuments. Filter parameter "webShopOrderNumber" has been added to API call getSalesDocuments. Use this field to store the order number automatically assigned by the e-commerce platform (Shopify, Magento, WooCommerce, Prestashop).

      When an invoice-waybill is created from a sales order in Erply, the number will propagate from one document to the other. Therefore, the field in API is an array — because Erply allows creating an invoice-waybill from multiple orders, and therefore an invoice can have multiple such numbers.

    6. Support for configuration setting "Cross-sell relationship works one way only" has been added.

    7. Fields "typeID" and "info" have been added to API calls getGiftCards and saveGiftCard.

    8. Fields "associationID" and "professionalID" (special fields used by one customer) have been added to the output of API call getSalesDocuments.


    1. API calls deleteSalesDocument, deletePurchaseDocument and deleteInventoryRegistration now prevent the same document from being deleted twice by two simultaneous calls. If a document is already "being deleted", then subsequent calls for deleting the same document return error code 1204.

    2. Improvements in API call getReports, to make the Z report more compatible with back office.


    1. Fixed: modifying the same sales document or customer simultaneously by two or more API calls resulted in multiple "active" versions of the record (the same record appearing multiple times).

    2. Fixed: API call saveCustomer will no longer incorrectly return error code 1012 when re-saving a customer and setting "Registry Code / ID Code must be unique" has been enabled in back office.