Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


version1.01
published
10 May  
comment

This page is still the subject of additional validation cycles. Readers are welcome to send questions and/or provide comments by email to mercurius@bosa.fgov.be 

...

When you start development or wish to validate your logic, you can exchange information with "sparing sparring partners" : the fakeCustomer and fakeSupplier. In an upcoming version of this guide, this section will elaborate on this service, that is not completely finalized yet.

...

  • develop your own mock or use SOAPUI as a sparing sparring partner, using your favorite integrator's wsdl, and the information in this document.
  • when the development is sufficiently advanced, test the service by sending documents to yourself through simpl.ePRIOR. You can also use the Mercurius portal to generate incoming documents - however this does not guarantee that you will see all possible document patterns.
  • When this is OK, test the service in combination with other public sector entities
  • eventually, organize tests involving private sector entities.

...

Code Block
languagexml
titleSubmitDocumentResponse
<soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/
xmlns:v1="http://fsb.belgium.be/einvoicing/simpleprior/v1_00">
         <soapenv:Header>
            <wsse:Security soap:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
               <wsu:Timestamp wsu:Id="Timestamp-HvumButHp993jGDym7t89Q22" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
                  <wsu:Created>2018-10-03T10:07:55Z</wsu:Created>
                  <wsu:Expires>2018-10-03T10:12:55Z</wsu:Expires>
               </wsu:Timestamp>
	      <!—More elements on security and signature:-->
            </wsse:Security>          </soapenv:Header>
   <soapenv:Body>
      <v1:submitDocumentResponse>
         <!—When successful ackIndicator is true-->
         <v1:ackIndicator>true</v1:ackIndicator>
		<!—When an exception occurred ackIndicator is false-->
		<v1:ackIndicator>false</v1:ackIndicator>
		-->
      </v1:submitDocumentResponse>
   </soapenv:Body>
</soapenv:Envelope>


SOAP with attachments

In order to keep the size of xml documents small enough for middleware processing, Simpl.ePrior is using SOAP with attachments when exchanging UBL documents.

...


------=_Part_20_1065051393.1568991070704
Content-Type: text/xml; charset=UTF-8
Content-ID: <rootpart@babelway.net>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
 <soap:Header/>
 <soap:Body>
  <v1:retrieveDocumentResponse xmlns:v1="http://fsb.belgium.be/einvoicing/simpleprior/v1_00">
   <receivedDate xmlns="http://fsb.belgium.be/einvoicing/simpleprior/v1_00">2019-09-20</receivedDate>
   <document xmlns="http://fsb.belgium.be/einvoicing/simpleprior/v1_00">
    <inv:Invoice xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
         xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
         xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
    <cbc:UBLVersionID>2.1</cbc:UBLVersionID>
...
    <cac:AdditionalDocumentReference>
     <cbc:ID>file1</cbc:ID>
     <cac:Attachment>
      <cbc:EmbeddedDocumentBinaryObject filename="file1.txt" mimeCode="application/octet-stream"/>
     </cac:Attachment>
    </cac:AdditionalDocumentReference>
    <cac:AdditionalDocumentReference>
     <cbc:ID>file2</cbc:ID>
     <cac:Attachment>
      <cbc:EmbeddedDocumentBinaryObject filename="file2.log" mimeCode="application/octet-stream"/>
     </cac:Attachment>
    </cac:AdditionalDocumentReference>
    <cac:AdditionalDocumentReference>
     <cbc:ID>file3</cbc:ID>
     <cac:Attachment>
      <cbc:EmbeddedDocumentBinaryObject filename="file3.txt" mimeCode="application/octet-stream"/>
     </cac:Attachment>
    </cac:AdditionalDocumentReference>
...
   </inv:Invoice>
  </document>
      </v1:retrieveDocumentResponse>
   </soap:Body>
</soap:Envelope>
------=_Part_20_1065051393.1568991070704
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
Content-ID: <file1>
Content-Disposition: attachment; filename=file1.txt

file1
------=_Part_20_1065051393.1568991070704
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
Content-ID: <file2>
Content-Disposition: attachment; filename=file2.log

file2
------=_Part_20_1065051393.1568991070704
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
Content-ID: <file3>
Content-Disposition: attachment; filename=file3.txt

file3
------=_Part_20_1065051393.1568991070704—


SOAP Fault

Simpl.ePrior uses standard SOAP fault, without defining substructures.

...

Please note that this list can be augmented with the error thrown by the FSB or the integrator layer.


Error

Fault code

Fault string

Description

UnauthorizedAccess

soap:Client

Unauthorized Access

This error is returned when any security issues is encountered. This includes authentication, signature validation, authorization to a receiver or a sender…

InvalidRequest

soap:Client

Invalid request

The document included in the message is not parsable or doesn’t contains information.

InvalidCustomizationId

soap:Client

CustomizationId not supported

The document included in the message has an unsupported <CustomizationID> and <ProfileID>.

InvalidDocumentValidationFailed

soap:Client

Validation failed

The document included in the message has validation errors.

UnsupportedIncomingMessage

soap:Client

Unsupported incoming message

The type of the document included in the message is not configured in the list of accepted documents in the Mercurius gateway configuration.

InvalidAttachments


soap:Client

Invalid attachments

The attachment defined in the document and in the SOAP with attachments do not match.

More specifically:

  • <EmbeddedDocumentBinaryObject> are empty
  • All <EmbeddedDocumentBinaryObject> parent node have an <ID> element. This <ID> is not null and unique in the document. It matches a MIME part 'Content-ID' attribute of the SOAP attachments.

ServerError

soap:Server

Server Error

Any other error.


Endpoint URL

The endpoint URLs are defined by the integrator. Once you start your on-boarding process those 'll be communicated by the integration team plus the necessary security/authorization artifacts ( certificate, credentials, ... ).

...

See "defined Document formats" for detailed format specifications.

Sequence of simpl.ePRIOR operations to apply

...

the following 2 table summarize the key information about the supported document formats.

Format specifications

Document format
UBL DocumentTypeCodesyntax (XSD)semanticstatus, remarks

BIS V2 Invoice

380

UBL-Invoice-2.1.xsd

PEPPOL BIS 5A Billing

  • in phase out.
  • bidirectional support (in-,outbound).

BIS V2 Credit Note

81

UBL-CreditNote-2.1.xsd

PEPPOL BIS 5A Billing

  • in phase out.
  • bidirectional support (in-,outbound).
BIS V3 invoice/CN

cf   http://docs.peppol.eu/poacc/billing/3.0/codelist/UNCL1001-inv/

UBL-Invoice-2.1.xsd


http://docs.peppol.eu/poacc/billing/3.0/


BIS V3 Credit Note

UBL-CreditNote-2.1.xsd

BIS V2 Message Level Response (MLR)

301

UBL-ApplicationResponse-2.1.xsd

PEPPOL BIS 36A Message Level Response

  • in phase out.
  • [TO CHECK] bidirectional support (in-,outbound).
BISV2 Order////UBL-Order-2.1.xsdPEPPOL BIS 28A Orderingoutbound support

Order Response

231

UBL-OrderResponse-2.1.xsd

PEPPOL BIS 28A Ordering

Not supported, no intake programmed yet

Invoice Response

23

UBL-ApplicationResponse-2.1.xsd

PEPPOL BIS 63A Invoice Response

intake programmed, but not yet started

...

MercuriusMail-room from the Belgian Public sector, for e-Procurement related structured electronic documents
PEPPOLPan-European Public Procurement Online, PEPPOL enables businesses across Europe and beyond to communicate electronically with public buyers in various stages of the procurement process
OpenPEPPOL

OpenPEPPOL is a non-profit international association under Belgian law (Association Internationale Sans But Lucratif – AISBL) and consists of both public sector and private members. The association has assumed full responsibility for the development and maintenance of the PEPPOL specifications, building blocks and its services and implementation across Europe.

IntegratorsIntegrator allow service consumers to access the Simpl.ePRIOR service exposed by the Mercurius platform. The service on the Mercurius platform is only accessible to integrators : Federal ( FSB ) or regional ( Magda, ... )
PortalAlso known as the Mercurius portal, it allows customers and suppliers to monitor (track and trace) the documents received and sent. It provides business information (sender, receiver, business status, date, ...) and access to technical information (messages exchanged, technical status, ...)
FASFederal Authentication Service authenticates authorises users to access the platform
Supplier

A supplier is an enterprise that contributes goods or services. Generally, a supply chain vendor manufactures inventory/stock items and sells them to the next link in the chain. Today, these terms refer to a supplier of any good or service.

See https://en.wikipedia.org/wiki/Supplier

The Peppol definition is the following :

The supplier is the legal person or organization who provides a product and/or service.
Examples of supplier roles: seller, consignor, creditor, economic operator.

Customer

In sales, commerce and economics, a customer (sometimes known as a client, buyer, or purchaser) is the recipient of a good, service, product or an idea - obtained from a seller, vendor, or supplier via a financial transaction or exchange for money or some other valuable consideration.

See https://en.wikipedia.org/wiki/Customer

The Peppol definition is the following :

The customer is the legal person or organization who is in demand of a product and/or service.
Examples of customer roles: buyer, consignee, debtor, contracting authority.



References

Sample Code

This example is provided without any guarantee or support. It's only to help you and show you how to generate code based on the WSDL definition.

...