🧾 ARCA (AFIP) API

API de Facturación Electrónica para Argentina

📡 API Endpoints

GET /health - Health check
GET /api/accounts - Listar cuentas
POST /api/accounts - Agregar cuenta
GET /api/invoices/types - Tipos de comprobante
POST /api/invoices/create - Crear factura
POST /api/invoices/create-with-pdf - Crear factura con PDF

🔐 Cómo Obtener Certificados de AFIP

Requisitos Previos

1 Generar Clave Privada y CSR

Abrí una terminal y ejecutá:

# Crear directorio para los certificados
mkdir -p ~/afip-certs && cd ~/afip-certs

# Generar clave privada (GUARDAR ESTE ARCHIVO - ES SECRETO)
openssl genrsa -out private.key 2048

# Generar CSR (Certificate Signing Request)
openssl req -new -key private.key -out request.csr \
  -subj "/C=AR/O=TU_RAZON_SOCIAL/CN=TU_NOMBRE/serialNumber=CUIT TU_CUIT"

Ejemplo real:

openssl req -new -key private.key -out request.csr \
  -subj "/C=AR/O=BAUX SRL/CN=Santiago Herzfeld/serialNumber=CUIT 20123456789"

2 Acceder a AFIP

  1. Ir a www.afip.gob.ar
  2. Click en "Acceso con clave fiscal"
  3. Ingresar CUIT y clave fiscal

3 Administrador de Relaciones de Clave Fiscal

  1. En el menú principal, buscar "Administrador de Relaciones de Clave Fiscal"
  2. Click en "Adherir Servicio"
  3. Buscar: "AFIP → Servicios Interactivos → Administración de Certificados Digitales"
  4. Confirmar la adhesión

4 Generar Certificado

  1. Volver al menú principal de AFIP
  2. Entrar a "Administración de Certificados Digitales"
  3. Click en "Agregar Alias / Nuevo Certificado"

Completar el formulario:

CampoValor
AliasUn nombre para identificarlo (ej: facturacion-api)
Nombre del DNTu razón social o nombre
CUIT representadoTu CUIT (sin guiones)
TipoSeleccionar "CSR"

En el campo de texto grande, pegar el contenido del archivo request.csr:

cat request.csr

5 Descargar el Certificado

  1. El certificado aparecerá en la lista con estado "Activo"
  2. Click en "Ver" o "Descargar"
  3. Guardar como certificate.crt

6 Verificar los Archivos

# Estos dos comandos deben dar el mismo hash
openssl rsa -noout -modulus -in private.key | openssl md5
openssl x509 -noout -modulus -in certificate.crt | openssl md5

7 Habilitar Servicios Web

  1. En AFIP, ir a "Administrador de Relaciones de Clave Fiscal"
  2. Click en "Nueva Relación"
  3. Buscar: "AFIP → WebServices → Facturación Electrónica"
  4. Confirmar

8 Asociar Certificado al Servicio

  1. Ir a "Administración de Certificados Digitales"
  2. Buscar tu certificado
  3. Click en "Relaciones"
  4. Agregar relación con "ws - Factura Electrónica"

9 Crear Punto de Venta para Web Services

Para poder emitir facturas electrónicas, necesitás crear un Punto de Venta habilitado para web services:

  1. En AFIP, ir a "Administración de Puntos de Venta y Domicilios"
    • Si no lo tenés, buscalo en "Administrador de Relaciones" → "Adherir Servicio"
  2. Click en "A/B/M de Puntos de Venta"
  3. Click en "Agregar"
  4. Completar:
    CampoValor
    NúmeroEl próximo disponible (ej: 1, 2, 3...)
    Nombre de FantasíaNombre descriptivo (ej: "API Facturación")
    Sistema de FacturaciónRECE / Factura Electrónica - Web Services
    DomicilioSeleccionar tu domicilio fiscal
  5. Confirmar y esperar unos minutos para que se active
⚠️ Importante: Debe ser tipo "Web Services", no "Web" ni otros. Solo los puntos de venta con sistema "Web Services" o "RECE" funcionan con la API.

10 Usar con la API

Opción A: Subir archivos directamente (recomendado)

curl -X POST https://afip.baux.ar/api/accounts \
  -F "name=mi-empresa" \
  -F "cuit=20123456789" \
  -F "cert=@certificate.crt" \
  -F "key=@private.key" \
  -F "businessName=MI EMPRESA SRL" \
  -F "ivaCondition=Responsable Inscripto" \
  -F "production=true"

Opción B: Enviar rutas de archivos (si ya están en el servidor)

curl -X POST https://afip.baux.ar/api/accounts \
  -H "Content-Type: application/json" \
  -d '{
    "name": "mi-empresa",
    "cuit": "20123456789",
    "certPath": "./certs/certificate.crt",
    "keyPath": "./certs/private.key",
    "businessName": "MI EMPRESA SRL",
    "ivaCondition": "Responsable Inscripto",
    "production": true
  }'

🏢 Persona Jurídica (Empresas / Sociedades)

Si querés facturar en nombre de una Persona Jurídica (SAS, SRL, SA, etc.), necesitás pasos adicionales para autorizar a una persona física a operar en su nombre.

1 Requisitos Previos

2 Vincular Persona Física con la Empresa

  1. Ingresar a AFIP con el CUIT de la empresa
  2. Ir a "Administrador de Relaciones de Clave Fiscal"
  3. Click en "Agregar Relación"
  4. Seleccionar "Representado: [CUIT de la empresa]"
  5. En "Representante", ingresar el CUIT de la persona física que va a operar
  6. Seleccionar los servicios a delegar:
    • Administración de Certificados Digitales
    • WebServices - Facturación Electrónica
    • Administración de Puntos de Venta
  7. Confirmar la relación

3 Generar Certificado para la Empresa

El CSR debe incluir los datos de la empresa, no de la persona física:

openssl req -new -key private.key -out request.csr \
  -subj "/C=AR/O=NOMBRE DE LA EMPRESA SAS/CN=Representante Legal/serialNumber=CUIT CUIT_EMPRESA"

Ejemplo:

openssl req -new -key private.key -out request.csr \
  -subj "/C=AR/O=NAS ENTERTAINMENT SAS/CN=Santiago Herzfeld/serialNumber=CUIT 30719171075"

4 Crear el Certificado en AFIP

  1. Ingresar a AFIP con tu CUIT personal
  2. En el menú, seleccionar "Representar a: [NOMBRE EMPRESA]" (arriba a la derecha)
  3. Ir a "Administración de Certificados Digitales"
  4. Crear el certificado usando el CSR generado
  5. Asociar el certificado al servicio WSFE (Facturación Electrónica)
⚠️ Importante: Asegurate de estar "representando" a la empresa cuando generes el certificado. Podés verificarlo en la esquina superior derecha de AFIP donde muestra el CUIT activo.

5 Agregar la Empresa a la API

curl -X POST https://afip.baux.ar/api/accounts \
  -F "name=NAS Entertainment" \
  -F "cuit=30719171075" \
  -F "cert=@certificate.crt" \
  -F "key=@private.key" \
  -F "businessName=NAS ENTERTAINMENT SAS" \
  -F "address=Dirección Fiscal, CABA" \
  -F "ivaCondition=Responsable Inscripto" \
  -F "production=true"

Diferencias con Persona Física

AspectoPersona FísicaPersona Jurídica
CUIT en CSRTu CUIT personalCUIT de la empresa
Razón SocialTu nombreNombre de la empresa
Tipo de FacturaC (Monotributo) o A/B (RI)A o B (generalmente RI)
Autorización extraNoSí - delegar servicios

📋 Referencias

Tipos de Comprobante

IDTipoUso
1Factura AVentas a Responsable Inscripto
6Factura BVentas a Consumidor Final (por RI)
11Factura CVentas por Monotributista

Alícuotas de IVA

IDAlícuota
30%
410.5%
521%
627%

Tipos de Documento

IDTipo
80CUIT
86CUIL
96DNI
99Consumidor Final
⚠️ IMPORTANTE - Seguridad
  • NUNCA compartas tu private.key
  • NUNCA subas la clave privada a repositorios públicos
  • Usá permisos restrictivos: chmod 600 private.key
  • Hacé backup de la clave privada en un lugar seguro