Resolución N° 5.616/2024. Más información

Realizar Constatación de Comprobantes de ARCA en n8n

Validá comprobantes automáticamente con el workflow de Afip SDK.


Realizar Constatación de Comprobantes de ARCA en n8n

Si todavía no probaste la constatación de comprobantes con la API, comenzá por esta guía base:

Realizar constatación de comprobantes de ARCA via API

Realizar constatación de comprobantes de ARCA via API

Con pocas líneas de código

En este artículo vas a importar un workflow de n8n que autentica contra ARCA, envía la solicitud ComprobanteConstatar a través de Afip SDK y devuelve la respuesta en un archivo descargable. Es ideal para automatizar controles internos o validar comprobantes recibidos de forma recurrente.

Descargá el archivo afip-sdk-constatacion-de-comprobantes.json y agregalo en tu proyecto de n8n.


Para operar con el servicio Constatación de Comprobantes (WSCDC) necesitás un certificado digital. En entorno de desarrollo podés usar el CUIT 20409378472 provisto por Afip SDK sin tramitar certificados propios.

Si deseás usar tu certificado más adelante, seguí los pasos de la documentación para n8n.


Requisitos previos

Antes de comenzar, asegurate de contar con:

  • Un access_token de Afip SDK.
  • Los datos del comprobante a verificar: CUIT emisor, tipo y punto de venta, número, fecha, importe y CAE/CAI.

Todos los requests a app.afipsdk.com deben incluir el header Authorization: Bearer TU_ACCESS_TOKEN.


Índice

  1. Introducción
  2. Estructura del Workflow en n8n
  3. Paso a Paso de la Implementación
  4. Ajustar los datos del comprobante
  5. Problemas comunes
  6. Conclusiones

Introducción

El servicio de constatación permite validar si un comprobante electrónico fue autorizado por ARCA. Con Afip SDK simplificamos el acceso a este web service exponiendo un endpoint unificado en nuestra API de integración. El workflow de n8n que te proponemos ejecuta la autenticación en WSCDC y luego envía la petición ComprobanteConstatar, devolviendo el resultado en cuestión de segundos.


Estructura del Workflow en n8n

El flujo está compuesto por cinco nodos conectados en secuencia:

  1. manual_trigger: Punto de partida manual para ejecutar el flujo.
  2. variables: Set Node que almacena el access_token de Afip SDK.
  3. auth: Request HTTP para obtener Token y Sign del servicio WSCDC.
  4. constatar: Request HTTP que envía el método ComprobanteConstatar con los datos del comprobante.
  5. Convert to File: Convierte la respuesta en un archivo JSON descargable.

Paso a Paso de la Implementación

1. Nodo: manual_trigger

  • Función: Permite disparar la constatación bajo demanda desde el canvas de n8n.
  • Configuración: Sin parámetros adicionales.

2. Nodo: variables

  • Objetivo: Guardar el access_token para reutilizarlo como header en los nodos HTTP.
  • Configuración: Define un campo access_token con tu valor real.
  • Sugerencia: Podés migrar este valor a una credencial nativa de n8n si querés evitar exponerlo en el workflow.

3. Nodo: auth

  • Objetivo: Autenticarte contra WSCDC y obtener Token y Sign.
  • Endpoint: POST https://app.afipsdk.com/api/v1/afip/auth
  • Headers:
    • Authorization: Bearer {{ $('variables').item.json.access_token }}
    • Content-Type: application/json
  • Body:
    {
      "environment": "dev",
      "tax_id": "20409378472",
      "wsid": "wscdc"
    }
    
  • Resultado esperado: El nodo devuelve token, sign y expirationTime, que se encadenan automáticamente al siguiente paso.

4. Nodo: constatar

  • Objetivo: Ejecutar el método ComprobanteConstatar del servicio WSCDC.
  • Endpoint: POST https://app.afipsdk.com/api/v1/afip/requests
  • Headers:
    • Authorization: Bearer {{ $('variables').item.json.access_token }}
    • Content-Type: application/json
  • Body:
    {
      "environment": "dev",
      "method": "ComprobanteConstatar",
      "wsid": "wscdc",
      "params": {
        "Auth": {
          "Token": "{{$json.token}}",
          "Sign": "{{$json.sign}}",
          "Cuit": "20409378472"
        },
        "CmpReq": {
          "CbteModo": "CAE",
          "CuitEmisor": 20409378472,
          "PtoVta": 1,
          "CbteTipo": 11,
          "CbteNro": 3850,
          "CbteFch": 20250225,
          "ImpTotal": 100,
          "CodAutorizacion": "75082223003046",
          "DocTipoReceptor": "80",
          "DocNroReceptor": "33693450239"
        }
      }
    }
    
  • Resultado esperado: Recibirás el resultado de la constatación, incluyendo el estado Resultado y los detalles del comprobante.

5. Nodo: Convert to File

  • Función: Transformar la respuesta en un archivo binario.
  • Configuración:
    • Operation: toJson
    • Binary Property: result.json
    • File Name: result.json
  • Resultado: Podés descargar el archivo desde la ejecución del workflow para compartirlo o almacenarlo como evidencia.

Ajustar los datos del comprobante

Actualizá los campos dentro de CmpReq con el comprobante que querés validar. Los más importantes son:

  • CuitEmisor, DocTipoReceptor, DocNroReceptor: Identifican emisor y receptor.
  • CbteTipo, PtoVta, CbteNro: Identifican el comprobante.
  • CbteFch (formato yyyymmdd) y ImpTotal.
  • CodAutorizacion: El CAE o CAI informado en el comprobante.

Consultá la documentación del web service WSCDC para ver la lista completa de campos y valores permitidos.


Problemas comunes

  • Token expirado: Si vuelve un error 403 en el nodo constatar, verificá que no haya pasado demasiado tiempo entre la autenticación y la consulta.
  • Datos inconsistentes: El servicio puede devolver Resultado = "A" (aprobado) o "O"/"R" (observado/rechazado). Revisá cada campo cuando recibas un resultado diferente al esperado.
  • Errores de validación: Mensajes como CbteFch invalida indican que el formato de fecha no es correcto (yyyymmdd).

Conclusiones

Este workflow concentra toda la lógica necesaria para validar un comprobante en cuestión de segundos usando n8n. Podés integrarlo con otros nodos para registrar resultados en tu ERP, enviar notificaciones o frenar procesos de pago automáticamente.

Si tenés dudas o necesitás ayuda adicional, visitá la Comunidad Afip SDK y compartí tu experiencia con otros desarrolladores.

Conéctate a ARCA hoy mismo

Evitá la complejidad de ARCA. Con Afip SDK integrás tu sistema en minutos y te enfocás en hacer crecer tu negocio.