diff --git a/src/hooks/useFilesValidation.tsx b/src/hooks/useFilesValidation.tsx
index c49d49f28113..1b392bcb0edc 100644
--- a/src/hooks/useFilesValidation.tsx
+++ b/src/hooks/useFilesValidation.tsx
@@ -16,29 +16,39 @@ import {
     validateAttachment,
     validateImageForCorruption,
 } from '@libs/fileDownload/FileUtils';
+import type {ValidateAttachmentOptions} from '@libs/fileDownload/FileUtils';
 import convertHeicImage from '@libs/fileDownload/heicConverter';
 import CONST from '@src/CONST';
 import type {FileObject} from '@src/types/utils/Attachment';
 import useLocalize from './useLocalize';
 import useThemeStyles from './useThemeStyles';
 
+const DEFAULT_IS_VALIDATING_RECEIPTS = true;
+
 type ErrorObject = {
     error: ValueOf<typeof CONST.FILE_VALIDATION_ERRORS>;
     fileExtension?: string;
 };
 
+type ValidationOptions = {
+    isValidatingReceipts?: boolean;
+};
+
 const sortFilesByOriginalOrder = (files: FileObject[], orderMap: Map<string, number>) => {
     return files.sort((a, b) => (orderMap.get(a.uri ?? '') ?? 0) - (orderMap.get(b.uri ?? '') ?? 0));
 };
 
-function useFilesValidation(proceedWithFilesAction: (files: FileObject[], dataTransferItems: DataTransferItem[]) => void, isValidatingReceipts = true) {
+function useFilesValidation(onFilesValidated: (files: FileObject[], dataTransferItems: DataTransferItem[]) => void) {
     const styles = useThemeStyles();
     const {translate} = useLocalize();
+
+    const [isValidatingReceipts, setIsValidatingReceipts] = useState(DEFAULT_IS_VALIDATING_RECEIPTS);
+    const [isValidatingMultipleFiles, setIsValidatingMultipleFiles] = useState(false);
+
     const [isErrorModalVisible, setIsErrorModalVisible] = useState(false);
     const [fileError, setFileError] = useState<ValueOf<typeof CONST.FILE_VALIDATION_ERRORS> | null>(null);
     const [pdfFilesToRender, setPdfFilesToRender] = useState<FileObject[]>([]);
     const [validFilesToUpload, setValidFilesToUpload] = useState([] as FileObject[]);
-    const [isValidatingMultipleFiles, setIsValidatingMultipleFiles] = useState(false);
     const [invalidFileExtension, setInvalidFileExtension] = useState('');
     const [errorQueue, setErrorQueue] = useState<ErrorObject[]>([]);
     const [currentErrorIndex, setCurrentErrorIndex] = useState(0);
@@ -101,7 +111,7 @@ function useFilesValidation(proceedWithFilesAction: (files: FileObject[], dataTr
         setIsErrorModalVisible(true);
     };
 
-    const isValidFile = (originalFile: FileObject, item: DataTransferItem | undefined, isCheckingMultipleFiles?: boolean) => {
+    const isValidFile = (originalFile: FileObject, item: DataTransferItem | undefined, validationOptions: ValidateAttachmentOptions) => {
         if (item && item.kind === 'file' && 'webkitGetAsEntry' in item) {
             const entry = item.webkitGetAsEntry();
 
@@ -114,7 +124,7 @@ function useFilesValidation(proceedWithFilesAction: (files: FileObject[], dataTr
         return normalizeFileObject(originalFile)
             .then((normalizedFile) =>
                 validateImageForCorruption(normalizedFile).then(() => {
-                    const error = validateAttachment(normalizedFile, isCheckingMultipleFiles, isValidatingReceipts);
+                    const error = validateAttachment(normalizedFile, validationOptions);
                     if (error) {
                         const errorData = {
                             error,
@@ -170,12 +180,12 @@ function useFilesValidation(proceedWithFilesAction: (files: FileObject[], dataTr
             }
         } else if (validFiles.current.length > 0) {
             const sortedFiles = sortFilesByOriginalOrder(validFiles.current, originalFileOrder.current);
-            proceedWithFilesAction(sortedFiles, dataTransferItemList.current);
+            onFilesValidated(sortedFiles, dataTransferItemList.current);
             resetValidationState();
         }
-    }, [deduplicateErrors, pdfFilesToRender.length, proceedWithFilesAction, resetValidationState]);
+    }, [deduplicateErrors, pdfFilesToRender.length, onFilesValidated, resetValidationState]);
 
-    const validateAndResizeFiles = (files: FileObject[], items: DataTransferItem[]) => {
+    const validateAndResizeFiles = (files: FileObject[], items: DataTransferItem[], validationOptions?: ValidationOptions) => {
         // Early return for empty files
         if (files.length === 0) {
             return;
@@ -188,7 +198,13 @@ function useFilesValidation(proceedWithFilesAction: (files: FileObject[], dataTr
             originalFileOrder.current.set(file.uri ?? '', index);
         });
 
-        Promise.all(files.map((file, index) => isValidFile(file, items.at(index), files.length > 1).then((isValid) => (isValid ? file : null))))
+        Promise.all(
+            files.map((file, index) =>
+                isValidFile(file, items.at(index), {isCheckingMultipleFiles: files.length > 1, isValidatingReceipts: validationOptions?.isValidatingReceipts ?? isValidatingReceipts}).then(
+                    (isValid) => (isValid ? file : null),
+                ),
+            ),
+        )
             .then((validationResults) => {
                 const filteredResults = validationResults.filter((result): result is FileObject => result !== null);
                 const pdfsToLoad = filteredResults.filter((file) => Str.isPDF(file.name ?? ''));
@@ -258,14 +274,18 @@ function useFilesValidation(proceedWithFilesAction: (files: FileObject[], dataTr
                         }
                     } else if (processedFiles.length > 0) {
                         const sortedFiles = sortFilesByOriginalOrder(processedFiles, originalFileOrder.current);
-                        proceedWithFilesAction(sortedFiles, dataTransferItemList.current);
+                        onFilesValidated(sortedFiles, dataTransferItemList.current);
                         resetValidationState();
                     }
                 }
             });
     };
 
-    const validateFiles = (files: FileObject[], items?: DataTransferItem[]) => {
+    const validateFiles = (files: FileObject[], items?: DataTransferItem[], validationOptions?: ValidationOptions) => {
+        if (validationOptions?.isValidatingReceipts) {
+            setIsValidatingReceipts(validationOptions.isValidatingReceipts);
+        }
+
         if (files.length > 1) {
             setIsValidatingMultipleFiles(true);
         }
@@ -276,7 +296,7 @@ function useFilesValidation(proceedWithFilesAction: (files: FileObject[], dataTr
             }
             setErrorAndOpenModal(CONST.FILE_VALIDATION_ERRORS.MAX_FILE_LIMIT_EXCEEDED);
         } else {
-            validateAndResizeFiles(files, items ?? []);
+            validateAndResizeFiles(files, items ?? [], validationOptions);
         }
     };
 
@@ -309,13 +329,13 @@ function useFilesValidation(proceedWithFilesAction: (files: FileObject[], dataTr
             // eslint-disable-next-line @typescript-eslint/no-deprecated
             InteractionManager.runAfterInteractions(() => {
                 if (sortedFiles.length !== 0) {
-                    proceedWithFilesAction(sortedFiles, dataTransferItemList.current);
+                    onFilesValidated(sortedFiles, dataTransferItemList.current);
                 }
                 resetValidationState();
             });
         } else {
             if (sortedFiles.length !== 0) {
-                proceedWithFilesAction(sortedFiles, dataTransferItemList.current);
+                onFilesValidated(sortedFiles, dataTransferItemList.current);
             }
             hideModalAndReset();
         }
@@ -350,7 +370,7 @@ function useFilesValidation(proceedWithFilesAction: (files: FileObject[], dataTr
           ))
         : undefined;
 
-    const getModalPrompt = useCallback(() => {
+    const getModalPrompt = () => {
         if (!fileError) {
             return '';
         }
@@ -364,7 +384,7 @@ function useFilesValidation(proceedWithFilesAction: (files: FileObject[], dataTr
             );
         }
         return prompt;
-    }, [fileError, invalidFileExtension, isValidatingReceipts, translate]);
+    };
 
     const ErrorModal = (
         <ConfirmModal
diff --git a/src/libs/fileDownload/FileUtils.ts b/src/libs/fileDownload/FileUtils.ts
index 54dd2d717b3a..de510337f64b 100644
--- a/src/libs/fileDownload/FileUtils.ts
+++ b/src/libs/fileDownload/FileUtils.ts
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-deprecated */
 import {Str} from 'expensify-common';
 import {Alert, Linking, Platform} from 'react-native';
 import type {ReactNativeBlobUtilReadStream} from 'react-native-blob-util';
@@ -549,18 +550,23 @@ const normalizeFileObject = (file: FileObject): Promise<FileObject> => {
         });
 };
 
-const validateAttachment = (file: FileObject, isCheckingMultipleFiles?: boolean, isValidatingReceipt?: boolean) => {
-    const maxFileSize = isValidatingReceipt ? CONST.API_ATTACHMENT_VALIDATIONS.RECEIPT_MAX_SIZE : CONST.API_ATTACHMENT_VALIDATIONS.MAX_SIZE;
+type ValidateAttachmentOptions = {
+    isValidatingReceipts?: boolean;
+    isCheckingMultipleFiles?: boolean;
+};
+
+const validateAttachment = (file: FileObject, validationOptions?: ValidateAttachmentOptions) => {
+    const maxFileSize = validationOptions?.isValidatingReceipts ? CONST.API_ATTACHMENT_VALIDATIONS.RECEIPT_MAX_SIZE : CONST.API_ATTACHMENT_VALIDATIONS.MAX_SIZE;
 
-    if (isValidatingReceipt && !isValidReceiptExtension(file)) {
-        return isCheckingMultipleFiles ? CONST.FILE_VALIDATION_ERRORS.WRONG_FILE_TYPE_MULTIPLE : CONST.FILE_VALIDATION_ERRORS.WRONG_FILE_TYPE;
+    if (validationOptions?.isValidatingReceipts && !isValidReceiptExtension(file)) {
+        return validationOptions?.isCheckingMultipleFiles ? CONST.FILE_VALIDATION_ERRORS.WRONG_FILE_TYPE_MULTIPLE : CONST.FILE_VALIDATION_ERRORS.WRONG_FILE_TYPE;
     }
 
     if (!Str.isImage(file.name ?? '') && !hasHeicOrHeifExtension(file) && (file?.size ?? 0) > maxFileSize) {
-        return isCheckingMultipleFiles ? CONST.FILE_VALIDATION_ERRORS.FILE_TOO_LARGE_MULTIPLE : CONST.FILE_VALIDATION_ERRORS.FILE_TOO_LARGE;
+        return validationOptions?.isCheckingMultipleFiles ? CONST.FILE_VALIDATION_ERRORS.FILE_TOO_LARGE_MULTIPLE : CONST.FILE_VALIDATION_ERRORS.FILE_TOO_LARGE;
     }
 
-    if (isValidatingReceipt && (file?.size ?? 0) < CONST.API_ATTACHMENT_VALIDATIONS.MIN_SIZE) {
+    if (validationOptions?.isValidatingReceipts && (file?.size ?? 0) < CONST.API_ATTACHMENT_VALIDATIONS.MIN_SIZE) {
         return CONST.FILE_VALIDATION_ERRORS.FILE_TOO_SMALL;
     }
 
@@ -777,3 +783,5 @@ export {
     cleanFileObject,
     cleanFileObjectName,
 };
+
+export type {ValidateAttachmentOptions};
diff --git a/src/pages/home/report/ReportActionCompose/useAttachmentUploadValidation.ts b/src/pages/home/report/ReportActionCompose/useAttachmentUploadValidation.ts
index 2dfe00ac8313..3add5f32a82a 100644
--- a/src/pages/home/report/ReportActionCompose/useAttachmentUploadValidation.ts
+++ b/src/pages/home/report/ReportActionCompose/useAttachmentUploadValidation.ts
@@ -116,7 +116,7 @@ function useAttachmentUploadValidation({
         );
     };
 
-    const {validateFiles, PDFValidationComponent, ErrorModal} = useFilesValidation(onFilesValidated, false);
+    const {validateFiles, PDFValidationComponent, ErrorModal} = useFilesValidation(onFilesValidated);
 
     const validateAttachments = useCallback(
         ({dragEvent, files}: {dragEvent?: DragEvent; files?: FileObject | FileObject[]}) => {
@@ -161,7 +161,7 @@ function useAttachmentUploadValidation({
             const filteredItems = dataTransferItems && validIndices.length > 0 ? validIndices.map((index) => dataTransferItems.at(index) ?? ({} as DataTransferItem)) : undefined;
 
             attachmentUploadType.current = 'attachment';
-            validateFiles(fileObjects, filteredItems);
+            validateFiles(fileObjects, filteredItems, {isValidatingReceipts: false});
         },
         [isAttachmentPreviewActive, validateFiles],
     );
@@ -187,7 +187,7 @@ function useAttachmentUploadValidation({
             }
 
             attachmentUploadType.current = 'receipt';
-            validateFiles(files, items);
+            validateFiles(files, items, {isValidatingReceipts: true});
         },
         [policy, shouldAddOrReplaceReceipt, transactionID, validateFiles],
     );
diff --git a/tests/unit/FileUtilsTest.ts b/tests/unit/FileUtilsTest.ts
index f1b3e05d47f6..45f02f338608 100644
--- a/tests/unit/FileUtilsTest.ts
+++ b/tests/unit/FileUtilsTest.ts
@@ -47,13 +47,13 @@ describe('FileUtils', () => {
     describe('validateAttachment', () => {
         it('should not return FILE_TOO_SMALL when validating small attachment', () => {
             const file = createMockFile('file.csv', CONST.API_ATTACHMENT_VALIDATIONS.MIN_SIZE - 1);
-            const error = FileUtils.validateAttachment(file, false, false);
+            const error = FileUtils.validateAttachment(file, {isCheckingMultipleFiles: false, isValidatingReceipts: false});
             expect(error).not.toBe(CONST.FILE_VALIDATION_ERRORS.FILE_TOO_SMALL);
         });
 
         it('should return FILE_TOO_SMALL when validating small receipt', () => {
             const file = createMockFile('receipt.jpg', CONST.API_ATTACHMENT_VALIDATIONS.MIN_SIZE - 1);
-            const error = FileUtils.validateAttachment(file, false, true);
+            const error = FileUtils.validateAttachment(file, {isCheckingMultipleFiles: false, isValidatingReceipts: true});
             expect(error).toBe(CONST.FILE_VALIDATION_ERRORS.FILE_TOO_SMALL);
         });
 
@@ -65,31 +65,31 @@ describe('FileUtils', () => {
 
         it('should return FILE_TOO_LARGE_MULTIPLE when checking multiple files', () => {
             const file = createMockFile('file.pdf', CONST.API_ATTACHMENT_VALIDATIONS.MAX_SIZE + 1);
-            const error = FileUtils.validateAttachment(file, true);
+            const error = FileUtils.validateAttachment(file, {isCheckingMultipleFiles: true, isValidatingReceipts: false});
             expect(error).toBe(CONST.FILE_VALIDATION_ERRORS.FILE_TOO_LARGE_MULTIPLE);
         });
 
         it('should return WRONG_FILE_TYPE for invalid receipt extension', () => {
             const file = createMockFile('receipt.exe', CONST.API_ATTACHMENT_VALIDATIONS.RECEIPT_MAX_SIZE - 1);
-            const error = FileUtils.validateAttachment(file, false, true);
+            const error = FileUtils.validateAttachment(file, {isCheckingMultipleFiles: false, isValidatingReceipts: true});
             expect(error).toBe(CONST.FILE_VALIDATION_ERRORS.WRONG_FILE_TYPE);
         });
 
         it('should prioritize WRONG_FILE_TYPE over FILE_TOO_LARGE for receipts', () => {
             const file = createMockFile('receipt.exe', CONST.API_ATTACHMENT_VALIDATIONS.RECEIPT_MAX_SIZE + 10);
-            const error = FileUtils.validateAttachment(file, false, true);
+            const error = FileUtils.validateAttachment(file, {isCheckingMultipleFiles: false, isValidatingReceipts: true});
             expect(error).toBe(CONST.FILE_VALIDATION_ERRORS.WRONG_FILE_TYPE);
         });
 
         it('should return WRONG_FILE_TYPE_MULTIPLE when checking multiple invalid receipt files', () => {
             const file = createMockFile('receipt.exe', CONST.API_ATTACHMENT_VALIDATIONS.RECEIPT_MAX_SIZE + 10);
-            const error = FileUtils.validateAttachment(file, true, true);
+            const error = FileUtils.validateAttachment(file, {isCheckingMultipleFiles: true, isValidatingReceipts: true});
             expect(error).toBe(CONST.FILE_VALIDATION_ERRORS.WRONG_FILE_TYPE_MULTIPLE);
         });
 
         it('should return empty string for valid image receipt', () => {
             const file = createMockFile('receipt.jpg', CONST.API_ATTACHMENT_VALIDATIONS.RECEIPT_MAX_SIZE - 1);
-            const error = FileUtils.validateAttachment(file, false, true);
+            const error = FileUtils.validateAttachment(file, {isCheckingMultipleFiles: false, isValidatingReceipts: true});
             expect(error).toBe('');
         });
     });
