diff --git a/docs/changelog.md b/docs/changelog.md
index a769afe6a087fc163c0d2eb3e53471422bb0d309..8a2da4120efcd10528e5fb66f1ae52911e4a868d 100644
--- a/docs/changelog.md
+++ b/docs/changelog.md
@@ -4,6 +4,11 @@ Das Format dieser Datei basiert auf [Keep a Changelog](https://keepachangelog.co
 
 Das hier veröffentlichte Changelog bezieht sich auf die [Testinstanz von FIT-Connect](getting-started/environments.mdx).
 
+## 2023-03-23
+### Self Service Portal 1.6.0
+- Das Design der Login-Seite des Self-Service-Portals wurde neugestaltet und orientiert sich jetzt am Design des restlichen Portals. ([Story](https://git.fitko.de/fit-connect/planning/-/issues/384))
+- [OpenCoDE](https://opencode.de) kann nun für die Authentifizierung im [Self-Service-Portal der Testumgebung](getting-started/account.mdx) genutzt werden. ([Story](https://git.fitko.de/fit-connect/planning/-/issues/457))
+
 ## 2023-02-20
 ### Dokumentation
 - Der [Umgang mit dem `replyChannel`-Attribut im Metadatensatz](receiving/verification.mdx) durch Subscriber wurde angepasst/korrigiert.
diff --git a/docs/getting-started/account.mdx b/docs/getting-started/account.mdx
index 6539b3dc31d8c2d863bab19966a80cf9ba55135b..1f66702724c908f4ecc799f28c074df139de26c1 100644
--- a/docs/getting-started/account.mdx
+++ b/docs/getting-started/account.mdx
@@ -17,8 +17,9 @@ Eine Nutzung des Self-Service-Portals (SSP) setzt eine Authentifizierung über e
 
 #### Username/Passwort erforderlich
 
-In der Testumgebung ist die Authentifizierung per Username und Passwort über Ihren Account bei GitHub oder GitLab möglich. 
-Zudem können Sie sich mit einem Account der OpenCoDE-Plattform anmelden. Eine Neu-Registrierung über das GitLab der FITKO wird zugunsten des Logins über die OpenCoDE-Plattform nicht mehr unterstützt.
+In der Testumgebung ist die Authentifizierung per Username und Passwort über Ihren Account bei GitHub, GitLab.com oder [OpenCoDE](https://opencode.de/) möglich.
+Ein Account auf der OpenCoDE-Plattform der öffentlichen Verwaltung kann selbstständig über das [Registrierungsformular](https://opencode.de/de/registrieren) erstellt werden.
+Eine Neu-Registrierung über das GitLab der FITKO wird zugunsten des Logins über die OpenCoDE-Plattform nicht mehr unterstützt.
 
 <img width="950" alt="Übersicht der aktuell unterstützten OAuth 2.0 Identiy Provider" src={useBaseUrl('/images/ssp/1-Login-Verfahren.png')} />
 
diff --git a/docs/getting-started/event-log/events.mdx b/docs/getting-started/event-log/events.mdx
index 4a1785afd95240c6e4060073f554a11ca1b13a1f..30d2ca6331c3082203d8318ed82a9ee999e3ebb7 100644
--- a/docs/getting-started/event-log/events.mdx
+++ b/docs/getting-started/event-log/events.mdx
@@ -17,7 +17,7 @@ In der folgenden Tabelle sind die möglichen Ereignisse, ihre Beschreibungen und
 |------------------------------------------------------------------------------------------|-----------------------------------|-------------------------------|
 | `https://schema.fitko.de/fit-connect/events/create-submission`  [↓](#create-submission)  | Zustelldienst                     | Die Einreichung wurde durch den Sender angelegt. |
 | `https://schema.fitko.de/fit-connect/events/submit-submission`  [↓](#submit-submission)  | Zustelldienst                     | Die Einreichung wurde durch den Sender abgesendet. |
-| `https://schema.fitko.de/fit-connect/events/notify-submission`  [↓](#notify-submission)  | Zustelldienst                     | Der Empfänger wurde per Webhook über die Einreichung informiert. |
+| `https://schema.fitko.de/fit-connect/events/notify-submission`  [↓](#notify-submission)  | Zustelldienst                     | Der Subscriber hat Kenntnis von der Einreichung erlangt (der Subscriber wurde per Callback informiert oder hat die Liste der verfügbaren Submissions abgerufen). |
 | `https://schema.fitko.de/fit-connect/events/forward-submission` [↓](#forward-submission) | Empfangendes System               | Ein nachgelagertes System hat die Einreichung zur Weiterleitung übernommen. |
 | `https://schema.fitko.de/fit-connect/events/reject-submission`  [↓](#reject-submission)  | Empfangendes System/Zustelldienst | Die Einreichung wurde durch den Empfänger zurückgewiesen *oder* die Einreichung war mehr als 14 Tage im Status `submitted` und wurde deshalb vom Zustelldienst zurückgewiesen. |
 | `https://schema.fitko.de/fit-connect/events/accept-submission`  [↓](#accept-submission)  | Empfangendes System               | Die Einreichung wurde durch den Empfänger akzeptiert. |
diff --git a/docs/roadmap.mdx b/docs/roadmap.mdx
index 6e0d491d7257b2080ee869a97767723546dfe960..a09668582c15ef08f2aa5848d6f87a3fa5829e3d 100644
--- a/docs/roadmap.mdx
+++ b/docs/roadmap.mdx
@@ -16,7 +16,8 @@ Diese Seite stellt neue Features vor, die in nächster Zeit für FIT-Connect gep
 FIT-Connect umfasst die folgenden Bereiche:
 
 - **API-Spezifikation:** Die Spezifikation der FIT-Connect-Schnittstellen, die in OpenAPI geschrieben ist.
-- **Entwicklerdokumentation und -tools:** Die Dokumentation von FIT-Connect zur Anbindung an sendende und empfangende Systeme sowie die Bereitstellung von Tools für Querschnittsaufgaben wie Tokenhandling,
+- **Entwicklerdokumentation und -tools:** Die Dokumentation von FIT-Connect zur Anbindung an sendende und empfangende Systeme
+ sowie die Bereitstellung von Tools für Querschnittsaufgaben wie Tokenhandling,
   Signaturprüfung und Verschlüsselung.
 - **Infrastruktur:** Die IT-Infrastruktur für Anbindungstests und Validierung sowie für Produktivbetrieb der FIT-Connect-API.
 
@@ -48,7 +49,4 @@ Der Kreis der Nutzungsberechtigten wird kontinuierlich im Rahmen des Projekts er
 ## Feature-Roadmap bis 2023
 
 
-![Roadmap von FIT-Connect](/images/roadmap/2022-11-24_roadmap.jpg "Roadmap")
-
-
-*) Es konnte kein Pilotverfahren in Q4 2022 gefunden werden.
\ No newline at end of file
+![Roadmap von FIT-Connect](/images/roadmap/Roadmap-2023_q1-edited.png "Roadmap")
\ No newline at end of file
diff --git a/docs/sending/get-destination.mdx b/docs/sending/get-destination.mdx
index 942360636371526b496addabaf31210e99ee73be..d8be213206d7470b522fc1e9900046a3a80aa50c 100644
--- a/docs/sending/get-destination.mdx
+++ b/docs/sending/get-destination.mdx
@@ -382,9 +382,9 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjNTNjd6UVE3QWFMdHFuSkthV2Y3N0FjM1d3
 Die Prüfung der Signatur kann nur auf einer vollständigen Signatur erfolgen.
 Für die Umwandlung einer Detached Signature in eine gewöhnliche JSON Web Signature muss der Payload (`destinationParameters`) als Base64-URL-Encoded String der Signature hinzugefügt werden.
 
-Dabei ist für das JSON des Payload zu beachten, dass
+Dabei ist für das JSON des Payloads zu beachten, dass
 - alle semantisch unbedeutenden nicht-druckbaren Zeichen (Leerzeichen, Tabs, Line Feed `\n`, Carriage Return `\r`) vor und nach den strukturierenden Zeichen ([, {, ], }, :, ,) aus dem JSON-Payload entfernt werden und
-- die Attribute des JSON-Objekts in alphabetischer Reihenfolge sortiert werden.
+- die Attribute des JSON-Objekts in alphabetischer Reihenfolge sortiert werden. Die Sortierung ist unabhängig von der Groß-/Kleinschreibung der Attribute.
 
 <Tabs groupId="examples"
   defaultValue="csharp_sdk"
@@ -409,13 +409,65 @@ Eine Beschreibung des .NET-SDKs finden Sie im Hauptmenü unter "SDKs > .NET-SDK"
 <TabItem value="java">
 
 ```java
-      int firstPoint = detachedSignature.indexOf(".");
-      Base64URL payload = Base64URL.encode(sortedAndCleanedPayloadJson):
-      SignedJWT signedJWT = new SignedJWT(
-          new Base64URL(headerParameterOfJWS.substring(0, firstPoint)),
-          payload,
-          new Base64URL(headerParameterOfJWS.substring(firstPoint + 2))
-      );
+
+  import com.fasterxml.jackson.databind.json.JsonMapper;
+
+  import com.nimbusds.jose.jwk.RSAKey;
+  import com.nimbusds.jose.util.Base64URL;
+  import com.nimbusds.jwt.SignedJWT;
+
+  // Object mapper that sorts properties alphabetically at serialisation
+  private static final ObjectMapper MAPPER = getConfiguredJsonMapper();
+
+  private SignedJWT combineDetachedSignatureWithPayload(final Route route) throws ParseException, JsonProcessingException {
+      final SignedJWT detachedSignature = SignedJWT.parse(route.getDestinationParametersSignature());
+      final Base64URL encodedDetachedPayloadPart = getBase64EncodedDetachedPayload(route);
+      final Base64URL headerPart = detachedSignature.getHeader().getParsedBase64URL();
+      final Base64URL signaturePart = detachedSignature.getSignature();
+      return new SignedJWT(headerPart, encodedDetachedPayloadPart, signaturePart);
+  }
+
+  private Base64URL getBase64EncodedDetachedPayload(final Route route) throws JsonProcessingException {
+      final RouteDestination detachedPayload = route.getDestinationParameters();
+      final String cleanedDetachedPayload = Strings.cleanNonPrintableChars(MAPPER.writeValueAsString(detachedPayload));
+      return Base64URL.encode(cleanedDetachedPayload.getBytes(StandardCharsets.UTF_8));
+  }
+
+  private static JsonMapper getConfiguredJsonMapper() {
+      return JsonMapper.builder()
+        .configure(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY, true)
+        .configure(SerializationFeature.INDENT_OUTPUT, false)
+        .serializationInclusion(JsonInclude.Include.NON_NULL)
+        .build();
+  }
+
+  ```
+
+</TabItem>
+<TabItem value="dotnet">
+
+**Serialisierung**
+
+```csharp
+var parameterJson = JsonConvert.SerializeObject(route.DestinationParameters,
+    new JsonSerializerSettings {
+        NullValueHandling = NullValueHandling.Ignore,
+        Formatting = Formatting.None,
+        ContractResolver = new OrderedContractResolver()
+    });
+```
+
+**ContractResolver**
+
+```csharp
+public class OrderedContractResolver : DefaultContractResolver {
+    protected override System.Collections.Generic.IList<JsonProperty> CreateProperties(
+        System.Type type, MemberSerialization memberSerialization) {
+        NamingStrategy = new CamelCaseNamingStrategy();
+        return base.CreateProperties(type, memberSerialization).OrderBy(p => p.PropertyName)
+            .ToList();
+    }
+}
 ```
 
 </TabItem>
diff --git a/static/images/roadmap/2022-11-24_roadmap.jpg b/static/images/roadmap/2022-11-24_roadmap.jpg
deleted file mode 100644
index 6bc1dd948a0d9537df7e51f32a09e53cadb55a09..0000000000000000000000000000000000000000
Binary files a/static/images/roadmap/2022-11-24_roadmap.jpg and /dev/null differ
diff --git a/static/images/roadmap/Roadmap-2023_q1-edited.png b/static/images/roadmap/Roadmap-2023_q1-edited.png
new file mode 100644
index 0000000000000000000000000000000000000000..9fdd34b5a491b14d0b9d88eff533cf81dc33d5d4
Binary files /dev/null and b/static/images/roadmap/Roadmap-2023_q1-edited.png differ