{"id":19725631,"url":"https://github.com/xdev-software/bzst-dip-java-client","last_synced_at":"2025-10-04T17:03:24.327Z","repository":{"id":229793209,"uuid":"774930686","full_name":"xdev-software/bzst-dip-java-client","owner":"xdev-software","description":"Java client library for the BZST - DIP (Bundeszentralamt für Steuern - Digitaler Posteingang)","archived":false,"fork":false,"pushed_at":"2025-07-07T03:21:22.000Z","size":1394,"stargazers_count":9,"open_issues_count":12,"forks_count":3,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-07-07T04:30:41.710Z","etag":null,"topics":["bundestzentralamt-fuer-steuern","bzst","client","digitaler","digitaler-posteingang","dip","java","posteingang","steuern"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xdev-software.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-03-20T13:11:06.000Z","updated_at":"2025-05-20T11:35:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"1096bf27-9da1-4be7-bb79-82a9ffc3bb84","html_url":"https://github.com/xdev-software/bzst-dip-java-client","commit_stats":null,"previous_names":["xdev-software/bzst-dip-java-client"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/xdev-software/bzst-dip-java-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xdev-software%2Fbzst-dip-java-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xdev-software%2Fbzst-dip-java-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xdev-software%2Fbzst-dip-java-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xdev-software%2Fbzst-dip-java-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xdev-software","download_url":"https://codeload.github.com/xdev-software/bzst-dip-java-client/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xdev-software%2Fbzst-dip-java-client/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265443439,"owners_count":23766407,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bundestzentralamt-fuer-steuern","bzst","client","digitaler","digitaler-posteingang","dip","java","posteingang","steuern"],"created_at":"2024-11-11T23:31:47.303Z","updated_at":"2025-10-04T17:03:24.304Z","avatar_url":"https://github.com/xdev-software.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Latest version](https://img.shields.io/maven-central/v/software.xdev/bzst-dip-java-client?logo=apache%20maven)](https://mvnrepository.com/artifact/software.xdev/bzst-dip-java-client)\n[![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/bzst-dip-java-client/check-build.yml?branch=develop)](https://github.com/xdev-software/bzst-dip-java-client/actions/workflows/check-build.yml?query=branch%3Adevelop)\n[![API Specification Editor](https://img.shields.io/badge/API--Spec-Editor-85ea2d?logo=swagger)](https://editor.swagger.io/?url=https://raw.githubusercontent.com/xdev-software/bzst-dip-java-client/develop/openapi/openapi.yml)\n\n# \u003cimg src=\"assets/logo-v2.svg\" height=\"24\" alt=\"XDEV BZST-DIP-Java-Client Logo\"\u003e bzst-dip-java-client\n\nClient for using the [Mass data transmission DIP (mass data interface)](https://www.bzst.de/EN/Businesses/CESOP/electronic_data_transmission/electronic_data_transmission_node.html#js-toc-entry1).\n\nThe BZSt (Bundeszentralamt für Steuern / Federal Central Tax Office) provides the Digital Inbox (DIP) as a service for payment service providers to transmit financial data.\n\nThis library uses a [generated](./bzst-dip-java-client/pom.xml) client from an [``openapi.yml``](./openapi/openapi.yml)\nusing [OpenAPI Generator](https://openapi-generator.tech/).\n\nClients need to register / login\nat [BZSt online.portal](https://www.bzst.de/DE/Service/Portalinformation/Massendaten/DIP/dip.html?nn=68828)\nthrough [Elster](https://www.elster.de/elsterweb/start), [BundID](https://id.bund.de/de)\nor [BZSt Online-Portal (BOP)](https://www.elster.de/bportal/start).\n\nSee the [BZSt Information](https://www.bzst.de/EN/Service/Portalinformation/Login/login_node.html) for more information.\n\n\u003e [!NOTE]\n\u003e **BZSt Online-Portal** (deprecated) is different from **BZSt online.portal**.\n\n\u003e [!IMPORTANT]  \n\u003e We are currently on version 2.0.0. Since testing with the BZSt is quite difficult,\n\u003e **we could not test this version fully**.\n\u003e\n\u003e If you don't want to take any risk using our client, you can still use the **stable and\ntested [version 1.0.3 of this library](https://github.com/xdev-software/bzst-dip-java-client/releases/tag/v1.0.3)**.\n\u003e\n\u003e If you are **willing to test v2.0.0**, we would very much appreciate your feedback!\n\n## Rationale\n\nWe created this client to make it as easy as possible for the developer to use the BZSt DIP.\nThrough usage of the builder pattern (see [Configuration](#configuration) below), DTOs and a typesafe data model we ensure high usability and readability.\n\nThe BZSt provides [XSD](https://www.bzst.de/DE/Unternehmen/Umsatzsteuer/CESOP/Benutzerhandbuch/cesop-benutzerhandbuch.html) that define the expected XML structure and make it possible to generate java classes ([BZSt Docs](https://www.bzst.de/DE/Unternehmen/Intern_Informationsaustausch/DAC7/Handbuecher/handbuecher.html?nn=127558#js-toc-entry2)).\u003cbr/\u003e\nOur library validates each request through these XSD find errors before they are sent to the DIP.\n\n## Installation\n[Installation guide for the latest release](https://github.com/xdev-software/bzst-dip-java-client/releases/latest#Installation)\n\n## Usage\n\nSee the [examples in the demo package](./bzst-dip-java-client-demo/src/main/java/software/xdev/).\n\n### Create certificate\n\nFor authentification at the BZST you have to create a public- and private-key.\n\nFirst you have to create a **PEM** file as described on the [BZST Website](https://www.bzst.de/DE/Service/Portalinformation/Massendaten/DIP/dip_node.html) (see 1.7).\n\nOpenSSL can be downloaded from the [website](https://www.openssl.org/).\n\n```\nopenssl req -newkey rsa-pss -new -nodes -x509 -days 3650 -pkeyopt rsa_keygen_bits:4096 -sigopt rsa_pss_saltlen:32 -keyout key.pem -out cert.pem\n```\n\nYou also have to set the public key in the [BZST online.portal](https://online.portal.bzst.de/).\nExporting the public key with OpenSSL is easy:\n\n```\nopenssl rsa -in key.pem -pubout \u003e publicKey.pub\n```\n\nNow you can already use these two files to sign your requests. See\nthe [example with PEM signing](./bzst-dip-java-client-demo/src/main/java/software/xdev/ApplicationWithPem.java).\n\n### Create Java KeyStore (JKS)\n\nIf you want to go one step further you can use the Java KeyStore. Then you have to convert the `cert.pem` file to a *\n*PKCS12** file.\n\n```\nopenssl pkcs12 -export -in cert.pem -inkey key.pem -out certificate.p12 -name \"certificate\"\n```\n\nThe [keytool](https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html) is contained in your JDK installation.\n\n```\nkeytool -importkeystore -srckeystore certificate.p12 -srcstoretype pkcs12 -destkeystore cert.jks\n```\n\nThe password you insert here, along with the file itself must be set in the client configuration. See example at [app.properties](./bzst-dip-java-client-demo/src/main/resources/app.properties):\n\n```\ncertificate.keystore.password=SECRET_PASSWORD\ncertificate.keystore.file=cert.jks\n```\n\n### Client ID\n\nIt's also important to use the client id provided by [BZST online.portal](https://online.portal.bzst.de/)\nin the client configuration. See example\nat [app.properties](./bzst-dip-java-client-demo/src/main/resources/app.properties):\n\n```\nclient.id=abcd1234-ab12-ab12-ab12-abcdef123456\n```\n\n### Configuration\n\nThe client can be configured through a properties file (\nsee [app.properties](./bzst-dip-java-client-demo/src/main/resources/app.properties)\nand [ApplicationWithConfigurationFromProperties.java](./bzst-dip-java-client-demo/src/main/java/software/xdev/ApplicationWithConfigurationFromProperties.java))\nor by creating a configuration object (\nsee [ApplicationWithDac7.java](./bzst-dip-java-client-demo/src/main/java/software/xdev/ApplicationWithDac7.java)).\n\n```java\npublic static BzstDipConfiguration createConfiguration()\n{\n\treturn new BzstDipConfigurationBuilder()\n\t\t.setApplicationCode(BzstDipConfiguration.SupportedApplicationCode.DAC7)\n\t\t.setClientId(\"abcd1234-ab12-ab12-ab12-abcdef123456\")\n\t\t.setTaxID(\"86095742719\")\n\t\t.setTaxNumber(\"123\")\n\t\t.setSigningProvider(new SigningProviderByJks(\"DemoKeystore.jks\", \"test123\"))\n\t\t.setRealmEnvironmentBaseUrl(BzstDipConfiguration.ENDPOINT_URL_TEST)\n\t\t.setMessageTypeIndic(BzstDipDpiMessageType.DPI_401)\n\t\t.setReportingPeriod(LocalDate.now())\n\t\t.setDocTypeIndic(BzstDipOecdDocType.OECD_1)\n\t\t.setPlatformOperatorOrganizationName(\"TestOrg\")\n\t\t.setPlatformOperatorPlatformName(\"TestApp\")\n\t\t.setPlatformOperatorAddress(new BzstDipAddressFix(\"TestCity\"))\n\t\t.buildAndValidate();\n}\n```\n\nMessages are sent with\nDAC7 ([ApplicationWithDac7.java](./bzst-dip-java-client-demo/src/main/java/software/xdev/ApplicationWithDac7.java)) or\nthe\nCESOP ([ApplicationWithCesop.java](./bzst-dip-java-client-demo/src/main/java/software/xdev/ApplicationWithCesop.java))\nFormat.\n\n## Support\n\nIf you need support as soon as possible, and you can't wait for any pull request, feel free to use [our support](https://xdev.software/en/services/support).\n\n## Contributing\nSee the [contributing guide](./CONTRIBUTING.md) for detailed instructions on how to get started with our project.\n\n## Dependencies and Licenses\nView the [license of the current project](LICENSE) or the [summary including all dependencies](https://xdev-software.github.io/bzst-dip-java-client/dependencies)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxdev-software%2Fbzst-dip-java-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxdev-software%2Fbzst-dip-java-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxdev-software%2Fbzst-dip-java-client/lists"}