From e3a7d91baa2f3b1650d6a15b6df6de0162e9416b Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Tue, 13 Jan 2026 23:15:37 +0100 Subject: [PATCH] fix: detect Kraken transactions immediately to prevent balance dip (#2932) The getType() method was checking for 'Payward Ltd.' but Kraken's actual bank name is 'Payward Trading Ltd.'. This caused new DEBIT transactions to Kraken to have type=null, making them invisible to the balance calculation until assignTransactions() ran later. Changes: - Fix getType() to check for 'Payward Trading' (the actual name) - Call getType() in create() for Yapeal webhook transactions - Refactor assignTransactions() to reuse getType() for consistency Now all BankTx (SEPA import, Yapeal webhook, Olky) get the correct type immediately upon creation. --- .../bank-tx/bank-tx/services/bank-tx.service.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/subdomains/supporting/bank-tx/bank-tx/services/bank-tx.service.ts b/src/subdomains/supporting/bank-tx/bank-tx/services/bank-tx.service.ts index 5c217f21d5..e92b81fddc 100644 --- a/src/subdomains/supporting/bank-tx/bank-tx/services/bank-tx.service.ts +++ b/src/subdomains/supporting/bank-tx/bank-tx/services/bank-tx.service.ts @@ -226,10 +226,7 @@ export class BankTxService implements OnModuleInit { if (await this.bankTxRepo.existsBy({ id: tx.id, type: Not(IsNull()) })) continue; - await this.updateInternal( - tx, - tx.name === 'Payward Trading Ltd.' ? { type: BankTxType.KRAKEN } : { type: BankTxType.GSHEET }, - ); + await this.updateInternal(tx, { type: this.getType(tx) ?? BankTxType.GSHEET }); } catch (e) { this.logger.error(`Error during bankTx ${tx.id} assign:`, e); } @@ -294,6 +291,7 @@ export class BankTxService implements OnModuleInit { throw new ConflictException(`There is already a bank tx with the accountServiceRef: ${bankTx.accountServiceRef}`); entity = this.createTx(bankTx, multiAccounts); + entity.type = this.getType(entity); entity.transaction = await this.transactionService.create({ sourceType: TransactionSourceType.BANK_TX }); @@ -490,7 +488,7 @@ export class BankTxService implements OnModuleInit { } private getType(tx: BankTx): BankTxType | null { - if (tx.name?.includes('Payward Ltd.')) { + if (tx.name?.includes('Payward Trading')) { return BankTxType.KRAKEN; }