Skip to main content

The ACH file toolkit for developers. Generate, parse and validate NACHA ACH files. Typed, zero-dependency.

Project description

achkit

The ACH file toolkit for developers. Generate, parse and validate NACHA ACH files in a few lines. Fully typed. Zero dependencies. Returns and NOC included. Available for both JavaScript/TypeScript and Python, with byte-identical output across the two.

npm i achkit          pip install achkit

The NACHA format is 94-character fixed-width records, positional fields, blocking factors of ten, and hash totals that must reconcile to the byte. One off-by-one and your ODFI rejects the whole batch. achkit does the counting so you describe intent instead.

JavaScript / TypeScript

import { AchFile, parse, validate } from 'achkit'

const file = AchFile.create({ originDfi: '091000019', companyId: '1234567890' })

file.batch({ sec: 'PPD', description: 'PAYROLL', effectiveDate: '2026-07-22' })
    .credit({ name: 'Jane Doe', routing: '011401533', account: '0072', amountCents: 124050 })
    .debit({ name: 'ACME LLC', routing: '091000019', account: '1899', amountCents: 124050 })

const bytes = file.render()          // balanced batch, hash totals + block padding done
const { ok, errors } = validate(bytes)
const parsed = parse(bytes)          // every field typed, no positional slicing

Python

from achkit import AchFile, parse, validate

f = AchFile.create(origin_dfi="091000019", company_id="1234567890")
b = f.batch(sec="PPD", description="PAYROLL", effective_date="2026-07-22")
b.credit(name="Jane Doe", routing="011401533", account="0072", amount_cents=124050)
b.debit(name="ACME LLC", routing="091000019", account="1899", amount_cents=124050)

data = f.render()
result = validate(data)
parsed = parse(data)

What's inside

  • Generate & parse any NACHA file, round-trip safe.
  • Reconciliation validator - ABA routing checksum, entry hash, batch and file control totals, blocking factor. Catches what an ODFI rejects on, before the file leaves your machine. Runs on any file, not just ones achkit made.
  • Returns & NOC - R-code and C-code lookup for return processing.
  • SEC codes - PPD, CCD, WEB, TEL, CTX and single 05 addenda.
  • Money is always integer cents. Dates are always YYYY-MM-DD. No floats, no locale surprises.

Hosted validation API

The libraries are free and MIT forever. For production, the hosted API at achkit.com adds live routing-number validity, NACHA rule updates pushed as they take effect, and return-file monitoring with webhooks.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

achkit-0.1.0.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

achkit-0.1.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file achkit-0.1.0.tar.gz.

File metadata

  • Download URL: achkit-0.1.0.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for achkit-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0aaa2611b6830b20909e82e297806cfff684f6c59f75392057dcba1f6a792066
MD5 6031d848ea39a02fba07b9fc8898aaf4
BLAKE2b-256 9db433328ba4feb4ce6599aa431bd7c9a2a9aed61a37324ff0247fa4e08a64ed

See more details on using hashes here.

File details

Details for the file achkit-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: achkit-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for achkit-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c762b5e252dd2f3b974b6b287ebb155022f54681cc2a6b345b6cca355e196aec
MD5 4aafc37e0a622bd915b2f82949621850
BLAKE2b-256 3c376ddeb71d0803545227893508e0eb401448683d70f9848f836726bb181274

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page