Saltar al contenido
Velora

Velora Blog

ARCA/AFIP para desarrolladores

Guías técnicas verificadas sobre errores de WSFEv1, WSAA y CAEA. Cada artículo incluye causa raíz, solución paso a paso y fuentes primarias de ARCA.

  1. ¿Qué es el error 10016 de ARCA y cómo resolverlo?

    El error 10016 de WSFEv1 ("El número o fecha del comprobante no se corresponde con el próximo a autorizar") ocurre porque ARCA exige numeración estrictamente secuencial. La solución es llamar a FECompUltimoAutorizado inmediatamente antes de emitir, tomar ese número, sumarle 1, y usar esa fecha o una posterior.

    12 de junio de 2026
  2. ¿Por qué ARCA me da error 600 y cómo lo soluciono?

    El error 600 ("ValidaciónDeToken: No validó la firma digital") aparece cuando el Token de Acceso pedido a WSAA en homologación se usa contra el endpoint de producción, o viceversa. La solución es asegurarse de que el ambiente del WSAA, el certificado y el endpoint de WSFEv1 sean los tres del mismo entorno.

    12 de junio de 2026
  3. ¿Cómo emitir una factura C de monotributista desde Node.js con ARCA?

    Un monotributista usa WSFEv1 con CbteTipo = 11 (Factura C). El punto de venta debe ser de tipo "Factura Electrónica – WebService". No se incluye ningún objeto IVA (error 10071 si se incluye). El flujo es: autenticar con WSAA → getLastVoucher(ptoVta, 11) → createVoucher sin IVA → guardar CAE retornado.

    12 de junio de 2026
  4. ¿Cómo funciona el Access Ticket de WSAA y por qué vence a las 12 horas?

    WSAA emite un Ticket de Acceso (TA) con token + sign válido por 12 horas. Cada TA es específico para un CUIT + servicio (WSFEv1, WSFEXv1, etc.). La implementación correcta es cachear el TA en disco/DB, verificar si sigue vigente antes de cada llamada al webservice de negocio, y renovarlo solo cuando expira.

    12 de junio de 2026
  5. ¿Por qué el certificado de homologación no funciona en producción (y viceversa)?

    ARCA emite certificados separados para testing y producción. Usar el certificado de homologación contra el endpoint de producción genera errores como el 600 o ns1:cms.cert.untrusted. El certificado además debe estar explícitamente vinculado al servicio WSFEv1 en la plataforma de ARCA.

    12 de junio de 2026
  6. ¿Qué es el error 10242 "CondicionIVAReceptor obligatorio" y cómo se resuelve?

    El error 10242 dispara en dos situaciones: campo ausente ("El campo Condicion IVA receptor es obligatorio") o valor inválido ("El campo Condicion IVA receptor no es un valor valido"). Ambas son consecuencia de la RG 5616/2024, vigente desde abril 2025. Para Factura B a consumidor final se usa el valor 5; para Responsable Monotributo 6; para RI 1.

    12 de junio de 2026
  7. ¿Cómo manejar la contingencia de ARCA? ¿Qué pasa cuando el servidor cae?

    Desde junio 2026 (RG 5782/2025), el CAEA (Código de Autorización Electrónico Anticipado) es el mecanismo oficial de contingencia cuando ARCA no responde. Se solicita una vez por quincena, se usa para emitir offline, y se informa a ARCA dentro de los 8 días corridos posteriores al cierre de la quincena.

    12 de junio de 2026
  8. ¿Cuál es la diferencia entre Factura A, B y C en ARCA? ¿Cómo determina el sistema cuál emitir?

    El tipo de factura depende de la condición fiscal del emisor y del receptor. Responsable Inscripto → RI: Factura A (IVA discriminado). RI → Consumidor Final o Monotributista: Factura B. Monotributista o Exento → cualquier receptor: Factura C. ARCA define el tipo mediante el código CbteTipo en WSFEv1.

    12 de junio de 2026
  9. ¿Cómo configurar el punto de venta en ARCA para facturación electrónica por WebService?

    El punto de venta debe darse de alta en ARCA con el tipo correcto: "RECE para aplicativo WebService" para Responsables Inscriptos, "Factura Electrónica – WebService" para Monotributistas. Usar el tipo incorrecto genera el error 10005 ("El punto de venta informado debe estar dado de alta y ser del tipo RECE").

    12 de junio de 2026
  10. ¿Cómo manejar la idempotencia en WSFEv1? ¿Qué pasa si el request se corta a mitad?

    WSFEv1 NO tiene idempotencia nativa. Si el request de FECAESolicitar se corta, no se sabe si ARCA procesó el comprobante. La solución es usar FECompConsultar(PtoVta, CbteTipo, CbteNro) antes de reintentar: si ya existe con CAE, la emisión fue exitosa; si no existe, reintentar con el mismo número.

    12 de junio de 2026
  11. ¿Cómo validar un CUIT en vivo contra ARCA desde código?

    ARCA expone el Web Service de Padrón (ws_sr_padron_a13) que valida un CUIT, retorna razón social, condición IVA, domicilio fiscal y estado de actividad. Para validar solo el dígito verificador alcanza con el algoritmo módulo 11, sin llamada al WS. El WS de padrón tiene throttling agresivo: cachear con TTL de 24 horas mínimo.

    12 de junio de 2026
  12. ¿Qué cambió en ARCA respecto de AFIP para los desarrolladores? ¿Hay que migrar endpoints?

    El cambio de AFIP a ARCA (Decreto 953/2024) afecta principalmente dominios web y branding, pero los endpoints de producción de WSFEv1 siguen siendo servicios1.afip.gov.ar. Los cambios críticos para devs son normativos: RG 5616 agrega CondicionIVAReceptorId y RG 5782 limita el CAEA a contingencia.

    12 de junio de 2026
  13. ¿Cómo emitir una FCE (Factura de Crédito Electrónica MiPyMEs) y qué errores son típicos?

    La FCE requiere: DocTipo = 80 (CUIT obligatorio, no DNI), solo 1 comprobante por request (error 10003), fecha dentro del rango N-5 a N+1, y es obligatorio informar CBU o alias del receptor. Los CbteTipo son 201 (FCE A), 206 (FCE B) y 211 (FCE C).

    12 de junio de 2026
  14. ¿Por qué ARCA dice que mi CUIT no está autorizado a emitir comprobantes (error 10000)?

    El error 10000 ("La CUIT informada no se encuentra autorizada a emitir comprobantes") aparece cuando el CUIT no está habilitado en ARCA. Causas: CUIT inactivo, sin actividad dada de alta, deuda impositiva que traba la emisión tipo A, o el servicio WSFEv1 no fue vinculado al certificado.

    12 de junio de 2026
  15. ¿Cómo sincronizar el reloj del servidor para evitar errores de timestamp en WSAA?

    WSAA valida que el timestamp del TRA esté dentro de un rango razonable del tiempo del servidor de ARCA. Un servidor con reloj desincronizado genera errores de autenticación. La solución es usar NTP sincronizando contra time.afip.gov.ar, el servidor oficial de tiempo de ARCA.

    12 de junio de 2026
  16. ¿Qué uso para emitir factura electrónica en Argentina desde Node.js: afip.js, pyafipws o AfipSDK?

    Las tres opciones existen y funcionan, pero apuntan a perfiles distintos. AfipSDK es una API REST que abstrae SOAP, WSAA y CAE — integración en minutos desde cualquier lenguaje, incluyendo n8n y Make. afip.js expone WSFE directamente en Node.js. pyafipws es la solución Python más completa y madura para proyectos propios.

    12 de junio de 2026
  17. ¿Cómo valido un CUIT/CUIL en Node.js o Python? (algoritmo módulo 11)

    El CUIT tiene 11 dígitos: el verificador (posición 11) se calcula multiplicando los primeros 10 dígitos por los pesos [5,4,3,2,7,6,5,4,3,2], sumando, aplicando módulo 11 y restando de 11. Si el resultado es 11 el verificador es 0; si es 10 el CUIT es inválido. CUIT y CUIL comparten el mismo algoritmo.

    12 de junio de 2026
  18. ¿Qué significan los status y status_detail de MercadoPago y cómo los manejo en mi backend?

    Un pago en MercadoPago tiene 5 estados: approved, pending, in_process, rejected, cancelled. El campo status_detail da el motivo específico. cc_rejected_insufficient_amount viene del banco (fondos); cc_rejected_high_risk es bloqueo antifraude de MP. Cada caso requiere una acción diferente en el backend.

    12 de junio de 2026
  19. ¿Cómo verifico la firma de un webhook de MercadoPago (x-signature)?

    MercadoPago firma sus webhooks con HMAC-SHA256 en el header x-signature. El formato es ts=<timestamp>,v1=<hash>. Hay que construir el manifest id:<data.id>;request-id:<x-request-id>;ts:<ts>; y compararlo con el hash usando tu secret de webhook. Tenés 22 segundos para responder 200.

    12 de junio de 2026
  20. ¿Cuál es la diferencia entre QR estático y QR dinámico de MercadoPago para punto de venta?

    QR estático es un código fijo reutilizable — el cliente ingresa el monto manualmente. QR dinámico es único por transacción — el POS envía la orden a MP vía API y se genera un QR de un solo uso. El modelo híbrido combina ambos para tener log automático de cada transacción.

    12 de junio de 2026
  21. ¿Cómo configuro el sandbox de MercadoPago y por qué mis credenciales de prueba no funcionan en producción?

    Sandbox y producción en MercadoPago son entornos completamente separados con credenciales distintas: Public Key y Access Token de prueba solo funcionan en modo test. Si ponés credenciales de producción en modo test o vice versa, la API devuelve error. Nunca mezcles los pares.

    12 de junio de 2026
  22. ¿Cómo concilio pagos de MercadoPago con mi sistema contable vía API?

    MercadoPago ofrece reportes vía API: Todas las Transacciones (cada movimiento), Liquidaciones (dinero acreditado disponible), y Ventas con Split (marketplaces). Podés configurar generación automática y entrega a un SFTP. No es necesario exportar manualmente desde el panel.

    12 de junio de 2026
  23. ¿Cómo creo un link de pago con MercadoPago desde Node.js o curl?

    Un link de pago en MercadoPago se crea como una preferencia vía POST a https://api.mercadopago.com/checkout/preferences. La respuesta incluye init_point (producción) y sandbox_init_point (pruebas). Solo necesitás tu Access Token.

    12 de junio de 2026
  24. ¿Cómo valido un CBU o CVU en Argentina? ¿Cuál es el algoritmo?

    El CBU tiene 22 dígitos en dos bloques con dígitos verificadores calculados con suma ponderada módulo 10. El CVU también tiene 22 dígitos y siempre empieza con prefijo 0000053. CBU y CVU son intercambiables para transferencias desde el punto de vista del usuario.

    12 de junio de 2026
  25. ¿Cómo funciona el token de WSAA de ARCA y cómo lo cacheo correctamente?

    El WSAA emite un Token de Acceso (TA) válido 12 horas para un servicio específico. Para obtenerlo: firmás un TRA (XML) con tu certificado privado y lo mandás al endpoint SOAP de WSAA. El TA tiene generationTime y expirationTime. Cachealo en disco o DB, no lo pidas en cada request.

    12 de junio de 2026
  26. ¿Cómo doy de alta un punto de venta para Web Services en ARCA (ex AFIP)?

    El alta se hace desde el portal de ARCA con clave fiscal nivel 3: Administración de puntos de venta y domicilios → A/B/M de puntos de venta → Agregar. El número de PdV es de 4-5 dígitos. Hay que elegir el sistema Factura electrónica web services para integraciones programáticas.

    12 de junio de 2026
  27. ¿Cómo delego el acceso a los Web Services de ARCA a un tercero (desarrollador o estudio contable)?

    El titular del CUIT debe ir a ARCA → Administrador de Relaciones → Nueva Relación → seleccionar el servicio (ej. wsfe). Pone el CUIT del representante (el dev o estudio) y confirma. El representante ingresa con SU clave fiscal y acepta la designación. Hasta que no acepte, no tiene acceso.

    12 de junio de 2026
  28. ¿AfipSDK o TusFacturasAPP? ¿Cuándo conviene cada uno para facturar en Argentina?

    AfipSDK es una API REST con SDKs para 10+ lenguajes y nodos oficiales para n8n/Make — ideal para software factories, SaaS y agentes AI. TusFacturasAPP tiene respaldo contable y soporte más cercano a estudios y PYMEs. AfipSDK tiene plan free hasta 1k requests; TusFacturasAPP es paid desde el inicio.

    12 de junio de 2026
  29. ¿Cómo formato un monto en pesos argentinos (ARS) correctamente para mostrar al usuario?

    En Argentina el separador decimal es la coma y el separador de miles es el punto: $1.234.567,89 es el formato estándar. En JavaScript: new Intl.NumberFormat('es-AR', { style: 'currency', currency: 'ARS' }).format(monto) genera el formato correcto automáticamente.

    12 de junio de 2026
  30. ¿Cuál es la diferencia entre homologación y producción en los Web Services de ARCA?

    Homologación (testing) y producción son entornos completamente separados con endpoints distintos, certificados distintos y CUITs de prueba. En homologación podés emitir facturas de prueba sin consecuencias fiscales. Los CAE de homologación NO son válidos fiscalmente.

    12 de junio de 2026
  31. WSAA error "Firma inválida o algoritmo no soportado" (cms.sign.invalid) desde Node.js

    AFIP rechaza el login con faultcode ns1:cms.sign.invalid cuando el CMS/PKCS#7 está firmado DETACHED. El WSAA exige firma ATTACHED (contenido embebido, SHA-256). Con node-forge, setear p7.content antes de llamar p7.sign() — nunca pasar {detached:true}. Eso resuelve el error completamente.

    12 de junio de 2026
  32. "dh key too small" al conectar con AFIP WSFE desde Node 18+ / OpenSSL 3

    Node 18+ usa OpenSSL 3 con SECLEVEL 1 por defecto, que rechaza claves Diffie-Hellman menores a 1024 bits. servicios1.afip.gov.ar usa una clave DH débil → EPROTO write EPROTO tls_process_ske_dhe:dh key too small. Fix: agregar @SECLEVEL=0 al cipher string o bajar minDHSize.

    12 de junio de 2026
  33. Error 11002 ARCA: "El punto de venta no se encuentra habilitado" en WSFEv1

    Error 11002 significa que el punto de venta no existe en ARCA como tipo "Web Services". Hay que darlo de alta en fes.afip.gob.ar: A/B/M de Puntos de Venta → Agregar → Sistema = Factura Electrónica Web Services (para Monotributo) o la variante RI equivalente. Sin eso, FECAESolicitar siempre rechaza.

    12 de junio de 2026
  34. Error 10245 ARCA: CondicionIVAReceptor obligatorio desde RG 5616 (01/09/2026)

    ARCA observación 10245 advierte que CondicionIvaReceptorId será obligatorio a partir del 01/09/2026 (RG 5616). Hoy es opcional; desde esa fecha FECAESolicitar rechaza si falta. Valores principales: 1=Responsable Inscripto, 4=Exento, 5=Consumidor Final, 6=Monotributo. Hay que agregar el campo al payload.

    12 de junio de 2026
  35. afip.ts vs @afipsdk/afip.js — ¿cuál usar para facturar AFIP desde Node.js?

    La diferencia clave es la arquitectura: @afipsdk/afip.js es una SDK que usa afipsdk.com como intermediario SaaS (tus facturas pasan por sus servidores). afip.ts (ralcorta/arcasdk) es self-hosted — firma y llama directamente a los endpoints SOAP de ARCA sin pasar por terceros. Para fiscal de producción sin dependencia externa, afip.ts/arcasdk es la opción.

    12 de junio de 2026
  36. Error 10069 ARCA: "Campo DocNro no puede ser igual al del emisor" en WSFEv1

    AFIP rechaza con Resultado="R" y error 10069 cuando el DocNro del receptor es igual al CUIT del emisor — te estás facturando a vos mismo. Pasa al emitir una Factura C pasando, por default o por error, el CUIT del propio emisor como cliente. Fix: para Consumidor Final usar DocTipo 99 / DocNro 0; para un cliente real, un CUIT distinto al del emisor.

    13 de junio de 2026
  37. Error 10049 ARCA: FchServDesde / FchServHasta / FchVtoPago obligatorios para Servicios (Concepto 2 o 3) en WSFEv1

    El error 10049 de WSFEv1 indica que FchServDesde, FchServHasta y FchVtoPago son obligatorios cuando el Concepto es 2 (Servicios) o 3 (Productos y Servicios), en formato yyyymmdd. Para Concepto 1 (Productos) no corresponden y se omiten. Si faltan en una factura de servicios, FECAESolicitar no autoriza el comprobante (validación excluyente).

    13 de junio de 2026
  38. Errores 10032 y 10036 ARCA: orden y vencimiento de FchServDesde, FchServHasta y FchVtoPago en WSFEv1

    Después de agregar las fechas de servicio (Concepto 2 o 3) en WSFEv1, AFIP puede seguir rechazando: error 10032 si FchServDesde es posterior a FchServHasta, y 10036 si FchVtoPago es anterior a la fecha del comprobante (CbteFch). Además, si informás una de las tres fechas, las otras se vuelven obligatorias (10031, 10033 y 10035). Todas en formato yyyymmdd.

    13 de junio de 2026
  39. Errores 10037, 10038 y 10039 ARCA: MonId y MonCotiz al facturar en WSFEv1

    Todo comprobante de WSFEv1 lleva moneda (MonId) y cotización (MonCotiz), incluso si facturás en pesos. AFIP rechaza con error 10037 si MonId falta o no es un código válido de FEParamGetTiposMonedas, 10038 si MonCotiz no es mayor a 0, y 10039 si la moneda es pesos (MonId=PES) y MonCotiz no es exactamente 1.

    13 de junio de 2026
  40. Factura C en WSFEv1: por qué AFIP rechaza los importes (errores 10043, 10044, 10045)

    En una Factura C (Monotributo) los importes van distinto que en A/B: ImpTotConc, ImpOpEx e ImpIVA deben ser exactamente 0, e ImpNeto lleva el subtotal completo porque no se discrimina IVA. AFIP rechaza con error 10043 si ImpTotConc no es 0, 10044 si ImpOpEx no es 0, y 10045 valida ImpNeto. Para tipo C, ImpTotal = ImpNeto.

    13 de junio de 2026
  41. Error 10048 ARCA: "el Importe Total no coincide con la suma" (ImpTotal) en WSFEv1

    El error 10048 de WSFEv1 salta cuando ImpTotal no es igual a la suma de sus componentes. El manual lo define: ImpTotal = neto no gravado (ImpTotConc) + exento (ImpOpEx) + neto gravado (ImpNeto) + IVA (ImpIVA) + tributos (ImpTrib). Hay un margen de tolerancia chico. Para Factura C se simplifica a ImpTotal = ImpNeto + ImpTrib.

    13 de junio de 2026
  42. El array de IVA (AlicIva) en WSFEv1: cuándo es obligatorio (errores 10018 a 10021)

    En WSFEv1, si ImpIVA es mayor a 0 tenés que mandar el array de IVA (objeto Iva con AlicIva) o AFIP rechaza con error 10018. Cada AlicIva necesita Id (alícuota válida de FEParamGetTiposIva, error 10019), BaseImp mayor a 0 (10020) e Importe (10021). Nada de esto aplica a Factura C, que no discrimina IVA.

    13 de junio de 2026
  43. WSAA error ns1:coe.alreadyAuthenticated: "El CEE ya posee un TA válido" (ARCA/AFIP)

    El fault ns1:coe.alreadyAuthenticated («El CEE ya posee un TA valido para el acceso al WSN solicitado») aparece cuando pedís un nuevo Ticket de Acceso a WSAA mientras todavía tenés uno válido. WSAA bloquea los pedidos duplicados dentro de una ventana preventiva. La solución no es reintentar: es cachear y reusar el TA, que dura unas 12 horas.

    13 de junio de 2026
  44. Errores de AFIP/ARCA WSFEv1 resueltos: índice para desarrolladores

    Índice de los errores más comunes de la facturación electrónica de AFIP/ARCA por Web Services (WSFEv1 y WSAA), con el link a la solución de cada uno: conexión, punto de venta, CUIT, importes, array de IVA, fechas de servicio, moneda y condición IVA del receptor. Para encontrar rápido el error que te tiró el rechazo.

    13 de junio de 2026
  45. Conectar Claude, Cursor o ChatGPT a la facturación AFIP y MercadoPago vía MCP

    MCP (Model Context Protocol) es el estándar que deja que un agente de IA use herramientas externas. Para automatizar comercio argentino —facturar en AFIP/ARCA, cobrar con MercadoPago— podés conectar Claude, Cursor o ChatGPT a un servidor MCP. Esta guía muestra cómo: endpoint público sin auth para probar, y el toolkit completo vía OAuth.

    13 de junio de 2026
  46. WSAA error ns1:coe.notAuthorized: "Computador no autorizado a acceder al servicio" (ARCA/AFIP)

    El fault ns1:coe.notAuthorized («Computador no autorizado a acceder al servicio») significa que tu certificado autenticó bien en WSAA pero NO está asociado al web service que pediste (por ejemplo wsfe). WSAA solo emite el Ticket de Acceso; habilitar cada servicio es un paso aparte. También aparece si el CUIT no coincide con el del certificado.

    13 de junio de 2026