Skip to content

Releases: albertomarturelo/sii

v0.7.0 — F29 document downloads

Choose a tag to compare

@albertomarturelo albertomarturelo released this 01 Sep 03:15
b9e68d3

First document-download surface: sii f29 pdf saves the F29 you filed for a month as a
local PDF — the form as SII prints it and, when the período was paid, its payment
receipt
(the stamp reads "RECIBIDA Y PAGADA POR INTERNET", with banco, medio de pago and
fecha). The Certificado de Declaración is available too.

sii f29 pdf 2026-05                                  # → ~/.sii/documentos/f29/
sii f29 pdf 2026-05 --tipo ambos --out ~/Documentos  # both artifacts, your folder
sii f29 pdf 2026-05 --folio 1234567890               # a specific declaración

From Claude Desktop or Claude Code, via the f29_pdf MCP tool:

«Descárgame el PDF del F29 de mayo 2026 con su comprobante de pago.»

Notable

  • The download returns only a path, never the document's contents. An F29 carries razón
    social, domicilio and your full financial position, so the file lands on your disk and the
    bytes never enter the model's context (ADR-006). Files are written 0600.
  • No new SII reverse-engineering was needed. The authorization token the PDF servlet
    demands (codInt) turned out to be a field the F29 estado facade already returned — so no
    GWT-RPC and no SPA warm-up, unlike the deferred F29 Fase 2.
  • A partial failure stays visible. With --tipo ambos, if SII refuses one artifact the
    other is still written and reported; its refusal is surfaced verbatim.
  • Success is decided by content-type and magic bytes, never by HTTP status — SII answers
    200 for its own error page and for the login-wall bounce alike.

Breaking (@albertomarturelo/sii-core)

PortalSession gains requestBinary. This only affects a consumer that implements the
PortalSession interface itself; nothing changes if you use createNodeRuntime(). Two new
seams landed with it: requestBinary (undecoded response body — text decoding corrupts a
PDF) and FileSink (writing, optional on Runtime, like secrets).

Also in this release

@albertomarturelo/sii-cli and @albertomarturelo/sii-mcp now ship changelogs of their
own
— both have been on npm since 0.5.0 without one — and the repo gained a top-level
CHANGELOG.md covering all three packages, which move in lockstep.

Install

npm i -g @albertomarturelo/sii-cli @albertomarturelo/sii-mcp   # surfaces
npm i @albertomarturelo/sii-core                               # library

Full detail: core changelog ·
ADR-022 ·
wire contract


⚠️ Unofficial tool, not affiliated with or endorsed by SII. Provided as-is under the MIT
license.