Saltar al contenido principal
Compliance AR··5 min de lectura

Integración Técnica con ARCA: Factura Electrónica 2026

Cómo integrar técnicamente con ARCA (ex-AFIP) para factura electrónica: webservices, certificados, esquemas XML.

Integración Técnica con ARCA: Factura Electrónica 2026

ARCA (ex-AFIP) es el componente compliance más crítico para empresas argentinas. Integración directa con webservices o vía partner. Opción técnica para developers.

Lecturas relacionadas: integración con ARCA en distribuidora y compliance digital empresas argentinas 2026.

Webservices ARCA

WSAA (Web Services de Autenticación y Autorización)

Genera Ticket de Acceso (TA) para autenticación. Válido 12 horas. Renovación automática.

Inputs: certificado digital + clave privada + servicio solicitado. Output: TA + sign + token expiration.

WSFEv1 (Factura Electrónica)

El servicio principal:

  • FECAESolicitar: solicita CAE para comprobantes
  • FECompUltimoAutorizado: último número emitido
  • FECompConsultar: consulta comprobante existente

WSFEXv1 (exportación)

Para empresas que exportan servicios.

WSMTXCA (con detalle de items)

Versión más detallada que WSFEv1. Incluye items individuales.

Certificado digital

Generación

  1. Generar key pair RSA en server
  2. Generar CSR (Certificate Signing Request)
  3. Subir CSR a ARCA admin panel
  4. Descargar certificate firmado por ARCA

Validez

  • 1 año normalmente
  • Renovación 30 días antes del vencimiento
  • Same key pair puede renovar (no regenerate)

Storage seguro

  • Certificate + private key en backend (no client)
  • Cifrado at rest
  • Access control estricto
  • Audit log de uso

Schema XML

Request típico (FECAESolicitar)

<FECAERequest>
  <FeCabReq>
    <CantReg>1</CantReg>
    <PtoVta>5</PtoVta>
    <CbteTipo>1</CbteTipo> <!-- Factura A -->
  </FeCabReq>
  <FeDetReq>
    <FECAEDetRequest>
      <Concepto>1</Concepto> <!-- Productos -->
      <DocTipo>80</DocTipo> <!-- CUIT -->
      <DocNro>20123456789</DocNro>
      <CbteDesde>1</CbteDesde>
      <CbteHasta>1</CbteHasta>
      <CbteFch>20260919</CbteFch>
      <ImpTotal>121.00</ImpTotal>
      <ImpTotConc>0.00</ImpTotConc>
      <ImpNeto>100.00</ImpNeto>
      <ImpOpEx>0.00</ImpOpEx>
      <ImpIVA>21.00</ImpIVA>
      <ImpTrib>0.00</ImpTrib>
      <MonId>PES</MonId>
      <MonCotiz>1</MonCotiz>
      <Iva>
        <AlicIva>
          <Id>5</Id> <!-- 21% -->
          <BaseImp>100.00</BaseImp>
          <Importe>21.00</Importe>
        </AlicIva>
      </Iva>
    </FECAEDetRequest>
  </FeDetReq>
</FECAERequest>

Response

<FECAEResponse>
  <FeCabResp>
    <Cuit>20123456789</Cuit>
    <PtoVta>5</PtoVta>
    <CbteTipo>1</CbteTipo>
    <FchProceso>20260919</FchProceso>
    <CantReg>1</CantReg>
    <Resultado>A</Resultado> <!-- A=Aprobado -->
  </FeCabResp>
  <FeDetResp>
    <FECAEDetResponse>
      <CAE>71234567890123</CAE>
      <CAEFchVto>20260929</CAEFchVto>
      <Resultado>A</Resultado>
    </FECAEDetResponse>
  </FeDetResp>
</FECAEResponse>

Manejo de errores

Errores comunes

  • 10005: vencimiento CAE
  • 10010: número duplicado
  • 10015: alícuota IVA inválida
  • 10043: actividad incompatible

Estrategia

  • Retry con backoff exponencial (3 intentos)
  • Errores no recuperables: marcar comprobante "pendiente revisión"
  • Logs detallados con request + response
  • Alerta si tasa de error >2%

Tooling

Librerías cliente

  • Python: pyafipws, afip-soap
  • Node.js: afip.ts, afipsdk
  • Ruby: afipws gem
  • PHP: paquetes varios

Partners (alternativa)

  • Afipy: API REST simple, USD 30-150/mes
  • Tango: ERP con FE incluida
  • Bejerman: similar

Para 95% de pymes: partner es más simple.

Costos

Integración directa

  • Implementación: 4-8 semanas
  • Mantenimiento: ongoing (cambios de schemas + alícuotas)
  • Costo recurrente: USD 0

Vía partner

  • Implementación: 1-3 semanas
  • Mantenimiento: delegado al partner
  • Costo recurrente: USD 30-150/mes

Workflow recomendado en producción

Cuando ARCA queda dentro de un proyecto más amplio, suele ir como parte del paquete de digitalización de procesos que automatiza facturación, cobranzas e impuestos en conjunto.

Cola asincrónica

Generar CAE no debería bloquear UI:

  1. Sistema crea comprobante con status pending_cae
  2. Job en background invoca WSFEv1
  3. Si OK: actualiza status approved + persistir CAE + vencimiento
  4. Si error: status failed + retry según política
  5. UI consulta status periódicamente o via WebSocket

Idempotencia

ARCA responde "10010 número duplicado" si reintentás con mismo número. Implementar:

  • Lock en DB sobre el número antes de invocar API
  • Si timeout sin respuesta: consultar FECompConsultar antes de retry
  • Nunca incrementar número en cliente, siempre server-side

Numeración correlativa

Punto de venta + tipo de comprobante = serie correlativa obligatoria. Si saltás un número = error. Implementar:

  • Tabla comprobante_counter con (pto_vta, cbte_tipo) PK + último número
  • Transaccional: leer + incrementar + invocar ARCA en misma TX
  • Audit cuando hay holes (señal de bug)

Casos especiales

Anulación / Nota de crédito

No se "anula" CAE, se emite Nota de Crédito. Type-mapping:

  • Factura A (1) → NC A (3)
  • Factura B (6) → NC B (8)
  • Factura C (11) → NC C (13)

Bonificaciones

Campo ImpTrib para tributos adicionales. Bonificaciones se descuentan del ImpNeto antes de calcular IVA.

Múltiples alícuotas IVA

Factura puede tener líneas con diferente IVA (10.5%, 21%, 27%). Schema soporta múltiples <AlicIva> items, sumarizar en ImpIVA total.

Exportación de servicios

WSFEXv1 con CbteTipo 19 (factura E). Cliente sin CUIT requiere CUIT genérico (50000000016) o ID extranjero.

Monotributo

WSFEv1 igual pero limitado a categorías específicas. Validar topes anuales.

Sandbox vs producción

ARCA tiene 2 ambientes:

  • Homologación: testing libre, sin valor fiscal. URL wsaahomo.afip.gov.ar
  • Producción: valor fiscal real. URL wsaa.afip.gov.ar

Dev workflow: certificado de homologación → integración + tests → solicitar certificado de producción → cutover.

Errores típicos en implementación

1. Certificado en repo Git

NUNCA. Usar secret manager (Vercel env vars, AWS SSM, Doppler).

2. Timezone bug

ARCA espera fecha en formato YYYYMMDD timezone AR. Usar America/Argentina/Buenos_Aires consistentemente. UTC desfasa 3 horas → comprobantes con fecha errada.

3. Caché TA mal implementado

TA dura 12hs. Si no cacheás = invocás WSAA cada request = ARCA banea por abuse. Cachear en Redis con TTL 11hs y refresh proactivo.

4. Decimales mal redondeados

ARCA es estricto: 2 decimales para pesos, alícuotas calculadas exactas. Off-by-1 cent → error. Usar Decimal (Python) o BigNumber (JS), nunca float.

5. Sin tests con sandbox

Deploy a producción sin testing en homologación = bugs en clientes reales.

Cuándo conviene partner vs integración directa

Partner (Afipy, Tango, Bejerman)

  • Pyme con <200 facturas/mes
  • Sin equipo técnico
  • Time-to-market crítico
  • Costo USD 30-150/mes asumible

Integración directa

  • Empresa con volumen alto (>500 facturas/mes)
  • Equipo técnico in-house
  • Casos especiales (multi-empresa, integraciones complejas)
  • Customización profunda del workflow
  • Considerar 200+ horas iniciales + mantenimiento ongoing

Cierre

Para developers que necesitan integración directa con ARCA, este artículo da el roadmap técnico. Para mayoría de pymes, partner es más simple + barato a 12-24 meses.

Decisión clave: si el negocio es solo "facturar lo que venda", partner gana. Si la facturación es parte de un workflow más complejo (multi-empresa, multi-jurisdicción, IIBB en serio), integración directa habilita customización imposible vía partner.

Más profundo: integración con ARCA en distribuidora, compliance digital empresas argentinas, 10 casos de automatización empresarial. O cotizá tu caso.

Preguntas frecuentes

¿Querés ver más? Volver al blog.

¿Listo para reemplazar Excel por un sistema a medida?

Cotizamos tu proyecto en menos de 24hs hábiles. Software a medida, digitalización de procesos e implementación de IA para empresas argentinas.

Respuesta en menos de 24hs hábiles.