GOOGLE SHEETS + APPS SCRIPT + ARCA

Instalá tu sistema de pruebas

Sin servidores propios ni programas adicionales.

Facturación electrónica con Google Sheets · homologación

Versión 1.0 · documentación consultada el 16/09/2026.

Este sistema está construido para instalarlo en tu propia cuenta. Emite solicitudes reales al entorno de homologación de ARCA, exclusivamente. Los resultados no son facturas fiscales. No contiene una opción de producción ni envío por Gmail.

La entrega incluye cuatro archivos de instalación y esta guía. En INSTALAR.html también podés copiar el contenido de los cuatro archivos desde el navegador, sin instalar un editor. La carpeta tests contiene las verificaciones del desarrollo: no tenés que instalarla ni ejecutar comandos para usar el sistema.

Archivo Para qué sirve
Arca.gs Autentica mediante WSAA, firma CMS y consulta o solicita comprobantes en WSFEv1 de homologación.
Setup.gs Prepara las hojas, agrega el menú, guarda la configuración privada y administra la automatización.
Ventas.gs Valida las ventas, conserva los intentos, recupera resultados, crea PDF privados y genera el resumen mensual.
Configuracion.html Muestra el asistente y genera la clave RSA y el CSR dentro del navegador.

Antes de empezar

Usá una computadora, tu cuenta propietaria de Google y una planilla nueva en Mi unidad. Necesitás acceso con clave fiscal a ARCA y a WSASS; la clave fiscal se ingresa únicamente en ARCA. Usá un navegador actualizado con HTTPS y JavaScript habilitado.

No necesitás GitHub, un servidor, una suscripción adicional, terminal ni programas instalados. Google puede limitar ejecuciones, conversiones y permisos según tu cuenta o las políticas de tu organización. Cuotas oficiales de Apps Script.

El caso admitido es: emisor y receptor responsables inscriptos, factura A común, bienes gravados al 21 % y pesos. Los precios se cargan sin IVA. El sistema no determina si una empresa está habilitada para esa clase de factura ni consulta el padrón tributario. Un CUIT con dígito verificador correcto no prueba inscripción. Antes de ensayar, elegí datos que correspondan al caso; cualquier otra operación debe revisarse por separado.

1. Crear la planilla

Dónde estás: en Google Sheets, con tu cuenta iniciada.

  1. Hacé clic en En blanco.
  2. Arriba a la izquierda, cambiá “Hoja de cálculo sin título” por Facturación ARCA — PRUEBAS.
  3. Mantené la planilla en tu Mi unidad y con acceso restringido. No compartas permiso de edición del proyecto o de la planilla: un editor podría modificar el código que luego ejecutás con tus permisos.

Qué deberías ver: una planilla vacía con tu título. Todavía no hay conexión ni automatización.

2. Abrir Apps Script e instalar el primer archivo completo

Dónde estás: en la planilla.

  1. Hacé clic en Extensiones → Apps Script. Se abre el editor vinculado a esa planilla, normalmente en otra pestaña.
  2. En el título del proyecto, escribí ARCA Homologación.
  3. A la izquierda, en Archivos, suele aparecer Código.gs o Code.gs. Hacé clic en los tres puntos junto al nombre, elegí Cambiar nombre y escribí Arca. El editor agrega .gs.
  4. Abrí la guía INSTALAR.html en tu navegador. Al final, desplegá Arca.gs, presioná Copiar archivo completo. Si no se permite copiar automáticamente, el texto queda seleccionado: usá Ctrl+C en Windows/Linux o Cmd+C en Mac.
  5. Volvé a Apps Script y hacé clic dentro del contenido de Arca.gs.
  6. Seleccioná todo el código de ejemplo con Ctrl+A / Cmd+A y pegá con Ctrl+V / Cmd+V. Debe reemplazar completamente myFunction o cualquier ejemplo inicial.
  7. Presioná Guardar proyecto (ícono de disquete) o Ctrl+S / Cmd+S. Si ves “Guardando…”, esperá a que termine.

Qué deberías ver: Arca.gs en Archivos, con su contenido completo y sin aviso de cambios pendientes. No pulses Implementar: esta solución no es una aplicación web y no necesita una implementación.

3. Agregar los otros tres archivos

Dónde estás: en el mismo editor vinculado.

Repetí el procedimiento de copiar todo el archivo y reemplazar el contenido inicial, con estas diferencias:

Archivo que querés agregar Dónde hacés clic Nombre que escribís
Setup.gs Signo + junto a Archivos → Secuencia de comandos Setup
Ventas.gs Signo + junto a Archivos → Secuencia de comandos Ventas
Configuracion.html Signo + junto a Archivos → HTML Configuracion

Para cada uno: desplegá su sección al final de INSTALAR.html, copiá el archivo completo, volvé a su archivo del editor, seleccioná y reemplazá todo, y guardá. En el HTML también se reemplaza la plantilla inicial entera.

Qué deberías ver: exactamente los cuatro nombres de la tabla inicial. Los nombres base son distintos; no crees Configuracion.gs ni Setup.html. Si dejaste un Código.gs vacío, podés eliminarlo. No agregues bibliotecas ni servicios avanzados. No modifiques appsscript.json; el proyecto usa el motor V8 y los permisos inferidos del código. Motor V8, permisos de Apps Script.

Si aparece un error de sintaxis, verificá que copiaste desde el primer carácter hasta el último y que el contenido se pegó en el tipo de archivo correcto. No pegues los delimitadores de un bloque de Markdown.

4. Volver a Sheets, autorizar y preparar

Dónde estás: de vuelta en la pestaña de la planilla.

  1. Recargá la página con el botón del navegador.
  2. Esperá a que aparezca el menú ARCA · Pruebas.
  3. Elegí ARCA · Pruebas → 1 · Preparar planilla.
  4. Si Google pide autorización, hacé clic en Continuar / Revisar permisos, seleccioná la misma cuenta propietaria y revisá los permisos solicitados.
  5. Autorizá los necesarios: leer y modificar Sheets, crear y administrar los PDF/CSV en Drive, mostrar el asistente, conectarse a servicios externos y administrar el activador. No hay funciones de Gmail o envío de correo.
  6. Si Google muestra “Google no verificó esta app”, comprobá que se trata de tu proyecto recién creado. Cuando esté disponible, Configuración avanzada → Ir a ARCA Homologación → Permitir permite autorizar tu propio proyecto. Si una política de Workspace lo bloquea, necesitás la intervención del administrador; no hay una alternativa en el código que evite esa política.
  7. Si la autorización vuelve al menú sin preparar, elegí Preparar planilla otra vez.

Qué deberías ver: la pestaña Ventas, encabezados, casillas y el aviso de preparación. La automatización está desactivada. Se crea un registro técnico oculto, Registro_ARCA, que nunca tenés que editar.

La preparación puede repetirse: conserva ventas, casillas marcadas, intentos, credenciales y registros. Si la automatización ya estaba activa, preparar no la desactiva; el mensaje lo aclara. No borra hojas ajenas ni sustituye encabezados incompatibles.

5. Configurar ARCA y generar el certificado sin programas externos

Dónde estás: en Sheets, menú ARCA · Pruebas → 2 · Configurar ARCA.

  1. Completá tu CUIT emisor, nombre o razón social y domicilio.
  2. Completá un punto exclusivo de homologación entre 1 y 99998. El ejemplo puede ser 1, pero la conexión debe comprobarlo: no se presume habilitado.
  3. Marcá las dos declaraciones: alcance de la prueba y uso exclusivo de ese punto por esta cuenta y esta planilla.
  4. En CUIT de la persona titular que ingresa a WSASS, completá el CUIT personal con el que ingresarás allí. Puede ser distinto del CUIT emisor: si representás a una empresa, el certificado pertenece a la persona que ingresa a WSASS y se autoriza después para el CUIT de la empresa. Presioná Generar clave y CSR. Esperá el mensaje “Clave guardada…”.
  5. Copiá el CSR completo o descargá solicitud.csr. Es la solicitud pública del certificado, no la clave privada. Si cerrás el asistente, la misma solicitud pendiente reaparece al abrirlo.

Qué ocurrió: el navegador generó una clave RSA de 2048 bits y firmó una solicitud PKCS#10. La clave privada se envía al proyecto vinculado y se guarda en propiedades de usuario, junto con las credenciales del dueño. No se exporta ni se imprime en una celda. La generación usa Web Crypto y el almacenamiento usa User Properties.

Ir a ARCA y adherir WSASS

Dónde estás: abrí una pestaña nueva en el portal oficial de ARCA.

  1. Ingresá con clave fiscal allí; nunca escribas esa clave en Sheets, en el asistente ni en un chat.
  2. Buscá WSASS / Autoservicio de Acceso a APIs de Homologación entre tus servicios.
  3. Si no aparece: Administrador de Relaciones de Clave Fiscal → Adherir servicio → ARCA (o AFIP) → Servicios interactivos. Buscá WSASS, adherilo y confirmá. Salí y volvé a ingresar si hace falta para verlo.

Los rótulos pueden conservar “AFIP” durante la transición de marca. Guía oficial para adherir WSASS.

Crear y autorizar el certificado

Dónde estás: dentro de WSASS, ambiente de homologación.

  1. Entrá en Nuevo Certificado / Crear un nuevo certificado.
  2. Completá un alias reconocible, por ejemplo SheetsPruebas, y pegá el CSR completo, incluidas las líneas BEGIN/END. El CUIT del titular del certificado aparece fijado por WSASS y debe coincidir con el CUIT personal usado en el CSR. Confirmá con Crear DN y Obtener Certificado.
  3. Copiá el certificado generado o descargalo en formato PEM. Conservá las líneas BEGIN CERTIFICATE y END CERTIFICATE.
  4. Entrá en Crear Autorización a Servicio. Seleccioná el alias de ese certificado, el CUIT emisor como CUIT representado y el servicio de facturación electrónica wsfe. Confirmá la autorización.

El conector de facturación es WSFEv1, mientras que el identificador usado en el ticket de autenticación es wsfe. WSASS administra certificados y autorizaciones del entorno de pruebas. Creación del certificado, autorización de acceso, WSAA oficial.

Volver al asistente

  1. Volvé a Sheets y al asistente. Si lo cerraste, abrilo desde el menú.
  2. Pegá el certificado completo en Certificado de homologación o seleccioná el archivo .crt/.pem descargado.
  3. Presioná Guardar configuración.

Qué deberías ver: configuración guardada, automatización desactivada y pedido de probar la conexión. Guardar no prueba todavía el acceso a ARCA.

El sistema comprueba que el certificado corresponda a la clave generada y esté vigente. WSAA será quien valide su aceptación y autorización. No uses certificados de producción. Para renovar, generá una nueva solicitud y autorizá su certificado; el activo se conserva hasta incorporar el nuevo. Si descartás un CSR pendiente, también se elimina su clave pendiente: un certificado creado con ese CSR ya no servirá.

6. Probar conexión sin emitir

Dónde estás: en el asistente, botón Probar conexión · sin emitir, o en Sheets → 3 · Probar conexión (sin emitir).

El resultado enumera lo comprobado: infraestructura, ticket WSAA, catálogo de puntos, condición de IVA para clase A y último comprobante autorizado del punto/tipo indicados. La consulta puede devolver número 0: significa que ese método respondió cero; no es una factura emitida. No se ejecuta FECAESolicitar en esta prueba.

Si el catálogo responde 602 — sin registros, la conexión queda incompleta inicialmente. Solo para ese caso existe la casilla explícita del asistente que permite un punto declarado de pruebas. Si decidís usarla, marcala, guardá y volvé a probar. Se exige además que FECompUltimoAutorizado devuelva correctamente punto, tipo y número. El informe seguirá diciendo que el catálogo no tuvo registros. Un error 602 en la consulta individual no se convierte en cero; cualquier otro error o un punto bloqueado/incompatible detiene el proceso.

El método de condición de IVA y su nombre se contrastaron con la publicación del servicio de homologación. El manual contiene un ejemplo con otra denominación; el código usa la publicada por el servicio.

Qué deberías ver: “Consultas completadas” y cada resultado concreto. Ante “Conexión incompleta”, corregí lo informado. El ticket vigente se reutiliza: cambiar la casilla de política 602 o guardar la misma configuración no lo descarta. Si se perdió un ticket aún vigente y WSAA devuelve alreadyAuthenticated, esperá su vencimiento antes de volver a autenticar; no regeneres certificados para sortearlo. Un ticket válido o un FEDummy OK por sí solos no habilitan a mostrar éxito completo ni prueban inscripción tributaria.

7. Cargar la primera venta

Dónde estás: pestaña Ventas, fila 2 o la primera fila vacía. Completá únicamente A:J y luego la casilla K. Los demás campos son resultados.

Columna Qué completar para el ensayo
ID venta PRUEBA-001; será la identidad estable de esa operación.
Fecha Fecha de hoy, por ejemplo 16/09/2026 solo si ese es el día del ensayo.
Cliente / razón social Nombre del receptor de prueba que vas a utilizar.
CUIT cliente CUIT del receptor apropiado para tu ensayo, con 11 dígitos; no uses un número aleatorio.
Condición IVA Elegí Responsable inscripto.
Domicilio Domicilio del receptor.
Correo Podés dejarlo vacío. No se enviará ningún mensaje.
Conceptos `Cuaderno
Cantidades `2
Precios unitarios netos `1000,00
Lista para facturar Marcala solo después de completar y revisar lo anterior.

El separador | permite varios bienes dentro de la misma venta, en el mismo orden en las tres columnas. No uses JSON. Para un solo bien no hace falta el separador. Admitimos hasta 20 bienes, cantidades con 3 decimales y precios con 2; sin separadores de miles. El límite de neto por venta es $10.000.000. Cada renglón se redondea a centavos y el IVA se calcula sobre la suma del neto.

Podés guardar o cerrar la planilla con la casilla sin marcar: no se procesa. Las casillas en filas sin datos tampoco crean ventas.

8. Procesar manualmente y comprobar el resultado

Dónde estás: en Sheets → ARCA · Pruebas → Procesar ventas / recuperar resultados.

  1. Elegí esa opción y esperá a que termine. No ordenes ni edites durante la ejecución.
  2. Revisá Estado y Observaciones en la misma venta.
  3. Para el ejemplo: neto $2.250,50 · IVA $472,61 · total $2.723,11.
  4. Abrí el enlace de PDF privado, si fue generado. Debe mostrar los datos, IVA separado y HOMOLOGACIÓN · SIN VALIDEZ FISCAL.
  5. Verificá en Drive que el acceso del PDF sea Restringido. Se crea en tu Mi unidad, sin compartirlo ni enviarlo.
Estado Qué significa y qué hacer
pendiente Hay datos, pero no está marcada la casilla. Terminá la carga.
procesando El intento se conservó antes de solicitar autorización. Esperá.
revisar Faltan datos, hay duplicados, un caso fuera de alcance o un rechazo confirmado. Leé Observaciones.
verificando El resultado no se pudo confirmar. El sistema consulta el número intentado y bloquea nuevas solicitudes en ese punto. No cambies ID ni dupliques esa venta.
facturado en pruebas Hay autorización confirmada por consulta y datos coincidentes. Si dice PDF pendiente, procesá otra vez: solo se recupera el archivo.

La confirmación compara receptor, fecha, tipo, punto, número, concepto, moneda, importes, alícuota y autorización contra el intento guardado. WSFEv1 maneja importes agrupados: los nombres y detalles de bienes quedan conservados localmente. Documentación oficial de WSFEv1.

El ID no debe cambiar después de un intento. Para ordenar, usá el filtro de encabezados creado por el sistema: abarca la fila completa, incluido el UID interno oculto. Nunca ordenes una sola columna separada de las demás ni copies filas completas. Para copiar datos, copiá solo A:J hacia una fila nueva y asigná un ID que represente otra operación.

Los importes autorizados se conservan en el diario. Si después editás la fila, el PDF y el resumen continúan usando el original; aparece una advertencia. Restaurá los datos originales para evitar confusión.

9. Hacer las cuatro pruebas de aceptación

Mantené desactivada la automatización durante estas comprobaciones.

  1. Venta incompleta. Cargá PRUEBA-INCOMPLETA, dejá Domicilio vacío, marcá la casilla y procesá. Esperado: revisar, indicación de completar domicilio y ningún CAE. Completá el domicilio y dejá sin marcar la casilla si no querés autorizar todavía.
  2. Venta válida. Usá el ejemplo del paso 7 con un receptor adecuado. Procesá. Esperado, si ARCA lo autoriza: neto/IVA/total del ejemplo, estado facturado en pruebas, número, CAE de homologación y PDF con la leyenda. Si ARCA rechaza, el rechazo es el resultado real: no lo tratamos como prueba aprobada.
  3. Venta repetida. Copiá solo A:J de la autorizada en otra fila vacía, conservando el mismo ID, marcá la casilla y procesá. Esperado: la nueva fila queda revisar, por ID ya registrado, sin una segunda autorización. Dos filas con igual ID antes del primer intento también se bloquean; podés corregir un ID si todavía no tiene un intento conservado.
  4. Respuesta incierta. Esta prueba fue ejecutada localmente con un corte de red controlado: se guardó el intento, se simuló una solicitud sin respuesta y una consulta sin resultado. Esperado: verificando, ningún CAE inventado y cero reenvíos al repetir. También se comprobó recuperación cuando una consulta posterior encuentra una autorización coincidente. No desconectes tu Wi-Fi como prueba: Apps Script continúa en Google aunque cierres el navegador; no sería una prueba controlada de un corte Google–ARCA. En tu cuenta, ante una incertidumbre real, usá Procesar para volver a consultar y compará el número guardado con ARCA con asistencia técnica si no se resuelve.

No existe un botón para “forzar”, borrar un intento o reiniciar el número. Si una respuesta sigue incierta, se deja para revisión y se bloquean nuevas emisiones en ese punto. Un rechazo correlacionado conserva el ID para auditoría; antes de crear una operación corregida con un ID nuevo, revisá que efectivamente haya rechazo confirmado. Nunca hagas eso para sortear un estado verificando.

10. Activar y desactivar la automatización

Dónde estás: en Sheets → menú ARCA · Pruebas.

  1. Después de comprobar manualmente una autorización y su PDF, repetí Probar conexión si la última prueba tiene más de 24 horas.
  2. Elegí Activar revisión cada minuto. Si Google vuelve a pedir permisos del activador, autorizalos con tu cuenta propietaria y repetí la opción.
  3. Esperado: confirmación de automatización activa. Se procesa un máximo de tres solicitudes nuevas por ejecución; una ejecución larga se detiene preventivamente, y el próximo ciclo continúa.
  4. Para detenerla, elegí Desactivar revisión automática. Esperado: automatización desactivada. El procesamiento manual sigue disponible.
  5. Para consultar el estado y el último error, abrí Configurar ARCA. Para diagnóstico de ejecuciones, abrí Extensiones → Apps Script → Ejecuciones. En Activadores (reloj) debe aparecer ventasTick cuando está activa.

Probamos manualmente primero para identificar errores de datos, permisos y certificado antes de repetir el proceso desatendido. Los activadores corren con la cuenta que los creó y su horario es aproximado; no garantizan una ejecución puntual cada 60 segundos. Activadores instalables.

Resumen mensual y exportación

En Sheets, elegí ARCA · Pruebas → Resumen mensual y CSV, ingresá el mes AAAA-MM y aceptá. Se crea o actualiza la pestaña Resumen_AAAA-MM y un CSV privado nuevo en Drive. El mensaje incluye su enlace; también podés usar Archivo → Descargar → Valores separados por comas desde la pestaña del resumen.

El resumen toma únicamente autorizaciones confirmadas de ese mes, desde los datos originales del diario. No suma filas duplicadas ni cambios posteriores de importes. Indica cuántos intentos inciertos excluyó. Los CSV usan punto decimal, separador punto y coma y UTF-8; si otra aplicación pide opciones de importación, indicá esos valores.

Es un resumen de control de homologación para revisar con el contador. No es libro IVA, declaración fiscal, registración impositiva ni archivo para presentar ante ARCA. Las celdas de texto se neutralizan para evitar que un nombre sea interpretado como fórmula al exportarlo.

Datos, recuperación y límites

Verificaciones ejecutadas y pendientes

Ejecutado en el entorno de desarrollo: 56 verificaciones locales aprobadas: 42 del flujo/criptografía/contrato y 14 del conector SOAP. Incluyen sintaxis de los cuatro archivos, preparación repetida, casillas vacías, importes, duplicados, filas ordenadas, intento previo al envío, bloqueo, rechazo, respuesta incierta, recuperación tardía, PDF fallido y detección de daños del diario. El CSR y la firma CMS se verificaron con OpenSSL; la solicitud se validó contra el XSD extraído del WSDL oficial descargado. OpenSSL, Node y Python se usaron solamente para verificar esta entrega, no son requisitos de instalación.

Consulta pública real: FEDummy de WSFEv1 de homologación respondió AppServer=OK, DbServer=OK y AuthServer=OK; el encabezado del servicio informó 2026-09-16T18:53:25.4948781-03:00, ambiente HomologacionExterno - sr2. Esta llamada no usó CUIT ni certificado y no emitió comprobantes.

Pendiente en tu cuenta: autorización de permisos de Google; ejecución del asistente en HtmlService; generación y autorización de tu certificado por WSASS; ticket real de tu CUIT; consultas autenticadas y validación del punto; aceptación de una venta; conversión y acceso privado del PDF en Drive; generación real del resumen; activador de tu cuenta. Los dobles de prueba locales no sustituyen esas comprobaciones. No se accedió a tu cuenta ni se emitieron comprobantes, ni siquiera en homologación, durante esta construcción.

Fuentes oficiales consultadas

Pasos manuales pendientes: instalá los cuatro archivos → prepará y autorizá Google → generá CSR → creá y autorizá el certificado en WSASS → guardalo → comprobá la conexión → ensayá la venta manual → revisá el PDF y resumen → activá la automatización solo después de esas comprobaciones.

Copiar los cuatro archivos completos

Estos son exactamente los mismos archivos incluidos en el ZIP. Cada botón copia un archivo entero, sin agregar texto ni instrucciones.

Elegí el archivo que vas a instalar.

Arca.gs

Copiá todo este contenido en el archivo Arca.gs de Apps Script.

Setup.gs

Copiá todo este contenido en el archivo Setup.gs de Apps Script.

Ventas.gs

Copiá todo este contenido en el archivo Ventas.gs de Apps Script.

Configuracion.html

Copiá todo este contenido en el archivo Configuracion.html de Apps Script.