@Override public BankApiUser registerUser(String bankingUrl, BankAccess bankAccess, String pin) { if (figoConnection == null) { throw new IllegalArgumentException("figo connection not available, check env properties FIGO_CLIENT_ID " + "and/or FIGO_SECRET"); } String password = RandomStringUtils.random(20, 0, 0, false, false, CHARACTERS.toCharArray(), random); try { figoConnection.addUser(bankAccess.getBankLogin(), bankAccess.getBankLogin() + "@admb.de", password, "de"); } catch (IOException | FigoException e) { throw new RuntimeException(e); } BankApiUser bankApiUser = new BankApiUser(); bankApiUser.setApiUserId(bankAccess.getBankLogin()); bankApiUser.setApiPassword(password); bankApiUser.setBankApi(bankApi()); return bankApiUser; }
private void updateTanTransportTypes(BankAccess bankAccess, List<Account> accounts) throws FigoException, IOException { List<TanTransportType> tanTransportTypes = accounts .stream() .map(Account::getSupportedTanSchemes) .flatMap(Collection::stream) .map(FigoMapping::mapTanTransportTypes) .collect(Collectors.toList()); if (bankAccess.getTanTransportTypes() == null) { bankAccess.setTanTransportTypes(new HashMap<>()); } bankAccess.getTanTransportTypes().put(bankApi(), tanTransportTypes); }
.bankCode(request.getBankCode() != null ? request.getBankCode() : request.getBankAccess().getBankCode()) .customerId(request.getBankAccess().getBankLogin()) .login(request.getBankAccess().getBankLogin2()) .hbciPassportState(request.getBankAccess().getHbciPassportState()) .pin(request.getPin()) .callback(callback) request.getBankAccess().setBankName(dialog.getPassport().getInstName()); List<BankAccount> hbciAccounts = new ArrayList<>(); for (Konto konto : dialog.getPassport().getAccounts()) { BankAccount bankAccount = HbciMapping.toBankAccount(konto); bankAccount.externalId(BankApi.HBCI, UUID.randomUUID().toString()); bankAccount.bankName(request.getBankAccess().getBankName()); hbciAccounts.add(bankAccount); if (request.getBankAccess().getTanTransportTypes() == null) { request.getBankAccess().setTanTransportTypes(new HashMap<>()); request.getBankAccess().getTanTransportTypes().put(BankApi.HBCI, tanTransportTypes); }); request.getBankAccess().setHbciPassportState(new HbciPassport.State(dialog.getPassport()).toJson()); return LoadAccountInformationResponse.builder() .bankAccess(request.getBankAccess())
public static LoadBookingsResponse loadBookings(LoadBookingsRequest loadBookingsRequest) { HbciDialogRequest dialogRequest = HbciDialogRequest.builder() .bankCode(loadBookingsRequest.getBankCode() != null ? loadBookingsRequest.getBankCode() : loadBookingsRequest.getBankAccess().getBankCode()) .customerId(loadBookingsRequest.getBankAccess().getBankLogin()) .login(loadBookingsRequest.getBankAccess().getBankLogin2()) .hbciPassportState(loadBookingsRequest.getBankAccess().getHbciPassportState()) .pin(loadBookingsRequest.getPin()) .build(); if (loadBookingsRequest.getBankAccess().getTanTransportTypes() == null) { loadBookingsRequest.getBankAccess().setTanTransportTypes(new HashMap<>()); loadBookingsRequest.getBankAccess().getTanTransportTypes().put(BankApi.HBCI, tanTransportTypes); });
public static List<BankAccount> loadBalances(LoadBalanceRequest loadBalanceRequest) { HbciDialogRequest dialogRequest = HbciDialogRequest.builder() .bankCode(loadBalanceRequest.getBankCode() != null ? loadBalanceRequest.getBankCode() : loadBalanceRequest.getBankAccess().getBankCode()) .customerId(loadBalanceRequest.getBankAccess().getBankLogin()) .login(loadBalanceRequest.getBankAccess().getBankLogin2()) .hbciPassportState(loadBalanceRequest.getBankAccess().getHbciPassportState()) .pin(loadBalanceRequest.getPin()) .build();
bankAccess.getBankCode(), null, null, null, null, null, null, null, null); if (searchAllBanks.getBanks().size() != 1) { throw new RuntimeException("Bank not supported"); bankAccess.setBankName(searchAllBanks.getBanks().get(0).getName()); new BankConnectionsApi(apiClient).importBankConnection(new ImportBankConnectionParams() .bankId(searchAllBanks.getBanks().get(0).getId()) .bankingUserId(bankAccess.getBankLogin()) .bankingPin(loadAccountInformationRequest.getPin()) .storePin(loadAccountInformationRequest.isStorePin())); bankAccess.externalId(bankApi(), connections.getId().toString()); .externalId(bankApi(), account.getId().toString()) .owner(account.getAccountHolderName()) .bankName(bankAccess.getBankName()) .accountNumber(account.getAccountNumber()) .name(account.getAccountTypeName()) .iban(account.getIban()) .blz(bankAccess.getBankCode()) .type(BankAccountType.fromFinapiType(account.getAccountTypeId().intValue())) .bankAccountBalance(new BalancesReport()
bankAccess.getBankCode(), "de", createCredentials( bankAccess.getBankLogin(), bankAccess.getBankLogin2(), loadAccountInformationRequest.getPin() ),
sepaTransactionRequest.getBankAccess().getBankCode()) .customerId(sepaTransactionRequest.getBankAccess().getBankLogin()) .login(sepaTransactionRequest.getBankAccess().getBankLogin2()) .hbciPassportState(sepaTransactionRequest.getBankAccess().getHbciPassportState()) .pin(sepaTransactionRequest.getPin()) .callback(hbciCallback)
@Override public BankApiUser registerUser(String bankingUrl, BankAccess bankAccess, String pin) { String password = RandomStringUtils.random(20, 0, 0, false, false, CHARACTERS.toCharArray(), random); try { new UsersApi(createApiClient()).createUser(new UserCreateParams().email(bankAccess.getBankLogin() + "@admb.de").password(password).id(bankAccess.getBankLogin())); } catch (ApiException e) { throw new RuntimeException(e); } BankApiUser bankApiUser = new BankApiUser(); bankApiUser.setApiUserId(bankAccess.getBankLogin()); bankApiUser.setApiPassword(password); bankApiUser.setBankApi(BankApi.FINAPI); return bankApiUser; }
@Override public LoadBookingsResponse loadBookings(Optional<String> bankingUrl, LoadBookingsRequest loadBookingsRequest) { String bankLogin = loadBookingsRequest.getBankAccess().getBankLogin(); String iban = loadBookingsRequest.getBankAccount().getIban(); BankAccessData bankAccessData = data.accessOrException(bankLogin); bankAccessData.checkPin(loadBookingsRequest.getPin()); BankAccountData accountData = data.accessOrException(bankLogin).accountDataOrException(iban); List<Booking> bookings = accountData.bookings(); List<StandingOrder> standingOrders = new ArrayList<>(accountData.standingOrders().values()); return LoadBookingsResponse.builder().bookings(bookings).standingOrders(standingOrders).build(); }
@Override public LoadBookingsResponse loadBookings(Optional<String> bankingUrl, LoadBookingsRequest loadBookingsRequest) { String bankLogin = loadBookingsRequest.getBankAccess().getBankLogin(); String iban = loadBookingsRequest.getBankAccount().getIban(); BankAccessData bankAccessData = data.accessOrException(bankLogin); bankAccessData.checkPin(loadBookingsRequest.getPin()); BankAccountData accountData = data.accessOrException(bankLogin).accountDataOrException(iban); List<Booking> bookings = accountData.bookings(); List<StandingOrder> standingOrders = new ArrayList<>(accountData.standingOrders().values()); return LoadBookingsResponse.builder().bookings(bookings).standingOrders(standingOrders).build(); }