Metadata-Version: 2.4
Name: rulestamp-ksef-fa3-invoice-lint
Version: 1.0.7
Summary: Finds the lines KSeF will reject in a Polish structured invoice XML, before you send it (bundled Node.js runtime)
Author-email: Rulestamp <support@getreadystack.com>
License: Proprietary - see LICENSE.txt
Project-URL: Homepage, https://getreadystack.com/tools/ksef-fa3-invoice-lint?ref=pypi
Project-URL: Documentation, https://getreadystack.com/tools/ksef-fa3-invoice-lint?ref=pypi
Project-URL: Support, https://getreadystack.com/support
Keywords: ksef,fa3,e-invoice,poland,xml,vat,faktura
Classifier: Programming Language :: Python :: 3
Classifier: Environment :: Console
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: nodejs-wheel-binaries>=20
Dynamic: license-file

# KSeF FA(3) Invoice Lint

> Runs the same checker as our npm package on a Node.js runtime that pip installs for you (`nodejs-wheel-binaries`) - no system Node.js needed. Your files are checked locally.

![KSeF FA(3) Invoice Lint — finds the line](https://getreadystack.com/img/promo/ksef-fa3-invoice-lint_demo.gif)

Finds the lines KSeF will reject in a Polish structured invoice XML, before you send it

## Install

```
ksef-fa3-invoice-lint file
```

Node 18+. The same 18 rules as the VS Code extension, from a terminal or CI.

## Free

- Lints the invoice XML open in your editor or pasted into the free web page against 18 FA(3) rules and names every field KSeF rejects with the exact value it wants: the 2025/06/25/13775 namespace, kodSystemowy "FA (3)", WariantFormularza 3, 10-digit NIP, dot decimals, P_16-P_18A flags. Our dirty sample invoice returns 23 findings, 22 of them blocking. One file, no key, no account.
- `--rules` lists every rule

## With a licence ($29 once)

- Sweeps every invoice XML in the workspace in one run - a whole export batch, not one file - and writes a dated REPORT.md you keep: file, line, rule, found value, wanted value. That written record is your own audit evidence for the 2027-01-01 penalty regime, where a KSeF failure carries up to 100% of the invoice VAT (18.7% of gross on VAT-exempt invoices).

```
ksef-fa3-invoice-lint --dir ./templates --report html --out report.html
```

A mid-size KSeF ERP integration project in Poland costs PLN 10,000 to PLN 50,000 and runs 2 to 4 months (ELTE-S, 2026)

## Use from an AI agent (MCP)

Claude Code · Cursor · Windsurf · any MCP client - add to your MCP config:

```json
{ "mcpServers": { "ksef-fa3-invoice-lint": { "command": "ksef-fa3-invoice-lint", "args": ["--mcp"] } } }
```

Tools: `check_text` and `check_file` (free) · `check_dir` (licence). The agent gets every finding with the line number.

## Use in CI

```yaml
- name: KSeF FA(3) Invoice Lint
  run: pip install rulestamp-ksef-fa3-invoice-lint && ksef-fa3-invoice-lint --dir . --ci
```


The folder sweep, reports and CI mode need one licence — one payment, no subscription. Set `READYSTACK_LICENSE=<key>` or run `--license <key>` once.

[Get a licence](https://getreadystack.com/api/buy/cl/polar_cl_JEQ1km4V0rbblgu9hwXyGlYM9I06o2ERzguUP2O8bd9)


<!-- ksef fa3 invoice lint -->


## Install (PyPI)

```
pip install rulestamp-ksef-fa3-invoice-lint
ksef-fa3-invoice-lint --help
```
