Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>ACHNew to Visual Studio Code? Get it now.
ACH

ACH

Christopher Davenport

|
1 install
| (0) | Free
Language server and editing support for NACHA ACH files
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

ACH Language Support

Language server and editing support for NACHA ACH files in VS Code.

ACH (Automated Clearing House) files are the fixed-width, 94-character-per-line format used for electronic banking transactions across the US financial system. This extension provides full Language Server Protocol support — diagnostics, hover, completions, formatting, navigation, and more — so you can inspect, edit, and validate ACH files directly in your editor.

Features

  • Diagnostics — Real-time parse and validation errors with 20+ configurable rules covering check digits, routing numbers, batch totals, addenda counts, and more
  • Hover — Field descriptions, format, column range, and current value; contextual info for amounts (cents → dollars), routing numbers (valid/invalid), dates, SEC codes, and transaction codes
  • Completions — Record type templates (1/5/6/7/8/9), SEC codes (PPD, CCD, IAT, WEB, …), transaction codes, service class codes, addenda types, and file ID modifiers
  • Code Actions — Quick fixes to recalculate check digits, pad short lines, set record size, fix batch/file control totals, fix service class codes, fix dates/times; "Recalculate All" source action
  • Formatting — Document and range formatting via the ach-ts library; pads short lines in range selections
  • Go to Definition — Jump between batch headers and controls, entries and their batch headers, addenda and their entries
  • Find References — Find all entries/addenda in a batch, sibling entries, or linked header/control records
  • CodeLens — Inline stats above file header (batch/entry counts, DR/CR totals), batch headers (entry counts, totals), and entries with addenda (addenda count)
  • Document Links — Clickable routing numbers linking to FedACH lookup
  • Selection Range — Smart expand selection: field → record → batch → file
  • Workspace Symbols — Search company names, entry names, and batch descriptions across all open ACH files
  • Document Symbols — Outline view showing file header → batches → entries → addenda hierarchy with amounts and names
  • Semantic Tokens — Per-field syntax highlighting using 8 token types (keyword, number, string, type, variable, comment, parameter, enum) with adjacency-aware coloring
  • Folding — Collapse batches (header through control) and entries with their addenda records
  • Inlay Hints — Cursor-aware field labels displayed inline; toggle with Ctrl+Alt+H
  • ACH Explorer — Tree view in the sidebar showing file structure; click a node to jump to its line
  • Preview Panel — Structured viewer with view, edit, search, and diff modes; auto-opens when you open an ACH file
  • Field Decorations — Zebra-striped alternating backgrounds to visually separate fields on each line
  • Field Navigation — Ctrl+Arrow moves the cursor between fields instead of words; Ctrl+Up/Down moves between sections (batches, file header/control)
  • Status Bar — Batch/entry counts, debit/credit totals, and error/warning counts at a glance
  • Context Menu — Select Field and Copy Field Value from the right-click menu
  • Snippets — 10 templates for record types, complete batches, and full ACH files
  • Merge Files — Merge multiple ACH files into as few files as possible using NACHA rules
  • Export/Import JSON — Round-trip ACH files through JSON using ach-ts serialization
  • Create New File — Scaffold a new ACH file with today's date
  • Validate All — Batch-validate every .ach file in the workspace with a progress report

Installation

Search for ACH Language Support in the VS Code Extensions view, or install from the command line:

code --install-extension christopherdavenport.ach-lsp

To install from a .vsix file:

code --install-extension ach-lsp-0.1.0.vsix

Keyboard Shortcuts

Command Windows / Linux macOS
Open Preview Ctrl+Shift+V Cmd+Shift+V
Move to Next Field Ctrl+Right Alt+Right
Move to Previous Field Ctrl+Left Alt+Left
Select to Next Field Ctrl+Shift+Right Alt+Shift+Right
Select to Previous Field Ctrl+Shift+Left Alt+Shift+Left
Move to Next Section Ctrl+Down Alt+Down
Move to Previous Section Ctrl+Up Alt+Up
Select to Next Section Ctrl+Shift+Down Alt+Shift+Down
Select to Previous Section Ctrl+Shift+Up Alt+Shift+Up
Toggle Inlay Hints Ctrl+Alt+H Cmd+Alt+H

Commands

All commands are available via the Command Palette (Ctrl+Shift+P):

  • ACH: Open Preview — Open the structured preview panel
  • ACH: Toggle Inlay Hints — Show or hide inline field labels
  • ACH: Toggle Field Separators — Show or hide zebra-striped field backgrounds
  • ACH: Select Field — Select the field at the cursor position
  • ACH: Copy Field Value — Copy the trimmed value of the field at cursor
  • ACH: Validate All ACH Files — Validate every .ach file in the workspace
  • ACH: Export to JSON — Export the active ACH file to JSON format
  • ACH: Import from JSON — Import a JSON file and convert to ACH
  • ACH: Merge ACH Files — Merge multiple workspace ACH files into one
  • ACH: Create New ACH File — Scaffold a new ACH file with today's date
  • ACH: Move Cursor to Next Field / Previous Field
  • ACH: Select to Next Field / Previous Field
  • ACH: Move to Next Section / Previous Section
  • ACH: Select to Next Section / Previous Section

Configuration

General

Setting Type Default Description
ach.maxNumberOfProblems number 1000 Maximum number of problems reported by the server
ach.trace.server string "off" Traces communication between VS Code and the language server (off, messages, verbose)
ach.fieldSeparators boolean true Show visual separators between fields in the editor
ach.autoOpenPreview boolean true Automatically open the preview panel when opening an ACH file

Validation

All validation settings are booleans defaulting to false. Set to true to relax the corresponding rule.

Setting Description
ach.validation.skipAll Disable all validation
ach.validation.allowZeroBatches Allow files with no batches
ach.validation.customTraceNumbers Allow trace numbers that don't match ODFI
ach.validation.requireABAOrigin Require valid ABA routing number as origin
ach.validation.bypassOriginValidation Skip origin field validation
ach.validation.bypassDestinationValidation Skip destination field validation
ach.validation.allowMissingFileHeader Allow files without a File Header record
ach.validation.allowMissingFileControl Allow files without a File Control record
ach.validation.bypassCompanyIdentificationMatch Skip batch header/control company ID match
ach.validation.customReturnCodes Allow non-standard return codes in Addenda 99
ach.validation.unequalServiceClassCode Allow mismatched service class codes
ach.validation.allowUnorderedBatchNumbers Allow non-ascending batch numbers
ach.validation.allowInvalidCheckDigit Skip routing number check digit validation
ach.validation.unequalAddendaCounts Allow addenda count mismatches
ach.validation.preserveSpaces Retain trailing whitespace during parsing
ach.validation.allowInvalidAmounts Allow malformed amount fields
ach.validation.allowZeroEntryAmount Allow entries with zero dollar amounts
ach.validation.allowSpecialCharacters Allow non-alphanumeric characters in fields
ach.validation.allowEmptyIndividualName Allow blank individual name fields
ach.validation.bypassBatchValidation Skip all batch-level validation
ach.validation.skipFileCreationValidation Skip file creation date validation
ach.validation.skipBatchHeaderCompanyValidation Skip company name/ID validation in batch headers

Development

Prerequisites: Node.js 20+

git clone https://github.com/christopherdavenport/ach-lsp.git
cd ach-lsp
npm install
npm run compile

Press F5 in VS Code to launch the Extension Development Host with the extension loaded.

npm test          # Run server tests (vitest)
npm run lint      # Lint client and server
npm run package   # Build .vsix for distribution

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft