The WSDL file can be found at https://peppol.helger.com/wsdvs?wsdl.
The endpoint URL for this WebService is https://peppol.helger.com/wsdvs
.
This service is currently provided free of charge. If you want to setup your own service for production usage don't hesitate to contact me at philip[at]helger[dot]com for support.
It offers one method called "validate" that takes the following arguments:
Parameter | Type | Usage | Notes |
---|---|---|---|
XML | string | required | This is the main XML document to be validated. For simplicity it must be provided as an inline string. Must use the same character set as the surrounding SOAP envelope. |
VESID | string | required | The Validation Executor Set ID to be used.
This is a special ID introduced by PEPPOL practical to clearly identify different validation sets.Supported VES IDs are:
|
DisplayLocale | string | optional |
This parameter determines the language in which error codes are returned. The following languages are supported:
If this parameter is not provided |
<?xml version="1.0"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<validateRequestInput xmlns="http://peppol.helger.com/ws/documentvalidationservice/201701/" VESID="eu.peppol.bis2:t10:3.3.0" displayLocale="en">
<XML><?xml version="1.0" encoding="UTF-8"?>
<Invoice:Invoice xmlns:Invoice="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
...
</Invoice:Invoice>
</XML>
</validateRequestInput>
</S:Body>
</S:Envelope>
The response of calling this service is a complex structure with the following items:
Name | Type | Usage | Notes |
---|---|---|---|
@success | boolean | required | The overall success or error indicator.
If true validation was successful (no errors occurred)
If false at least one error was found upon document validation. |
@interrupted | boolean | required | true if the validation was interrupted and not all validation layers were
executed (e.g. when XSD validation fails, Schematron validation is not performed)
or false if validation was executed for all layers |
@mostSevereErrorLevel | enumeration | optional | The most severe error level of all validation results contained in here.
This field has the sole purpose to easily identify whether a document was totally valid
(value SUCCESS ), whether some warnings but no errors occurred
(value WARN ) or whether at least one error occurred
(value ERROR ). |
Result | element | 0-n times | This element contains the results of a single validation layer execution. |
The Result
element contains the following fields:
Name | Type | Usage | Notes |
---|---|---|---|
@success | enumeration | required | The overall success or error indicator.
If true validation was successful (no errors occurred).
If false at least one error was found upon document validation.
If undefined this validation layer was not executed |
@artifactType | string | required |
The type of validation artefact (e.g. XSD or Schematron) that was used to perform the validation. Currently supported types are:
|
@artifactPath | string | required | The path to the validation artefact that was used to perform the validation. |
Item | Element | 0-n times | Contains the detail errors occurred in this validation layer. |
The Item
element contains the following fields:
Name | Type | Usage | Notes |
---|---|---|---|
@errorLevel | enumeration | required | Error level of this item.
If it was totally valid (value SUCCESS ),
whether some warnings but no errors occurred (value WARN ) or
whether at least one error occurred (value ERROR ). |
@errorID | string | optional | The ID of the error |
@errorFieldName | string | optional | The name of the field where the error occurred |
@errorLocation | string | optional | The location where the error occurred |
@errorText | string | required | The error text |
@test | string | optional | The test that was executed and lead to this error (e.g. Schematron 'test' attribute) |
Exception | string | optional | The internal exception that occurred |
Do you have anything to validate EHF Invoice and Credit note like available at https://vefa.difi.no/validator/ as well? If its there then kindly let me know which VESID I need to supply the service to validate the document. If you need the document that is failing validation then let me know I can also share it.
Thank You.
Best Regards,
Majid
EHF validations are now available:
* no.ehf:catalogue:1.0.10 - EHF Catalogue 1.0.10
* no.ehf:creditnote:2.0.12 - EHF Creditnote 2.0.12
* no.ehf:despatch-advice:1.0.8 - EHF Catalogue 1.0.8
* no.ehf:invoice:2.0.12 - EHF Invoice 2.0.12
hth, Philip
I am using your document validation for SG PEPPOL BIS3 Invoice.
for SG PEPPOL cac:TaxCategory/cbc:ID have their own set of code.
You may refer to https://github.com/SG-PEPPOL/SG-PEPPOL-Specifications/blob/master/SG%20PEPPOL%20BIS%20Billing%203/Schematron/CEN-EN16931-UBL-SG-Conformant.sch
It should be SR SRCA-S SRCA-C ZR ES33 ESN33 DS OS.
BR, Philip
Complete list of tax category codes in SG PEPPOL BIS Billing 3.0:
SR == Standard rated - Local supply of goods and services
SRCA-S == Standard rated - Customer accounting supply made by the supplier
SRCA-C == Standard rated - Customer accounting supply made by the customer on supplier’s behalf
ZR == Zero rated - Supplies involving goods for export/ provision of international services
ES33 == Exempt - Specific categories of exempt supplies listed under regulation 33 of the GST (General) Regulations
ESN33 == Exempt - Exempt supplies other than those listed under regulation 33 of the GST (General) Regulations
DS == Deemed supplies - Supplies required to be reported pursuant to the GST legislation
OS == Out-of-Scope supplies - Supplies outside the scope of the GST Act
NG == Supplies from non-GST company## this i think is not updated..
<cbc:Note>Arbeidstøy</cbc:Note>, if I change the ø with eg o everythings work fine.
Getting an 500 error with this message:
"S:Server<\/faultcode>[com.ctc.wstx.exc.WstxLazyException] Undeclared general entity \"oslash\"\n at [row,col {unknown-source}]: [2,724]<\/faultstring><\/S:Fault><\/S:Body><\/S:Envelope>"
Any idea how this can be fixed?
Thanks
`eu.peppol.bis3:invoice:3.13.0` is e.g. the current VESID to validate Peppol BIS Billing 3.0 invoices.
`de.xrechnung:ubl-invoice:2.1.1` is e.g. the VESID to valid XRechnung 2.1 that can also be sent over the Peppol network.
See https://github.com/phax/phive-rules/ for the list of all available predefined rules.
I was wondering about your rate limit when validating documents. We are getting a lot of 429 responses after validating a bigger batch of documents. Do you have a set rate limit?
All the best,
Jonatan
The limit is set to 2 requests per second per IP address.
hth, Philip