El error "(600) ValidacionDeToken: No apareció CUIT en lista de relaciones" ocurre cuando el CUIT que intentas usar no está correctamente vinculado al certificado digital o no fue autorizado/delegado para el web service correspondiente. En producción, suele deberse a que falta aceptar la delegación del web service o no se completó la autorización seleccionando el CUIT representado correcto. En desarrollo, solo puedes usar el CUIT con el que generaste el certificado, no uno delegado ni de terceros.
Para solucionarlo, revisa que el CUIT esté vinculado al certificado y que la delegación/autorización del web service esté aceptada y correctamente configurada. Si el problema persiste, intenta forzar la solicitud de un nuevo TA (Token Authorization). Más detalles y pasos en afipsdk.com/blog/solucion-a-no-aparecio-cuit-en-lista-de-relaciones.
¿Te gustaría una explicación paso a paso de cómo resolverlo?
Sources:
No funcionó de ninguna manera, es posible solicitar un nuevo TA? Que es eso? @user
Sí, es posible solicitar un nuevo TA (Token Authorization). El TA es un archivo que contiene la autorización para operar con los web services de ARCA y dura 12 horas; Afip SDK lo gestiona automáticamente, pero puedes forzar su renovación si hay problemas. Para hacerlo, usa el método getTokenAuthorization(true) en tu SDK o agrega el parámetro force_create: true al solicitar la autorización, según tu lenguaje o integración (ver ejemplos aquí).
Solicitar un nuevo TA puede resolver errores de validación si el anterior está vencido o desincronizado. Si el error persiste tras renovar el TA, revisa nuevamente la vinculación y autorización del CUIT y certificado. ¿Te gustaría ver ejemplos de código para tu lenguaje?
Sources:
Pero el TA es del usuario o del cert de producción? @user
El TA (Token Authorization) se genera usando el certificado digital de producción y está asociado al CUIT para el cual se solicita la autorización. Es decir, el TA valida tanto el certificado como el CUIT representado; si usas delegación, debe estar correctamente vinculada la relación entre ambos (fuente).
Por lo tanto, el TA no es solo del usuario ni solo del certificado, sino de la combinación de ambos: certificado + CUIT autorizado para el web service. ¿Te gustaría más detalles sobre cómo se genera y usa el TA?
Sources:
@user
Pero el código donde debería ponerlo:
const res = await afip.getLastRequestXML(); console.log(res);
Con qué afip? pasando nada como parametro?
El método getLastRequestXML() se llama sobre la instancia de Afip que ya creaste y configuraste con los parámetros necesarios (CUIT, cert, key, etc). No requiere parámetros adicionales; simplemente usa la instancia ya inicializada (ver ejemplo).
Ejemplo:
const afip = new Afip({ CUIT, cert, key, access_token, production: true });
const res = await afip.getLastRequestXML();
console.log(res);
¿Te gustaría ver ejemplos para otro lenguaje?
Sources: