XBRL Processing Webservice

The AMANA XBRL Portal has a SOAP Webservice, that can be used to:

  • Process XBRL files (validation, KPI/CVE evaluation)
  • Get the status information and validation results of processed XBRL files
  • Get processed XBRL files or its Excel visualizations
  • Get server status
  • Execute Data Source Queries and generate XBRL files
  • Other internally used methods

The webservice WSDL file can be found in the System Settings → System Info menu (usage of single file WSDL is recommended).

AMANA recommends to implement a call for this webservice using tools that will auto-generate coresponding client code, like JAX-WS, Apache AXIS2 or Visual Studio "Add Reference" WCF (.NET). It is possible to test the webservice with SOAP UI.

The webservices uses basic authentification to authorize requests. All users that are authorized in the XBRL Portal can use the webservice. However, AMANA recommends to use a technical user, that exists by default:

  • Username: xbrlServerUser
  • Default Password: will be provided by the AMANA Support and can be changed in the User management.
  • WSS-Password Type: PasswordText

Method ProcessFiling

The async ProcessFiling method can be used to process an XBRL file (ZIP) to the XBRL Portal. An MD5 hash will be calculated on the XBRL files, and duplicates will be rejected. If the XBRL file can't be mapped to an entity or reporting requirement, or if an unexpected error appeared, the XBRL file will be stored in the rejected filings

Parameters

ParameterRequiredTypeDescription
zippedXbrlFileYesbase64 bytesThe ZIP file containing one XBRL file with filename extension .xbrl, or an SEC Filing including the taxonomy extension files.
settings.CommentNostringA comment to the filing, will be displayed in the Filing Details.
settings.SenderIdYes (No for ValidationOnly)stringThe XBRL context identifier used to map the XBRL file to an Entity.
settings FileNameYesstringThe original filename of the ZIP file.
settings UserIdYesstringThe technical user name.
settings.AdditionalSeetingsNoDictionary<string,string>An additional dictionary to pass configuration settings without changing the WSDL, see table below.
settings.ValidationOnlyYesbooleanIf true, the XBRL file will be validated, but no further processing will be performed.
Additional Settings KeyTypeDescription
XbrlFileNamestringThe original XBRL file name., that will be used in the filing and for Filing Rule validation.
isSecFilingbooleanHas to be true if an SEC filing ZIP will be processed.
DeactivateCustomValidationsbooleanIf true, no Custom Validation will be performed.
AwsBucketFoldernamestringBasefolder name used for upload to "AWS Bucket"

Returns

The ProcessFiling Method returns an ProcessingResult, that has the following properties. It is also returned by the GetProcessingResult method documented below.

Method GetProcessingResult

The method returns a processing result for a given processing identified by its GUID. If the processing is still any status other then RanToCompletition (5), it won't return any property other then Status.

Parameters

ParameterRequiredTypeDescription
processingIdYesbase64 bytesThe ZIP file containing one XBRL file with filename extension .xbrl, or an SEC Filing including the taxonomy extension files.

Returns

PropertyTypeDescription
ProcessingIdGUIDA unique GUID identifying the processing request.
FilingIdintThe filing ID of a processed XBRL file, if processing was successful.
StatusenumThe status of the actual processing job, RanToCompletion (5) means the process finished. See more details in the table below.
FilingIdintThe filing ID of a processed XBRL file, if processing was successful.
FilingVersionIdintThe filing version ID of a processed XBRL file, if processing was successful.
IsRejectedbooleanTrue if filing is rejected, if processing was successful.
IsServerErrorbooleanTrue if any server error happened during processing, this usually means that an manual investigation has to be started.

Md5Hash

stringThe MD5 hash calculated on the XBRL file, if processing was successful.
IsDuplicateFilingbooleanIf true, a duplicate filing is detected and processing was successful.
DuplicateFilingIdintThe ID of the filing detected as a duplicate, if processing was successful.
DuplicateFilingXbrlProcessingIdGUIDThe GUID of the processing that processed the duplicate filing.
ValidationResultsList<ValidationResult>The XBRL validation results and messages from the XBRL processing, for more details see table below.
TaxonomyVersionIdsList<int>The Ids of the taxonomies used in the XBRL file.
TaxonomyVersionEntrypointsList<string>All Taxonomy entrypoints found in the XBRL file
IsXbrlValidbooleanThe information if the XBRL file is valid (considering warnings as valid).

Processing Job Status

The job status property of the ProcessingResult can have the following states:

StateInteger ValueDescription
Created0The job has been initialized but has not yet been scheduled.
WaitingForActivation1

The job is waiting to be activated and scheduled internally.

WaitingToRun2The job has been scheduled for execution but has not yet begun executing.
Running3The job is running but has not yet completed.
WaitingForChildrenToComplete4

The job has finished executing and is implicitly waiting for attached child tasks to complete.

RanToCompletion5The job completed execution successfully.
Canceled6

The job has been manually cancelled.

Faulted7The job completed due to an unhandled exception. This usually means that the job will retried, and that a manual investigation has to be started.

Validation Results

The validation results are returned as a list of ValidationResult nodes. Those have the following properties:

PropertyTypeDescription
IdstringThe ID of the validation rule from the XBRL taxonomy (if provided).
MessagestringThe error message, in case of XBRL Formula validation errors the message provided by the XBRL taxonomy.
SeverityenumThe severity (Error, Warning or Info) , in case of XBRL Formula validation errors the message provided by the XBRL taxonomy.
TypeenumThe validation result type (Other , Xbrl, Formula, FilingRules, FilingMapping, KeyPerformanceIndicators)
ErrorTypeenumA built-in error type for errors not related to the XBRL validation itself, rather to the mapping of the XBRL report in the system. Those built-in errors are:
None, ProcessingFailed, TemplateMatchFailed, DuplicateFiling, InvalidSubmission, Other, FilingRule, XbrlMessage, KpiValidationFailed.
ErrorSubTypeenumA built-in sub error type for errors not related to the XBRL validation itself, rather to the mapping of the XBRL report in the system. Those built-in sub-errors are: None, CouldNotLoadDocument, ProcessingError, MaximaumErrorCountExceeded, PostprocessingFailed, NoFilingsFound, ReportingRequirementDeactivated, TaxonomyNotFound, EntityNotFound, DueDateNotFound, DueDateDoesNotMatchRequirement, XbrlIdentifierMismatch, RequirementIdMismatch, DuplicateFiling, FilingContainsMultiplePeriods, FilingContainsMultipleXbrlIdentifiers, FilingContaintsMultipleTaxonomyEntryPoints, TaxonomyValidityInvalid, XmlFileNotSchemaValid, FilingContainsMultipleXmlFiles, NoPermission, KpiValidationThresholdExceeded, KpiValidationFailed
Sample ESEF Validation Result
<a:ValidationResult>
	<a:ErrorSubType>None</a:ErrorSubType>
	<a:ErrorType>None</a:ErrorType>
	<a:Id>man_AddressOfRegisteredOfficeOfEntity</a:Id>
	<a:Message>According to the Regulatory Technical Standards on European Single Electronic Format, the element "Address of entity's registered office" is part of the mandatory list of tags that must be applied if corresponding information is present in a report. Please make sure that you applied this tag in your report.</a:Message>
	<a:Severity>Warning</a:Severity>
	<a:Type>Xbrl</a:Type>
</a:ValidationResult>


Method GetXbrlFile

Returns the XBRL file and optional the Excel visualization file of a created or processed filing, based on the ProcessingID or Filing Version ID.

Parameters

ParameterRequiredTypeDescription
xbrlFileProcessingIdNo*GUIDThe GUID returned by the ProcessFiling method.
filingVersionNo*intThe filing version ID returned by the ProcessFiling method.
includeExcelVisualizationNobooleanIf not only the XBRL file should be returned, but also its Excel visualization, it must be set to true.

Returns

PropertyTypeDescription
FilenamestringThe filename of the XBRL ZIP file.
ZippedFilebase64 bytesThe ZIP file containing the XBRL file.
ExcelVisualizationbase64 bytesThe XLSX Excel file.

Method ExcecuteQueriesAndGenerateXbrl

Runs a set of queries defined in the Data Source Queries and generates the XBRL file accordingly.

Parameters

ParameterRequiredTypeDescription
entityXbrlIdentifierYesstringThe entities context identifier (e.g. LEI).
reportingDueDateYesDateTimeThe reporting date.
taxonomyEntryPointYesstringThe taxonomy entry point that must exist in the Taxonomy Management.
isoCurrencyCodeYesstringThe default monetary currency, e.g. EUR.
keepLastFilingVersionDataYesbooleanIf true, the last filing version will be updated instead of creating a new XBRL file.
queryVariablesYesDictionary<int, Dictionary<string, string>>Two nested dictionaries, having all required query variables per query.

Sample request

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://amana.xbrl.service/version/1003" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:ExcecuteQueriesAndGenerateXbrl>
         <!--Required:-->
         <ns:entityXbrlIdentifier>IYKCAVNFR8QGF00HV840</ns:entityXbrlIdentifier>
         <!--Required:-->
         <ns:reportingDueDate>2018-12-31T00:00:00</ns:reportingDueDate>
         <!--Required:-->
         <ns:taxonomyEntryPoint>http://www.eba.europa.eu/eu/fr/xbrl/crr/fws/ae/cir-680-2014/2018-03-31/mod/ae_con.xsd</ns:taxonomyEntryPoint>
         <!--Required:-->
         <ns:isoCurrencyCode>CZK</ns:isoCurrencyCode>
         <!--Required:-->
         <ns:keepLastFilingVersionData>false</ns:keepLastFilingVersionData>
         <!--Required:-->
         <ns:queryVariables>
            <!--Queries to execute, Key = Query ID:-->
            <arr:KeyValueOfintArrayOfKeyValueOfstringstringty7Ep6D1>
               <arr:Key>6</arr:Key>
               <arr:Value>
                  <!--Zero or more repetitions:-->
                  <arr:KeyValueOfstringstring>
                     <arr:Key>ShowEmptyValueMessages</arr:Key>
                     <arr:Value>false</arr:Value>
                  </arr:KeyValueOfstringstring>
               </arr:Value>
            </arr:KeyValueOfintArrayOfKeyValueOfstringstringty7Ep6D1>
			<arr:KeyValueOfintArrayOfKeyValueOfstringstringty7Ep6D1>
               <arr:Key>3</arr:Key>
               <arr:Value>
                  <!--Zero or more repetitions:-->
                  <arr:KeyValueOfstringstring>
                     <arr:Key>ShowEmptyValueMessages</arr:Key>
                     <arr:Value>false</arr:Value>
                  </arr:KeyValueOfstringstring>
               </arr:Value>
            </arr:KeyValueOfintArrayOfKeyValueOfstringstringty7Ep6D1>
         </ns:queryVariables>
      </ns:ExcecuteQueriesAndGenerateXbrl>
   </soapenv:Body>
</soapenv:Envelope>

Returns

PropertyTypeDescription
QueryImportProcessingIdGUIDThe ID of the job executing the queries.
XbrlFileProcessingIdGUIDA unique GUID identifying the XBRL processing job after successful query execution.