ESMA ESEF Technical Operation

Several alternative installation strategies can be followed:

  1. Install a pre-built application.  (See ESMA ESEF Installation)
  2. Install from sources on gitHub.

Once installed there are three strategies for using ESMA ESEF validation and inline rendering:

  1. Interactively from its GUI. (See ESMA ESEF Installation)
  2. Technical Operation
    1. From command line.  (Can be integrated to your preparation environment.)
    2. As a web service.  (Can use built-in web service, Apache CGI, or IIS CGI.)
    3. Polled operation as a daemon service.


Pre-built application

(See ESMA ESEF Installation)

From gitHub sources

Please install the following components on your platform:

User Operation

Interactively from its GUI

(See ESMA ESEF Installation)

Command line operation

Try “about” to see if it loads correctly.

Windows pre-built app:
arelleCmdLine -a

Mac app: -a

Windows from gitHub sources
c:\python39\python -a

MacOS from gitHub sources
python3.8 -a

Try help (showing flags only)
{arelle} -h

Load an ESEF Report Package zip file which contains an inline XBRL instance in its reports subdirectory, e.g., /somewhere/, validate it, and put output rendering output results to /somewhere/out, also copying source document to output for the Workiva iXBRL Viewer:

{arelle} -f /somewhere/ --plugins 'validate/ESMA|inlineXBRLViewerPlugin' --disclosureSystem esef --packages somewhere/ --validate

or for the SEC inline viewer:

{arelle} -f /somewhere/ --plugins 'validate/ESMA|EdgarRenderer' --disclosureSystem esef --packages somewhere/ --validate

The -f parameter must be an ESEF report package with a single-document instance in reports, or multi-document IXDS in a subdirectory of reports.

The file -f parameter may be a JSON structure, details are in the comments to plugin/

To block ESEF formulas from running specify –formula none (otherwise they run by default).


Parameters may be specified for formula operation and authority-specific validations.

For formula operation the parameter eps_threshold can be specified such as:

--parameters "eps_threshold=.01"

For authority specific validations (which are specified by the file plugin/validate/ESEF/resources/authority-validations.json) specify

--parameters "authority=DK" or --parameters "authority=GB"

For UKSEF specify –parameters “authority=UKFRC”

Multiple parameters can be separated by commas, e.g.

--parameters "eps_threshold=.01,authority=DK"

Web service operation

You may use the built-in web server or install to Apache/CGI or IIS/CGI (see documentation – API Web Services)

To start the built-in web server:
Windows pre-built app:
arelleCmdLine --webserver locahost:8080

Mac app: --webserver locahost:8080

Default is a single-thread web server. To add multi-threaded serving, specify the CherryPy server, {arelleCmdLine} --webserver localhost:8080:cheroot.

To test that it is operating, from browser: http://localhost:8080/about. For help: http://localhost:8080/help.

The ESEF plugin and packages can be added either on the command line which invokes the server, or in the parameters to each individual validation. We prefer adding to the server invocation: {arelleCmdLine} --webserver localhost:8080:cheroot --plugins validate/ESEF --packages {my-package-directory}/

To run a validation on a zip file containing the instance document and link bases:

curl -X POST "-HContent-type: application/zip"
-T {filingPackageName}.zip

The log file of messages and errors will be in text, unless media=xml or media=json are specified.

The input file (posted by web service request) must be the filing package zip file, all all the instances detected in the zip file’s reports directory are processed.


Comments are closed.