npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

facturador-arca

v0.1.0

Published

Emití Factura C en ARCA (ex-AFIP) desde la terminal: CAE + PDF con QR, sin intermediarios. Para monotributistas.

Readme

🧾 facturador-arca

Emití Factura C en ARCA (ex-AFIP) desde la terminal, en un comando:

facturar 3000 acme --vto 10/07
# ✅ Emitida: 00003-00000411 — CAE 75123456789012
# 📄 PDF: ./Factura-C-00003-00000411.pdf

Para monotributistas. Multiplataforma (macOS / Windows / Linux). Sin intermediarios: hablás directo con ARCA, con tu propio certificado.

Por qué este y no otro

  • 🔐 Tus claves nunca salen de tu máquina. La autenticación con ARCA (WSAA) se firma localmente. Sin servicios de terceros, sin cuentas extra, sin darle tu clave fiscal ni tu certificado a nadie.
  • 💵 Moneda extranjera de primera clase: facturá en USD con la cotización oficial de ARCA consultada automáticamente al emitir, pago en la misma moneda, y el PDF con la leyenda legal del total en pesos.
  • 📄 PDF idéntico al oficial, generado en tu máquina, con el QR obligatorio (RG 4892/2020). Sin cuotas ni links que vencen.
  • 🏷 Templates: guardá cada cliente una vez (facturar template add acme) y después es facturar 1000 acme.
  • 🧪 Modo práctica por default: probás contra el entorno de homologación de ARCA (facturas que no valen) hasta que digas explícitamente lo contrario.
  • 📁 Tus datos son tuyos: config y templates en JSON editables, log de comprobantes en un archivo de texto plano (JSONL). Sin base de datos, sin nube.

Requisitos

  1. Node.js ≥ 20 (nodejs.org)
  2. Ser monotributista con clave fiscal nivel 3
  3. Certificado digital de ARCA — es un trámite de una sola vez y el propio programa te lo hace fácil: facturar init genera la clave y el pedido sin que tengas que instalar nada más. Guía completa: docs/setup-arca.md

Instalación y arranque

npm install -g facturador-arca

facturar init            # wizard: emisor + certificado (guiado, una vez)
facturar template add    # opcional: guardá un cliente frecuente
facturar 1000            # ¡a facturar! (consumidor final)

El wizard arranca en modo práctica: emitís facturas de mentira contra el entorno de homologación de ARCA hasta validar que todo funciona. Recién ahí pasás a producción (ver la guía).

Uso

facturar 15000                            # consumidor final, hoy
facturar 3000 acme                        # al template «acme»
facturar 15000 20-12345678-6              # a un CUIT puntual (pregunta cond. IVA)
facturar 15000 --fecha 26/06              # fecha retroactiva
facturar 15000 --periodo 01/06-30/06      # período facturado (servicios)
facturar 3000 acme --vto 10/07 -d "Diseño web, junio"

| Opción | Qué hace | |---|---| | --fecha dd/mm | Fecha del comprobante (hasta 10 días atrás servicios / 5 productos) | | --periodo d1-d2 | Período facturado (solo servicios) | | --vto dd/mm | Fecha de vto. para el pago (default: la de emisión) | | --detalle "…" / -d | Texto del renglón del PDF | | --moneda PES\|DOL | Pisa la moneda del template | | --cotizacion N | Fuerza el tipo de cambio (default: el oficial de ARCA) | | --si / -y | Emitir sin confirmación (scripts) |

Antes de emitir siempre ves un preview con todo (y en producción, un cartel rojo). La emisión es irreversible: un error se corrige con nota de crédito, no borrando.

Templates

Un template es un cliente con nombre:

facturar template add acme   # wizard: CUIT, cond. IVA, moneda, etc.
facturar template list
facturar 3000 acme --periodo 01/06-30/06 --vto 10/07

Se guardan como JSON editable (ej. ~/.config/facturador/templates/):

{
  "nombre": "acme",
  "receptor": { "docTipo": 80, "docNro": 30111111118, "condIva": 1 },
  "razonSocial": "ACME S.A.S.",
  "moneda": "DOL",
  "pagoEnMonedaExtranjera": true,
  "condicionVenta": "Transferencia Bancaria - Moneda Extranjera",
  "descripcion": "Servicios Profesionales"
}

Dónde vive todo

| Qué | Dónde (macOS/Linux) | |---|---| | Config del emisor | ~/.config/facturador/config.json | | Templates | ~/.config/facturador/templates/*.json | | Log de comprobantes | ~/.config/facturador/comprobantes.jsonl | | Claves y certificados | ~/.config/facturador/keys/ | | PDFs emitidos | el directorio actual (o pdfDir del config) |

En Windows: %APPDATA%\facturador\. Todo editable a mano; el log es append-only, una línea JSON por comprobante — hacele backup como a cualquier archivo.

Seguridad, en serio

  • La private key se genera en tu máquina (permisos 600) y jamás viaja a ningún lado: la firma criptográfica de la autenticación pasa localmente.
  • Cero telemetría, cero servicios propios: las únicas conexiones son a *.afip.gob.ar.
  • Allowlist natural: el que puede facturar es el que tiene acceso a tu usuario de tu máquina.
  • Nunca uses herramientas que pidan tu clave fiscal: este proyecto existe, en parte, para no tener que hacerlo.

Alcance (honesto)

Hoy emite Factura C (monotributo), en pesos o dólares, a consumidor final o receptor identificado. No hace (todavía): notas de crédito por comando, resúmenes/CSV, Factura A/B/E, email al cliente. El core ya soporta varias de esas cosas — ver ideas de v2 en el repo. PRs bienvenidos.

Inspirado en facturador-arca (bot de Telegram), del que hereda el conocimiento de dominio validado contra el WSFE real.

Disclaimer

Esto no es asesoramiento fiscal. Verificá los comprobantes emitidos y los umbrales vigentes con tu contador. Usalo bajo tu propia responsabilidad.

Licencia

MIT — usalo, modificalo, regalalo.