diff --git a/src/shared/uuid.validation.ts b/src/shared/uuid.validation.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c8c791a4a0354fef23a3cd2dc1a501630fe8ce41
--- /dev/null
+++ b/src/shared/uuid.validation.ts
@@ -0,0 +1,19 @@
+import {
+  ValidatorConstraint,
+  ValidatorConstraintInterface,
+  ValidationArguments,
+  Validator,
+} from 'class-validator';
+
+// check if input is null or valid uuid
+@ValidatorConstraint({ name: 'uuid', async: true })
+export class Uuid implements ValidatorConstraintInterface {
+  validate(uuid: string, args: ValidationArguments) {
+    const validator = new Validator();
+    return validator.isUUID(uuid, '4') || uuid == null; // for async validations you must return a Promise<boolean> here
+  }
+
+  defaultMessage(args: ValidationArguments) {
+    return 'Not valid uuid';
+  }
+}