New APIs

Lately, we have started implementing new API features as separate "microservices". Each such API fulfills a specific purpose.

The motivation behind those separate APIs (and the reason to use them!) might be that:

  1. Some of them expose the same standard functionality in a better format and with more expressive commands. For example, if you need to fetch the data featured on a "Z Report" (the cashier's end of day report), you may want to take a look at the "Reports API".
  2. Or, some of these APIs provide additional features. For example, the "Product Information Management API" lets you extend products with structured dynamic data — "product parameters".

To explore the available endpoints and their functionality, use Erply API call "getServiceEndpoints". Replace "\<accountnumber>" with your actual Erply account number, a three- to six-digit code. This call, contrary to others, does not require authentication:

curl -X POST -d clientCode=<accountnumber> -d request=getServiceEndpoints https://<accountnumber>.erply.com/api/ | jq .

The response looks as follows:

If you do not have the "jq" tool installed, just omit the vertical bar and everything after that ("| jq .") — you will get a plain, not pretty-printed, JSON response.

Alternatively, to have a quick look, you can also load it in browser:

https://<accountnumber>.erply.com/api/?request=getServiceEndpoints&sendContentType=1&clientCode=<accountnumber>

If you start building an integration that uses these APIs, your integration MUST follow the same procedure at the beginning of every session:

  • Call "getServiceEndpoints",
  • Extract the URL of the relevant service,
  • Proceed to call that endpoint as appropriate.

Erply uses many data centers around the world and there are many instances of those services deployed. The returned URLs are specific to your account, and furthermore — can change without prior notice!