Error de validacin de token

RunLLM
RunLLM

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:

GuzH
GuzH

No funcionó de ninguna manera, es posible solicitar un nuevo TA? Que es eso? @user

RunLLM
RunLLM

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:

GuzH
GuzH

Pero el TA es del usuario o del cert de producción? @user

RunLLM
RunLLM

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:

GuzH
GuzH

@user

Pero el código donde debería ponerlo:

const res = await afip.getLastRequestXML(); console.log(res);

Con qué afip? pasando nada como parametro?

RunLLM
RunLLM

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: