Skip to content

Commit 9305fef

Browse files
Merge pull request #110 from xdev-software/Support-CESOP
Support cesop
2 parents 27ff26b + 4b8fb1a commit 9305fef

114 files changed

Lines changed: 16540 additions & 124 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<component name="ProjectRunConfigurationManager">
2-
<configuration default="false" name="Run Demo" type="Application" factoryName="Application">
3-
<option name="MAIN_CLASS_NAME" value="software.xdev.Application" />
2+
<configuration default="false" name="Run Demo CESOP" type="Application" factoryName="Application">
3+
<option name="MAIN_CLASS_NAME" value="software.xdev.ApplicationWithCesop" />
44
<module name="bzst-dip-java-client-demo" />
55
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
66
<extension name="coverage">
@@ -9,11 +9,6 @@
99
<option name="ENABLED" value="true" />
1010
</pattern>
1111
</extension>
12-
<extension name="software.aws.toolkits.jetbrains.core.execution.JavaAwsConnectionExtension">
13-
<option name="credential" />
14-
<option name="region" />
15-
<option name="useCurrentConnection" value="false" />
16-
</extension>
1712
<method v="2">
1813
<option name="Make" enabled="true" />
1914
</method>

.run/Run Demo DAC7.run.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="Run Demo DAC7" type="Application" factoryName="Application">
3+
<option name="MAIN_CLASS_NAME" value="software.xdev.ApplicationWithDac7" />
4+
<module name="bzst-dip-java-client-demo" />
5+
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
6+
<extension name="coverage">
7+
<pattern>
8+
<option name="PATTERN" value="software.xdev.*" />
9+
<option name="ENABLED" value="true" />
10+
</pattern>
11+
</extension>
12+
<method v="2">
13+
<option name="Make" enabled="true" />
14+
</method>
15+
</configuration>
16+
</component>

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 2.0.0
2+
3+
* Now supports the CESOP-Format (and the DAC7-Format).
4+
15
# 1.0.3
26

37
* ReportableSellerCreator can now create "Rechtsträger" like a company.

bzst-dip-java-client-demo/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
<parent>
88
<groupId>software.xdev</groupId>
99
<artifactId>bzst-dip-java-client-root</artifactId>
10-
<version>1.0.4-SNAPSHOT</version>
10+
<version>2.0.0-SNAPSHOT</version>
1111
</parent>
1212

1313
<artifactId>bzst-dip-java-client-demo</artifactId>
14-
<version>1.0.4-SNAPSHOT</version>
14+
<version>2.0.0-SNAPSHOT</version>
1515
<packaging>jar</packaging>
1616

1717
<organization>
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
package software.xdev;
2+
3+
import java.io.IOException;
4+
import java.math.BigDecimal;
5+
import java.time.LocalDate;
6+
import java.time.ZonedDateTime;
7+
import java.time.format.DateTimeFormatter;
8+
import java.util.List;
9+
import java.util.UUID;
10+
11+
import javax.xml.datatype.DatatypeConfigurationException;
12+
13+
import org.slf4j.Logger;
14+
import org.slf4j.LoggerFactory;
15+
16+
import software.xdev.bzst.dip.client.BzstDipClient;
17+
import software.xdev.bzst.dip.client.exception.HttpStatusCodeNotExceptedException;
18+
import software.xdev.bzst.dip.client.model.configuration.BzstDipConfiguration;
19+
import software.xdev.bzst.dip.client.model.configuration.BzstDipConfigurationBuilder;
20+
import software.xdev.bzst.dip.client.model.configuration.BzstDipOecdDocType;
21+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopAccountIdentifier;
22+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopAccountIdentifierTypeEnum;
23+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopAdress;
24+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopAmount;
25+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopDocSpec;
26+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopDocTypeIndicEnum;
27+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopLegalAdressTypeEnum;
28+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopMSCountryCodeTypeEnum;
29+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopMessageTypeEnum;
30+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopMessageTypeIndicEnum;
31+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopName;
32+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopNameTypeEnum;
33+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopPSPIdType;
34+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopPSPIdTypeEnum;
35+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopPSPRole;
36+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopPSPRoleTypeEnum;
37+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopPayerMS;
38+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopPaymentDataBody;
39+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopPaymentMethod;
40+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopPaymentMethodEnum;
41+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopReportedPayee;
42+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopReportedTransaction;
43+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopReportingPSP;
44+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopTAXIdentification;
45+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopTransactionDateType;
46+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopTransactionDateTypeEnum;
47+
import software.xdev.bzst.dip.client.model.message.cesop.BzstCesopVatId;
48+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipAddressFix;
49+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipCompleteResult;
50+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipCountryCode;
51+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipCurrency;
52+
53+
54+
@SuppressWarnings("checkstyle:MagicNumber")
55+
public final class ApplicationWithCesop
56+
{
57+
private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationWithCesop.class);
58+
59+
public static void main(final String[] args)
60+
throws InterruptedException, HttpStatusCodeNotExceptedException, IOException, DatatypeConfigurationException
61+
{
62+
final BzstDipConfiguration configuration = createConfiguration();
63+
final BzstDipClient bzstDipClient = new BzstDipClient(configuration);
64+
final BzstDipCompleteResult bzstDipCompleteResult = bzstDipClient.sendDipAndQueryResult(createMessage());
65+
LOGGER.info(
66+
"Sending dip message with transfer number {} {}",
67+
bzstDipCompleteResult.dataTransferNumber(),
68+
bzstDipCompleteResult.isSuccessful() ? "was successful." : "has failed!"
69+
);
70+
}
71+
72+
public static BzstDipConfiguration createConfiguration()
73+
{
74+
return new BzstDipConfigurationBuilder()
75+
.setApplicationCode(BzstDipConfiguration.SupportedApplicationCode.CESOP)
76+
.setClientId("abcd1234-ab12-ab12-ab12-abcdef123456")
77+
.setTaxID("86095742719")
78+
.setTaxNumber("123")
79+
.setCertificateKeystoreInputStream(() -> ClassLoader.getSystemClassLoader()
80+
.getResourceAsStream("DemoKeystore.jks"))
81+
.setCertificateKeystorePassword("test123")
82+
.setRealmEnvironmentBaseUrl(BzstDipConfiguration.ENDPOINT_URL_TEST)
83+
.setMessageTypeIndicCesop(BzstCesopMessageTypeIndicEnum.CESOP_101)
84+
.setReportingPeriod(LocalDate.now())
85+
.setDocTypeIndic(BzstDipOecdDocType.OECD_1)
86+
.setPlatformOperatorOrganizationName("TestOrg")
87+
.setPlatformOperatorPlatformName("TestApp")
88+
.setPlatformOperatorAddress(new BzstDipAddressFix("TestCity"))
89+
.setTransmittingCountry(BzstDipCountryCode.DE)
90+
.setMessageType(BzstCesopMessageTypeEnum.PMT)
91+
.setReportingPeriodCesopQuarter(2)
92+
.setReportingPeriodCesopYear("2024")
93+
.setMessageRefId(UUID.randomUUID().toString())
94+
.setTimestamp(ZonedDateTime.parse("2024-05-08T14:02:53Z", DateTimeFormatter.ISO_ZONED_DATE_TIME))
95+
.buildAndValidate();
96+
}
97+
98+
public static BzstCesopPaymentDataBody createMessage()
99+
{
100+
return new BzstCesopPaymentDataBody(
101+
new BzstCesopReportingPSP(
102+
new BzstCesopPSPIdType(BzstCesopPSPIdTypeEnum.BIC, "TRSYDEFFXXX"),
103+
new BzstCesopName(BzstCesopNameTypeEnum.LEGAL, "360 TREASURY SYSTEMS AG")
104+
),
105+
List.of(
106+
new BzstCesopReportedPayee(
107+
new BzstCesopName(BzstCesopNameTypeEnum.BUSINESS, "German Company AG"),
108+
BzstDipCountryCode.DE,
109+
new BzstCesopAdress(
110+
BzstCesopLegalAdressTypeEnum.CESOP_303,
111+
BzstDipCountryCode.DE,
112+
"Beispielstraße 3, 11712 Berlin"),
113+
new BzstCesopTAXIdentification(new BzstCesopVatId(
114+
BzstCesopMSCountryCodeTypeEnum.DE,
115+
"112233445")),
116+
new BzstCesopAccountIdentifier(
117+
BzstDipCountryCode.DE,
118+
BzstCesopAccountIdentifierTypeEnum.IBAN,
119+
"DE32503302010298200040"),
120+
new BzstCesopReportedTransaction(false, "DE-01-0101",
121+
new BzstCesopTransactionDateType(
122+
BzstCesopTransactionDateTypeEnum.CESOP_701,
123+
ZonedDateTime.parse("2024-03-03T11:53:25Z", DateTimeFormatter.ISO_ZONED_DATE_TIME)),
124+
new BzstCesopAmount(BzstDipCurrency.EUR, new BigDecimal("100")),
125+
new BzstCesopPaymentMethod(BzstCesopPaymentMethodEnum.BANK_TRANSFER),
126+
false,
127+
new BzstCesopPayerMS(
128+
BzstCesopAccountIdentifierTypeEnum.IBAN,
129+
BzstCesopMSCountryCodeTypeEnum.FR),
130+
new BzstCesopPSPRole(BzstCesopPSPRoleTypeEnum.MONEY_TRANSFER_OPERATOR)),
131+
new BzstCesopDocSpec(BzstCesopDocTypeIndicEnum.CESOP_1, UUID.randomUUID())
132+
)
133+
)
134+
);
135+
}
136+
137+
private ApplicationWithCesop()
138+
{
139+
}
140+
}

bzst-dip-java-client-demo/src/main/java/software/xdev/ApplicationWithConfigurationFromProperties.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import software.xdev.bzst.dip.client.model.configuration.BzstDipConfiguration;
1111
import software.xdev.bzst.dip.client.model.configuration.BzstDipConfigurationBuilder;
1212
import software.xdev.bzst.dip.client.model.configuration.PropertiesSupplier;
13-
import software.xdev.bzst.dip.client.model.message.BzstDipCompleteResult;
13+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipCompleteResult;
1414

1515

1616
@SuppressWarnings("checkstyle:MagicNumber")
@@ -24,7 +24,7 @@ public static void main(final String[] args)
2424
final BzstDipConfiguration configuration = createConfigurationFromProperties();
2525
final BzstDipClient bzstDipClient = new BzstDipClient(configuration);
2626
final BzstDipCompleteResult bzstDipCompleteResult =
27-
bzstDipClient.sendDipAndQueryResult(Application.createMessage());
27+
bzstDipClient.sendDipAndQueryResult(ApplicationWithDac7.createMessage());
2828
LOGGER.info(
2929
"Sending dip message with transfer number {} {}",
3030
bzstDipCompleteResult.dataTransferNumber(),

bzst-dip-java-client-demo/src/main/java/software/xdev/ApplicationWithCsvInput.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import software.xdev.bzst.dip.client.BzstDipClient;
1515
import software.xdev.bzst.dip.client.exception.HttpStatusCodeNotExceptedException;
1616
import software.xdev.bzst.dip.client.model.configuration.BzstDipConfiguration;
17-
import software.xdev.bzst.dip.client.model.message.BzstDipCompleteResult;
17+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipCompleteResult;
1818

1919

2020
@SuppressWarnings("checkstyle:MagicNumber")
@@ -25,7 +25,7 @@ public final class ApplicationWithCsvInput
2525
public static void main(final String[] args)
2626
throws InterruptedException, HttpStatusCodeNotExceptedException, IOException, CsvValidationException
2727
{
28-
final BzstDipConfiguration configuration = Application.createConfiguration();
28+
final BzstDipConfiguration configuration = ApplicationWithDac7.createConfiguration();
2929

3030
final String csvData = getResourceFileAsString("DemoCsvData.csv");
3131

bzst-dip-java-client-demo/src/main/java/software/xdev/Application.java renamed to bzst-dip-java-client-demo/src/main/java/software/xdev/ApplicationWithDac7.java

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,25 @@
1414
import software.xdev.bzst.dip.client.model.configuration.BzstDipConfigurationBuilder;
1515
import software.xdev.bzst.dip.client.model.configuration.BzstDipDpiMessageType;
1616
import software.xdev.bzst.dip.client.model.configuration.BzstDipOecdDocType;
17-
import software.xdev.bzst.dip.client.model.message.BzstDipAddressFix;
18-
import software.xdev.bzst.dip.client.model.message.BzstDipCompleteResult;
19-
import software.xdev.bzst.dip.client.model.message.BzstDipConsiderations;
20-
import software.xdev.bzst.dip.client.model.message.BzstDipCorrectableReportableSellerType;
21-
import software.xdev.bzst.dip.client.model.message.BzstDipCountryCode;
22-
import software.xdev.bzst.dip.client.model.message.BzstDipCurrency;
23-
import software.xdev.bzst.dip.client.model.message.BzstDipFees;
24-
import software.xdev.bzst.dip.client.model.message.BzstDipMessage;
25-
import software.xdev.bzst.dip.client.model.message.BzstDipMonetaryAmount;
26-
import software.xdev.bzst.dip.client.model.message.BzstDipNumberOfActivities;
27-
import software.xdev.bzst.dip.client.model.message.BzstDipOecdLegalAddressType;
28-
import software.xdev.bzst.dip.client.model.message.BzstDipTaxes;
29-
import software.xdev.bzst.dip.client.model.message.BzstDipTin;
17+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipAddressFix;
18+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipCompleteResult;
19+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipConsiderations;
20+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipCorrectableReportableSellerType;
21+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipCountryCode;
22+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipCurrency;
23+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipFees;
24+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipMessage;
25+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipMonetaryAmount;
26+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipNumberOfActivities;
27+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipOecdLegalAddressType;
28+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipTaxes;
29+
import software.xdev.bzst.dip.client.model.message.dac7.BzstDipTin;
3030

3131

3232
@SuppressWarnings("checkstyle:MagicNumber")
33-
public final class Application
33+
public final class ApplicationWithDac7
3434
{
35-
private static final Logger LOGGER = LoggerFactory.getLogger(Application.class);
35+
private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationWithDac7.class);
3636

3737
public static void main(final String[] args)
3838
throws InterruptedException, HttpStatusCodeNotExceptedException, IOException
@@ -50,6 +50,7 @@ public static void main(final String[] args)
5050
public static BzstDipConfiguration createConfiguration()
5151
{
5252
return new BzstDipConfigurationBuilder()
53+
.setApplicationCode(BzstDipConfiguration.SupportedApplicationCode.DAC7)
5354
.setClientId("abcd1234-ab12-ab12-ab12-abcdef123456")
5455
.setTaxID("86095742719")
5556
.setTaxNumber("123")
@@ -112,7 +113,7 @@ public static BzstDipMessage createMessage()
112113
);
113114
}
114115

115-
private Application()
116+
private ApplicationWithDac7()
116117
{
117118
}
118119
}

bzst-dip-java-client-demo/src/main/resources/app.properties

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ environment=TEST
44

55
tax.id=123456781011
66
tax.number=123456781011
7+
application.code=
78

89
message.type=DPI402
910
reporting.period=2023-12-31
@@ -26,3 +27,9 @@ platform.operator.address.street=
2627
platform.operator.address.building=
2728
platform.operator.address.suite=
2829
platform.operator.address.floor=
30+
transmitting.country=
31+
message.ref.id=
32+
reporting.period.cesop.quarter=
33+
reporting.period.cesop.year=
34+
timestamp=
35+
message.type.indic=

bzst-dip-java-client/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>software.xdev</groupId>
88
<artifactId>bzst-dip-java-client</artifactId>
9-
<version>1.0.4-SNAPSHOT</version>
9+
<version>2.0.0-SNAPSHOT</version>
1010
<packaging>jar</packaging>
1111

1212
<name>bzst-dip-java-client</name>

0 commit comments

Comments
 (0)