diff --git a/docs/utilities/parser.md b/docs/utilities/parser.md
index 8b6e750cb2..e4dcd5dfdd 100644
--- a/docs/utilities/parser.md
+++ b/docs/utilities/parser.md
@@ -85,6 +85,7 @@ Parser comes with the following built-in schemas:
 | **SesSchema**                                | Lambda Event Source payload for Amazon Simple Email Service                           |
 | **SnsSchema**                                | Lambda Event Source payload for Amazon Simple Notification Service                    |
 | **SqsSchema**                                | Lambda Event Source payload for Amazon SQS                                            |
+| **TransferFamilySchema**                     | Lambda Event Source payload for AWS Transfer Family events                            |
 | **VpcLatticeSchema**                         | Lambda Event Source payload for Amazon VPC Lattice                                    |
 | **VpcLatticeV2Schema**                       | Lambda Event Source payload for Amazon VPC Lattice v2 payload                         |
 
diff --git a/packages/parser/package.json b/packages/parser/package.json
index e822c086b4..a77b11e797 100644
--- a/packages/parser/package.json
+++ b/packages/parser/package.json
@@ -112,6 +112,10 @@
       "require": "./lib/cjs/schemas/sqs.js",
       "import": "./lib/esm/schemas/sqs.js"
     },
+    "./schemas/transfer-family": {
+      "require": "./lib/cjs/schemas/transfer-family.js",
+      "import": "./lib/esm/schemas/transfer-family.js"
+    },
     "./schemas/vpc-lattice": {
       "require": "./lib/cjs/schemas/vpc-lattice.js",
       "import": "./lib/esm/schemas/vpc-lattice.js"
@@ -323,6 +327,10 @@
         "./lib/cjs/envelopes/sqs.d.ts",
         "./lib/esm/envelopes/sqs.d.ts"
       ],
+      "schemas/transfer-family": [
+        "./lib/cjs/schemas/transfer-family.d.ts",
+        "./lib/esm/schemas/transfer-family.d.ts"
+      ],
       "envelopes/vpc-lattice": [
         "./lib/cjs/envelopes/vpc-lattice.d.ts",
         "./lib/esm/envelopes/vpc-lattice.d.ts"
diff --git a/packages/parser/src/schemas/index.ts b/packages/parser/src/schemas/index.ts
index 266a1251fb..18f3a35424 100644
--- a/packages/parser/src/schemas/index.ts
+++ b/packages/parser/src/schemas/index.ts
@@ -61,5 +61,6 @@ export {
   SnsNotificationSchema,
 } from './sns.js';
 export { SqsSchema, SqsRecordSchema } from './sqs.js';
+export { TransferFamilySchema } from './transfer-family.js';
 export { VpcLatticeSchema } from './vpc-lattice.js';
 export { VpcLatticeV2Schema } from './vpc-latticev2.js';
diff --git a/packages/parser/src/schemas/transfer-family.ts b/packages/parser/src/schemas/transfer-family.ts
new file mode 100644
index 0000000000..145a45d43a
--- /dev/null
+++ b/packages/parser/src/schemas/transfer-family.ts
@@ -0,0 +1,29 @@
+import { z } from 'zod';
+
+/**
+ *
+ * Zod schema for AWS Transfer Family events.
+ *
+ * @example
+ * ```json
+ * {
+ *   "username": "testUser",
+ *   "password": "testPass",
+ *   "protocol": "SFTP",
+ *   "serverId": "s-abcd123456",
+ *   "sourceIp": "192.168.0.100"
+ * }
+ * ```
+ *
+ * TransferFamilySchema validates events coming from AWS Transfer Family.
+ *
+ */
+const TransferFamilySchema = z.object({
+  username: z.string(),
+  password: z.string(),
+  protocol: z.string(),
+  serverId: z.string(),
+  sourceIp: z.string().ip(),
+});
+
+export { TransferFamilySchema };
diff --git a/packages/parser/src/types/index.ts b/packages/parser/src/types/index.ts
index e4f331e88b..924698b278 100644
--- a/packages/parser/src/types/index.ts
+++ b/packages/parser/src/types/index.ts
@@ -38,6 +38,7 @@ export type {
   SnsEvent,
   SnsSqsNotification,
   SqsEvent,
+  TransferFamilyEvent,
   VpcLatticeEvent,
   VpcLatticeEventV2,
 } from './schema.js';
diff --git a/packages/parser/src/types/schema.ts b/packages/parser/src/types/schema.ts
index 5f17f4b6bd..37395bc994 100644
--- a/packages/parser/src/types/schema.ts
+++ b/packages/parser/src/types/schema.ts
@@ -37,6 +37,7 @@ import type {
   SnsSqsNotificationSchema,
   SqsRecordSchema,
   SqsSchema,
+  TransferFamilySchema,
   VpcLatticeSchema,
   VpcLatticeV2Schema,
 } from '../schemas/index.js';
@@ -129,6 +130,8 @@ type SqsEvent = z.infer<typeof SqsSchema>;
 
 type SqsRecord = z.infer<typeof SqsRecordSchema>;
 
+type TransferFamilyEvent = z.infer<typeof TransferFamilySchema>;
+
 type VpcLatticeEvent = z.infer<typeof VpcLatticeSchema>;
 
 type VpcLatticeEventV2 = z.infer<typeof VpcLatticeV2Schema>;
@@ -171,6 +174,7 @@ export type {
   SnsRecord,
   SqsEvent,
   SqsRecord,
+  TransferFamilyEvent,
   VpcLatticeEvent,
   VpcLatticeEventV2,
 };
diff --git a/packages/parser/tests/events/transfer-family/base.json b/packages/parser/tests/events/transfer-family/base.json
new file mode 100644
index 0000000000..e0bf0bd4ae
--- /dev/null
+++ b/packages/parser/tests/events/transfer-family/base.json
@@ -0,0 +1,8 @@
+{
+    "username": "value",
+    "password": "value",
+    "protocol": "SFTP",
+    "serverId": "s-abcd123456",
+    "sourceIp": "192.168.0.100"
+  }
+  
\ No newline at end of file
diff --git a/packages/parser/tests/unit/schema/transfer-family.test.ts b/packages/parser/tests/unit/schema/transfer-family.test.ts
new file mode 100644
index 0000000000..f6041433cc
--- /dev/null
+++ b/packages/parser/tests/unit/schema/transfer-family.test.ts
@@ -0,0 +1,35 @@
+import { describe, expect, it } from 'vitest';
+import { TransferFamilySchema } from '../../../src/schemas/transfer-family';
+import type { TransferFamilyEvent } from '../../../src/types/schema.js';
+import { getTestEvent } from '../helpers/utils';
+
+describe('Schema: TransferFamily', () => {
+  const baseEvent = getTestEvent<TransferFamilyEvent>({
+    eventsPath: 'transfer-family',
+    filename: 'base',
+  });
+
+  it('parses a valid TransferFamily event', () => {
+    // Prepare
+    const event = structuredClone(baseEvent);
+
+    // Act
+    const result = TransferFamilySchema.parse(event);
+
+    // Assess
+    expect(result).toStrictEqual(event);
+  });
+
+  it('throws if the event is not a valid TransferFamily event', () => {
+    // Prepare
+    const invalidEvent = {
+      username: 'testUser',
+      protocol: 'SFTP',
+      serverId: 's-abcd123456',
+      sourceIp: 'invalid-ip',
+    };
+
+    // Act & Assess
+    expect(() => TransferFamilySchema.parse(invalidEvent)).toThrow();
+  });
+});