AS4 Receipt Service Dokumentation

Der Receipt Service validiert die Eingangsbestätigung des Marktpartners und erstellt Eingangsbestätigungen als Response für erhaltene AS Nachrichten.

Einfache Konfiguration der as4-receipt-service.properties

Die Kommunikation zwischen den verschiedene AS4 Services erfolgt über einen Message-Broker.

#=== RabbitMQ Con
rabbitmq.host=localhost
rabbitmq.port=5672
rabbitmq.username=guest
rabbitmq.password=guest

Der Outbound Receipt

Über diesen Consumer werden eingehende Receipts vom Crypto Operations in der Queue as4.receipt.parse.default entgegengenommen, welche der AS4 Outbound Sender vom Marktpartner erhalten hat und diesen an den Crypto Operations weitergeleitet hat.

receiptParseExchangeName=as4.receipt.parse

Der Inbound Receipt

Dieser Consumer empfängt über die Queue as4.receipt.create.default die AS4 Nachricht (in diesem Kontext auch als Business Message bekannt) vom Crypto Operations, welcher diese vom AS4 Inbound Endpoint erhalten hat, um dafür eine Empfangsbestätigung zu generieren.

receiptCreateExchangeName=as4.receipt.create

Versenden der Empfangsbestätigung zur Persistierung

Mit dem Producer wird die vom AS4 Outbound Sender empfangene Bestätigung an den AS4 Message Service zum Speichern versendet. Der Name der Queue ist as4.receipt.default.

receiptExchangeName=as4.receipt

Versenden der Business Message

Der Producer versendet die vom Marktpartner eingegangene AS4 Nachricht als Business Message zum Speichern an den AS4 Message Service. Die Queue heißt as4.messages.default.

businessMessageExchangeName=as4.messages

Signieren der Empfangsbestätigung

Der Producer versendet über as4.sign.default die erstellte Bestätigung an den Crypto Operations zwecks Anbringung der Signatur.

createdReceiptExchangeName=as4.sign

Der Marktpartner bestätigt unsere Adressänderung

Mit dem Pathswitch Provider wird die Annahme der Adressänderung des Tenants vom Marktpartner bestätigt. Diese Bestätigung geht über die Queue as4.outbound.pathswitch.default an den AS4 Address Service.

pathswitchConfirmationExchangeName=as4.outbound.pathswitch

Negative verifizierte Empfangsbestätigungen

Mit dieser Error Queue as4.neg.verified.receipt.default werden die Receipts gesammelt, welche zwar gültig sind aber einen negativen Empfangsstatus ausweisen. Wenn zu einer versenden Nachricht keine Bestätigung in der B2B oder im AS4 Message Service auffindbar ist, dann wird sie hier zu finden sein.

negativeVerifiedReceiptExchangeName=as4.neg.verified.receipt

Nicht erstellbare Empfangsbestätigungen

Diese Error Queue as4.received.neg.receipt.not.restartable enthält die negativen Receipts, die bei der Erstellung Fehler aufgeworfen haben.

negativeReceiptExchangeName=as4.received.neg.receipt.not.restartable

Um zu einer eingehenden Nachricht ein Receipt zu erstellen, wird die Nachricht vorerst validiert. Zur Validierung sind die folgenden Parameter erforderlich. Wichtig ist hier, für die Variable expectedSystems die Receiver, also die Mandanten selbst einzutragen, damit geprüft werden kann, ob der Marktpartner auch an den richtigen Mandanten geantwortet hat. Um die Validierung auf den Receiver/Mandanten zu überspringen, kann der Wert leer gelassen, oder die Property entfernt werden.

Die weiteren Prüfungskategorien sind AS4 Protokoll spezifisch und sollten von einem Fachmann verändert werden. ServiceId gibt dabei den Service aus dem Header der AS4 Message an und ActionId die Action aus dem Header.

expectedSystems=9907647000008,9903111000003,9900051000002
expectedGasServiceIds=A02
expectedElectricityServiceIds=http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service,https://www.bdew.de/as4/communication/services/pathSwitch
expectedGasActionIds=http://docs.oasis-open.org/ebxml-msg/as4/200902/action,http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test
expectedElectricityActionIds=http://docs.oasis-open.org/ebxml-msg/as4/200902/action,https://www.bdew.de/as4/communication/actions/requestSwitch,https://www.bdew.de/as4/communication/actions/confirmSwitch,http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test

Routing Konfiguration der as4-receipt-service.properties

Für die Aktivierung des Routings müssen der headerName und die headerValues gesetzt werden. Den headerName kann man sich als Filterkategorie vorstellen, während die headerValues den zu filternden Werten entsprechen. Nachrichten mit Werten, die nicht explizit als headerValues aufgelistet sind, laufen weiterhin über die default Route.

Als headerName werden folgende Parameter angeboten:

  • tenant: ILN Nummer des Senders
  • partner: ILN Nummer des Empfängers.
  • sector: GAS, ELECTRICITY

Es können mehrere Werte kommasepariert angegeben werden.

receiptExchangeName=as4.receipt
receiptHeaderName=tenant
receiptHeaderValues=
businessMessageExchangeName=as4.messages
businessMessageHeaderName=tenant
businessMessageHeaderValues=
createdReceiptExchangeName=as4.sign
createdReceiptHeaderName=tenant
createdReceiptHeaderValues=
pathswitchConfirmationExchangeName=as4.outbound.pathswitch
pathswitchConfirmationHeaderName=tenant
pathswitchConfirmationHeaderValues=
negativeVerifiedReceiptExchangeName=as4.neg.verified.receipt
negativeVerifiedReceiptHeaderName=tenant
negativeVerifiedReceiptHeaderValues=
negativeReceiptExchangeName=as4.received.neg.receipt.not.restartable
negativeReceiptHeaderName=tenant
negativeReceiptHeaderValues=

Wird der Producer für das Routing konfiguriert muss natürlich auch die Gegenstelle dafür eingerichtet werden. Dem Consumer wird über die Gruppe der Wert (Value) aus der HeaderValues Liste zugewiesen nach welchem gefiltert werden soll. Bitte den Default Wert nur ändern, wenn Routing verwendet werden soll.

receiptParseExchangeName=as4.receipt.parse
receiptParseGroup=default
receiptCreateExchangeName=as4.receipt.create
receiptCreateGroup=default

REST API Dokumenation

Die Beschreibung der REST API lässt sich, im Fall einer Docker Installation, unter

http://host.docker.internal:8095/aep-as4-receipt-service/swagger-ui/index.html

oder unter

http://localhost:8080/aep-as4-receipt-service/swagger-ui/index.html

finden.

View Me   Edit Me