diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/FinTsClient.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/FinTsClient.kt index 19b1e4c7..ae6e1a96 100644 --- a/fints4javaLib/src/main/kotlin/net/dankito/fints/FinTsClient.kt +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/FinTsClient.kt @@ -25,6 +25,7 @@ import java.util.* open class FinTsClient @JvmOverloads constructor( + protected val callback: FinTsClientCallback, protected val base64Service: IBase64Service, protected val webClient: IWebClient = OkHttpWebClient(), protected val messageBuilder: MessageBuilder = MessageBuilder(), @@ -91,7 +92,9 @@ open class FinTsClient @JvmOverloads constructor( open fun tryGetTransactionsOfLast90DaysWithoutTanAsync(bank: BankData, customer: CustomerData, callback: (GetTransactionsResponse) -> Unit) { - callback(tryGetTransactionsOfLast90DaysWithoutTan(bank, customer, false)) + threadPool.runAsync { + callback(tryGetTransactionsOfLast90DaysWithoutTan(bank, customer, false)) + } } /** @@ -159,6 +162,7 @@ open class FinTsClient @JvmOverloads constructor( val balanceResponse = getBalanceAfterDialogInit(bank, customer, dialogData) if (balanceResponse.successful == false && balanceResponse.couldCreateMessage == true) { // don't break here if required HKSAL message is not implemented + closeDialog(bank, customer, dialogData) return GetTransactionsResponse(balanceResponse) } @@ -239,13 +243,19 @@ open class FinTsClient @JvmOverloads constructor( protected open fun initDialog(bank: BankData, customer: CustomerData, dialogData: DialogData): Response { + val tanProcedureSelectedResponse = ensureTanProcedureIsSelected(bank, customer) + if (tanProcedureSelectedResponse.successful == false) { + return tanProcedureSelectedResponse + } + + val requestBody = messageBuilder.createInitDialogMessage(bank, customer, product, dialogData) val response = getAndHandleResponseForMessage(requestBody, bank) if (response.successful) { updateBankData(bank, response) - updateCustomerData(customer, response) + updateCustomerData(customer, bank, response) response.messageHeader?.let { header -> dialogData.dialogId = header.dialogId } } @@ -269,7 +279,7 @@ open class FinTsClient @JvmOverloads constructor( return synchronizeCustomerSystemId(bank, customer) } - return FinTsClientResponse(true, false) + return FinTsClientResponse(true, true, false) } /** @@ -292,7 +302,7 @@ open class FinTsClient @JvmOverloads constructor( if (response.successful) { updateBankData(bank, response) - updateCustomerData(customer, response) + updateCustomerData(customer, bank, response) response.messageHeader?.let { header -> dialogData.dialogId = header.dialogId } @@ -303,6 +313,40 @@ open class FinTsClient @JvmOverloads constructor( } + // TODO: glatt ziehen + protected open fun ensureTanProcedureIsSelected(bank: BankData, customer: CustomerData): Response { + var askWithProceduresSupportedByBank = false + + if (bank.supportedTanProcedures.isEmpty() && customer.selectedTanProcedure == null) { // no tan procedures ever received + getAnonymousBankInfo(bank) + + if (bank.supportedTanProcedures.isNotEmpty()) { // TODO: what if we didn't receive any? find a workaround for this + + customer.selectedTanProcedure = + callback.askUserForTanProcedure(bank.supportedTanProcedures) // a bit problematic as user is not necessarily allowed to use all procedures bank supports + + askWithProceduresSupportedByBank = true + } + } + + if (customer.selectedTanProcedure == null) { + if (customer.supportedTanProcedures.isNotEmpty()) { + customer.selectedTanProcedure = + callback.askUserForTanProcedure(customer.supportedTanProcedures) + } + + else if (askWithProceduresSupportedByBank == false && bank.supportedTanProcedures.isNotEmpty()) { + customer.selectedTanProcedure = + callback.askUserForTanProcedure(bank.supportedTanProcedures) + } + } + + val noTanProcedureSelected = customer.selectedTanProcedure == null + + return Response(!!!noTanProcedureSelected, noTanProcedureSelected = noTanProcedureSelected) + } + + protected open fun getAndHandleResponseForMessage(message: MessageBuilderResult, bank: BankData): Response { message.createdMessage?.let { requestBody -> return getAndHandleResponseForMessage(requestBody, bank) @@ -363,9 +407,17 @@ open class FinTsClient @JvmOverloads constructor( // bank.bic = bankParameters. // TODO: where's the BIC? // bank.finTs3ServerAddress = // TODO: parse HIKOM } + + response.getFirstSegmentById(InstituteSegmentId.TanInfo)?.let { tanInfo -> + bank.supportedTanProcedures = mapToTanProcedures(tanInfo) + } + + if (response.supportedJobs.isNotEmpty()) { + bank.supportedJobs = response.supportedJobs + } } - protected open fun updateCustomerData(customer: CustomerData, response: Response) { + protected open fun updateCustomerData(customer: CustomerData, bank: BankData, response: Response) { response.getFirstSegmentById(InstituteSegmentId.BankParameters)?.let { bankParameters -> // TODO: ask user if there is more than one supported language? But it seems that almost all banks only support German. if (customer.selectedLanguage == Dialogsprache.Default && bankParameters.supportedLanguages.isNotEmpty()) { @@ -419,23 +471,76 @@ open class FinTsClient @JvmOverloads constructor( // TODO: may also make use of other info } - val allowedJobsForBank = response.allowedJobs - if (allowedJobsForBank.isNotEmpty()) { // if allowedJobsForBank is empty than bank didn't send any allowed job + val supportedJobs = response.supportedJobs + if (supportedJobs.isNotEmpty()) { // if allowedJobsForBank is empty than bank didn't send any allowed job for (account in customer.accounts) { - val allowedJobsForAccount = mutableListOf() - - for (job in allowedJobsForBank) { - if (isJobSupported(account, job)) { - allowedJobsForAccount.add(job) - } + setAllowedJobsForAccount(account, supportedJobs) + } + } + else if (bank.supportedJobs.isNotEmpty()) { + for (account in customer.accounts) { + if (account.allowedJobs.isEmpty()) { + setAllowedJobsForAccount(account, bank.supportedJobs) } + } + } - account.allowedJobs = allowedJobsForAccount + response.getFirstSegmentById(InstituteSegmentId.TanInfo)?.let { tanInfo -> + customer.supportedTanProcedures = mapToTanProcedures(tanInfo) + + customer.selectedTanProcedure?.let { selectedProcedure -> + if (customer.supportedTanProcedures.isNotEmpty() && + customer.supportedTanProcedures.contains(selectedProcedure) == false) { + // currently selected tan procedure is not in list of supported procedures -> ask user the next time when needed + customer.selectedTanProcedure = null + } } } } - protected open fun isJobSupported(account: AccountData, job: AllowedJob): Boolean { + private fun setAllowedJobsForAccount(account: AccountData, supportedJobs: List) { + val allowedJobsForAccount = mutableListOf() + + for (job in supportedJobs) { + if (isJobSupported(account, job)) { + allowedJobsForAccount.add(job) + } + } + + account.allowedJobs = allowedJobsForAccount + } + + protected open fun mapToTanProcedures(tanInfo: TanInfo): List { + return tanInfo.tanProcedureParameters.procedureParameters.mapNotNull { + mapToTanProcedure(it) + } + } + + protected open fun mapToTanProcedure(parameters: TanProcedureParameters): TanProcedure? { + val function = parameters.securityFunction + val procedureName = parameters.procedureName + val nameLowerCase = procedureName.toLowerCase() + + return when { + nameLowerCase.contains("chiptan") -> { + if (nameLowerCase.contains("qr")) { + TanProcedure(procedureName, function, TanProcedureType.ChipTanQrCode) + } + else { + TanProcedure(procedureName, function, TanProcedureType.ChipTan) + } + } + + nameLowerCase.contains("sms") -> TanProcedure(procedureName, function, TanProcedureType.SmsTan) + nameLowerCase.contains("push") -> TanProcedure(procedureName, function, TanProcedureType.PushTan) + + // TODO: what about other tan procedures we're not aware of? + // we filter out iTAN and Einschritt-Verfahren as they are not permitted anymore according to PSD2 + else -> null + } + } + + protected open fun isJobSupported(account: AccountData, job: SupportedJob): Boolean { for (allowedJobName in account.allowedJobNames) { if (allowedJobName == job.jobName) { return true diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/FinTsClientCallback.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/FinTsClientCallback.kt new file mode 100644 index 00000000..00aa566c --- /dev/null +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/FinTsClientCallback.kt @@ -0,0 +1,10 @@ +package net.dankito.fints + +import net.dankito.fints.model.TanProcedure + + +interface FinTsClientCallback { + + fun askUserForTanProcedure(supportedTanProcedures: List): TanProcedure? + +} \ No newline at end of file diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/model/AccountData.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/model/AccountData.kt index 608264f9..10967dae 100644 --- a/fints4javaLib/src/main/kotlin/net/dankito/fints/model/AccountData.kt +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/model/AccountData.kt @@ -1,7 +1,7 @@ package net.dankito.fints.model import net.dankito.fints.response.segments.AccountType -import net.dankito.fints.response.segments.AllowedJob +import net.dankito.fints.response.segments.SupportedJob open class AccountData( @@ -17,7 +17,7 @@ open class AccountData( val productName: String?, val accountLimit: String?, val allowedJobNames: List, - var allowedJobs: List = listOf() + var allowedJobs: List = listOf() ) { override fun toString(): String { diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/model/BankData.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/model/BankData.kt index ca1f319f..a5d5871f 100644 --- a/fints4javaLib/src/main/kotlin/net/dankito/fints/model/BankData.kt +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/model/BankData.kt @@ -3,6 +3,7 @@ package net.dankito.fints.model import net.dankito.fints.messages.datenelemente.implementierte.BPDVersion import net.dankito.fints.messages.datenelemente.implementierte.Dialogsprache import net.dankito.fints.messages.datenelemente.implementierte.HbciVersion +import net.dankito.fints.response.segments.SupportedJob open class BankData( @@ -20,7 +21,9 @@ open class BankData( var countMaxJobsPerMessage: Int = 0, var supportedHbciVersions: List = listOf(), - var supportedLanguages: List = listOf() + var supportedTanProcedures: List = listOf(), + var supportedLanguages: List = listOf(), + var supportedJobs: List = listOf() ) { diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/model/CustomerData.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/model/CustomerData.kt index fba2d251..1498de6a 100644 --- a/fints4javaLib/src/main/kotlin/net/dankito/fints/model/CustomerData.kt +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/model/CustomerData.kt @@ -13,7 +13,7 @@ open class CustomerData( var iban: String? = null, var accounts: List = listOf(), var updVersion: Int = UPDVersion.VersionNotReceivedYet, - var availableTanProcedures: List = listOf(), + var supportedTanProcedures: List = listOf(), var selectedTanProcedure: TanProcedure? = null, var securityMethod: Sicherheitsverfahren = Sicherheitsverfahren.PIN_TAN_Verfahren, var version: VersionDesSicherheitsverfahrens = VersionDesSicherheitsverfahrens.PIN_Zwei_Schritt, diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/model/TanProcedure.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/model/TanProcedure.kt index 0b479e17..a4b25297 100644 --- a/fints4javaLib/src/main/kotlin/net/dankito/fints/model/TanProcedure.kt +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/model/TanProcedure.kt @@ -10,7 +10,7 @@ open class TanProcedure( ) { override fun toString(): String { - return "$displayName ($type, ${securityFunction.code}" + return "$displayName ($type, ${securityFunction.code})" } } \ No newline at end of file diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/response/Response.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/response/Response.kt index 48ea9e66..ec17e146 100644 --- a/fints4javaLib/src/main/kotlin/net/dankito/fints/response/Response.kt +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/response/Response.kt @@ -16,6 +16,7 @@ open class Response constructor( * When a serious error occurred during web request or response parsing. */ val exception: Exception? = null, + val noTanProcedureSelected: Boolean = false, val messageCreationError: MessageBuilderResult? = null ) { @@ -26,7 +27,8 @@ open class Response constructor( get() = exception == null && messageFeedback?.isError == true open val successful: Boolean - get() = couldCreateMessage && didReceiveResponse && responseContainsErrors == false + get() = noTanProcedureSelected == false &&couldCreateMessage && didReceiveResponse + && responseContainsErrors == false open val isStrongAuthenticationRequired: Boolean get() = tanResponse?.isStrongAuthenticationRequired == true @@ -67,8 +69,8 @@ open class Response constructor( * Returns all jobs bank supports otherwise. This does not necessarily mean that they are also allowed for * customer / account, see [net.dankito.fints.model.AccountData.allowedJobNames]. */ - open val allowedJobs: List - get() = receivedSegments.mapNotNull { it as? AllowedJob } + open val supportedJobs: List + get() = receivedSegments.mapNotNull { it as? SupportedJob } open fun getFirstSegmentById(id: ISegmentId): T? { diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/response/ResponseParser.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/response/ResponseParser.kt index e8c5abfe..057327e7 100644 --- a/fints4javaLib/src/main/kotlin/net/dankito/fints/response/ResponseParser.kt +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/response/ResponseParser.kt @@ -220,7 +220,7 @@ open class ResponseParser @JvmOverloads constructor( } - protected open fun parseAllowedJob(segment: String, segmentId: String, dataElementGroups: List): AllowedJob { + protected open fun parseAllowedJob(segment: String, segmentId: String, dataElementGroups: List): SupportedJob { var jobName = segmentId.substring(0, 5) // cut off last 'S' (which stands for 'parameter') jobName = jobName.replaceFirst("HI", "HK") @@ -230,7 +230,7 @@ open class ResponseParser @JvmOverloads constructor( // Bei aelteren Version fehlt das Datenelement 'Sicherheitsklasse'. Ist fuer PIN/TAN eh zu ignorieren val securityClass = if (dataElementGroups.size > 3) parseNullableInt(dataElementGroups[3]) else null - return AllowedJob(jobName, maxCountJobs, minimumCountSignatures, securityClass, segment) + return SupportedJob(jobName, maxCountJobs, minimumCountSignatures, securityClass, segment) } @@ -254,6 +254,8 @@ open class ResponseParser @JvmOverloads constructor( } protected open fun mapToTanProcedureParameters(proceduresDataElements: List): List { + // TODO: this throws an error for HITANS in version 4, but PSD2 needs HKTAN at least in version 6 anyway + val parsedProceduresParameters = mutableListOf() var remainingDataElements = proceduresDataElements diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/response/client/FinTsClientResponse.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/response/client/FinTsClientResponse.kt index 9b183aa2..18f95fd2 100644 --- a/fints4javaLib/src/main/kotlin/net/dankito/fints/response/client/FinTsClientResponse.kt +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/response/client/FinTsClientResponse.kt @@ -8,6 +8,8 @@ open class FinTsClientResponse( val isSuccessful: Boolean, + val noTanProcedureSelected: Boolean, + val isStrongAuthenticationRequired: Boolean, val tanRequired: TanResponse? = null, @@ -25,9 +27,9 @@ open class FinTsClientResponse( ) { - constructor(response: Response) : this(response.successful, response.isStrongAuthenticationRequired, - response.tanResponse, response.errorsToShowToUser, response.exception, - response.messageCreationError?.isJobAllowed ?: true, + constructor(response: Response) : this(response.successful, response.noTanProcedureSelected, + response.isStrongAuthenticationRequired, response.tanResponse, response.errorsToShowToUser, + response.exception, response.messageCreationError?.isJobAllowed ?: true, response.messageCreationError?.isJobVersionSupported ?: true, response.messageCreationError?.allowedVersions ?: listOf(), response.messageCreationError?.supportedVersions ?: listOf()) diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/response/segments/AllowedJob.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/response/segments/SupportedJob.kt similarity index 92% rename from fints4javaLib/src/main/kotlin/net/dankito/fints/response/segments/AllowedJob.kt rename to fints4javaLib/src/main/kotlin/net/dankito/fints/response/segments/SupportedJob.kt index 824b5467..0f45d7d1 100644 --- a/fints4javaLib/src/main/kotlin/net/dankito/fints/response/segments/AllowedJob.kt +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/response/segments/SupportedJob.kt @@ -1,7 +1,7 @@ package net.dankito.fints.response.segments -open class AllowedJob( +open class SupportedJob( val jobName: String, val maxCountJobs: Int, val minimumCountSignatures: Int, diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/response/segments/TanInfo.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/response/segments/TanInfo.kt index 803dbdb0..35e2fae5 100644 --- a/fints4javaLib/src/main/kotlin/net/dankito/fints/response/segments/TanInfo.kt +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/response/segments/TanInfo.kt @@ -10,10 +10,10 @@ open class TanInfo( segmentString: String ) - : AllowedJob(jobName, maxCountJobs, minimumCountSignatures, securityClass, segmentString) { + : SupportedJob(jobName, maxCountJobs, minimumCountSignatures, securityClass, segmentString) { - constructor(allowedJob: AllowedJob, tanProcedureParameters: TwoStepTanProcedureParameters) - : this(allowedJob.jobName, allowedJob.maxCountJobs, allowedJob.minimumCountSignatures, - allowedJob.securityClass, tanProcedureParameters, allowedJob.segmentString) + constructor(supportedJob: SupportedJob, tanProcedureParameters: TwoStepTanProcedureParameters) + : this(supportedJob.jobName, supportedJob.maxCountJobs, supportedJob.minimumCountSignatures, + supportedJob.securityClass, tanProcedureParameters, supportedJob.segmentString) } \ No newline at end of file diff --git a/fints4javaLib/src/test/java/net/dankito/fints/java/JavaShowcase.java b/fints4javaLib/src/test/java/net/dankito/fints/java/JavaShowcase.java index 6c41bbd6..f2e663a3 100644 --- a/fints4javaLib/src/test/java/net/dankito/fints/java/JavaShowcase.java +++ b/fints4javaLib/src/test/java/net/dankito/fints/java/JavaShowcase.java @@ -1,6 +1,7 @@ package net.dankito.fints.java; import net.dankito.fints.FinTsClient; +import net.dankito.fints.FinTsClientCallback; import net.dankito.fints.banks.BankFinder; import net.dankito.fints.messages.datenelemente.implementierte.signatur.Sicherheitsfunktion; import net.dankito.fints.model.*; @@ -8,6 +9,9 @@ import net.dankito.fints.model.mapper.BankDataMapper; import net.dankito.fints.response.client.GetTransactionsResponse; import net.dankito.fints.util.Java8Base64Service; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + import java.util.Date; import java.util.List; @@ -27,7 +31,16 @@ public class JavaShowcase { CustomerData customer = new CustomerData("", ""); customer.setSelectedTanProcedure(new TanProcedure("", Sicherheitsfunktion.PIN_TAN_911, TanProcedureType.ChipTan)); - FinTsClient finTsClient = new FinTsClient(new Java8Base64Service()); + FinTsClientCallback callback = new FinTsClientCallback() { + @Nullable + @Override + public TanProcedure askUserForTanProcedure(@NotNull List supportedTanProcedures) { + // TODO: if entering TAN is required select your tan procedure here + return supportedTanProcedures.get(0); + } + }; + + FinTsClient finTsClient = new FinTsClient(callback, new Java8Base64Service()); // some banks support retrieving account transactions of last 90 days without TAN long ninetyDaysAgoMilliseconds = 90 * 24 * 60 * 60 * 1000L; diff --git a/fints4javaLib/src/test/kotlin/net/dankito/fints/FinTsClientTest.kt b/fints4javaLib/src/test/kotlin/net/dankito/fints/FinTsClientTest.kt index f323dbdf..52de795c 100644 --- a/fints4javaLib/src/test/kotlin/net/dankito/fints/FinTsClientTest.kt +++ b/fints4javaLib/src/test/kotlin/net/dankito/fints/FinTsClientTest.kt @@ -4,21 +4,31 @@ import net.dankito.fints.messages.datenelemente.abgeleiteteformate.Laenderkennze import net.dankito.fints.messages.datenelemente.implementierte.Dialogsprache import net.dankito.fints.messages.datenelemente.implementierte.KundensystemStatus import net.dankito.fints.messages.datenelemente.implementierte.KundensystemStatusWerte -import net.dankito.fints.messages.datenelemente.implementierte.signatur.Sicherheitsfunktion import net.dankito.fints.model.* import net.dankito.fints.response.client.FinTsClientResponse import net.dankito.fints.util.Java8Base64Service import org.assertj.core.api.Assertions.assertThat import org.junit.Ignore import org.junit.Test +import java.util.* @Ignore // not an automatic test, supply your settings below class FinTsClientTest { - private val underTest = object : FinTsClient(Java8Base64Service()) { + private val callback = object : FinTsClientCallback { - fun synchronizeCustomerSystemId(customer: CustomerData, bank: BankData): FinTsClientResponse { + override fun askUserForTanProcedure(supportedTanProcedures: List): TanProcedure? { + // TODO: if entering TAN is required select your tan procedure here + return supportedTanProcedures.first() + } + + } + + + private val underTest = object : FinTsClient(callback, Java8Base64Service()) { + + fun testSynchronizeCustomerSystemId(bank: BankData, customer: CustomerData): FinTsClientResponse { return synchronizeCustomerSystemId(bank, customer) } @@ -52,7 +62,7 @@ class FinTsClientTest { fun synchronizeCustomerSystemId() { // when - val result = underTest.synchronizeCustomerSystemId(Customer, Bank) + val result = underTest.testSynchronizeCustomerSystemId(Bank, Customer) // then assertThat(result.isSuccessful).isTrue() diff --git a/fints4javaLib/src/test/kotlin/net/dankito/fints/response/ResponseParserTest.kt b/fints4javaLib/src/test/kotlin/net/dankito/fints/response/ResponseParserTest.kt index 866470b3..dace47a2 100644 --- a/fints4javaLib/src/test/kotlin/net/dankito/fints/response/ResponseParserTest.kt +++ b/fints4javaLib/src/test/kotlin/net/dankito/fints/response/ResponseParserTest.kt @@ -351,7 +351,7 @@ class ResponseParserTest : FinTsTestBase() { } @Test - fun parseAllowedJobs() { + fun parseSupportedJobs() { // when val result = underTest.parse( @@ -455,7 +455,7 @@ class ResponseParserTest : FinTsTestBase() { assertThat(result.receivedSegments).hasSize(92) for (segment in result.receivedSegments) { - assertThat(segment is AllowedJob).describedAs("$segment should be of type AllowedJob").isTrue() + assertThat(segment is SupportedJob).describedAs("$segment should be of type AllowedJob").isTrue() } } diff --git a/fints4javaLib/src/test/resources/test_files/TransactionsMt940.txt b/fints4javaLib/src/test/resources/test_files/TransactionsMt940.txt new file mode 100644 index 00000000..c1d4f0a8 --- /dev/null +++ b/fints4javaLib/src/test/resources/test_files/TransactionsMt940.txt @@ -0,0 +1,434 @@ +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190718EUR106728,17 +:61:1907200722DR273,10N033NONREF +:86:118?00ECHTZEIT-UEBERWEISUNG?109310?20SVWZ+Bahnfahrten DATUM 2 +0.0?217.2019, 19.24 UHR 1.TAN 592?22935?30BELADEBEXXX?31DE3210050 +0006016708591?32Marieke Schmidt?34997 +:62F:C190722EUR106455,07 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190722EUR106455,07 +:61:1907240724DR100,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-07-23T15.33 Debit? +21k.3 2019-12?22ABWA+FL 232//STADTSPARKASSE?23 MUENCHEN/DE?30SSKM +DEMMXXX?31DE19701500009000481417?32STADTSPARKASSE MUENCHEN?34003 +:62F:C190724EUR106355,07 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190724EUR106355,07 +:61:1907260726DR6,99NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+005061423265?21MREF+0200 +013221814?22CRED+DE77ZZZ00000569719?23SVWZ+KD-Nr. K511159080/ RG- +?24Nr. 150555947887?30COBADEFFXXX?31DE97500400000589011600?321u1 +Telecom GmbH?34992 +:62F:C190726EUR106348,08 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190726EUR106348,08 +:61:1907290729DR420,51NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+1325292693302220190729?2 +125292693?22MREF+000001065754?23CRED+DE56LKK00000143200?24SVWZ+Be +itrag 07/19 00141651?2529 faellig 29.07.19 KRANKEN?26VERSICHERUNG +?27ABWA+Sozialversicherung fur?28 Landwirtschaft, Forsten un?29d? +30HELADEFFXXX?31DE61500500000040100059?32SVLFG Krankenkasse?34992 +:61:1907290729DR100,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-07-27T15.46 Debit? +21k.3 2019-12?22ABWA+FL 159//STADTSPARKASSE?23 MUENCHEN/DE?30SSKM +DEMMXXX?31DE19701500009000481417?32STADTSPARKASSE MUENCHEN?34003 +:62F:C190729EUR105827,57 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190729EUR105827,57 +:61:1908010731DR3,99N024NONREF +:86:809?00ENTGELTABSCHLUSS?106666?20Entgeltabrechnung?21siehe Anl +age?3072051210 +:62F:C190731EUR105823,58 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190731EUR105823,58 +:61:1908010801DR580,00N012NONREF +:86:117?00DAUERAUFTRAG?107000?20SVWZ+Miete?30HYVEDEMMXXX?31DE8770 +0202701640043438?32Karin M�ller?34997 +:62F:C190801EUR105243,58 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190801EUR105243,58 +:61:1908020802DR100,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-08-02T13.25 Debit? +21k.3 2019-12?22ABWA+FL 159//STADTSPARKASSE?23 MUENCHEN/DE?30SSKM +DEMMXXX?31DE19701500009000481417?32STADTSPARKASSE MUENCHEN?34003 +:62F:C190802EUR105143,58 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190802EUR105143,58 +:61:1908070807DR19395,68NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109200?20EREF+144/187/81344-----L020?2 +18201900001251?22MREF+BY689135399618?23CRED+DE13ZZZ00000076365?24 +SVWZ+STEUERNR 144/187/81344?25 EINK.ST 2018 19.395,68EUR?26ABWA+F +inanzamt Muenchen?30BYLADEMMXXX?31DE37700500000000024962?32Finanz +amt M�nchen - Erhebun?33g Finanzkasse?34992 +:61:1908070807DR300,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-08-06T18.12 Debit? +21k.3 2019-12?22ABWA+FL 232//STADTSPARKASSE?23 MUENCHEN/DE?30SSKM +DEMMXXX?31DE19701500009000481417?32STADTSPARKASSE MUENCHEN?34003 +:62F:C190807EUR85447,90 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190807EUR85447,90 +:61:1908080808DR150,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-08-07T18.38 Debit? +21k.3 2019-12?22ABWA+MUENCHEN//KREISSPK. MU?23ENCHEN STARNBERG EB +ERSBERG/?24DE?30BYLADEM1KMS?31DE02702501509000481409?32KREISSPK. +MUENCHEN STARNBER?33G EBERSBERG?34003 +:62F:C190808EUR85297,90 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190808EUR85297,90 +:61:1908090809DR50,00N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20SVWZ+AUFLADUNG PAYPAL GUTH +A?21BEN GIROPAY0014400457SJZ34?22W66U2?23DATUM 08.08.2019, 22.30 + UHR?241.TAN 936060?30GENODE61OG1?31DE76664900000009116702?32GIRO +SOLUTION FUER PAYPAL?34997 +:61:1908090809CR36,06N062NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109249?20EREF+YYW1006309018143 PA +YPA?21L?30DEUTDEFFXXX?31DE88500700100175526303?32PayPal (Europe) +S.a.r.l. et?33 Cie., S.C.A. +:62F:C190809EUR85283,96 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190809EUR85283,96 +:61:1908130813DR90,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-08-12T17.28 Debit? +21k.3 2019-12?22ABWA+FL 232//STADTSPARKASSE?23 MUENCHEN/DE?30SSKM +DEMMXXX?31DE19701500009000481417?32STADTSPARKASSE MUENCHEN?34003 +:62F:C190813EUR85193,96 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190813EUR85193,96 +:61:1908140814DR24,00NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+3932191157543 -VK- 002?2 +1106915289?22MREF+M00210691528900001?23CRED+DE3711000000030246?24 +SVWZ+Kuernbergstr. 36 .3.MR?25, Abschlag Strom 08/2019 Be?26trag +24,00 Eur?30PBNKDEFFXXX?31DE50700100800014060800?32SWM Versorgung +s GmbH?34992 +:61:1908140814DR300,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-08-13T19.59 Debit? +21k.3 2019-12?22ABWA+FL 159//STADTSPARKASSE?23 MUENCHEN/DE?30SSKM +DEMMXXX?31DE41701500009000481409?32STADTSPARKASSE MUENCHEN?34003 +:62F:C190814EUR84869,96 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190814EUR84869,96 +:61:1908160816DR289,70NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+0033-BY-21190882D018-1?2 +16082019?22MREF+RG63A20161109180225753?23017490?24CRED+DE14ZZZ000 +00026683?25SVWZ+FW01 21190882D018 0819?30HYVEDEMMXXX?31DE33700202 +700000081124?32DRV BAYERN SUeD?34992 +:61:1908160816DR2002,90NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109200?20EREF+144/187/81344-----L120?2 +18201900033611?22MREF+BY689135399618?23CRED+DE13ZZZ00000076365?24 +SVWZ+STEUERNR 144/187/81344?25 UMS.ST JUL.19 2.002,90EUR?26ABWA+F +inanzamt Muenchen?30BYLADEMMXXX?31DE37700500000000024962?32Finanz +amt M�nchen - Erhebun?33g Finanzkasse?34992 +:62F:C190816EUR82577,36 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190816EUR82577,36 +:61:1908190819DR1000,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-08-18T23.48 Debit? +21k.3 2019-12?22ABWA+FL 159//STADTSPARKASSE?23 MUENCHEN/DE?30SSKM +DEMMXXX?31DE41701500009000481409?32STADTSPARKASSE MUENCHEN?34003 +:62F:C190819EUR81577,36 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190819EUR81577,36 +:61:1908200820DR21,38NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109200?20EREF+13027964922019?21MREF+M5 +005132260002?22CRED+DE3505800000015150?23SVWZ+D-Nr M500513226, /I +NV/?24201907051420 vom 13.08.2019?25, TELEFONIE Juli 2019, Zahl?2 +6B 1302796492?27ABWA+M-net Telek. GmbH?30BYLADEMMXXX?31DE74700500 +000000028273?32M-net Telekommunikations Gm?33bH?34992 +:62F:C190820EUR81555,98 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190820EUR81555,98 +:61:1908210821CR15154,89N062NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109249?20EREF+211?21SVWZ+1907311/ +31.07.2019/EUR?22 15154.89/2019-08-12/...?30DRESDEFF700?31DE85700 +800000757304200?32Device Insight GmbH +:62F:C190821EUR96710,87 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190821EUR96710,87 +:61:1908260826DR54,90NDDTNONREF +:86:105?00ERSTLASTSCHRIFT?109248?20EREF+1-11/366-3147882-178?21MR +EF+201042277?22CRED+DE97ZZZ00000169525?23SVWZ+RNR 90654410 V. 15. +08.?2419 BRU 54,90 Vielen Dank fu?25er Ihren Einkauf. shop.heis?2 +6e.de?30PBNKDEFFXXX?31DE22250100300540160303?32Heise Medien GmbH ++ Co. KG?34991 +:62F:C190826EUR96655,97 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190826EUR96655,97 +:61:1908270827DR6,99NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+003809515790?21MREF+0200 +013221814?22CRED+DE77ZZZ00000569719?23SVWZ+KD-Nr. K511159080/ RG- +?24Nr. 150563678193?30COBADEFFXXX?31DE97500400000589011600?321u1 +Telecom GmbH?34992 +:62F:C190827EUR96648,98 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190827EUR96648,98 +:61:1908280828DR420,51NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+1325292693302220190828?2 +125292693?22MREF+000001065754?23CRED+DE56LKK00000143200?24SVWZ+Be +itrag 08/19 00141651?2529 faellig 28.08.19 KRANKEN?26VERSICHERUNG +?27ABWA+Sozialversicherung fur?28 Landwirtschaft, Forsten un?29d? +30HELADEFFXXX?31DE61500500000040100059?32SVLFG Krankenkasse?34992 +:61:1908280828DR70,43N033NONREF +:86:118?00ECHTZEIT-UEBERWEISUNG?109310?20SVWZ+Bestellung Nummer. +344?21253 DATUM 28.08.2019, 08.30?22 UHR 1.TAN 073873?30DEUTDEDB5 +95?31DE06590700700017905101?32EXP GmbH?34997 +:62F:C190828EUR96158,04 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190828EUR96158,04 +:61:1908280829DR10,00N033NONREF +:86:118?00ECHTZEIT-UEBERWEISUNG?109310?20SVWZ+Fu�ball DATUM 28.08 +.20?2119, 23.44 UHR 1.TAN 726220?30GENODEF1AUB?31DE61720900000005 +610036?32Michael Port?34997 +:62F:C190829EUR96148,04 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190829EUR96148,04 +:61:1909010830DR3,99N024NONREF +:86:809?00ENTGELTABSCHLUSS?106666?20Entgeltabrechnung?21siehe Anl +age?3072051210 +:62F:C190830EUR96144,05 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190830EUR96144,05 +:61:1909020902DR580,00N012NONREF +:86:117?00DAUERAUFTRAG?107000?20SVWZ+Miete?30HYVEDEMMXXX?31DE8770 +0202701640043438?32Karin M�ller?34997 +:62F:C190902EUR95564,05 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190902EUR95564,05 +:61:1909130913DR289,70NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+0034-BY-21190882D018-1?2 +13092019?22MREF+RG63A20161109180225753?23017490?24CRED+DE14ZZZ000 +00026683?25SVWZ+FW01 21190882D018 0919?30HYVEDEMMXXX?31DE33700202 +700000081124?32DRV BAYERN SUeD?34992 +:62F:C190913EUR95274,35 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190913EUR95274,35 +:61:1909160916DR24,00NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+3938148326034 -VK- 002?2 +1106915289?22MREF+M00210691528900001?23CRED+DE3711000000030246?24 +SVWZ+Kuernbergstr. 36 .3.MR?25, Abschlag Strom 09/2019 Be?26trag +24,00 Eur?30PBNKDEFFXXX?31DE50700100800014060800?32SWM Versorgung +s GmbH?34992 +:61:1909160916DR13001,62NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109200?20EREF+144/187/81344-----L110?2 +19201900117661?22MREF+BY689135399618?23CRED+DE13ZZZ00000076365?24 +SVWZ+STEUERNR 144/187/81344?25 EINK.ST 3VJ.19 10.627,00EU?26R UMS +.ST AUG.19 2.374,62EUR?27ABWA+Finanzamt Muenchen?30BYLADEMMXXX?31 +DE37700500000000024962?32Finanzamt M�nchen - Erhebun?33g Finanzka +sse?34992 +:62F:C190916EUR82248,73 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190916EUR82248,73 +:61:1909180918DR100,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-09-17T14.20 Debit? +21k.3 2019-12?22ABWA+FL 061//STADTSPARKASSE?23 MUENCHEN/DE?30SSKM +DEMMXXX?31DE19701500009000481417?32STADTSPARKASSE MUENCHEN?34003 +:61:1909180918CR0,01N061NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109310?20SVWZ+Test cash transfer? +30BYLADEM1AIC?31DE11720512100560165557?32Christian Dankl +:61:1909180918DR0,01N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20KREF+2019-09-18T14.59.01.0 +2?2175?22SVWZ+Test cash transfer?23DATUM 18.09.2019, 14.59 UHR?30 +BYLADEM1AIC?31DE11720512100560165557?32Christian Dankl?34997 +:61:1909180918CR0,01N061NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109310?20SVWZ+Test cash transfer +2?30BYLADEM1AIC?31DE11720512100560165557?32Christian Dankl +:61:1909180918DR0,01N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20KREF+2019-09-18T17.41.08.0 +7?2154?22SVWZ+Test cash transfer 2?23DATUM 18.09.2019, 17.41 UHR? +30BYLADEM1AIC?31DE11720512100560165557?32Christian Dankl?34997 +:62F:C190918EUR82148,73 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190918EUR82148,73 +:61:1909190919CR51,00N061NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109310?20SVWZ+Let +s go big test?3 +0BYLADEM1AIC?31DE11720512100560165557?32CHRISTIAN DANKL +:61:1909190919DR51,00N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20KREF+2019-09-18T20.35.38.0 +6?2130?22SVWZ+Let +s go big test?23DATUM 18.09.2019, 20.35 UHR?30B +YLADEM1AIC?31DE11720512100560165557?32Christian Dankl?34997 +:61:1909190919CR101,00N061NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109310?20SVWZ+Let +s go big test 2 +?30BYLADEM1AIC?31DE11720512100560165557?32CHRISTIAN DANKL +:61:1909190919DR101,00N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20KREF+2019-09-18T20.36.07.0 +4?2135?22SVWZ+Let +s go big test 2?23DATUM 18.09.2019, 20.36 UHR?3 +0BYLADEM1AIC?31DE11720512100560165557?32CHRISTIAN DANKL?34997 +:61:1909190919DR0,01N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20KREF+2019-09-18T20.39.01.0 +0?2101?22SVWZ+Testueberweisung?23DATUM 18.09.2019, 20.39 UHR?30BE +LADEBEXXX?31DE32100500006016708591?32Marieke Schmidt?34997 +:61:1909190919DR30,01N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20KREF+2019-09-19T00.20.19.0 +8?2137?22SVWZ+Fussball?23DATUM 19.09.2019, 00.20 UHR?241.TAN 3795 +05?30GENODEF1AUB?31DE61720900000005610036?32Michael Port?34997 +:61:1909190919DR9,07NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109200?20EREF+13030203282019?21MREF+M5 +005132260002?22CRED+DE3505800000015150?23SVWZ+D-Nr M500513226, /I +NV/?24201908051258 vom 12.09.2019?25, TELEFONIE August 2019, Za?2 +6hlB 1303020328?27ABWA+M-net Telek. GmbH?30BYLADEMMXXX?31DE747005 +00000000028273?32M-net Telekommunikations Gm?33bH?34992 +:62F:C190919EUR82109,64 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190919EUR82109,64 +:61:1909230923DR32,00N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20KREF+2019-09-22T12.52.39.0 +4?2135?22SVWZ+Bayernticket n�chste W?23oche?24DATUM 22.09.2019, 1 +2.52 UHR?251.TAN 293047?30BELADEBEXXX?31DE32100500006016708591?32 +Marieke Schmidt?34997 +:62F:C190923EUR82077,64 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190923EUR82077,64 +:61:1909260926DR6,99NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+005181496989?21MREF+0200 +013221814?22CRED+DE77ZZZ00000569719?23SVWZ+KD-Nr. K511159080/ RG- +?24Nr. 150571431714?30COBADEFFXXX?31DE97500400000589011600?321u1 +Telecom GmbH?34992 +:61:1909260926DR420,51NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+1325292693302220190926?2 +125292693?22MREF+000001065754?23CRED+DE56LKK00000143200?24SVWZ+Be +itrag 09/19 00141651?2529 faellig 26.09.19 KRANKEN?26VERSICHERUNG +?27ABWA+Sozialversicherung fur?28 Landwirtschaft, Forsten un?29d? +30HELADEFFXXX?31DE61500500000040100059?32SVLFG Krankenkasse?34992 +:61:1909260926CR220,00N062NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109249?20EREF+Cashback - 9660114? +21SVWZ+Cashback.CHECK24 sagt?22danke.?30COBADEFFXXX?31DE187004004 +10275663301?32CHECK24.de +:62F:C190926EUR81870,14 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190926EUR81870,14 +:61:1909300930DR100,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-09-27T19.44 Debit? +21k.3 2019-12?22ABWA+FL 159//STADTSPARKASSE?23 MUENCHEN/DE?30SSKM +DEMMXXX?31DE19701500009000481417?32STADTSPARKASSE MUENCHEN?34003 +:61:1910010930DR3,99N024NONREF +:86:809?00ENTGELTABSCHLUSS?106666?20Entgeltabrechnung?21siehe Anl +age?3072051210 +:61:1910010930CR0,00N066NONREF +:86:805?00ABSCHLUSS?106666?20Abrechnung 30.09.2019?21siehe Anlage +?3072051210 +:62F:C190930EUR81766,15 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190930EUR81766,15 +:61:1910011001DR540,07N012NONREF +:86:117?00DAUERAUFTRAG?107000?20SVWZ+RS-V-11-0055-1498-0523?21 P8 +013011?30HYVEDEMM414?31DE54302201900323535205?32ARAG SE?34997 +:61:1910011001DR580,00N012NONREF +:86:117?00DAUERAUFTRAG?107000?20SVWZ+Miete?30HYVEDEMMXXX?31DE8770 +0202701640043438?32Karin M�ller?34997 +:62F:C191001EUR80646,08 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C191001EUR80646,08 +:61:1910021002CR0,01N061NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109310?20SVWZ+Test cash transfer? +30BYLADEM1AIC?31DE11720512100560165557?32Christian Dankl +:61:1910021002DR0,01N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20KREF+2019-10-02T12.21.31.0 +1?2194?22SVWZ+Test cash transfer?23DATUM 02.10.2019, 12.21 UHR?30 +BYLADEM1AIC?31DE11720512100560165557?32Christian Dankl?34997 +:62F:C191002EUR80646,08 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C191002EUR80646,08 +:61:1910031004CR8144,36N062NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109249?20EREF+674?21SVWZ+1908301/ +EUR 8144.36/20?2219-10-02/...?30DRESDEFF700?31DE85700800000757304 +200?32Device Insight GmbH +:62F:C191004EUR88790,44 +- \ No newline at end of file diff --git a/fints4javaLib/src/test/resources/test_files/TransactionsMt940_2.txt b/fints4javaLib/src/test/resources/test_files/TransactionsMt940_2.txt new file mode 100644 index 00000000..de033ce6 --- /dev/null +++ b/fints4javaLib/src/test/resources/test_files/TransactionsMt940_2.txt @@ -0,0 +1,435 @@ +HIKAZ:7:5:3+@16075@ +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190731EUR105823,58 +:61:1908010801DR580,00N012NONREF +:86:117?00DAUERAUFTRAG?107000?20SVWZ+Miete?30HYVEDEMMXXX?31DE8770 +0202701640043438?32Karin Müller?34997 +:62F:C190801EUR105243,58 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190801EUR105243,58 +:61:1908020802DR100,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-08-02T13.25 Debit? +21k.3 2019-12?22ABWA+FL 159//STADTSPARKASSE?23 MUENCHEN/DE?30SSKM +DEMMXXX?31DE19701500009000481417?32STADTSPARKASSE MUENCHEN?34003 +:62F:C190802EUR105143,58 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190802EUR105143,58 +:61:1908070807DR19395,68NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109200?20EREF+144/187/81344-----L020?2 +18201900001251?22MREF+BY689135399618?23CRED+DE13ZZZ00000076365?24 +SVWZ+STEUERNR 144/187/81344?25 EINK.ST 2018 19.395,68EUR?26ABWA+F +inanzamt Muenchen?30BYLADEMMXXX?31DE37700500000000024962?32Finanz +amt München - Erhebun?33g Finanzkasse?34992 +:61:1908070807DR300,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-08-06T18.12 Debit? +21k.3 2019-12?22ABWA+FL 232//STADTSPARKASSE?23 MUENCHEN/DE?30SSKM +DEMMXXX?31DE19701500009000481417?32STADTSPARKASSE MUENCHEN?34003 +:62F:C190807EUR85447,90 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190807EUR85447,90 +:61:1908080808DR150,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-08-07T18.38 Debit? +21k.3 2019-12?22ABWA+MUENCHEN//KREISSPK. MU?23ENCHEN STARNBERG EB +ERSBERG/?24DE?30BYLADEM1KMS?31DE02702501509000481409?32KREISSPK. +MUENCHEN STARNBER?33G EBERSBERG?34003 +:62F:C190808EUR85297,90 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190808EUR85297,90 +:61:1908090809DR50,00N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20SVWZ+AUFLADUNG PAYPAL GUTH +A?21BEN GIROPAY0014400457SJZ34?22W66U2?23DATUM 08.08.2019, 22.30 + UHR?241.TAN 936060?30GENODE61OG1?31DE76664900000009116702?32GIRO +SOLUTION FUER PAYPAL?34997 +:61:1908090809CR36,06N062NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109249?20EREF+YYW1006309018143 PA +YPA?21L?30DEUTDEFFXXX?31DE88500700100175526303?32PayPal (Europe) +S.a.r.l. et?33 Cie., S.C.A. +:62F:C190809EUR85283,96 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190809EUR85283,96 +:61:1908130813DR90,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-08-12T17.28 Debit? +21k.3 2019-12?22ABWA+FL 232//STADTSPARKASSE?23 MUENCHEN/DE?30SSKM +DEMMXXX?31DE19701500009000481417?32STADTSPARKASSE MUENCHEN?34003 +:62F:C190813EUR85193,96 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190813EUR85193,96 +:61:1908140814DR24,00NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+3932191157543 -VK- 002?2 +1106915289?22MREF+M00210691528900001?23CRED+DE3711000000030246?24 +SVWZ+Kuernbergstr. 36 .3.MR?25, Abschlag Strom 08/2019 Be?26trag +24,00 Eur?30PBNKDEFFXXX?31DE50700100800014060800?32SWM Versorgung +s GmbH?34992 +:61:1908140814DR300,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-08-13T19.59 Debit? +21k.3 2019-12?22ABWA+FL 159//STADTSPARKASSE?23 MUENCHEN/DE?30SSKM +DEMMXXX?31DE41701500009000481409?32STADTSPARKASSE MUENCHEN?34003 +:62F:C190814EUR84869,96 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190814EUR84869,96 +:61:1908160816DR289,70NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+0033-BY-21190882D018-1?2 +16082019?22MREF+RG63A20161109180225753?23017490?24CRED+DE14ZZZ000 +00026683?25SVWZ+FW01 21190882D018 0819?30HYVEDEMMXXX?31DE33700202 +700000081124?32DRV BAYERN SUeD?34992 +:61:1908160816DR2002,90NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109200?20EREF+144/187/81344-----L120?2 +18201900033611?22MREF+BY689135399618?23CRED+DE13ZZZ00000076365?24 +SVWZ+STEUERNR 144/187/81344?25 UMS.ST JUL.19 2.002,90EUR?26ABWA+F +inanzamt Muenchen?30BYLADEMMXXX?31DE37700500000000024962?32Finanz +amt München - Erhebun?33g Finanzkasse?34992 +:62F:C190816EUR82577,36 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190816EUR82577,36 +:61:1908190819DR1000,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-08-18T23.48 Debit? +21k.3 2019-12?22ABWA+FL 159//STADTSPARKASSE?23 MUENCHEN/DE?30SSKM +DEMMXXX?31DE41701500009000481409?32STADTSPARKASSE MUENCHEN?34003 +:62F:C190819EUR81577,36 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190819EUR81577,36 +:61:1908200820DR21,38NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109200?20EREF+13027964922019?21MREF+M5 +005132260002?22CRED+DE3505800000015150?23SVWZ+D-Nr M500513226, /I +NV/?24201907051420 vom 13.08.2019?25, TELEFONIE Juli 2019, Zahl?2 +6B 1302796492?27ABWA+M-net Telek. GmbH?30BYLADEMMXXX?31DE74700500 +000000028273?32M-net Telekommunikations Gm?33bH?34992 +:62F:C190820EUR81555,98 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190820EUR81555,98 +:61:1908210821CR15154,89N062NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109249?20EREF+211?21SVWZ+1907311/ +31.07.2019/EUR?22 15154.89/2019-08-12/...?30DRESDEFF700?31DE85700 +800000757304200?32Device Insight GmbH +:62F:C190821EUR96710,87 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190821EUR96710,87 +:61:1908260826DR54,90NDDTNONREF +:86:105?00ERSTLASTSCHRIFT?109248?20EREF+1-11/366-3147882-178?21MR +EF+201042277?22CRED+DE97ZZZ00000169525?23SVWZ+RNR 90654410 V. 15. +08.?2419 BRU 54,90 Vielen Dank fu?25er Ihren Einkauf. shop.heis?2 +6e.de?30PBNKDEFFXXX?31DE22250100300540160303?32Heise Medien GmbH ++ Co. KG?34991 +:62F:C190826EUR96655,97 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190826EUR96655,97 +:61:1908270827DR6,99NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+003809515790?21MREF+0200 +013221814?22CRED+DE77ZZZ00000569719?23SVWZ+KD-Nr. K511159080/ RG- +?24Nr. 150563678193?30COBADEFFXXX?31DE97500400000589011600?321u1 +Telecom GmbH?34992 +:62F:C190827EUR96648,98 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190827EUR96648,98 +:61:1908280828DR420,51NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+1325292693302220190828?2 +125292693?22MREF+000001065754?23CRED+DE56LKK00000143200?24SVWZ+Be +itrag 08/19 00141651?2529 faellig 28.08.19 KRANKEN?26VERSICHERUNG +?27ABWA+Sozialversicherung fur?28 Landwirtschaft, Forsten un?29d? +30HELADEFFXXX?31DE61500500000040100059?32SVLFG Krankenkasse?34992 +:61:1908280828DR70,43N033NONREF +:86:118?00ECHTZEIT-UEBERWEISUNG?109310?20SVWZ+Bestellung Nummer. +344?21253 DATUM 28.08.2019, 08.30?22 UHR 1.TAN 073873?30DEUTDEDB5 +95?31DE06590700700017905101?32EXP GmbH?34997 +:62F:C190828EUR96158,04 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190828EUR96158,04 +:61:1908280829DR10,00N033NONREF +:86:118?00ECHTZEIT-UEBERWEISUNG?109310?20SVWZ+Fußball DATUM 28.08 +.20?2119, 23.44 UHR 1.TAN 726220?30GENODEF1AUB?31DE61720900000005 +610036?32Michael Port?34997 +:62F:C190829EUR96148,04 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190829EUR96148,04 +:61:1909010830DR3,99N024NONREF +:86:809?00ENTGELTABSCHLUSS?106666?20Entgeltabrechnung?21siehe Anl +age?3072051210 +:62F:C190830EUR96144,05 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190830EUR96144,05 +:61:1909020902DR580,00N012NONREF +:86:117?00DAUERAUFTRAG?107000?20SVWZ+Miete?30HYVEDEMMXXX?31DE8770 +0202701640043438?32Karin Müller?34997 +:62F:C190902EUR95564,05 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190902EUR95564,05 +:61:1909130913DR289,70NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+0034-BY-21190882D018-1?2 +13092019?22MREF+RG63A20161109180225753?23017490?24CRED+DE14ZZZ000 +00026683?25SVWZ+FW01 21190882D018 0919?30HYVEDEMMXXX?31DE33700202 +700000081124?32DRV BAYERN SUeD?34992 +:62F:C190913EUR95274,35 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190913EUR95274,35 +:61:1909160916DR24,00NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+3938148326034 -VK- 002?2 +1106915289?22MREF+M00210691528900001?23CRED+DE3711000000030246?24 +SVWZ+Kuernbergstr. 36 .3.MR?25, Abschlag Strom 09/2019 Be?26trag +24,00 Eur?30PBNKDEFFXXX?31DE50700100800014060800?32SWM Versorgung +s GmbH?34992 +:61:1909160916DR13001,62NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109200?20EREF+144/187/81344-----L110?2 +19201900117661?22MREF+BY689135399618?23CRED+DE13ZZZ00000076365?24 +SVWZ+STEUERNR 144/187/81344?25 EINK.ST 3VJ.19 10.627,00EU?26R UMS +.ST AUG.19 2.374,62EUR?27ABWA+Finanzamt Muenchen?30BYLADEMMXXX?31 +DE37700500000000024962?32Finanzamt München - Erhebun?33g Finanzka +sse?34992 +:62F:C190916EUR82248,73 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190916EUR82248,73 +:61:1909180918DR100,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-09-17T14.20 Debit? +21k.3 2019-12?22ABWA+FL 061//STADTSPARKASSE?23 MUENCHEN/DE?30SSKM +DEMMXXX?31DE19701500009000481417?32STADTSPARKASSE MUENCHEN?34003 +:61:1909180918CR0,01N061NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109310?20SVWZ+Test cash transfer? +30BYLADEM1AIC?31DE11720512100560165557?32Christian Dankl +:61:1909180918DR0,01N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20KREF+2019-09-18T14.59.01.0 +2?2175?22SVWZ+Test cash transfer?23DATUM 18.09.2019, 14.59 UHR?30 +BYLADEM1AIC?31DE11720512100560165557?32Christian Dankl?34997 +:61:1909180918CR0,01N061NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109310?20SVWZ+Test cash transfer +2?30BYLADEM1AIC?31DE11720512100560165557?32Christian Dankl +:61:1909180918DR0,01N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20KREF+2019-09-18T17.41.08.0 +7?2154?22SVWZ+Test cash transfer 2?23DATUM 18.09.2019, 17.41 UHR? +30BYLADEM1AIC?31DE11720512100560165557?32Christian Dankl?34997 +:62F:C190918EUR82148,73 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190918EUR82148,73 +:61:1909190919CR51,00N061NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109310?20SVWZ+Let's go big test?3 +0BYLADEM1AIC?31DE11720512100560165557?32CHRISTIAN DANKL +:61:1909190919DR51,00N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20KREF+2019-09-18T20.35.38.0 +6?2130?22SVWZ+Let's go big test?23DATUM 18.09.2019, 20.35 UHR?30B +YLADEM1AIC?31DE11720512100560165557?32Christian Dankl?34997 +:61:1909190919CR101,00N061NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109310?20SVWZ+Let's go big test 2 +?30BYLADEM1AIC?31DE11720512100560165557?32CHRISTIAN DANKL +:61:1909190919DR101,00N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20KREF+2019-09-18T20.36.07.0 +4?2135?22SVWZ+Let's go big test 2?23DATUM 18.09.2019, 20.36 UHR?3 +0BYLADEM1AIC?31DE11720512100560165557?32CHRISTIAN DANKL?34997 +:61:1909190919DR0,01N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20KREF+2019-09-18T20.39.01.0 +0?2101?22SVWZ+Testueberweisung?23DATUM 18.09.2019, 20.39 UHR?30BE +LADEBEXXX?31DE32100500006016708591?32Marieke Schmidt?34997 +:61:1909190919DR30,01N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20KREF+2019-09-19T00.20.19.0 +8?2137?22SVWZ+Fussball?23DATUM 19.09.2019, 00.20 UHR?241.TAN 3795 +05?30GENODEF1AUB?31DE61720900000005610036?32Michael Port?34997 +:61:1909190919DR9,07NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109200?20EREF+13030203282019?21MREF+M5 +005132260002?22CRED+DE3505800000015150?23SVWZ+D-Nr M500513226, /I +NV/?24201908051258 vom 12.09.2019?25, TELEFONIE August 2019, Za?2 +6hlB 1303020328?27ABWA+M-net Telek. GmbH?30BYLADEMMXXX?31DE747005 +00000000028273?32M-net Telekommunikations Gm?33bH?34992 +:62F:C190919EUR82109,64 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190919EUR82109,64 +:61:1909230923DR32,00N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20KREF+2019-09-22T12.52.39.0 +4?2135?22SVWZ+Bayernticket nächste W?23oche?24DATUM 22.09.2019, 1 +2.52 UHR?251.TAN 293047?30BELADEBEXXX?31DE32100500006016708591?32 +Marieke Schmidt?34997 +:62F:C190923EUR82077,64 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190923EUR82077,64 +:61:1909260926DR6,99NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+005181496989?21MREF+0200 +013221814?22CRED+DE77ZZZ00000569719?23SVWZ+KD-Nr. K511159080/ RG- +?24Nr. 150571431714?30COBADEFFXXX?31DE97500400000589011600?321u1 +Telecom GmbH?34992 +:61:1909260926DR420,51NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+1325292693302220190926?2 +125292693?22MREF+000001065754?23CRED+DE56LKK00000143200?24SVWZ+Be +itrag 09/19 00141651?2529 faellig 26.09.19 KRANKEN?26VERSICHERUNG +?27ABWA+Sozialversicherung fur?28 Landwirtschaft, Forsten un?29d? +30HELADEFFXXX?31DE61500500000040100059?32SVLFG Krankenkasse?34992 +:61:1909260926CR220,00N062NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109249?20EREF+Cashback - 9660114? +21SVWZ+Cashback.CHECK24 sagt?22danke.?30COBADEFFXXX?31DE187004004 +10275663301?32CHECK24.de +:62F:C190926EUR81870,14 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190926EUR81870,14 +:61:1909300930DR100,00N032NONREF +:86:106?00BARGELDAUSZAHLUNG?109200?20SVWZ+2019-09-27T19.44 Debit? +21k.3 2019-12?22ABWA+FL 159//STADTSPARKASSE?23 MUENCHEN/DE?30SSKM +DEMMXXX?31DE19701500009000481417?32STADTSPARKASSE MUENCHEN?34003 +:61:1910010930DR3,99N024NONREF +:86:809?00ENTGELTABSCHLUSS?106666?20Entgeltabrechnung?21siehe Anl +age?3072051210 +:61:1910010930CR0,00N066NONREF +:86:805?00ABSCHLUSS?106666?20Abrechnung 30.09.2019?21siehe Anlage +?3072051210 +:62F:C190930EUR81766,15 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C190930EUR81766,15 +:61:1910011001DR540,07N012NONREF +:86:117?00DAUERAUFTRAG?107000?20SVWZ+RS-V-11-0055-1498-0523?21 P8 +013011?30HYVEDEMM414?31DE54302201900323535205?32ARAG SE?34997 +:61:1910011001DR580,00N012NONREF +:86:117?00DAUERAUFTRAG?107000?20SVWZ+Miete?30HYVEDEMMXXX?31DE8770 +0202701640043438?32Karin Müller?34997 +:62F:C191001EUR80646,08 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C191001EUR80646,08 +:61:1910021002CR0,01N061NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109310?20SVWZ+Test cash transfer? +30BYLADEM1AIC?31DE11720512100560165557?32Christian Dankl +:61:1910021002DR0,01N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20KREF+2019-10-02T12.21.31.0 +1?2194?22SVWZ+Test cash transfer?23DATUM 02.10.2019, 12.21 UHR?30 +BYLADEM1AIC?31DE11720512100560165557?32Christian Dankl?34997 +:62F:C191002EUR80646,08 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C191002EUR80646,08 +:61:1910031004CR8144,36N062NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109249?20EREF+674?21SVWZ+1908301/ +EUR 8144.36/20?2219-10-02/...?30DRESDEFF700?31DE85700800000757304 +200?32Device Insight GmbH +:62F:C191004EUR88790,44 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C191004EUR88790,44 +:61:1910071007CR0,01N061NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109310?20SVWZ+Give it to me baby? +30BYLADEM1AIC?31DE11720512100560165557?32Christian Dankl +:61:1910071007DR0,01N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20KREF+2019-10-07T11.58.24.0 +3?2128?22SVWZ+Give it to me baby?23DATUM 07.10.2019, 15.38 UHR?30 +BYLADEM1AIC?31DE11720512100560165557?32Christian Dankl?34997 +:62F:C191007EUR88790,44 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C191007EUR88790,44 +:61:1910081008CR2,56N062NONREF +:86:166?00GUTSCHR. UEBERWEISUNG?109201?20EREF+144/187/81344 UMS.G +041?210201907570045?22SVWZ+ERSTATT.144/187/81344?23UMS.ST SEP.19 +2,56 EUR?24ABWA+FINANZAMT MUENCHEN?30BYLADEMMXXX?31DE377005000000 +00024962?32Finanzamt München - Erhebun?33g Finanzkasse +:62F:C191008EUR88793,00 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C191008EUR88793,00 +:61:1910101010DR70,00N033NONREF +:86:177?00ONLINE-UEBERWEISUNG?109310?20SVWZ+AUFLADUNG PAYPAL GUTH +A?21BEN GIROPAY0014400457SK1JL?220Y472?23DATUM 09.10.2019, 20.06 + UHR?241.TAN 680663?30GENODE61OG1?31DE76664900000009116702?32GIRO +SOLUTION FUER PAYPAL?34997 +:62F:C191010EUR88723,00 +- +:20:STARTUMSE +:25:72051210/0560165557 +:28C:00000/001 +:60F:C191010EUR88723,00 +:61:1910111011DR289,70NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+0035-BY-21190882D018-1?2 +11102019?22MREF+RG63A20161109180225753?23017490?24CRED+DE14ZZZ000 +00026683?25SVWZ+FW01 21190882D018 1019?30HYVEDEMMXXX?31DE33700202 +700000081124?32DRV BAYERN SUeD?34992 +:62F:C191011EUR88433,30 +-+@438@ +:20:STARTDISPE +:25:72051210/0560165557 +:28C:00000/001 +:34F:EURD24,00 +:13:1910121425 +:61:1910141010DR24,00NDDTNONREF +:86:105?00FOLGELASTSCHRIFT?109248?20EREF+3931191467398 -VK- 002?2 +1106915289?22MREF+M00210691528900001?23CRED+DE3711000000030246?24 +SVWZ+Kuernbergstr. 36 .3.MR?25, Abschlag Strom 10/2019 Be?26trag +24,00 Eur?30PBNKDEFFXXX?31DE50700100800014060800?32SWM Versorgung +s GmbH?34992 +:90D:1EUR24,00 +:90C:0EUR0,00 +-' \ No newline at end of file