diff --git a/apps/connection-manager/src/app/app.controller.ts b/apps/connection-manager/src/app/app.controller.ts
index 4eefca2f82328f195d1ba16ce0ddc6914a51d934..98d111dc28bada9384fdf7523a07af58d1f1d2f3 100644
--- a/apps/connection-manager/src/app/app.controller.ts
+++ b/apps/connection-manager/src/app/app.controller.ts
@@ -7,8 +7,8 @@ import {
   ConnectionEvent,
   CreateInvitationResponseDto,
   GatewayAcceptedResponseDto,
-  ConnectionReqDto,
   makeEvent,
+  IdReqDto,
 } from "@ocm-engine/dtos";
 
 @Controller()
@@ -21,7 +21,7 @@ export class AppController {
   async create(
     @Body()
     payload: {
-      data: null | CreateInvitationResponseDto | ConnectionReqDto;
+      data: null | CreateInvitationResponseDto | IdReqDto;
       type: ConnectionEvent;
       source: string;
     },
diff --git a/apps/gateway/src/app/managers/attestation.controller.ts b/apps/gateway/src/app/managers/attestation.controller.ts
index a51fdf1b81582cac5bd97af1573f1f1527ff41a7..ce4577f7b73c5e5ae3a75ea8ebf63b7ddd983de6 100644
--- a/apps/gateway/src/app/managers/attestation.controller.ts
+++ b/apps/gateway/src/app/managers/attestation.controller.ts
@@ -2,7 +2,6 @@ import { Body, Controller, Get, Param, Post, UseFilters } from "@nestjs/common";
 import { AllExceptionsHandler } from "../exception.handler";
 import { AttestationManagerClient } from "@ocm-engine/clients";
 import {
-  CredentialReqDto,
   CreateCredentialDefinitionRequsetDto,
   CreateSchemaRequestDto,
   CRED_DEF_CREATE,
@@ -11,13 +10,13 @@ import {
   CRED_OFFER_ACCEPT,
   CRED_OFFER_LIST,
   GatewayAcceptedResponseDto,
-  SchemaReqDto,
   IssueCredentialRequestDto,
   MakeBasicMessageRequestDto,
   MESSAGE_MAKE,
   SCHEMA_CREATE,
   SCHEMA_GET,
   SCHEMA_LIST,
+  IdReqDto,
 } from "@ocm-engine/dtos";
 import {
   ApiBadRequestResponse,
@@ -165,8 +164,8 @@ export class AttestationController {
       "Method will fetch specific schema or return null. The id of the response will be matched when you receive event from the websocket",
     tags: ["Schema"],
   })
-  async getSchemaById(@Body() schemaRequestDto: SchemaReqDto) {
-    return this.amClient.sendPayload<SchemaReqDto>({
+  async getSchemaById(@Body() schemaRequestDto: IdReqDto) {
+    return this.amClient.sendPayload<IdReqDto>({
       pattern: "schemas",
       payload: {
         source: "/schemas-by-id",
@@ -504,8 +503,8 @@ export class AttestationController {
     tags: ["Credentials Offers"],
   })
   acceptCredential(@Param("credential_record_id") credentialRecordId: string) {
-    const data = new CredentialReqDto();
-    data.credentialRecordId = credentialRecordId;
+    const data = new IdReqDto();
+    data.id = credentialRecordId;
     return this.amClient.sendPayload({
       pattern: "credentials",
       payload: {
diff --git a/apps/gateway/src/app/managers/connection.controller.ts b/apps/gateway/src/app/managers/connection.controller.ts
index aa29861f256c4d47dea449b9eb02c7c2f2e57d3b..7fd5db4fef50123344cc31d171493ec452f2ae31 100644
--- a/apps/gateway/src/app/managers/connection.controller.ts
+++ b/apps/gateway/src/app/managers/connection.controller.ts
@@ -15,7 +15,7 @@ import {
   CONNECTION_LIST,
   CreateInvitationResponseDto,
   GatewayAcceptedResponseDto,
-  ConnectionReqDto,
+  IdReqDto,
 } from "@ocm-engine/dtos";
 import { AllExceptionsHandler } from "../exception.handler";
 import {
@@ -238,10 +238,10 @@ export class ConnectionController {
     tags: ["Connections"],
   })
   async getById(@Param("id") id: string) {
-    const request = new ConnectionReqDto();
-    request.connectionId = id;
+    const request = new IdReqDto();
+    request.id = id;
 
-    return this.cmClient.sendPayload<ConnectionReqDto>({
+    return this.cmClient.sendPayload<IdReqDto>({
       pattern: "connections",
       payload: {
         source: "/connections/:id",
diff --git a/apps/gateway/src/app/managers/proof.controller.ts b/apps/gateway/src/app/managers/proof.controller.ts
index c90bad7c0ffa0ddd4e10067b51936e0d85a6f092..1bf74b4461d98f1a9c8770010f3301ef0f0b5d2e 100644
--- a/apps/gateway/src/app/managers/proof.controller.ts
+++ b/apps/gateway/src/app/managers/proof.controller.ts
@@ -2,13 +2,13 @@ import { Body, Controller, Get, Param, Post, UseFilters } from "@nestjs/common";
 import {
   ProofReqDto,
   GatewayAcceptedResponseDto,
-  SchemaReqDto,
   IssueProofRequestDto,
   PROOF_ACCEPT,
   PROOF_DECLINE,
   PROOF_GET,
   PROOF_ISSUE,
   PROOF_LIST,
+  IdReqDto,
 } from "@ocm-engine/dtos";
 import { AllExceptionsHandler } from "../exception.handler";
 import { ProofManagerClient } from "@ocm-engine/clients";
@@ -60,7 +60,7 @@ export class ProofController {
     tags: ["Credentials Proof"],
   })
   proofs() {
-    return this.pmClient.sendPayload<SchemaReqDto>({
+    return this.pmClient.sendPayload<IdReqDto>({
       pattern: "proofs",
       payload: {
         source: "/credential/proofs",
@@ -106,10 +106,10 @@ export class ProofController {
     tags: ["Credentials Proof"],
   })
   getProofById(@Param("proof_record_id") proofRecordId: string) {
-    const data = new ProofReqDto();
-    data.proofRecordId = proofRecordId;
+    const data = new IdReqDto();
+    data.id = proofRecordId;
 
-    return this.pmClient.sendPayload<ProofReqDto>({
+    return this.pmClient.sendPayload<IdReqDto>({
       pattern: "proofs",
       payload: {
         source: "/credentials/proof/:proof_record_id",
@@ -275,10 +275,10 @@ export class ProofController {
     tags: ["Credentials Proof"],
   })
   declineProofRequest(@Param("proof_record_id") proofRecordId: string) {
-    const data = new ProofReqDto();
-    data.proofRecordId = proofRecordId;
+    const data = new IdReqDto();
+    data.id = proofRecordId;
 
-    return this.pmClient.sendPayload<ProofReqDto>({
+    return this.pmClient.sendPayload<IdReqDto>({
       pattern: "proofs",
       payload: {
         source: "/credentials/proof/:proof_record_id/decline",
diff --git a/libs/askar/src/askar-nats/event.handler.service.ts b/libs/askar/src/askar-nats/event.handler.service.ts
index 2c5b440988d57e40b3e48dafbc234875cc7f604c..ee08bcbb3fd70a173e0451e362c704f34034f51b 100644
--- a/libs/askar/src/askar-nats/event.handler.service.ts
+++ b/libs/askar/src/askar-nats/event.handler.service.ts
@@ -1,7 +1,6 @@
 import { Injectable, Logger } from "@nestjs/common";
 import { AgentService } from "../askar/agent.service";
 import {
-  CredentialReqDto,
   ProofReqDto,
   CloudEventDto,
   CONNECTION_ACCEPT,
@@ -16,8 +15,6 @@ import {
   CRED_LIST,
   CRED_OFFER_ACCEPT,
   CRED_OFFER_LIST,
-  ConnectionReqDto,
-  SchemaReqDto,
   IssueCredentialRequestDto,
   IssueProofRequestDto,
   MakeBasicMessageRequestDto,
@@ -30,6 +27,7 @@ import {
   SCHEMA_GET,
   SCHEMA_LIST,
   PROOF_DECLINE,
+  IdReqDto,
 } from "@ocm-engine/dtos";
 import asyncRetry from "async-retry";
 
@@ -58,8 +56,8 @@ export class EventHandlerService {
             break;
 
           case CONNECTION_GET:
-            dto = event.data as ConnectionReqDto;
-            data = await this.agentService.getConnectionById(dto.connectionId);
+            dto = event.data as IdReqDto;
+            data = await this.agentService.getConnectionById(dto.id);
             break;
 
           case SCHEMA_CREATE:
@@ -71,8 +69,8 @@ export class EventHandlerService {
             break;
 
           case SCHEMA_GET:
-            dto = event.data as SchemaReqDto;
-            data = await this.agentService.getSchemaById(dto.schemaId);
+            dto = event.data as IdReqDto;
+            data = await this.agentService.getSchemaById(dto.id);
             break;
           case CRED_DEF_CREATE:
             data = await this.agentService.createCredentialDefinition(
@@ -95,9 +93,9 @@ export class EventHandlerService {
             break;
 
           case CRED_OFFER_ACCEPT:
-            dto = event.data as CredentialReqDto;
+            dto = event.data as IdReqDto;
             data = await this.agentService.acceptCredential(
-              dto.credentialRecordId,
+              dto.id,
             );
             break;
 
@@ -111,8 +109,8 @@ export class EventHandlerService {
             break;
 
           case PROOF_GET:
-            dto = event.data as ProofReqDto;
-            data = await this.agentService.getProofById(dto.proofRecordId);
+            dto = event.data as IdReqDto;
+            data = await this.agentService.getProofById(dto.id);
             break;
 
           case PROOF_ACCEPT:
@@ -122,9 +120,9 @@ export class EventHandlerService {
             break;
 
           case PROOF_DECLINE:
-            dto = event.data as ProofReqDto;
+            dto = event.data as IdReqDto;
             data = await this.agentService.declineProofRequest(
-              dto.proofRecordId,
+              dto.id,
             );
             break;
 
diff --git a/libs/askar/src/askar-rest/rest.controller.ts b/libs/askar/src/askar-rest/rest.controller.ts
index f8ca05f41c17afa0ae5b166df56be1fc02793985..d6e208587137e1fa71e61cb98e1a96e3f3270408 100644
--- a/libs/askar/src/askar-rest/rest.controller.ts
+++ b/libs/askar/src/askar-rest/rest.controller.ts
@@ -9,6 +9,7 @@ import {
   CreateSchemaRequestDto,
   MakeBasicMessageRequestDto,
   ProofReqDto,
+  IdReqDto,
 } from "@ocm-engine/dtos";
 import { AllExceptionsHandler } from "./exception.handler";
 
@@ -79,8 +80,8 @@ export class RestController {
   }
 
   @Get("credential/proof/:proof_record_id")
-  getProof(@Param("proof_record_id") data: ProofReqDto) {
-    return this.agentService.getProofById(data.proofRecordId);
+  getProof(@Param("proof_record_id") data: IdReqDto) {
+    return this.agentService.getProofById(data.id);
   }
 
   @Post(`/credential/proof/accept`)
diff --git a/libs/askar/src/askar/agent.service.ts b/libs/askar/src/askar/agent.service.ts
index 9f62532a6b88bdfbd35799ce296cf867668014f7..a4622aa538b7c2a09f4fe533b6fc5bfd712209a7 100644
--- a/libs/askar/src/askar/agent.service.ts
+++ b/libs/askar/src/askar/agent.service.ts
@@ -410,7 +410,8 @@ export class AgentService {
     if (acceptProofDto.proofUrl) {
       return this.acceptOobProof(acceptProofDto.proofUrl);
     }
-    return this.acceptConnectionProof(acceptProofDto.proofRecordId);
+    // REVIEW: should the undefined case be covered inside acceptConnectionProof?
+    return this.acceptConnectionProof(acceptProofDto.proofRecordId as string);
   };
 
   acceptOobProof = async (url: string) => {
diff --git a/libs/dtos/src/dtos/requests/connection.req.dto.ts b/libs/dtos/src/dtos/requests/connection.req.dto.ts
deleted file mode 100644
index cd091613ec41267276175aa50064d743a1d0bf1c..0000000000000000000000000000000000000000
--- a/libs/dtos/src/dtos/requests/connection.req.dto.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { IsNotEmpty, IsString } from "class-validator";
-
-
-export class ConnectionReqDto {
-  //@example 6464b521-005a-4379-91e0-a3692b31cafd
-  @IsNotEmpty()
-  @IsString()
-  connectionId: string;
-}
diff --git a/libs/dtos/src/dtos/requests/credential.req.dto.ts b/libs/dtos/src/dtos/requests/credential.req.dto.ts
deleted file mode 100644
index f94a268201126e6f8a18ff0a0ad68f80ba233bbe..0000000000000000000000000000000000000000
--- a/libs/dtos/src/dtos/requests/credential.req.dto.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { IsNotEmpty, IsString } from "class-validator";
-
-
-export class CredentialReqDto {
-  //@example cf8395a5-9a53-4e06-8a5d-04e0fc00ca04
-  @IsNotEmpty()
-  @IsString()
-  credentialRecordId: string;
-}
\ No newline at end of file
diff --git a/libs/dtos/src/dtos/requests/creddef.req.dto.ts b/libs/dtos/src/dtos/requests/id.req.dto.ts
similarity index 58%
rename from libs/dtos/src/dtos/requests/creddef.req.dto.ts
rename to libs/dtos/src/dtos/requests/id.req.dto.ts
index 681e3eeceb5dde3cd2a064f9b5bb16b722ad8482..5873b7f9ce70563d5fb8dc933470fc2204db80fd 100644
--- a/libs/dtos/src/dtos/requests/creddef.req.dto.ts
+++ b/libs/dtos/src/dtos/requests/id.req.dto.ts
@@ -1,8 +1,8 @@
 import { IsNotEmpty, IsString } from "class-validator";
 
 
-export class CreddefReqDto {
+export class IdReqDto {
   @IsNotEmpty()
   @IsString()
-  credentialDefinitionId: string;
+  id: string;
 }
diff --git a/libs/dtos/src/dtos/requests/proof.req.dto.ts b/libs/dtos/src/dtos/requests/proof.req.dto.ts
index 4b33d3639d20e659c71aa9efcbac7d57cb4a1b90..8e995435c423e9b450bbab572ebc3a2a61eeb187 100644
--- a/libs/dtos/src/dtos/requests/proof.req.dto.ts
+++ b/libs/dtos/src/dtos/requests/proof.req.dto.ts
@@ -2,15 +2,13 @@ import { IsNotEmpty, IsString, ValidateIf } from "class-validator";
 
 
 export class ProofReqDto {
-  @ValidateIf((o) => o.proofUrl === undefined)
+  @ValidateIf((o) => o.proofUrl === undefined, { always: true })
   @IsString()
-  @ValidateIf((o) => o.proofUrl === undefined)
   @IsNotEmpty()
-  proofRecordId: string;
+  proofRecordId: string | undefined;
 
-  @ValidateIf((o) => o.proofRecordId === undefined)
+  @ValidateIf((o) => o.proofRecordId === undefined, { always: true })
   @IsString()
-  @ValidateIf((o) => o.proofRecordId === undefined)
   @IsNotEmpty()
-  proofUrl: string;
+  proofUrl: string | undefined;
 }
\ No newline at end of file
diff --git a/libs/dtos/src/dtos/requests/schema.req.dto.ts b/libs/dtos/src/dtos/requests/schema.req.dto.ts
deleted file mode 100644
index 4bf2cb6ceb4d9a8b3e761e634781cd429f5098f2..0000000000000000000000000000000000000000
--- a/libs/dtos/src/dtos/requests/schema.req.dto.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { IsNotEmpty, IsString } from "class-validator";
-
-
-export class SchemaReqDto {
-  //@example "did:indy:LEDNGER:SXM76gQwRnjkgoz2oBnGjd/anoncreds/v0/SCHEMA/test schema/1.0.2"
-  @IsNotEmpty()
-  @IsString()
-  schemaId: string;
-}
diff --git a/libs/dtos/src/events/dtoToEventTransformer.ts b/libs/dtos/src/events/dtoToEventTransformer.ts
index 9d885143d1236127e5d81ffc1127ded67733c694..586f96f1312f76783b3771430e76605698e03fe1 100644
--- a/libs/dtos/src/events/dtoToEventTransformer.ts
+++ b/libs/dtos/src/events/dtoToEventTransformer.ts
@@ -11,24 +11,22 @@ import { ConnectionUnsupportedTypeError } from "../errors/connection.unsupported
 import { CreateCredentialDefinitionRequsetDto } from "../dtos/requests/create.credential.definition.request.dto";
 import { CreateInvitationResponseDto } from "../dtos/responses/create.invitation.response.dto";
 import { CreateSchemaRequestDto } from "../dtos/requests/create.schema.request.dto";
-import { ConnectionReqDto } from "../dtos/requests/connection.req.dto";
 import { IssueCredentialRequestDto } from "../dtos/requests/issue.credential.request.dto";
 import { IssueProofRequestDto } from "../dtos/requests/issue.proof.request.dto";
-import { CredentialReqDto } from "../dtos/requests/credential.req.dto";
 import { MessageRecordDto } from "../dtos/generics/message.record.dto";
 import { MakeBasicMessageRequestDto } from "../dtos/requests/make.basic.message.request.dto";
 import { ProofReqDto } from "../dtos/requests/proof.req.dto";
 import { ProofRecordDto } from "../dtos/generics/proof.record.dto";
+import { IdReqDto } from "../dtos/requests/id.req.dto";
 
 export const makeEvent = (payload: {
   data:
     | null
     | IssueProofRequestDto
-    | CredentialReqDto
     | CreateInvitationResponseDto
-    | ConnectionReqDto
     | CreateSchemaRequestDto
     | ProofReqDto
+    | IdReqDto
     | CreateSchemaRequestDto
     | CreateCredentialDefinitionRequsetDto
     | ProofRecordDto
diff --git a/libs/dtos/src/index.ts b/libs/dtos/src/index.ts
index 46976e38624544097708d0d773e174b0592fdfb6..df61e7a5816899986b8da6bd0e412faa3b632dc7 100644
--- a/libs/dtos/src/index.ts
+++ b/libs/dtos/src/index.ts
@@ -8,12 +8,8 @@ export * from "./dtos/generics/proof.record.dto";
 export * from "./dtos/generics/schema.record.dto";
 export * from "./dtos/generics/message.record.dto";
 
-
-export * from "./dtos/requests/connection.req.dto";
-export * from "./dtos/requests/creddef.req.dto";
-export * from "./dtos/requests/credential.req.dto";
 export * from "./dtos/requests/proof.req.dto";
-export * from "./dtos/requests/schema.req.dto";
+export * from "./dtos/requests/id.req.dto";
 
 export * from "./dtos/requests/create.schema.request.dto";
 export * from "./dtos/requests/create.credential.definition.request.dto";