diff --git a/backend/src/modules/banking/types.ts b/backend/src/modules/banking/types.ts new file mode 100644 index 0000000..47345c3 --- /dev/null +++ b/backend/src/modules/banking/types.ts @@ -0,0 +1,38 @@ +// Typen für den Banking-Webhook (angelehnt an FinAPI / GoCardless Bank Account Data) + +export interface IncomingBankWebhookPayload { + /** Eindeutige ID der Transaktion beim Banking-Provider */ + transactionId: string; + /** IBAN des WG-Kontos, auf dem die Bewegung stattfand */ + accountIban: string; + /** Betrag in Euro, positiv = Eingang */ + amount: number; + currency: 'EUR'; + /** Verwendungszweck / Referenztext */ + remittanceInfo: string; + /** IBAN des Absenders, falls vorhanden */ + counterpartyIban?: string; + counterpartyName?: string; + /** Buchungsdatum (ISO 8601) */ + bookingDate: string; + /** HMAC-Signatur des Providers zur Verifikation */ + signature: string; +} + +export type MatchConfidence = 'HIGH' | 'MEDIUM' | 'UNCERTAIN'; + +export interface MatchResult { + confidence: MatchConfidence; + paymentId?: string; + reason: string; +} + +export interface RentTrafficLight { + contractId: string; + roomNumber: string; + tenantName: string; + status: 'GREEN' | 'YELLOW' | 'RED'; + dueDate: string; + amountDue: number; + amountPaid: number; +}