diff --git a/Sources/ElixxirDAppsSDK/E2E.swift b/Sources/ElixxirDAppsSDK/E2E.swift
index e24d04ce4002eece00573cc32b9372408ba68d0c..de738db521111a0f0f7121ccca77a911a4ac767b 100644
--- a/Sources/ElixxirDAppsSDK/E2E.swift
+++ b/Sources/ElixxirDAppsSDK/E2E.swift
@@ -16,6 +16,7 @@ public struct E2E {
   public var requestAuthenticatedChannel: E2ERequestAuthenticatedChannel
   public var resetAuthenticatedChannel: E2EResetAuthenticatedChannel
   public var callAllReceivedRequests: E2ECallAllReceivedRequests
+  public var getReceivedRequest: E2EGetReceivedRequest
   public var send: E2ESend
 
   // TODO:
@@ -39,6 +40,7 @@ extension E2E {
       requestAuthenticatedChannel: .live(bindingsE2E),
       resetAuthenticatedChannel: .live(bindingsE2E),
       callAllReceivedRequests: .live(bindingsE2E),
+      getReceivedRequest: .live(bindingsE2E),
       send: .live(bindingsE2E)
     )
   }
@@ -61,6 +63,7 @@ extension E2E {
     requestAuthenticatedChannel: .unimplemented,
     resetAuthenticatedChannel: .unimplemented,
     callAllReceivedRequests: .unimplemented,
+    getReceivedRequest: .unimplemented,
     send: .unimplemented
   )
 }
diff --git a/Sources/ElixxirDAppsSDK/E2EGetReceivedRequest.swift b/Sources/ElixxirDAppsSDK/E2EGetReceivedRequest.swift
new file mode 100644
index 0000000000000000000000000000000000000000..0ac9f0c39de45a1fba06c053bfd67643b3bfc935
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/E2EGetReceivedRequest.swift
@@ -0,0 +1,22 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct E2EGetReceivedRequest {
+  public var run: (Data) throws -> Data
+
+  public func callAsFunction(partnerId: Data) throws -> Data {
+    try run(partnerId)
+  }
+}
+
+extension E2EGetReceivedRequest {
+  public static func live(_ bindingsE2E: BindingsE2e) -> E2EGetReceivedRequest {
+    E2EGetReceivedRequest(run: bindingsE2E.getReceivedRequest(_:))
+  }
+}
+
+extension E2EGetReceivedRequest {
+  public static let unimplemented = E2EGetReceivedRequest(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}