{"id":20471526,"url":"https://github.com/backbase/symitar-core-banking-client","last_synced_at":"2025-06-23T09:08:04.664Z","repository":{"id":40662746,"uuid":"486617076","full_name":"Backbase/symitar-core-banking-client","owner":"Backbase","description":"A backend accelerator library supporting integrations for Jack Henry's Symitar core.","archived":false,"fork":false,"pushed_at":"2022-04-29T18:31:35.000Z","size":247,"stargazers_count":3,"open_issues_count":0,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-06-22T14:57:56.240Z","etag":null,"topics":["accelerators","backend"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Backbase.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-28T13:59:27.000Z","updated_at":"2023-08-30T21:01:45.000Z","dependencies_parsed_at":"2022-07-24T20:02:07.959Z","dependency_job_id":null,"html_url":"https://github.com/Backbase/symitar-core-banking-client","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Backbase/symitar-core-banking-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Backbase%2Fsymitar-core-banking-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Backbase%2Fsymitar-core-banking-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Backbase%2Fsymitar-core-banking-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Backbase%2Fsymitar-core-banking-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Backbase","download_url":"https://codeload.github.com/Backbase/symitar-core-banking-client/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Backbase%2Fsymitar-core-banking-client/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261449800,"owners_count":23159806,"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":["accelerators","backend"],"created_at":"2024-11-15T14:16:25.511Z","updated_at":"2025-06-23T09:07:59.652Z","avatar_url":"https://github.com/Backbase.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# symitar-core-banking-client\n\nThis project contains a SOAP client library that can be used to call Symitar web services. WSDLs and XSDs are located\nin: `src/main/resources/wsdl`\n\nThis project can be utilized in your Backbase integration services as a Maven dependency. Simply include the following\nmaven coordinates in the `dependency` section of your service's `pom.xml`\n\n```aidl\n    \u003cgroupId\u003ecom.backbase.accelerators\u003c/groupId\u003e\n    \u003cartifactId\u003esymitar-core-banking-client\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.0\u003c/version\u003e\n```\n\n## Build this project\n\nFrom the root directory of this project, run:\n\n```mvn clean install```\n\nThis will compile the project and generate Java classes from the WSDLs and XSDs in the resources folder. The generated\nclasses can be found in: `target/generated-sources`\n\n### Example usage - Defining `application.yml` configuration:\n\nProperties should be defined in your Backbase integration service as follows. Please obtain actual configuration values\nfrom your customer.\n\n```yaml\nsymitar:\n  client:\n    baseUrl: http://symitar.webservice.host:8087/SymXchange/2020.00\n    admin-credientials: ADMIN_CREDENTIALS\n    device-type: DEVICE_TYPE\n    device-number: 12345\n```\n\n```java\n\n@Data\n@Configuration\n@ConfigurationProperties(\"symitar.client\")\npublic class SymitarCoreBankingClientProperties {\n\n    private String baseUrl;\n    private String adminCredentials;\n    private String deviceType;\n    private short deviceNumber;\n\n    public SymitarRequestSettings toSymitarRequestSettings() {\n        /* This example uses AdministrativeCredentials, but there are other credential types such as \n        UserNumberCredentials, TokenCredentials, AccountNumberCredentials, etc. \n        Review the AdminCredentialsChoice and CredentialsChoice classes to understand what options are available to set */\n\n        AdministrativeCredentials administrativeCredentials = new AdministrativeCredentials();\n        administrativeCredentials.setPassword(adminCredentials);\n\n        AdminCredentialsChoice adminCredentialsChoice = new AdminCredentialsChoice();\n        adminCredentialsChoice.setAdministrativeCredentials(administrativeCredentials);\n\n        CredentialsChoice credentialsChoice = new CredentialsChoice();\n        credentialsChoice.setAdministrativeCredentials(administrativeCredentials);\n\n        DeviceInformation deviceInformation = new DeviceInformation();\n        deviceInformation.setDeviceNumber(deviceNumber);\n        deviceInformation.setDeviceType(deviceType);\n\n        SymitarRequestSettings symitarRequestSettings = new SymitarRequestSettings();\n        symitarRequestSettings.setBaseUrl(baseUrl);\n        symitarRequestSettings.setAdminCredentialsChoice(adminCredentialsChoice);\n        symitarRequestSettings.setCredentialsChoice(credentialsChoice);\n        symitarRequestSettings.setDeviceInformation(deviceInformation);\n        symitarRequestSettings.setMessageId(UUID.randomUUID().toString());\n\n        return symitarRequestSettings;\n    }\n}\n```\n\n### Example usage - Defining a Spring Bean in Your Integration Service:\n\nThe below example wires up the `AccountClient`, `TransactionClient` and `TransferClient` as Spring beans.\n\n```java\n\n@Configuration\npublic class SymitarCoreBankingClientConfiguration {\n\n    @Bean\n    @SneakyThrows\n    public AccountClient accountClient(SymitarCoreBankingClientProperties symitarCoreBankingClientProperties) {\n        return new AccountClient(\n                getAccountService(symitarCoreBankingClientProperties),\n                symitarCoreBankingClientProperties.toSymitarRequestSettings());\n    }\n\n    @Bean\n    @SneakyThrows\n    public TransactionClient transactionClient(SymitarCoreBankingClientProperties symitarCoreBankingClientProperties) {\n        return new TransactionClient(\n                getAccountService(symitarCoreBankingClientProperties),\n                symitarCoreBankingClientProperties.toSymitarRequestSettings());\n    }\n\n    @Bean\n    @SneakyThrows\n    public TransferClient transferClient(SymitarCoreBankingClientProperties symitarCoreBankingClientProperties) {\n        return new TransferClient(\n                getAccountService(symitarCoreBankingClientProperties),\n                getTransactionsService(symitarCoreBankingClientProperties),\n                symitarCoreBankingClientProperties.toSymitarRequestSettings());\n    }\n\n    @SneakyThrows\n    private AccountService getAccountService(SymitarCoreBankingClientProperties symitarCoreBankingClientProperties) {\n        String url = buildFinalUrl(symitarCoreBankingClientProperties.getBaseUrl(), Endpoints.ACCOUNT_ENDPOINT);\n        return new AccountService_Service(new URL(url)).getAccountServicePort();\n    }\n\n    @SneakyThrows\n    private TransactionsService getTransactionsService(SymitarCoreBankingClientProperties symitarCoreBankingClientProperties) {\n        String url = buildFinalUrl(symitarCoreBankingClientProperties.getBaseUrl(), Endpoints.TRANSACTIONS_ENDPOINT);\n        return new TransactionsService_Service(new URL(url)).getTransactionsServicePort();\n    }\n\n    private String buildFinalUrl(String baseUrl, String endpoint) {\n        return baseUrl.concat(endpoint);\n    }\n}\n```\n\n### Additional configuration options:\n\nThe `SymitarRequestSettings` supports additional nested configuration settings for the following:\n\n- Stop check payments\n- Wire transfers\n\nThis is done to promote feature-specific configurability that may vary across customers. For example, a stop check\npayment fee withdrawal code for one institution may be `1`, but for another institution it may be `3`.\n\nLeveraging the example above, you can define additional properties in your `application.yml` as follows (this example\nwill use stop check payments):\n\n```yaml\nsymitar:\n  client:\n    baseUrl: http://symitar.webservice.host:8087/SymXchange/2020.00\n    admin-password: ADMIN_PASSWORD\n    device-type: DEVICE_TYPE\n    device-number: 12345\n    stopCheckPaymentOptions: # Adding stop check payment properties\n      withdrawalFeeAmount: 3.00\n      withdrawalFeeReasonText: Withdrawal fee for stop check payment\n      withdrawalFeeCode: 1\n      generalLedgerClearingCode: 33\n\n```\n\nAnd update `SymitarCoreBankingClientProperties`:\n\n```java\n\n@Data\n@Configuration\n@ConfigurationProperties(\"symitar.client\")\npublic class SymitarCoreBankingClientProperties {\n\n    private String baseUrl;\n    private String adminPassword;\n    private String deviceType;\n    private short deviceNumber;\n    private StopCheckPaymentOptions stopCheckPaymentOptions; // New class member to bind application.yml properties to\n\n    // Static nested class to hold stop check payment configuration\n    @Data\n    public static class StopCheckPaymentOptions {\n\n        private BigDecimal withdrawalFeeAmount;\n        private String withdrawalFeeReasonText;\n        private short withdrawalFeeCode;\n        private short generalLedgerClearingCode;\n    }\n\n    public SymitarRequestSettings toSymitarRequestSettings() {\n        AdministrativeCredentials administrativeCredentials = new AdministrativeCredentials();\n        administrativeCredentials.setPassword(adminPassword);\n\n        AdminCredentialsChoice adminCredentialsChoice = new AdminCredentialsChoice();\n        adminCredentialsChoice.setAdministrativeCredentials(administrativeCredentials);\n\n        CredentialsChoice credentialsChoice = new CredentialsChoice();\n        credentialsChoice.setAdministrativeCredentials(administrativeCredentials);\n\n        DeviceInformation deviceInformation = new DeviceInformation();\n        deviceInformation.setDeviceNumber(deviceNumber);\n        deviceInformation.setDeviceType(deviceType);\n\n        // Mapping stop check payment properties from application.yml to SymitarRequestSettings.StopCheckPaymentSettings object\n        SymitarRequestSettings.StopCheckPaymentSettings stopCheckPaymentSettings = new SymitarRequestSettings.StopCheckPaymentSettings();\n        stopCheckPaymentSettings.setWithdrawalFeeAmount(stopCheckPaymentOptions.getWithdrawalFeeAmount());\n        stopCheckPaymentSettings.setWithdrawalFeeReasonText(stopCheckPaymentOptions.getWithdrawalFeeReasonText());\n        stopCheckPaymentSettings.setWithdrawalFeeCode(stopCheckPaymentOptions.getWithdrawalFeeCode());\n        stopCheckPaymentSettings.setGeneralLedgerClearingCode(stopCheckPaymentOptions.getGeneralLedgerClearingCode());\n\n        SymitarRequestSettings symitarRequestSettings = new SymitarRequestSettings();\n        symitarRequestSettings.setBaseUrl(baseUrl);\n        symitarRequestSettings.setAdminCredentialsChoice(adminCredentialsChoice);\n        symitarRequestSettings.setCredentialsChoice(credentialsChoice);\n        symitarRequestSettings.setDeviceInformation(deviceInformation);\n        symitarRequestSettings.setMessageId(UUID.randomUUID().toString());\n        symitarRequestSettings.setStopCheckPaymentSettings(stopCheckPaymentSettings);\n\n        return symitarRequestSettings;\n    }\n}\n```\n\nSee `SymitarRequestSettings.java` class for all available configuration settings.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbackbase%2Fsymitar-core-banking-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbackbase%2Fsymitar-core-banking-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbackbase%2Fsymitar-core-banking-client/lists"}