Realizar Constatación de Comprobantes de ARCA en n8n
Validá comprobantes automáticamente con el workflow de Afip SDK.
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
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
- Introducción
- Estructura del Workflow en n8n
- Paso a Paso de la Implementación
- Ajustar los datos del comprobante
- Problemas comunes
- 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:
- manual_trigger: Punto de partida manual para ejecutar el flujo.
- variables: Set Node que almacena el
access_tokende Afip SDK. - auth: Request HTTP para obtener
TokenySigndel servicio WSCDC. - constatar: Request HTTP que envía el método
ComprobanteConstatarcon los datos del comprobante. - 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_tokenpara reutilizarlo como header en los nodos HTTP. - Configuración: Define un campo
access_tokencon 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
TokenySign. - 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,signyexpirationTime, que se encadenan automáticamente al siguiente paso.
4. Nodo: constatar
- Objetivo: Ejecutar el método
ComprobanteConstatardel 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
Resultadoy 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
- Operation:
- 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(formatoyyyymmdd) yImpTotal.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
403en 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 invalidaindican 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.