Skip to content

Repository files navigation

arca-cli

CLI para facturación de exportación de servicios (Factura E) para monotributistas argentinos con integración AFIP.

NOTA: Este proyecto es en gran medida programado via LLM.

Instalacion

Descargar un binario publicado

  1. Abrir la pagina de Releases.
  2. Descargar el archivo correspondiente al sistema operativo y arquitectura del equipo.
  3. Descomprimir el archivo descargado.

En Linux y macOS, instalar arca para el usuario actual:

mkdir -p ~/.local/bin
install -m 755 arca ~/.local/bin/arca

Agregar ~/.local/bin al PATH si todavia no esta disponible. Para Zsh:

echo "export PATH=\"\$HOME/.local/bin:\$PATH\"" >> ~/.zshrc
source ~/.zshrc

Para Bash, agregar la misma linea a ~/.bashrc en lugar de ~/.zshrc.

En Windows:

  1. Mover arca.exe a un directorio permanente, por ejemplo %LOCALAPPDATA%\Programs\arca.
  2. Agregar ese directorio a la variable de entorno de usuario Path.
  3. Abrir una nueva terminal.

Verificar la instalacion desde una terminal nueva:

arca --help

La instalacion permite ejecutar arca desde cualquier directorio. La configuracion, los certificados y los datos siguen siendo propios de cada usuario.

Instalar desde el codigo fuente

Esta opcion requiere una toolchain estable de Rust y las dependencias nativas de OpenSSL:

cargo install --git https://github.com/bizk/arca-cli.git --locked
arca --help

Cargo instala el ejecutable en ~/.cargo/bin. Ese directorio debe estar incluido en el PATH.

Para instrucciones de desarrollo y publicacion, consultar DEVELOPMENT.md.

Requisitos Previos

  • CUIT activo como monotributista
  • Clave fiscal nivel 3 o superior
  • OpenSSL instalado en tu sistema

Configuración de Certificado AFIP

Paso 1: Generar clave privada y CSR

# Crear directorio para certificados
mkdir -p ~/.arca

# Generar clave privada RSA 2048 bits
openssl genrsa -out ~/.arca/cert.key 2048

# Generar CSR (Certificate Signing Request)
# Reemplazar los valores con tus datos reales
openssl req -new -key ~/.arca/cert.key -out ~/.arca/solicitud.csr \
  -subj "/C=AR/O=TU_RAZON_SOCIAL/CN=TU_NOMBRE/serialNumber=CUIT TU_CUIT_SIN_GUIONES"

Ejemplo con datos reales:

openssl req -new -key ~/.arca/cert.key -out ~/.arca/solicitud.csr \
  -subj "/C=AR/O=Juan Perez/CN=Juan Perez/serialNumber=CUIT 20123456789"

Paso 2: Obtener certificado en AFIP

  1. Ingresar a https://auth.afip.gob.ar con tu CUIT y clave fiscal

  2. Buscar el servicio "Administración de Certificados Digitales"

    • Si no lo tienes habilitado, ir a "Administrador de Relaciones de Clave Fiscal" → "Adherir Servicio" → buscar "Administración de Certificados Digitales"
  3. Dentro del servicio, seleccionar "Agregar Alias"

  4. Completar:

    • Alias: Un nombre descriptivo (ej: facturacion, arca-cli)
    • CSR: Copiar todo el contenido del archivo ~/.arca/solicitud.csr
# Ver contenido del CSR para copiar
cat ~/.arca/solicitud.csr

Debe verse así:

-----BEGIN CERTIFICATE REQUEST-----
MIICxjCCAa4CAQAwYTE...
...
-----END CERTIFICATE REQUEST-----
  1. Descargar el certificado generado y guardarlo:
# Mover el archivo descargado (ajustar nombre según lo descargado)
mv ~/Descargas/certificado.crt ~/.arca/cert.crt

Paso 3: Habilitar webservice WSFEX

  1. En AFIP, ir a "Administrador de Relaciones de Clave Fiscal"

  2. Seleccionar "AFIP""WebServices""Habilitación de Servicios"

  3. Buscar y habilitar: "Factura Electrónica - WebService de Factura Electrónica de Exportación (wsfex)"

  4. Vincular el servicio con el alias del certificado que creaste en el paso anterior

Paso 4: Verificar archivos

# Verificar que tienes ambos archivos
ls -la ~/.arca/

# Deberías ver:
# cert.crt  - Certificado descargado de AFIP
# cert.key  - Tu clave privada

# Verificar que el certificado es válido
openssl x509 -in ~/.arca/cert.crt -text -noout | head -20

# Verificar que clave y certificado coinciden
openssl x509 -noout -modulus -in ~/.arca/cert.crt | openssl md5
openssl rsa -noout -modulus -in ~/.arca/cert.key | openssl md5
# Ambos comandos deben mostrar el mismo hash

Ambiente de Testing (Homologación)

  1. El proceso de certificado es el mismo

  2. Los endpoints son diferentes:

    • WSAA: https://wsaahomo.afip.gov.ar/ws/services/LoginCms
    • WSFEX: https://wswhomo.afip.gov.ar/wsfexv1/service.asmx
  3. En la configuración de arca-cli usar:

    [afip]
    ambiente = "testing"

Estructura de Archivos

~/.arca/
├── cert.crt          # Certificado público (de AFIP)
├── cert.key          # Clave privada (SECRETA)
├── config.toml       # Configuración de arca-cli
├── clientes.json     # Base de datos de clientes
└── facturas/         # Facturas emitidas
    └── *.json

Troubleshooting

"Certificado no válido" o "Error de autenticación"

  1. Verificar que el certificado no esté vencido:
openssl x509 -in ~/.arca/cert.crt -noout -dates
  1. Verificar que clave y certificado coinciden (ver Paso 4)

  2. Verificar que el servicio WSFEX está habilitado y vinculado al certificado

"Servicio no habilitado"

  • Ir a AFIP → Administrador de Relaciones → verificar que WSFEX está habilitado y vinculado

"CUIT no autorizado"

  • Verificar que estás usando el CUIT correcto en la configuración
  • El CUIT debe coincidir con el del certificado

Links Útiles

Licencia

MIT

About

Facturador de ARCA via terminal / cli en rust

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages