diff --git a/src/app/api/upload/route.ts b/src/app/api/upload/route.ts index 50402ab..922f4c9 100644 --- a/src/app/api/upload/route.ts +++ b/src/app/api/upload/route.ts @@ -74,6 +74,12 @@ export async function POST(req: Request) { config = result.data } + // For all BANK accounts using a single amount column, positive = deposit (CREDIT), + // negative = withdrawal (DEBIT). Override whatever the profile or manual mapping says. + if (account.type === 'BANK' && config.strategy === 'A') { + config = { ...config, invertAmountSign: true } + } + const normalized = normalizeRows(allRows, accountId, config) // Apply transfer rules first, then budget rules (transfer takes priority) diff --git a/src/lib/csv/bank-profiles.ts b/src/lib/csv/bank-profiles.ts index 7c0a565..cb6b8aa 100644 --- a/src/lib/csv/bank-profiles.ts +++ b/src/lib/csv/bank-profiles.ts @@ -53,7 +53,7 @@ export const bankProfiles: BankProfile[] = [ descriptionColumn: 'Description', amountColumn: 'Amount', invertAmountSign: true, // negative = DEBIT (withdrawal), positive = CREDIT (deposit) - detectColumns: ['Date', 'Description', 'Amount'], + detectColumns: ['Date', 'Description', 'Amount', 'Split', 'Tags'], }, { id: 'fidelity',