[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-93270":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":16,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":15,"starSnapshotCount":15,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},93270,"facturador-ARCA","Lanuti-Franco\u002Ffacturador-ARCA","Lanuti-Franco","Bot de Telegram para emitir Factura C en ARCA. Devuelve  PDF  listo con QR para mandar por mail. ","",null,"Python",121,20,1,0,11,50.57,"MIT License",false,"main",true,[23,24,25,26],"afip","arca","facturador","facturas","2026-07-22 04:02:08","# 🧾 Facturador ARCA por Telegram\n\nBot de Telegram para que un **monotributista** emita **Factura C** en ARCA\n(ex-AFIP) desde el chat, en dos toques:\n\n```\n\u002Ffacturar 15000 20-12345678-6 06\u002F07\u002F26    →   ✅ CAE + PDF con QR en el chat\n```\n\nHecho para uso personal y regalado tal cual, building in public. Corre en tu\nmáquina, con **tu** certificado y **tus** llaves: acá nadie custodia tus datos\nfiscales.\n\n## Qué hace\n\n- **Factura C** a consumidor final (default), o identificada con **CUIT\u002FDNI**\n  (valida dígito verificador) y condición de IVA por botones.\n- **Servicios o productos**: `CONCEPTO=2` (servicios, default) o `CONCEPTO=1`\n  (productos) en el `.env`. Con productos el bot ajusta solo las reglas de\n  ARCA: sin período de servicio y retroactividad de 5 días en vez de 10.\n- **Atajos de un solo mensaje**: `\u002Ffacturar 15000`, `\u002Ffacturar 15000 20-12345678-6`,\n  `\u002Ffacturar 15000 26\u002F06` (fecha retroactiva, hasta 10 días),\n  `\u002Ffacturar 15000 01\u002F06-30\u002F06` (período facturado real).\n- **Detalle propio por factura**: `\u002Ffacturar 15000 \"diseño web, junio\"` y el\n  PDF sale con ese texto en el renglón (sin comillas usa tu\n  `FACTURA_DESCRIPCION` de siempre). ARCA no lo recibe — es dato del PDF.\n- **`\u002Flote 15000 20000 12500 01\u002F06-30\u002F06`** — varias facturas de un saque,\n  todas a consumidor final, con preview del total antes de confirmar\n  (acepta `\"detalle\"` compartido también).\n- **Alerta de umbral de identificación** (RG 5700\u002F2025): si un monto a\n  consumidor final anónimo alcanza el umbral vigente (`UMBRAL_CF` en el\n  `.env`), el preview te frena antes de que ARCA te rechace.\n- **`\u002Fnc 5 [monto]`** — Nota de Crédito C (total o parcial) asociada\n  automáticamente a la factura original, como exige ARCA.\n- **PDF con el QR obligatorio** (RG 4892\u002F2020) directo al chat; `\u002Fpdf 5` lo\n  regenera cuando quieras.\n- **La factura por email al cliente, sin salir del chat**: cada PDF emitido\n  llega con un botón **📧 Mandar por mail**. Si el bot no conoce el email del\n  receptor, se lo tirás ahí nomás y sale; a partir de ahí lo recuerda y la\n  próxima es un solo toque. Manda desde tu propia casilla (Gmail +\n  contraseña de aplicación, sin servicios pagos ni dominio propio). También\n  por comando: `\u002Fmail 5 cliente@ejemplo.com` para cualquier comprobante viejo.\n- **`\u002Fresumen 06\u002F2026`** — lista del período con total (las NC restan).\n- **`\u002Fcsv 06\u002F2026`** — export listo para mandarle al contador.\n- **`\u002Ftope`** + alerta automática cuando tu facturado de 12 meses se acerca\n  al límite de tu categoría de monotributo.\n- **Resumen automático** el 1° de cada mes.\n- **`\u002Fultima`** — reconcilia tu último comprobante en ARCA contra el log\n  local y avisa si hay desfase (la red de seguridad si algo se cayó a mitad\n  de una emisión).\n- Log de todo en Supabase (gratis), receptores recientes a un botón,\n  montos en formato argentino o gringo (`15.000,50` y `15,000.50` valen).\n\n## Qué necesitás\n\n1. **Ser monotributista** con clave fiscal nivel 3.\n2. **Certificado digital de ARCA + punto de venta tipo Web Service** — es un\n   trámite de una sola vez, sin darle tu clave fiscal a nadie:\n   está paso a paso en [`fase0-setup-arca.md`](fase0-setup-arca.md).\n3. **Un bot de Telegram** — gratis: buscá **@BotFather** en Telegram,\n   le hablás, creás un bot y te guardás el TOKEN en un lugar seguro.\n4. **Cuenta en [Afip SDK](https:\u002F\u002Fafipsdk.com)** (plan free alcanza) — es el\n   intermediario con los web services de ARCA. ⚠️ Leé la nota de seguridad.\n5. **Proyecto en [Supabase](https:\u002F\u002Fsupabase.com)** (plan free alcanza) para\n   el log de comprobantes.\n\n## Instalación\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FLanuti-Franco\u002Ffacturador-arca.git\ncd facturador-arca\npython3 -m venv .venv\n.venv\u002Fbin\u002Fpip install -r requirements.txt\n\ncp .env.example .env       # completá TODAS las variables (están comentadas)\n```\n\nDespués:\n\n1. Corré `schema_facturacion.sql` completo en el SQL Editor de Supabase\n   (es idempotente: crea las tablas y aplica las migraciones).\n2. Arrancá el bot: `.venv\u002Fbin\u002Fpython bot_telegram.py`\n3. Mandale `\u002Fid` para conocer tu chat_id y ponelo en `MI_CHAT_ID` (sin esto\n   el bot no arranca: es la allowlist).\n4. Probá con `PRODUCTION=false` (usa el entorno de homologación de ARCA con\n   un CUIT de testing compartido — las facturas no son reales).\n5. Cuando todo cierre: `PRODUCTION=true` en el `.env` y emití una factura\n   real chica para validar tu certificado y punto de venta.\n\n¿Querés que corra siempre? En macOS está `com.facturador.plist`\n(launchd, instrucciones adentro). En Linux, un systemd unit equivalente.\n\n## Arquitectura\n\n```\nbot_telegram.py    ← la conversación (python-telegram-bot, long polling)\nfacturador.py      ← el core: ARCA + Supabase + PDF. Cero Telegram.\n```\n\nEl core no sabe qué UI lo llama: si querés WhatsApp, CLI o web, escribís\notra capa de conversación e importás `facturador`. Sin webhooks ni servidor:\nlong polling, corre desde una laptop.\n\n## Seguridad — leé esto\n\n- **Nada personal vive en el código.** CUIT, punto de venta, certificado,\n  tokens: todo en el `.env`, que está en `.gitignore`. Los certificados\n  guardalos **fuera** de la carpeta del repo (ej: `~\u002F.arca-facturador\u002F`).\n- **Allowlist obligatoria**: el bot solo le responde a tu chat_id.\n- **Decisión de diseño que tenés que conocer**: el Afip SDK firma la\n  autenticación WSAA **en sus servidores**, o sea que tu `cert` y tu `key`\n  viajan a `app.afipsdk.com`. El riesgo está acotado (ese cert solo sirve\n  para facturar, no es tu clave fiscal) y a cambio te ahorrás pelear con\n  SOAP\u002FOpenSSL. Si querés cero terceros, la alternativa es PyAfipWs con\n  firma local — este proyecto eligió velocidad. **Generá el certificado a\n  mano** (como explica la fase 0) y jamás uses flujos que pidan tu clave\n  fiscal.\n\n## ¿Sos Responsable Inscripto?\n\nEste bot es **solo Factura C** (monotributo) y va a seguir siéndolo — es un\nproyecto personal con scope honesto. Dicho eso: si sos RI y querés adaptarlo,\n**el 70% del camino está allanado**. El web service es el mismo, la emisión,\nel log, el PDF con QR, las NC y los reportes ya funcionan. Lo que te falta\nconstruir:\n\n- Elegir **Factura A o B** según la condición del receptor (hoy es C fija).\n- El **array `Iva`**: descomponer neto + IVA por alícuota (21%, 10.5%...) —\n  ARCA valida que la suma cierre al centavo.\n- Percepciones\u002Fretenciones (`ImpTrib`) si tu actividad las tiene.\n\nEl core (`facturador.py`) está separado de la UI justamente para esto.\nPRs bienvenidos.\n\n## Ideas anotadas (roadmap sin promesas)\n\n- Aviso de vencimiento del certificado: duran 2 años, y el bot ya lo tiene\n  cargado en memoria — puede leer su propia fecha de expiración y avisar\n  (al arrancar y en el resumen mensual) cuando falten \u003C60 días.\n- Logo propio en el PDF (`LOGO_PATH` en el `.env`, incrustado en base64 como\n  el QR — es legal: ARCA regula el contenido obligatorio, no la estética).\n- Systemd unit para correrlo en un VPS Linux.\n- Recordatorio de recategorización (enero\u002Fjulio) usando el facturado que ya trackea.\n- Dockerfile para el que prefiera `docker compose up`.\n- Factura E (exportación): va por otro web service (WSFEX) — verificado.\n  Módulo nuevo, no adaptación. PRs bienvenidos.\n- Concepto por factura (hoy es por instancia via `CONCEPTO`).\n\n## Disclaimer\n\nEsto no es asesoramiento fiscal. Verificá los comprobantes emitidos, los\numbrales de consumidor final anónimo y tu categoría de monotributo con tu\ncontador. Usalo bajo tu propia responsabilidad.\n\n## Licencia\n\nMIT — usalo, modificalo, regalalo.\n","这是一个为阿根廷个人纳税人（monotributista）设计的 Telegram 机器人，用于快速生成符合 ARCA（原 AFIP）规范的 Factura C（消费发票）。核心功能包括：通过简洁命令（如 \u002Ffacturar 15000）即时获取带 CAE 和合规 QR 码的 PDF 发票；支持单张\u002F批量开票、电子发票邮件直发（对接 Gmail）、自动校验身份识别阈值（RG 5700\u002F2025）、开具关联贷项凭证（Nota de Crédito C）、按月导出 CSV 报表及限额预警。基于 Python 实现，本地运行，全程使用用户自有数字证书和密钥，不上传敏感税务数据。适用于阿根廷小微经营者日常开票、客户交付与财税对账场景。",2,"2026-07-15 02:30:05","CREATED_QUERY"]