Metadata-Version: 2.4
Name: rulestamp-saft-pt-atcud-lint
Version: 1.0.6
Summary: 14 verificações ao XML SAF-T (PT) antes da entrega à AT: versão 1.04_01, ATCUD, dados do QR code, hash, NIF, taxas por região e totais. (bundled Node.js runtime)
Author-email: Rulestamp <support@getreadystack.com>
License: Proprietary - see LICENSE.txt
Project-URL: Homepage, https://getreadystack.com/pt/tools/saft-pt-atcud-lint?ref=pypi
Project-URL: Documentation, https://getreadystack.com/pt/tools/saft-pt-atcud-lint?ref=pypi
Project-URL: Support, https://getreadystack.com/support
Keywords: saft,atcud,faturacao,portugal,xml,qrcode,at
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

# SAF-T (PT) + ATCUD 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.

![SAF-T XML Lint (PT) - ATCUD, QR code, hash, NIF, AT — finds the line](https://getreadystack.com/img/promo/saft-pt-atcud-lint_demo.gif)

14 verificações ao XML SAF-T (PT) antes da entrega à AT: versão 1.04_01, ATCUD, dados do QR code, hash, NIF, taxas por região e totais.

## Install

```
saft-pt-atcud-lint file
```

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

## Free

- Analisa o ficheiro SAF-T (PT) aberto e mostra os 14 tipos de erro com o número da linha e o documento.
- `--rules` lists every rule

## With a licence ($29 once)

- Corre as mesmas 14 verificações em toda a pasta de exportações e grava um relatório CSV/JSON por ficheiro para o contabilista arquivar.

```
saft-pt-atcud-lint --dir ./templates --report html --out report.html
```

Rever os mesmos 14 pontos à mão: 3 documentos e 187 linhas de XML por exportação, e reexportar o período inteiro quando a AT devolve o ficheiro.

## Use from an AI agent (MCP)

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

```json
{ "mcpServers": { "saft-pt-atcud-lint": { "command": "saft-pt-atcud-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: SAF-T (PT) + ATCUD Lint
  run: pip install rulestamp-saft-pt-atcud-lint && saft-pt-atcud-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_7CPHXouwL4TOLFSh30h3VBqFBoIpKPBtY3n9I1d5I7p)


<!-- saft pt atcud -->


## Install (PyPI)

```
pip install rulestamp-saft-pt-atcud-lint
saft-pt-atcud-lint --help
```
