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.
Tjhe 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
Parameter | Required | Type | Description |
---|---|---|---|
zippedXbrlFile | Yes | base64 byte stream | The ZIP file containing one XBRL file with filename extension .xbrl, or an SEC Filing including the taxonomy extension files. |
settings.Comment | No | string | A comment to the filing, will be displayed in the Filing Details. |
settings.SenderId | Yes | string | The XBRL context identifier used to map the XBRL file to an Entity. |
settings FileName | Yes | string | The original filename of the ZIP file. |
settings UserId | Yes | string | The technical user name. |
settings.AdditionalSeetings | No | Dictionary<string,string> | An additional dictionary to pass configuration settings without changing the WSDL, see table below. |
settings.ValidationOnly | Yes | boolean | If true, the XBRL file will be validated, but no further processing will be performed. |
Additional Settings Key | Type | Description |
---|---|---|
XbrlFileName | string | The original XBRL file name., that will be used in the filing and for Filing Rule validation. |
isSecFiling | boolean | Has to be true if an SEC filing ZIP will be processed. |
DeactivateCustomValidations | boolean | If true, no Custom Validation will be performed. |
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
Parameter | Required | Type | Description |
---|---|---|---|
processingId | Yes | base64 bytes | The ZIP file containing one XBRL file with filename extension .xbrl, or an SEC Filing including the taxonomy extension files. |
Returns
Property | Type | Description |
---|---|---|
ProcessingId | GUID | A unique GUID identifying the processing request. |
FilingId | int | The filing ID of a processed XBRL file, if processing was successful. |
Status | enum | The status of the actual processing, RanToCompletion (5) means the process finished. |
FilingId | int | The filing ID of a processed XBRL file, if processing was successful. |
FilingVersionId | int | The filing version ID of a processed XBRL file, if processing was successful. |
IsRejected | boolean | True if filing is rejected, if processing was successful. |
IsServerError | boolean | True if any server error happened during processing. |
Md5Hash | string | The MD5 hash calculated on the XBRL file, if processing was successful. |
IsDuplicateFiling | boolean | If true, a duplicate filing is detected and processing was successful. |
DuplicateFilingId | int | The ID of the filing detected as a duplicate, if processing was successful. |
DuplicateFilingXbrlProcessingId | GUID | The GUID of the processing that processed the duplicate filing. |
ValidationResults | List<ValidationResult> | The XBRL validation results and messages from the XBRL processing. |
IsXbrlValid | boolean | The information if the XBRL file is valid (considering warnings as valid). |
Validation Results
The validation results are returned as a list of ValidationResult nodes. Those have the following properties:
Property | Type | Description |
---|---|---|
Id | string | The ID of the validation rule from the XBRL taxonomy (if provided). |
Message | string | The error message, in case of XBRL Formula validation errors the message provided by the XBRL taxonomy. |
Severity | enum | The severity (Error, Warning or Info) , in case of XBRL Formula validation errors the message provided by the XBRL taxonomy. |
Type | enum | The validation result type (Other , Xbrl, Formula, FilingRules, FilingMapping, KeyPerformanceIndicators) |
ErrorType | enum | A 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. |
ErrorSubType | enum | A 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 |
<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
Parameter | Required | Type | Description |
---|---|---|---|
xbrlFileProcessingId | No* | GUID | The GUID returned by the ProcessFiling method. |
filingVersion | No* | int | The filing version ID returned by the ProcessFiling method. |
includeExcelVisualization | No | boolean | If not only the XBRL file should be returned, but also its Excel visualization, it must be set to true. |
Returns
Property | Type | Description |
---|---|---|
Filename | string | The filename of the XBRL ZIP file. |
ZippedFile | base64 bytes | The ZIP file containing the XBRL file. |
ExcelVisualization | base64 bytes | The XLSX Excel file. |
Method ExcecuteQueriesAndGenerateXbrl
Runs a set of queries defined in the Data Source Queries and generates the XBRL file accordingly.
Parameters
Parameter | Required | Type | Description |
---|---|---|---|
entityXbrlIdentifier | Yes | string | The entities context identifier (e.g. LEI). |
reportingDueDate | Yes | DateTime | The reporting date. |
taxonomyEntryPoint | Yes | string | The taxonomy entry point that must exist in the Taxonomy Management. |
isoCurrencyCode | Yes | string | The default monetary currency, e.g. EUR. |
keepLastFilingVersionData | Yes | boolean | If true, the last filing version will be updated instead of creating a new XBRL file. |
queryVariables | Yes | Dictionary<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
Property | Type | Description |
---|---|---|
QueryImportProcessingId | GUID | The ID of the job executing the queries. |
XbrlFileProcessingId | GUID | A unique GUID identifying the XBRL processing job after successful query execution. |