From 84a793000c3ae4138c597e6fb98e58db973d289f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucien=20Akchot=C3=A9?= <lucien@expensify.com>
Date: Wed, 29 Apr 2026 19:05:53 +0200
Subject: [PATCH 01/17] remove add-new close date step constants

---
 src/CONST/index.ts | 2 --
 1 file changed, 2 deletions(-)

diff --git a/src/CONST/index.ts b/src/CONST/index.ts
index 6bc392a224c0..0893306e9729 100644
--- a/src/CONST/index.ts
+++ b/src/CONST/index.ts
@@ -4127,8 +4127,6 @@ const CONST = {
             AMEX_CUSTOM_FEED: 'AmexCustomFeed',
             SELECT_COUNTRY: 'SelectCountry',
             PLAID_CONNECTION: 'PlaidConnection',
-            SELECT_STATEMENT_CLOSE_DATE: 'SelectStatementCloseDate',
-            SELECT_DIRECT_STATEMENT_CLOSE_DATE: 'SelectDirectStatementCloseDate',
             IMPORT_FROM_FILE: 'ImportFromFile',
         },
         CARD_TYPE: {

From 99925e038cd02d376a588b4b55924fc01a5d7575 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucien=20Akchot=C3=A9?= <lucien@expensify.com>
Date: Wed, 29 Apr 2026 19:05:54 +0200
Subject: [PATCH 02/17] update plaid assign import call

---
 src/hooks/useAssignCard.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/hooks/useAssignCard.ts b/src/hooks/useAssignCard.ts
index 62448f225f3f..5a9061725293 100644
--- a/src/hooks/useAssignCard.ts
+++ b/src/hooks/useAssignCard.ts
@@ -175,7 +175,7 @@ function useInitialAssignCardStep({policyID, selectedFeed}: UseInitialAssignCard
         // Refetch plaid card list
         if (!isFeedExpired && plaidAccessToken && !hasImportedPlaidAccounts.current) {
             const country = feedData?.country ?? '';
-            importPlaidAccounts('', selectedFeed, '', country, getDomainNameForPolicy(policyID), '', undefined, undefined, plaidAccessToken);
+            importPlaidAccounts('', selectedFeed, '', country, getDomainNameForPolicy(policyID), '', plaidAccessToken);
             hasImportedPlaidAccounts.current = true;
         }
 

From 2f45cc1610dd19f7a7bae5b77ffb2c5c2b2f12f5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucien=20Akchot=C3=A9?= <lucien@expensify.com>
Date: Wed, 29 Apr 2026 19:05:54 +0200
Subject: [PATCH 03/17] update `useCardFeeds()` return data

---
 src/hooks/useCardFeeds.tsx | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/hooks/useCardFeeds.tsx b/src/hooks/useCardFeeds.tsx
index 6596f80851ce..dee8752f0562 100644
--- a/src/hooks/useCardFeeds.tsx
+++ b/src/hooks/useCardFeeds.tsx
@@ -20,8 +20,10 @@ import useWorkspaceAccountID from './useWorkspaceAccountID';
  *     1. Combined workspace and domain card feeds specific to the given policyID (or `undefined` if unavailable).
  *     2. The result metadata from the Onyx collection fetch.
  *     3. Card feeds specific to the given policyID (or `undefined` if unavailable).
+ *     4. Card feed status by domain ID.
+ *     5. Workspace account ID for the policy.
  */
-const useCardFeeds = (policyID: string | undefined): [CombinedCardFeeds | undefined, ResultMetadata<OnyxCollection<CardFeeds>>, CardFeeds | undefined, CardFeedsStatusByDomainID] => {
+const useCardFeeds = (policyID: string | undefined): [CombinedCardFeeds | undefined, ResultMetadata<OnyxCollection<CardFeeds>>, CardFeeds | undefined, CardFeedsStatusByDomainID, number] => {
     const workspaceAccountID = useWorkspaceAccountID(policyID);
     const [allFeeds, allFeedsResult] = useOnyx(ONYXKEYS.COLLECTION.SHARED_NVP_PRIVATE_DOMAIN_MEMBER);
     const feedKeysWithCards = useFeedKeysWithAssignedCards();
@@ -61,7 +63,7 @@ const useCardFeeds = (policyID: string | undefined): [CombinedCardFeeds | undefi
 
     const workspaceCardFeedsStatus = getWorkspaceCardFeedsStatus(allFeeds);
 
-    return [workspaceFeeds, allFeedsResult, defaultFeed, workspaceCardFeedsStatus];
+    return [workspaceFeeds, allFeedsResult, defaultFeed, workspaceCardFeedsStatus, workspaceAccountID];
 };
 
 export default useCardFeeds;

From 6b408a09e7258cae7ea56c1fee5045196739a457 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucien=20Akchot=C3=A9?= <lucien@expensify.com>
Date: Wed, 29 Apr 2026 19:05:55 +0200
Subject: [PATCH 04/17] update plaid import hook params

---
 src/hooks/useImportPlaidAccounts.ts | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/hooks/useImportPlaidAccounts.ts b/src/hooks/useImportPlaidAccounts.ts
index 02b223a31206..94b6840db761 100644
--- a/src/hooks/useImportPlaidAccounts.ts
+++ b/src/hooks/useImportPlaidAccounts.ts
@@ -13,13 +13,11 @@ export default function useImportPlaidAccounts(policyID?: string) {
     const plaidFeedName = addNewCard?.data?.plaidConnectedFeedName ?? assignCard?.cardToAssign?.plaidConnectedFeedName;
     const plaidAccounts = addNewCard?.data?.plaidAccounts ?? assignCard?.cardToAssign?.plaidAccounts;
     const country = addNewCard?.data?.selectedCountry;
-    const statementPeriodEnd = addNewCard?.data?.statementPeriodEnd;
-    const statementPeriodEndDay = addNewCard?.data?.statementPeriodEndDay;
 
     return useCallback(() => {
         if (!policyID || !plaidToken || !plaidFeed || !plaidFeedName || !country || !plaidAccounts?.length) {
             return;
         }
-        importPlaidAccounts(plaidToken, plaidFeed, plaidFeedName, country, getDomainNameForPolicy(policyID), JSON.stringify(plaidAccounts), statementPeriodEnd, statementPeriodEndDay, '');
-    }, [statementPeriodEnd, statementPeriodEndDay, country, plaidAccounts, plaidFeed, plaidFeedName, plaidToken, policyID]);
+        importPlaidAccounts(plaidToken, plaidFeed, plaidFeedName, country, getDomainNameForPolicy(policyID), JSON.stringify(plaidAccounts), '');
+    }, [country, plaidAccounts, plaidFeed, plaidFeedName, plaidToken, policyID]);
 }

From c304bc18a2c347a94509cc07756baaf9699f4262 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucien=20Akchot=C3=A9?= <lucien@expensify.com>
Date: Wed, 29 Apr 2026 19:05:55 +0200
Subject: [PATCH 05/17] update add-feed guard return data

---
 src/hooks/useIsBlockedToAddFeed.ts | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/hooks/useIsBlockedToAddFeed.ts b/src/hooks/useIsBlockedToAddFeed.ts
index 88a52a9bb356..036afcb11267 100644
--- a/src/hooks/useIsBlockedToAddFeed.ts
+++ b/src/hooks/useIsBlockedToAddFeed.ts
@@ -19,7 +19,7 @@ import usePolicy from './usePolicy';
  */
 function useIsBlockedToAddFeed(policyID?: string) {
     const policy = usePolicy(policyID);
-    const [cardFeeds, allFeedsResult, defaultFeed] = useCardFeeds(policyID);
+    const [cardFeeds, allFeedsResult, defaultFeed, , workspaceAccountID] = useCardFeeds(policyID);
     const companyFeeds = getCompanyFeeds(cardFeeds, true);
     const isCollect = isCollectPolicy(policy);
     const isAllFeedsResultLoading = isLoadingOnyxValue(allFeedsResult);
@@ -39,6 +39,8 @@ function useIsBlockedToAddFeed(policyID?: string) {
     return {
         isBlockedToAddNewFeeds: isCollect && !isLoading && prevCompanyFeedsLength >= 1,
         isAllFeedsResultLoading: isCollect && (isLoading || isAllFeedsResultLoading),
+        cardFeeds,
+        workspaceAccountID,
     };
 }
 

From 1ea1338900f5dd1acb0504459616e4636811d1b7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucien=20Akchot=C3=A9?= <lucien@expensify.com>
Date: Wed, 29 Apr 2026 19:05:55 +0200
Subject: [PATCH 06/17] remove plaid close date params

---
 src/libs/API/parameters/ImportPlaidAccountsParams.ts | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/src/libs/API/parameters/ImportPlaidAccountsParams.ts b/src/libs/API/parameters/ImportPlaidAccountsParams.ts
index bc13b5b0dfee..12a1c231bca1 100644
--- a/src/libs/API/parameters/ImportPlaidAccountsParams.ts
+++ b/src/libs/API/parameters/ImportPlaidAccountsParams.ts
@@ -1,5 +1,3 @@
-import type {StatementPeriodEnd, StatementPeriodEndDay} from '@src/types/onyx/CardFeeds';
-
 type ImportPlaidAccountsParams = {
     publicToken: string;
     feed: string;
@@ -7,8 +5,6 @@ type ImportPlaidAccountsParams = {
     country: string;
     domainName: string;
     plaidAccounts: string;
-    statementPeriodEnd?: StatementPeriodEnd;
-    statementPeriodEndDay?: StatementPeriodEndDay;
     plaidAccessToken?: string;
 };
 

From 197b80f57a617635be3246a9784816259ac13659 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucien=20Akchot=C3=A9?= <lucien@expensify.com>
Date: Wed, 29 Apr 2026 19:05:55 +0200
Subject: [PATCH 07/17] remove feed setup close date params

---
 src/libs/API/parameters/RequestFeedSetupParams.ts | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/src/libs/API/parameters/RequestFeedSetupParams.ts b/src/libs/API/parameters/RequestFeedSetupParams.ts
index 1b505f195826..59a6dd4e237c 100644
--- a/src/libs/API/parameters/RequestFeedSetupParams.ts
+++ b/src/libs/API/parameters/RequestFeedSetupParams.ts
@@ -1,11 +1,7 @@
-import type {StatementPeriodEnd, StatementPeriodEndDay} from '@src/types/onyx/CardFeeds';
-
 type RequestFeedSetupParams = {
     policyID: string;
     feedDetails: string;
     feedType: string;
-    statementPeriodEnd?: StatementPeriodEnd;
-    statementPeriodEndDay?: StatementPeriodEndDay;
 };
 
 export default RequestFeedSetupParams;

From 61c8353c414774980a58fc291ac01588139667f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucien=20Akchot=C3=A9?= <lucien@expensify.com>
Date: Wed, 29 Apr 2026 19:05:56 +0200
Subject: [PATCH 08/17] remove close date params from feed setup

---
 src/libs/actions/CompanyCards.ts | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/src/libs/actions/CompanyCards.ts b/src/libs/actions/CompanyCards.ts
index 01b4e0996252..b2be393975e7 100644
--- a/src/libs/actions/CompanyCards.ts
+++ b/src/libs/actions/CompanyCards.ts
@@ -180,8 +180,6 @@ function addNewCompanyCardsFeed(
     cardFeed: CompanyCardFeed,
     feedDetails: CardFeedDetails,
     cardFeeds: OnyxEntry<CombinedCardFeeds>,
-    statementPeriodEnd: StatementPeriodEnd | undefined,
-    statementPeriodEndDay: StatementPeriodEndDay | undefined,
     lastSelectedFeed?: CompanyCardFeedWithDomainID,
 ) {
     if (!policyID) {
@@ -205,7 +203,6 @@ function addNewCompanyCardsFeed(
                 settings: {
                     companyCards: {
                         [feedType]: {
-                            statementPeriodEndDay: statementPeriodEndDay ?? statementPeriodEnd ?? null,
                             errors: null,
                         },
                     },
@@ -252,8 +249,6 @@ function addNewCompanyCardsFeed(
                   .map(([key, value]) => `${key}: ${value}`)
                   .join(', ')
             : '',
-        statementPeriodEnd,
-        statementPeriodEndDay,
     };
 
     API.write(WRITE_COMMANDS.REQUEST_FEED_SETUP, parameters, {optimisticData, failureData, finallyData});

From e7e736e62e0abe9113e481264fd577b1130071b6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucien=20Akchot=C3=A9?= <lucien@expensify.com>
Date: Wed, 29 Apr 2026 19:05:56 +0200
Subject: [PATCH 09/17] remove close date params from plaid import

---
 src/libs/actions/Plaid.ts | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/src/libs/actions/Plaid.ts b/src/libs/actions/Plaid.ts
index eb0d6f59ff54..b6ae3c7433ec 100644
--- a/src/libs/actions/Plaid.ts
+++ b/src/libs/actions/Plaid.ts
@@ -7,7 +7,7 @@ import {getCompanyCardFeed} from '@libs/CardUtils';
 import getPlaidLinkTokenParameters from '@libs/getPlaidLinkTokenParameters';
 import CONST from '@src/CONST';
 import ONYXKEYS from '@src/ONYXKEYS';
-import type {CardFeedWithDomainID, CardFeedWithNumber, CompanyCardFeedWithDomainID, StatementPeriodEnd, StatementPeriodEndDay} from '@src/types/onyx/CardFeeds';
+import type {CardFeedWithDomainID, CardFeedWithNumber, CompanyCardFeedWithDomainID} from '@src/types/onyx/CardFeeds';
 
 /**
  * Gets the Plaid Link token used to initialize the Plaid SDK
@@ -146,8 +146,6 @@ function importPlaidAccounts(
     country: string,
     domainName: string,
     plaidAccounts: string,
-    statementPeriodEnd: StatementPeriodEnd | undefined,
-    statementPeriodEndDay: StatementPeriodEndDay | undefined,
     plaidAccessToken: string | undefined,
 ) {
     const parameters: ImportPlaidAccountsParams = {
@@ -157,8 +155,6 @@ function importPlaidAccounts(
         country,
         domainName,
         plaidAccounts,
-        statementPeriodEnd,
-        statementPeriodEndDay,
         plaidAccessToken,
     };
 

From 5e910852a195cc91e99313286d492922746cf8b4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucien=20Akchot=C3=A9?= <lucien@expensify.com>
Date: Wed, 29 Apr 2026 19:05:56 +0200
Subject: [PATCH 10/17] skip close date after native bank connect

---
 .../companyCards/BankConnection/index.native.tsx     | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/src/pages/workspace/companyCards/BankConnection/index.native.tsx b/src/pages/workspace/companyCards/BankConnection/index.native.tsx
index db09f8aa7a0c..324fb3d80da7 100644
--- a/src/pages/workspace/companyCards/BankConnection/index.native.tsx
+++ b/src/pages/workspace/companyCards/BankConnection/index.native.tsx
@@ -143,15 +143,9 @@ function BankConnection({policyID: policyIDFromProps, feed, route, title}: BankC
                 updateSelectedFeed(newFeed, policyID);
             }
 
-            // Direct feeds (except those added via Plaid) are created with default statement period end date.
-            // Redirect the user to set a custom date.
-            if (policyID && !isPlaid) {
-                setAddNewCompanyCardStepAndData({
-                    step: CONST.COMPANY_CARDS.STEP.SELECT_DIRECT_STATEMENT_CLOSE_DATE,
-                });
-            } else {
-                Navigation.goBack(ROUTES.WORKSPACE_COMPANY_CARDS.getRoute(policyID));
-            }
+            Navigation.closeRHPFlow();
+            Navigation.navigate(ROUTES.WORKSPACE_COMPANY_CARDS.getRoute(policyID), {forceReplace: true});
+            return;
         }
         if (isPlaid) {
             onImportPlaidAccounts();

From e0531a7322830a940c76608f4481a9b70ce50964 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucien=20Akchot=C3=A9?= <lucien@expensify.com>
Date: Wed, 29 Apr 2026 19:05:57 +0200
Subject: [PATCH 11/17] skip close date after bank connect

---
 .../workspace/companyCards/BankConnection/index.tsx  | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/src/pages/workspace/companyCards/BankConnection/index.tsx b/src/pages/workspace/companyCards/BankConnection/index.tsx
index 91aea689d9ae..a0f6c335d18b 100644
--- a/src/pages/workspace/companyCards/BankConnection/index.tsx
+++ b/src/pages/workspace/companyCards/BankConnection/index.tsx
@@ -156,16 +156,8 @@ function BankConnection({policyID: policyIDFromProps, feed, route, title}: BankC
                 updateSelectedFeed(newFeed, policyID);
             }
 
-            // Direct feeds (except those added via Plaid) are created with default statement period end date.
-            // Redirect the user to set a custom date.
-            if (policyID && !isPlaid) {
-                setAddNewCompanyCardStepAndData({
-                    step: CONST.COMPANY_CARDS.STEP.SELECT_DIRECT_STATEMENT_CLOSE_DATE,
-                });
-            } else {
-                Navigation.closeRHPFlow();
-                Navigation.navigate(ROUTES.WORKSPACE_COMPANY_CARDS.getRoute(policyID), {forceReplace: true});
-            }
+            Navigation.closeRHPFlow();
+            Navigation.navigate(ROUTES.WORKSPACE_COMPANY_CARDS.getRoute(policyID), {forceReplace: true});
             return;
         }
         if (!shouldBlockWindowOpen) {

From e5626501b87f12195a58104fda9d7b94d465f551 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucien=20Akchot=C3=A9?= <lucien@expensify.com>
Date: Wed, 29 Apr 2026 19:05:57 +0200
Subject: [PATCH 12/17] remove add-new close date steps

---
 .../companyCards/addNew/AddNewCardPage.tsx    | 25 ++++++-------------
 1 file changed, 8 insertions(+), 17 deletions(-)

diff --git a/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx b/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx
index 7ef73276f4e1..afc190033fe0 100644
--- a/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx
+++ b/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx
@@ -11,7 +11,6 @@ import useIsBlockedToAddFeed from '@hooks/useIsBlockedToAddFeed';
 import useLocalize from '@hooks/useLocalize';
 import useOnyx from '@hooks/useOnyx';
 import useThemeStyles from '@hooks/useThemeStyles';
-import useWorkspaceAccountID from '@hooks/useWorkspaceAccountID';
 import {navigateToConciergeChat} from '@libs/actions/Report';
 import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan';
 import Navigation from '@navigation/Navigation';
@@ -29,21 +28,18 @@ import CardInstructionsStep from './CardInstructionsStep';
 import CardNameStep from './CardNameStep';
 import CardTypeStep from './CardTypeStep';
 import DetailsStep from './DetailsStep';
-import DirectStatementCloseDateStep from './DirectStatementCloseDatePage';
 import ImportFromFileStep from './ImportFromFileStep';
 import PlaidConnectionStep from './PlaidConnectionStep';
 import SelectBankStep from './SelectBankStep';
 import SelectCountryStep from './SelectCountryStep';
 import SelectFeedType from './SelectFeedType';
-import StatementCloseDateStep from './StatementCloseDateStep';
 
 function AddNewCardPage({policy}: WithPolicyAndFullscreenLoadingProps) {
     const policyID = policy?.id;
     const styles = useThemeStyles();
-    const workspaceAccountID = useWorkspaceAccountID(policyID);
     const [addNewCardFeed, addNewCardFeedMetadata] = useOnyx(ONYXKEYS.ADD_NEW_COMPANY_CARD);
     const {currentStep} = addNewCardFeed ?? {};
-    const {isBlockedToAddNewFeeds, isAllFeedsResultLoading} = useIsBlockedToAddFeed(policyID);
+    const {isBlockedToAddNewFeeds, isAllFeedsResultLoading, cardFeeds, workspaceAccountID} = useIsBlockedToAddFeed(policyID);
     const [isModalVisible, setIsModalVisible] = useState(false);
     const {translate} = useLocalize();
     const [conciergeReportID] = useOnyx(ONYXKEYS.CONCIERGE_REPORT_ID);
@@ -121,24 +117,19 @@ function AddNewCardPage({policy}: WithPolicyAndFullscreenLoadingProps) {
             CurrentStep = <CardNameStep />;
             break;
         case CONST.COMPANY_CARDS.STEP.CARD_DETAILS:
-            CurrentStep = <DetailsStep />;
-            break;
-        case CONST.COMPANY_CARDS.STEP.AMEX_CUSTOM_FEED:
-            CurrentStep = <AmexCustomFeed />;
-            break;
-        case CONST.COMPANY_CARDS.STEP.PLAID_CONNECTION:
-            CurrentStep = <PlaidConnectionStep onExit={() => setIsModalVisible(true)} />;
-            break;
-        case CONST.COMPANY_CARDS.STEP.SELECT_STATEMENT_CLOSE_DATE:
             CurrentStep = (
-                <StatementCloseDateStep
+                <DetailsStep
                     policyID={policyID}
+                    cardFeeds={cardFeeds}
                     workspaceAccountID={workspaceAccountID}
                 />
             );
             break;
-        case CONST.COMPANY_CARDS.STEP.SELECT_DIRECT_STATEMENT_CLOSE_DATE:
-            CurrentStep = <DirectStatementCloseDateStep policyID={policyID} />;
+        case CONST.COMPANY_CARDS.STEP.AMEX_CUSTOM_FEED:
+            CurrentStep = <AmexCustomFeed />;
+            break;
+        case CONST.COMPANY_CARDS.STEP.PLAID_CONNECTION:
+            CurrentStep = <PlaidConnectionStep onExit={() => setIsModalVisible(true)} />;
             break;
         case CONST.COMPANY_CARDS.STEP.IMPORT_FROM_FILE:
             CurrentStep = <ImportFromFileStep />;

From 620184b36a1e294e6da52594cfe84638a0499d03 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucien=20Akchot=C3=A9?= <lucien@expensify.com>
Date: Wed, 29 Apr 2026 19:05:57 +0200
Subject: [PATCH 13/17] update details step feed submit

---
 .../companyCards/addNew/DetailsStep.tsx       | 26 ++++++++++++++++---
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/src/pages/workspace/companyCards/addNew/DetailsStep.tsx b/src/pages/workspace/companyCards/addNew/DetailsStep.tsx
index 96da65053319..dd8a7419948e 100644
--- a/src/pages/workspace/companyCards/addNew/DetailsStep.tsx
+++ b/src/pages/workspace/companyCards/addNew/DetailsStep.tsx
@@ -10,19 +10,35 @@ import Text from '@components/Text';
 import TextInput from '@components/TextInput';
 import TextLink from '@components/TextLink';
 import useAutoFocusInput from '@hooks/useAutoFocusInput';
+import type {CombinedCardFeeds} from '@hooks/useCardFeeds';
 import {useMemoizedLazyExpensifyIcons} from '@hooks/useLazyAsset';
 import useLocalize from '@hooks/useLocalize';
 import useOnyx from '@hooks/useOnyx';
 import useTheme from '@hooks/useTheme';
 import useThemeStyles from '@hooks/useThemeStyles';
+import {addNewCompanyCardsFeed} from '@libs/actions/CompanyCards';
+import {getBankName} from '@libs/CardUtils';
+import Navigation from '@libs/Navigation/Navigation';
 import {getFieldRequiredErrors} from '@libs/ValidationUtils';
 import variables from '@styles/variables';
 import {setAddNewCompanyCardStepAndData} from '@userActions/CompanyCards';
 import CONST from '@src/CONST';
 import ONYXKEYS from '@src/ONYXKEYS';
+import ROUTES from '@src/ROUTES';
 import INPUT_IDS from '@src/types/form/AddNewCardFeedForm';
 
-function DetailsStep() {
+type DetailsStepProps = {
+    /** ID of the current policy */
+    policyID?: string;
+
+    /** Existing card feeds for the current policy */
+    cardFeeds?: CombinedCardFeeds;
+
+    /** Workspace account ID of the current policy */
+    workspaceAccountID: number;
+};
+
+function DetailsStep({policyID, cardFeeds, workspaceAccountID}: DetailsStepProps) {
     const {translate} = useLocalize();
     const theme = useTheme();
     const styles = useThemeStyles();
@@ -30,6 +46,7 @@ function DetailsStep() {
     const icons = useMemoizedLazyExpensifyIcons(['QuestionMark']);
 
     const [addNewCard] = useOnyx(ONYXKEYS.ADD_NEW_COMPANY_CARD);
+    const [lastSelectedFeed] = useOnyx(`${ONYXKEYS.COLLECTION.LAST_SELECTED_FEED}${policyID}`);
 
     const feedProvider = addNewCard?.data?.feedType;
     const isStripeFeedProvider = feedProvider === CONST.COMPANY_CARD.FEED_BANK_NAME.STRIPE;
@@ -37,16 +54,17 @@ function DetailsStep() {
     const isOtherBankSelected = bank === CONST.COMPANY_CARDS.BANKS.OTHER;
 
     const submit = (values: FormOnyxValues<typeof ONYXKEYS.FORMS.ADD_NEW_CARD_FEED_FORM>) => {
-        if (!addNewCard?.data) {
+        if (!addNewCard?.data?.feedType) {
             return;
         }
 
         const feedDetails = {
             ...values,
-            bankName: addNewCard.data.bankName ?? 'Amex',
+            bankName: addNewCard.data.bankName ?? getBankName(addNewCard.data.feedType),
         };
 
-        setAddNewCompanyCardStepAndData({step: CONST.COMPANY_CARDS.STEP.SELECT_STATEMENT_CLOSE_DATE, data: {feedDetails}});
+        addNewCompanyCardsFeed(policyID, workspaceAccountID, addNewCard.data.feedType, feedDetails, cardFeeds, lastSelectedFeed);
+        Navigation.goBack(ROUTES.WORKSPACE_COMPANY_CARDS.getRoute(policyID));
     };
 
     const handleBackButtonPress = () => {

From 6ba324768f74c6b1af0e68f30a588fa5de21240c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucien=20Akchot=C3=A9?= <lucien@expensify.com>
Date: Wed, 29 Apr 2026 19:05:57 +0200
Subject: [PATCH 14/17] remove direct close date step

---
 .../addNew/DirectStatementCloseDatePage.tsx   | 97 -------------------
 1 file changed, 97 deletions(-)
 delete mode 100644 src/pages/workspace/companyCards/addNew/DirectStatementCloseDatePage.tsx

diff --git a/src/pages/workspace/companyCards/addNew/DirectStatementCloseDatePage.tsx b/src/pages/workspace/companyCards/addNew/DirectStatementCloseDatePage.tsx
deleted file mode 100644
index f53dfa794473..000000000000
--- a/src/pages/workspace/companyCards/addNew/DirectStatementCloseDatePage.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-import React, {useCallback, useMemo} from 'react';
-import FullScreenLoadingIndicator from '@components/FullscreenLoadingIndicator';
-import useCardFeeds from '@hooks/useCardFeeds';
-import useLocalize from '@hooks/useLocalize';
-import useOnyx from '@hooks/useOnyx';
-import useWorkspaceAccountID from '@hooks/useWorkspaceAccountID';
-import {clearErrorField, setFeedStatementPeriodEndDay} from '@libs/actions/CompanyCards';
-import {getCompanyCardFeed, getCompanyFeeds, getDomainOrWorkspaceAccountID, getSelectedFeed} from '@libs/CardUtils';
-import Navigation from '@libs/Navigation/Navigation';
-import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan';
-import WorkspaceCompanyCardStatementCloseDateSelectionList from '@pages/workspace/companyCards/WorkspaceCompanyCardStatementCloseDateSelectionList';
-import ONYXKEYS from '@src/ONYXKEYS';
-import ROUTES from '@src/ROUTES';
-import type {StatementPeriodEnd, StatementPeriodEndDay} from '@src/types/onyx/CardFeeds';
-import isLoadingOnyxValue from '@src/types/utils/isLoadingOnyxValue';
-
-type DirectStatementCloseDateStepProps = {
-    /** ID of the current policy */
-    policyID?: string;
-};
-function DirectStatementCloseDateStep({policyID}: DirectStatementCloseDateStepProps) {
-    const {translate} = useLocalize();
-    const [lastSelectedFeed, lastSelectedFeedResult] = useOnyx(`${ONYXKEYS.COLLECTION.LAST_SELECTED_FEED}${policyID}`);
-    const [cardFeeds, cardFeedsResult] = useCardFeeds(policyID);
-    const selectedFeed = getSelectedFeed(lastSelectedFeed, cardFeeds);
-    const feed = selectedFeed ? getCompanyCardFeed(selectedFeed) : undefined;
-    const workspaceAccountID = useWorkspaceAccountID(policyID);
-    const companyFeeds = getCompanyFeeds(cardFeeds);
-    const selectedFeedData = selectedFeed ? companyFeeds[selectedFeed] : undefined;
-    const domainOrWorkspaceAccountID = getDomainOrWorkspaceAccountID(workspaceAccountID, selectedFeedData);
-    const statementPeriodEndDay = selectedFeedData?.statementPeriodEndDay;
-
-    const [defaultStatementPeriodEnd, defaultStatementPeriodEndDay] = useMemo(() => {
-        if (!statementPeriodEndDay) {
-            return [undefined, undefined];
-        }
-
-        if (typeof statementPeriodEndDay === 'number') {
-            return [undefined, statementPeriodEndDay];
-        }
-
-        return [statementPeriodEndDay, undefined];
-    }, [statementPeriodEndDay]);
-
-    const goBack = useCallback(() => {
-        Navigation.closeRHPFlow();
-        Navigation.navigate(ROUTES.WORKSPACE_COMPANY_CARDS.getRoute(policyID), {forceReplace: true});
-    }, [policyID]);
-
-    const submit = useCallback(
-        (newStatementPeriodEnd: StatementPeriodEnd | undefined, newStatementPeriodEndDay: StatementPeriodEndDay | undefined) => {
-            if (!policyID) {
-                return;
-            }
-            const isChangedValue = (newStatementPeriodEndDay ?? newStatementPeriodEnd) !== statementPeriodEndDay;
-            if (feed && isChangedValue) {
-                setFeedStatementPeriodEndDay(policyID, feed, domainOrWorkspaceAccountID, newStatementPeriodEnd, newStatementPeriodEndDay, statementPeriodEndDay);
-            }
-
-            goBack();
-        },
-        [policyID, statementPeriodEndDay, goBack, feed, domainOrWorkspaceAccountID],
-    );
-
-    const clearError = useCallback(() => {
-        if (!feed) {
-            return;
-        }
-
-        clearErrorField(feed, domainOrWorkspaceAccountID, 'statementPeriodEndDay');
-    }, [feed, domainOrWorkspaceAccountID]);
-
-    if (isLoadingOnyxValue(cardFeedsResult) || isLoadingOnyxValue(lastSelectedFeedResult)) {
-        const reasonAttributes: SkeletonSpanReasonAttributes = {
-            context: 'DirectStatementCloseDatePage',
-            isCardFeedsLoading: isLoadingOnyxValue(cardFeedsResult),
-            isLastSelectedFeedLoading: isLoadingOnyxValue(lastSelectedFeedResult),
-        };
-        return <FullScreenLoadingIndicator reasonAttributes={reasonAttributes} />;
-    }
-
-    return (
-        <WorkspaceCompanyCardStatementCloseDateSelectionList
-            confirmText={translate('common.apply')}
-            onSubmit={submit}
-            onBackButtonPress={goBack}
-            enabledWhenOffline
-            defaultStatementPeriodEnd={defaultStatementPeriodEnd}
-            defaultStatementPeriodEndDay={defaultStatementPeriodEndDay}
-            pendingAction={selectedFeedData?.pendingFields?.statementPeriodEndDay}
-            errors={selectedFeedData?.errorFields?.statementPeriodEndDay}
-            onCloseError={clearError}
-        />
-    );
-}
-
-export default DirectStatementCloseDateStep;

From 15802342a2c6ff766797da90fe9d2f1f975c95ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucien=20Akchot=C3=A9?= <lucien@expensify.com>
Date: Wed, 29 Apr 2026 19:05:58 +0200
Subject: [PATCH 15/17] send plaid setup to bank connection

---
 .../workspace/companyCards/addNew/PlaidConnectionStep.tsx     | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/pages/workspace/companyCards/addNew/PlaidConnectionStep.tsx b/src/pages/workspace/companyCards/addNew/PlaidConnectionStep.tsx
index aa1c300880ee..ee7ceff0be49 100644
--- a/src/pages/workspace/companyCards/addNew/PlaidConnectionStep.tsx
+++ b/src/pages/workspace/companyCards/addNew/PlaidConnectionStep.tsx
@@ -142,8 +142,6 @@ function PlaidConnectionStep({feed, policyID, onExit, title}: PlaidConnectionSte
                                     addNewCard.data.selectedCountry,
                                     getDomainNameForPolicy(policyID),
                                     JSON.stringify(metadata?.accounts),
-                                    addNewCard.data.statementPeriodEnd,
-                                    addNewCard.data.statementPeriodEndDay,
                                     '',
                                 );
                                 // eslint-disable-next-line @typescript-eslint/no-deprecated
@@ -173,7 +171,7 @@ function PlaidConnectionStep({feed, policyID, onExit, title}: PlaidConnectionSte
                         }
 
                         setAddNewCompanyCardStepAndData({
-                            step: CONST.COMPANY_CARDS.STEP.SELECT_STATEMENT_CLOSE_DATE,
+                            step: CONST.COMPANY_CARDS.STEP.BANK_CONNECTION,
                             data: {
                                 publicToken,
                                 plaidConnectedFeed,

From 92644756f880882e4302f140c28efca6b5694c1d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucien=20Akchot=C3=A9?= <lucien@expensify.com>
Date: Wed, 29 Apr 2026 19:05:58 +0200
Subject: [PATCH 16/17] remove add-new close date step

---
 .../addNew/StatementCloseDateStep.tsx         | 69 -------------------
 1 file changed, 69 deletions(-)
 delete mode 100644 src/pages/workspace/companyCards/addNew/StatementCloseDateStep.tsx

diff --git a/src/pages/workspace/companyCards/addNew/StatementCloseDateStep.tsx b/src/pages/workspace/companyCards/addNew/StatementCloseDateStep.tsx
deleted file mode 100644
index 09d3d3be799b..000000000000
--- a/src/pages/workspace/companyCards/addNew/StatementCloseDateStep.tsx
+++ /dev/null
@@ -1,69 +0,0 @@
-import React from 'react';
-import useOnyx from 'react-native-onyx/dist/useOnyx';
-import useCardFeeds from '@hooks/useCardFeeds';
-import useLocalize from '@hooks/useLocalize';
-import {addNewCompanyCardsFeed, setAddNewCompanyCardStepAndData} from '@libs/actions/CompanyCards';
-import Navigation from '@libs/Navigation/Navigation';
-import WorkspaceCompanyCardStatementCloseDateSelectionList from '@pages/workspace/companyCards/WorkspaceCompanyCardStatementCloseDateSelectionList';
-import CONST from '@src/CONST';
-import ONYXKEYS from '@src/ONYXKEYS';
-import ROUTES from '@src/ROUTES';
-import type {StatementPeriodEnd, StatementPeriodEndDay} from '@src/types/onyx/CardFeeds';
-
-type StatementCloseDateStepProps = {
-    /** ID of the current policy */
-    policyID: string | undefined;
-
-    /** Workspace account ID of the current policy */
-    workspaceAccountID: number;
-};
-
-function StatementCloseDateStep({policyID, workspaceAccountID}: StatementCloseDateStepProps) {
-    const {translate} = useLocalize();
-    const [addNewCard] = useOnyx(ONYXKEYS.ADD_NEW_COMPANY_CARD);
-    const [lastSelectedFeed] = useOnyx(`${ONYXKEYS.COLLECTION.LAST_SELECTED_FEED}${policyID}`);
-    const [cardFeeds] = useCardFeeds(policyID);
-
-    const isPlaid = !!addNewCard?.data?.publicToken;
-
-    const submit = (statementPeriodEnd: StatementPeriodEnd | undefined, statementPeriodEndDay: StatementPeriodEndDay | undefined) => {
-        if (isPlaid) {
-            setAddNewCompanyCardStepAndData({
-                step: CONST.COMPANY_CARDS.STEP.BANK_CONNECTION,
-                // Fallback to null to clear old value (if any) because `undefined` is a no-op in Onyx.merge
-                data: {statementPeriodEnd: statementPeriodEnd ?? null, statementPeriodEndDay: statementPeriodEndDay ?? null},
-            });
-            return;
-        }
-
-        if (addNewCard?.data.feedDetails) {
-            addNewCompanyCardsFeed(
-                policyID,
-                workspaceAccountID,
-                addNewCard.data.feedType,
-                addNewCard.data.feedDetails,
-                cardFeeds,
-                statementPeriodEnd,
-                statementPeriodEndDay,
-                lastSelectedFeed,
-            );
-            Navigation.goBack(ROUTES.WORKSPACE_COMPANY_CARDS.getRoute(policyID));
-        }
-    };
-
-    const goBack = () => {
-        setAddNewCompanyCardStepAndData({step: isPlaid ? CONST.COMPANY_CARDS.STEP.PLAID_CONNECTION : CONST.COMPANY_CARDS.STEP.CARD_DETAILS});
-    };
-
-    return (
-        <WorkspaceCompanyCardStatementCloseDateSelectionList
-            confirmText={translate('common.submit')}
-            onSubmit={submit}
-            onBackButtonPress={goBack}
-            enabledWhenOffline={false}
-            defaultStatementPeriodEnd={CONST.COMPANY_CARDS.STATEMENT_CLOSE_DATE.LAST_DAY_OF_MONTH}
-        />
-    );
-}
-
-export default StatementCloseDateStep;

From 93dbcfe5269837e4ff4bc1902e6045c9e5ad1c31 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lucien=20Akchot=C3=A9?= <lucien@expensify.com>
Date: Wed, 29 Apr 2026 19:05:58 +0200
Subject: [PATCH 17/17] remove add-new close date fields

---
 src/types/onyx/CardFeeds.ts | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/src/types/onyx/CardFeeds.ts b/src/types/onyx/CardFeeds.ts
index 318aaedd8009..22240a94d603 100644
--- a/src/types/onyx/CardFeeds.ts
+++ b/src/types/onyx/CardFeeds.ts
@@ -273,12 +273,6 @@ type AddNewCardFeedData = {
     /** Name of the card */
     cardTitle: string;
 
-    /** Indicates the day (preset value) when the statement period for this card ends */
-    statementPeriodEnd?: StatementPeriodEnd;
-
-    /** Indicates the day (custom day) when the statement period for this card ends */
-    statementPeriodEndDay?: StatementPeriodEndDay;
-
     /** Selected bank */
     selectedBank: ValueOf<typeof CONST.COMPANY_CARDS.BANKS> | null;
 
