bai-btrs-active-parsers

0.0.1 • Public • Published

BAI-BTRS-active-parsers

BAI-BTRS-active-parsers can be used to convert BTRS - Balance Transaction and Reporting Standard files.

BAI-BTRS-active-parsers:

The output formats supported are:

Ohm

Ohm is a parser generator consisting of a library and a domain-specific language. You can use it to parse custom file formats or quickly build parsers, interpreters, and compilers for programming languages. The Ohm language is based on parsing expression grammars (PEGs), which are a formal way of describing syntax, similar to regular expressions and context-free grammars. The Ohm library provides a JavaScript interface (known as Ohm/JS) for creating parsers, interpreters, and more from the grammars you write.

BTRS

BTRS - Balance Transaction and Reporting Standard

X9.121 BTRS Version 3 – Format Guide

Version History

Version 3 The Balance and Transaction Reporting Standard (BTRS) Version 3 is named “BTR3”. This was decided as a more effective branding as the industry moves from BAI2 to BTR3. The standard will still be named BTRS, but each release will incorporate the level. The next release will be BTR4, for example.

Version 2 The BTRS Version 2 was skipped to provide consistent versioning. The X9 Committee agreed that this naming convention provided better continuity when the industry moves from BAI2 to BTR3.

Version 1 The Balance and Transaction Reporting Standard (BTRS) is intended to increase standardization of and improve upon the Bank Administration Institute Reporting Specification version 2 (BAI2). The standard builds upon the BAI2 format while retaining forward compatibility. Although a BTRS file with the above changes could not be interpreted with a BAI2 reader, a BAI2 file could be interpreted with a BTRS reader. (Note: With some exceptions, a BAI2 file cannot be processed by a BTRS reader if deleted or repurposed codes were included in the BAI2 file.)

X9.121 BTRS Version 3.1 – Codes List

Download ANSI X9.121-2012 Balance and Transaction Reporting Standard

BTRS Validator for BAI2 and BTRS

BTRS Validator | X9

This validator provides a structured view of a file or message contents. The interface is not useful if the format is not valid.

BAI2

Cash Management Balance Reporting Specifications Version 2 - Technical Reference Manual

Other Guides

SEPA - BAI2 Format Specification

Bank Examples

TD Bank

RBS - Bankline export file layout guide – BAI v2 format

Note 1: Continuation record - The “Record Code” field is followed by a continuation of the preceding record. The format is exactly the same as in the preceding record. If the preceding record ended within a text field, the text continues in the 88 record. If the preceding record did not end within the text field, the 88 record continues with whatever field follows the final field in the preceding physical record. Do not split nontext fields between records. If a nontext field is begun in one record, it must be completed in that record. The following 88 record may continue with the next field.
Note 2: Date fields are held in the format yymmdd.
Note 3: Conforms to BAIv2 standard whereby “/” delimiter only present when Continuation Record (88) required.

A brief history of the BAI file format

X9 BTRS FAQs 6. How did the BAI file format get established?

Running Scripts

Tests are implemented using AVA the futuristic JavaScript test runner

The following scripts are in package.json:

"scripts": {
    "test": "ava test/**/*.js --verbose",
    "test:watch": "ava test/**/*.js --verbose --watch",
    "test:file-examples": "ava test/test-btr3ToJSON-file-examples.js --verbose",
    "ava": "ava --verbose",
    "BTRS-valid": "node src/btr3ToJSON.js 'test/files/BAI2 BTRS Validator samples/valid/BTRS_valid.txt'",
    "BAI2-valid": "node src/btr3ToJSON.js 'test/files/BAI2 BTRS Validator samples/valid/BAI2_valid.txt'",
    "BAI2-valid-mod": "node src/btr3ToJSON.js 'test/files/BAI2_valid_modified.txt'",
    "empty1": "node src/btr3ToJSON.js test/files/emptyfile.txt",
    "CBA01": "node src/btr3ToJSON.js test/confidential/180328.c01"
}

Tests

The --verbose flag can be removed , and --watch is handy if you want AVA to continually check your work. Sometimes it’s useful to just have the ava command so you can test a single file.

These commands can be run as:

npm test

Watch commands

npm test -- --watch

or

npm run test:watch

Control-c to cancel

To run the AVA test for file-examples:

npm run test:file-examples

Which is equivalent to (without the verbosity flag):

npm run ava test/test-btr3ToJSON-file-examples.js

Others

npm run BTRS-valid
npm run empty1
npm run CBA01

Acknowledgements

Creators and maintainers of Ohm

Creators and maintainers of AVA

avajs/ava: Futuristic JavaScript test runner

Peter Weber from the Aten Design Group

Thanks to Peter Weber from the Aten Design Group for Javascript Testing with AVA. It is a great article and it helped me with:

  • configuring the test scripts in Running Tests
  • removing repetitive test boiler plate by iterating over every example in the JSON file.

Package Sidebar

Install

npm i bai-btrs-active-parsers

Weekly Downloads

0

Version

0.0.1

License

Apache-2.0

Unpacked Size

2.3 MB

Total Files

41

Last publish

Collaborators

  • activearchitect