Need better x9.37 batch tools? Our products offer more value than the competition, and are trusted by more than 75% of the top-20 financial institutions in North America. Connect with us at sales@x9ware.com and start a free evaluation today.

X9Ware SDK Overview

Development SDKs are a complex topic, so please contact us with specific SDK questions at support@x9ware.com.

The X9Ware SDK is a full function Software Developer Kit (SDK) for Java programmers. It provides a wide of functions that are needed in support of X9.37, ACH, or CPA005 application development. Our design is to implement these various file formats (which we refer to as dialects) from a single SDK using a common API. Our goal has been to make this extensible to other dialects in the future, to allow our SDK to continue to meet the needs of the financial industry. The SDK is used extensively as the basis for all internally developed X9Ware products, and can similarly be used as the basis for your development work.

The SDK is 100% Java with minimal open source JARs. This simplifies our environment and reduces our software footprint. The SDK has a baseline requirement of JDK 1.8 on our desire to move to various functionality that was added in that release level including Lambda support.

We believe that our SDK has excellent capabilities and performance, when compared to any other tool you will find within the industry. Our validation engine (which supports both x9 and ach file formats) and associated rules are built into the SDK and can be leveraged by user implementations. The SDK contains many ancillary and advanced x9 functions for the developer such as TIFF image draw and IRD creation. Our SDK is a proven product with customer implementations in Windows, Linux, and AIX. We have customer implementations using the Oracle JDK, various Open JDKs, as well as more complex environments such as Apache Tomcat, Spring, and WebSphere. The SDK supports full multi-threaded processing within a server environment.

The SDK allows inputs and outputs to be processed as files or streams (note that X9Utilities supports files only).  This means that your application can have an x9.37 input file which can be easily exported to a CSV stream. Just as easily, your application can be completely stream based, without anything written to the file system. This is especially beneficial when running an application in the cloud (eg, within a docker container). The SDK has is fully self defined with all resource files embedded as internally defined resources. This implementation means that we have no dependencies on external files or folders. These resources include our internally defined components such as x9 rules, tiff rules, messages, packaged images, etc. Our technical design allows you to define these resources in external folders to override our JAR definition or add your own components as needed.

The SDK uses SLF4J to provide logging flexibility. An implementation is provided that is based on use of the JDK logger that can be replaced with LOG4J.

Our SDK has been an evolving process and continues to be enhanced as we add new functions to our x9 tools. The philosophy at X9Ware has been to implement all primary x9 functions within the SDK and to then expose that functionality directly to our user base through our user base using such tools as X9Assist and X9Utilities. With this approach, you can essentially use the SDK to do the wide array of functions that are implemented in X9Assist. For example, with the SDK you can: read, write, extract, and summary the content of input files; validate data and images; extract data and images; repair TIFF images; use templates to draw test items; draw image replacement documents (IRDs); and so forth.

The SDK is an evolving process and continues to be enhanced as we add new functions to our x9+ach tools. The philosophy at X9Ware has been to implement all primary functions within the SDK and to then expose and present that functionality using such tools as X9Assist and X9Utilities. With this approach, you can essentially use the SDK to perform a wide array of functions that are demonstrated in X9Assist. Our x9 rules engine is implemented within the SDK, which means that you can use it to both validate and create x9 files using any of our defined x9 rules configurations. You can also create your own customized x9 rules which will allow you to validate x9 files against your own x9 variants.

The X9Ware SDK is not an afterthought. It is used internally by X9Assist to perform virtually all x9 related I/O functions. Most of the X9Assist tools are built into the SDK itself, so they are available to our SDK users. For example, x9 file validation and tiff image repair are complex functions that are available from the SDK. Consistent use of the SDK within X9Assist simplified the development of our product and we know that it can do the same for you.The SDK is also not a static product. Our philosophy of building upon the SDK will continue. This product will be expanded and improved as future X9Assist enhancements are implemented.

Our SDK includes Java classes that map the logical fields that exist within that x9 record type. This field level interface allows your application to work at the field level for both read and write (modify) operations. This field level interface also exists for the type 31 credit reconciliation record and is implemented in a manner that supports custom type 31 record formats per your own definition.

SDK Functionality

Examples of functions that can be performed by the SDK:

  • Read/Write x9+ach files at both the record and field level
  • Full multi-thread support to process multiple files concurrently
  • Parse of input files (x9+ach)into record level objects that can be searched and modified
  • File validation (x9+ach) at the record and image level
  • X9 TIFF validation and repair
  • Image rescaling and conversion
  • Check and IRD image drawing
  • Paid stamp for overlay onto back side check images
  • Access individual images on both input and output
  • Dynamically draw images to create x9 data for test systems (similar to Make)
  • Dynamically draw IRDs (image replacement documents) including the endorsement chain and return reason
  • File import/export to and from csv files
  • Make/Generate/Scrub/Merge and other tools
  • Extensive logging based on SLF4J (Simple Logging Facade) which is pluggable for log4j, logback, etc
  • And other similar low level functions

The X9Ware SDK has advantages over similar products offered by other vendors

  • More functionality
  • No timeouts or expiration dates built into the product
  • No CPU or server level registration is required
  • Once licensed, ongoing usage is based on maintenance renewals; we do not want your production applications aborting due to license key issues

Other X9 Java Library Alternatives

Please also be aware that there is an open source X9.37 Java Library (GNU Affero General Public License) on Source Forge that includes both jar and source code. We provide this link on an informational basis only (this mention should not be considered as any type of recommendation or endorsement). We have not used this source code within our products, it is not included in any way within our SDK, and there has no commonality whatsoever with our API. It is just another alternative to be considered. This open source project contains basic record level read/write functionality, but that may be all that you require. You can reference this project work here, on source forge. This open source project has 11k lines of code, while our SDK has 200k+ lines of code. What types of additional functionality is supported by our SDK? There is a long list of things, like support for all common x9 specifications and financial institution variations, our x9writer technology, xml driven data/image validation, credit support, our image drawing, tools such as import/export, make/generate, merge, scrub, and much more.

Scroll to Top