Incorporacin de CondicionIvaReceptorId

RunLLM
RunLLM

El campo CondicionIVAReceptorId debe incorporarse obligatoriamente en los comprobantes electrónicos emitidos a partir del 15 de abril de 2025, según la Resolución General ARCA N° 5.616/2024. Hasta el 30 de junio de 2025 será un dato no excluyente, pero desde el 1 de julio de 2025 se rechazarán las solicitudes que no lo incluyan. La solución es agregar este campo en la data del comprobante, utilizando el ID correspondiente a la condición frente al IVA del receptor, que se puede obtener con el método FEParamGetCondicionIvaReceptor.

Para más detalles sobre cómo obtener la lista de condiciones y ejemplos de implementación en distintos lenguajes, consulta la documentación oficial y la guía de solución al error 10242. ¿Te gustaría ver ejemplos de código o una explicación paso a paso?

Sources:

mate
mate

podrias mostrarme como obtener la condicion del iva Receptor con PHP?

@user podrias mostrarme como obtener la condicion del iva Receptor con PHP?

RunLLM
RunLLM

Sí, puedes obtener la condición frente al IVA del receptor usando el web service padrón de constancia de inscripción. Debes consultar los impuestos del contribuyente y, según el resultado, mapearlo al ID correspondiente para el campo CondicionIVAReceptorId. El web service no devuelve directamente el ID, sino los impuestos asociados, por lo que debes interpretarlos manualmente según la tabla de condiciones.

Aquí tienes un ejemplo básico en PHP para obtener los datos del padrón y luego deberás mapear el impuesto a la condición IVA:

// Suponiendo que ya tienes el objeto $afip configurado
$padron = $afip->RegisterInscription->GetTaxpayerDetails($cuit);

// Ejemplo de interpretación
if (isset($padron['datosRegimenGeneral']['impuesto'])) {
    foreach ($padron['datosRegimenGeneral']['impuesto'] as $impuesto) {
        if ($impuesto['descripcionImpuesto'] == 'IVA') {
            $condicionIVA = 1; // IVA Responsable Inscripto
        }
        // Agrega aquí otros mapeos según corresponda
    }
}

Recuerda que debes mapear el resultado al ID de condición IVA según la tabla oficial. ¿Te gustaría una explicación más detallada del mapeo o del uso del SDK?

Sources:

mate
mate

@user me mostrar un array data de ejemplo para php? teniendo en cuenta que el campo CUIT del receptor me llega por POST, como hago para obtener el id de la condicion de IVA y mandarlo en el array?

RunLLM
RunLLM

Debes primero consultar el padrón con el CUIT recibido por POST, interpretar el impuesto para determinar la condición frente al IVA y luego incluir el ID correspondiente en el array data bajo el campo 'CondicionIVAReceptorId'. El web service del padrón no devuelve el ID directamente, por lo que debes mapear la descripción del impuesto al ID según la tabla oficial.

Ejemplo básico en PHP:

$cuit_receptor = $_POST['cuit_receptor'];
$padron = $afip->RegisterInscription->GetTaxpayerDetails($cuit_receptor);
$condicionIVA = 5; // Valor por defecto: Consumidor Final

if (isset($padron['datosRegimenGeneral']['impuesto'])) {
    foreach ($padron['datosRegimenGeneral']['impuesto'] as $impuesto) {
        if ($impuesto['descripcionImpuesto'] == 'IVA') {
            $condicionIVA = 1; // IVA Responsable Inscripto
        }
        // Agrega otros mapeos según corresponda
    }
}

$data = array(
    'CantReg' => 1,
    'PtoVta' => 1,
    'CbteTipo' => 6,
    'Concepto' => 1,
    'DocTipo' => 80,
    'DocNro' => $cuit_receptor,
    'CondicionIVAReceptorId' => $condicionIVA,
    // ...otros campos requeridos
);

¿Te gustaría ver el mapeo completo de todas las condiciones posibles?

Sources:

mate
mate

me podrias mandar el mapeo para cada condicion de iva existente?

@user me podrias mandar el mapeo para cada condicion de iva existente?

RunLLM
RunLLM

Sí, aquí tienes el mapeo de los impuestos del padrón a los IDs de CondicionIVAReceptorId que debes usar en el array de la factura:

  • "IVA Responsable Inscripto" → ID 1 (impuesto con idImpuesto 30)
  • "Responsable Monotributo" → ID 6 (impuesto con idImpuesto 20 o 5243)
  • "Monotributista Social" → ID 13
  • "Monotributo Trabajador Independiente Promovido" → ID 16
  • "IVA Sujeto Exento" → ID 4 (impuesto con idImpuesto 32)
  • "Consumidor Final" → ID 5
  • "Sujeto No Categorizado" → ID 7
  • "Proveedor del Exterior" → ID 8
  • "Cliente del Exterior" → ID 9
  • "IVA Liberado – Ley N° 19.640" → ID 10
  • "IVA No Alcanzado" → ID 15 (impuesto con idImpuesto 34)

Debes buscar en los arrays datosRegimenGeneral['impuesto'] o datosMonotributo['impuesto'] y mapear según la descripción o el idImpuesto. ¿Te gustaría un ejemplo de código para este mapeo?

Sources:

mate
mate

@user proporcioname el codigo php correspondiente para mapear cada id de la condicion de iva existente por favor

RunLLM
RunLLM

Aquí tienes un ejemplo de código PHP que mapea los impuestos del padrón a cada ID de CondicionIVAReceptorId según la condición frente al IVA del receptor. El código recorre los impuestos devueltos por el padrón y asigna el ID correspondiente para el campo CondicionIVAReceptorId:

function obtenerCondicionIVA($padron) {
    // Por defecto Consumidor Final
    $condicionIVA = 5;

    // Mapeo por idImpuesto y descripción
    if (isset($padron['datosRegimenGeneral']['impuesto'])) {
        foreach ($padron['datosRegimenGeneral']['impuesto'] as $impuesto) {
            if ($impuesto['idImpuesto'] == 30) return 1; // IVA Responsable Inscripto
            if ($impuesto['idImpuesto'] == 32) return 4; // IVA Sujeto Exento
            if ($impuesto['idImpuesto'] == 34) return 15; // IVA No Alcanzado
            if ($impuesto['idImpuesto'] == 5243 || $impuesto['idImpuesto'] == 20) return 6; // Responsable Monotributo
            if ($impuesto['descripcionImpuesto'] == 'IVA Liberado – Ley N° 19.640') return 10;
            // Agrega aquí otros mapeos si es necesario
        }
    }
    if (isset($padron['datosMonotributo']['impuesto'])) {
        foreach ($padron['datosMonotributo']['impuesto'] as $impuesto) {
            if ($impuesto['idImpuesto'] == 20) return 6; // Responsable Monotributo
            // Otros mapeos para monotributo si corresponde
        }
    }
    // Otros casos especiales
    // Monotributista Social, Trabajador Independiente Promovido, etc. pueden requerir lógica adicional

    return $condicionIVA;
}

// Ejemplo de uso:
$cuit_receptor = $_POST['cuit_receptor'];
$padron = $afip->RegisterInscription->GetTaxpayerDetails($cuit_receptor);
$condicionIVA = obtenerCondicionIVA($padron);

$data = array(
    'CantReg' => 1,
    'PtoVta' => 1,
    'CbteTipo' => 6,
    'Concepto' => 1,
    'DocTipo' => 80,
    'DocNro' => $cuit_receptor,
    'CondicionIVAReceptorId' => $condicionIVA,
    // ...otros campos requeridos
);

¿Te gustaría que agregue el mapeo para condiciones menos comunes como Monotributista Social o Trabajador Independiente Promovido?

Sources:

mate
mate

@user mandme el codigo php correspondiente para mapear el resto de ids de condicion de iva que no me mandaste en ese codigo anterior, termina y completa la funcion

RunLLM
RunLLM

Aquí tienes la función PHP completa, incluyendo el mapeo para todas las condiciones de IVA existentes según la lista oficial. Para los casos que no se identifican por idImpuesto, se utiliza la descripción o se deja el valor por defecto (Consumidor Final):

function obtenerCondicionIVA($padron) {
    // Por defecto Consumidor Final
    $condicionIVA = 5;

    // Mapeo por idImpuesto y descripción
    if (isset($padron['datosRegimenGeneral']['impuesto'])) {
        foreach ($padron['datosRegimenGeneral']['impuesto'] as $impuesto) {
            if ($impuesto['idImpuesto'] == 30) return 1; // IVA Responsable Inscripto
            if ($impuesto['idImpuesto'] == 32) return 4; // IVA Sujeto Exento
            if ($impuesto['idImpuesto'] == 34) return 15; // IVA No Alcanzado
            if ($impuesto['idImpuesto'] == 5243 || $impuesto['idImpuesto'] == 20) return 6; // Responsable Monotributo
            if (stripos($impuesto['descripcionImpuesto'], 'IVA Liberado') !== false) return 10; // IVA Liberado – Ley N° 19.640
            if (stripos($impuesto['descripcionImpuesto'], 'Monotributista Social') !== false) return 13; // Monotributista Social
            if (stripos($impuesto['descripcionImpuesto'], 'Monotributo Trabajador Independiente Promovido') !== false) return 16; // Monotributo Trabajador Independiente Promovido
        }
    }
    if (isset($padron['datosMonotributo']['impuesto'])) {
        foreach ($padron['datosMonotributo']['impuesto'] as $impuesto) {
            if ($impuesto['idImpuesto'] == 20) return 6; // Responsable Monotributo
            if (stripos($impuesto['descripcionImpuesto'], 'Monotributista Social') !== false) return 13; // Monotributista Social
            if (stripos($impuesto['descripcionImpuesto'], 'Monotributo Trabajador Independiente Promovido') !== false) return 16; // Monotributo Trabajador Independiente Promovido
        }
    }
    // Casos especiales por lógica de negocio o clientes del exterior
    // Si tienes lógica para identificar:
    // - Sujeto No Categorizado (7)
    // - Proveedor del Exterior (8)
    // - Cliente del Exterior (9)
    // puedes agregarla aquí según tus reglas de negocio.

    return $condicionIVA;
}

Este código cubre todos los IDs documentados. Para condiciones como Sujeto No Categorizado, Proveedor/Cliente del Exterior, deberás aplicar lógica adicional según el tipo de cliente o país. ¿Necesitas ayuda con esos casos especiales?

Sources:

mate
mate

@user si necesito ayuda para esos casos especiales

RunLLM
RunLLM

Para los casos especiales como Sujeto No Categorizado (ID 7), Proveedor del Exterior (ID 8) y Cliente del Exterior (ID 9), debes identificarlos según el tipo de documento, país o reglas de tu sistema, ya que el padrón no los devuelve explícitamente. Por ejemplo, si el receptor es extranjero o el tipo de documento es “80” pero el país no es Argentina, puedes asignar el ID correspondiente.

¿Te gustaría un ejemplo de código para detectar estos casos en base al tipo de documento o país?

Sources:

mate
mate

@user yo para realizar las facturas siempre utilizo el CUIT (sin excepcion), y si tenemos clientes del exterior. como se procede?

RunLLM
RunLLM

Si siempre usas CUIT y tienes clientes del exterior, debes tener en cuenta que para clientes extranjeros se recomienda utilizar los tipos de documento y condiciones de IVA específicas: "Proveedor del Exterior" (ID 8) o "Cliente del Exterior" (ID 9). Sin embargo, el padrón argentino no devuelve información para CUITs del exterior, por lo que deberás asignar manualmente el ID de condición de IVA correspondiente según el tipo de operación.

En estos casos, al emitir la factura, asigna el campo CondicionIVAReceptorId con el valor 8 (Proveedor del Exterior) o 9 (Cliente del Exterior), según corresponda, y asegúrate de que el tipo de comprobante y los datos coincidan con la normativa para operaciones internacionales. ¿Te gustaría un ejemplo de cómo armar el array data para estos casos?

Sources:

mate
mate

@user dame un ejemplo de como incorporar una logica para esos casos especiales

RunLLM
RunLLM

Puedes incorporar la lógica para casos especiales verificando si el CUIT corresponde a un cliente del exterior (por ejemplo, si el país no es Argentina o si el CUIT no está en el padrón). Si es así, asigna el ID 8 (Proveedor del Exterior) o 9 (Cliente del Exterior) según el tipo de operación. Si el CUIT no se encuentra en el padrón, también puedes considerar asignar el ID 7 (Sujeto No Categorizado) como último recurso.

Aquí tienes un ejemplo de código PHP:

function obtenerCondicionIVA($padron, $cuit_receptor, $es_extranjero = false, $es_proveedor = false) {
    // Por defecto Consumidor Final
    $condicionIVA = 5;

    if ($es_extranjero) {
        // Si es cliente del exterior
        return $es_proveedor ? 8 : 9;
    }

    if (isset($padron['datosRegimenGeneral']['impuesto'])) {
        foreach ($padron['datosRegimenGeneral']['impuesto'] as $impuesto) {
            if ($impuesto['idImpuesto'] == 30) return 1;
            if ($impuesto['idImpuesto'] == 32) return 4;
            if ($impuesto['idImpuesto'] == 34) return 15;
            if ($impuesto['idImpuesto'] == 5243 || $impuesto['idImpuesto'] == 20) return 6;
            if (stripos($impuesto['descripcionImpuesto'], 'IVA Liberado') !== false) return 10;
            if (stripos($impuesto['descripcionImpuesto'], 'Monotributista Social') !== false) return 13;
            if (stripos($impuesto['descripcionImpuesto'], 'Monotributo Trabajador Independiente Promovido') !== false) return 16;
        }
    }
    if (isset($padron['datosMonotributo']['impuesto'])) {
        foreach ($padron['datosMonotributo']['impuesto'] as $impuesto) {
            if ($impuesto['idImpuesto'] == 20) return 6;
            if (stripos($impuesto['descripcionImpuesto'], 'Monotributista Social') !== false) return 13;
            if (stripos($impuesto['descripcionImpuesto'], 'Monotributo Trabajador Independiente Promovido') !== false) return 16;
        }
    }

    // Si el CUIT no está en el padrón, podría ser Sujeto No Categorizado
    if (empty($padron)) {
        return 7;
    }

    return $condicionIVA;
}

¿Te gustaría ver cómo llamar a esta función en un flujo completo de facturación?

Sources:

mate
mate

@user si el id de la condicion de iva no corresponde con el cuit, tira error la API?

RunLLM
RunLLM

Sí, si el ID de la condición de IVA no corresponde con el CUIT del receptor, la API devuelve el error (10242) "El campo Condicion IVA receptor no es un valor valido/es obligatorio" y rechaza la solicitud de emisión del comprobante. Es fundamental que el ID enviado coincida con la condición real del CUIT consultada en el padrón o asignada correctamente para clientes del exterior.

¿Te gustaría ver cómo manejar este error o ejemplos de validación previa?

Sources:

mate
mate

@user como hago para autorizar este web service?

RunLLM
RunLLM

Para autorizar un web service en ARCA, debes crear una autorización para el certificado desde la API o desde la página de ARCA. Con Afip SDK, puedes hacerlo vía API enviando un POST a https://app.afipsdk.com/api/v1/afip/ws-auths con los datos: environment, tax_id, username, password, alias del certificado y wsid del web service. El proceso puede demorar unos segundos y debes consultar el estado con el long_job_id hasta que sea "complete" y "created" según la respuesta.

Ejemplo de body para la API:

{
  "environment": "dev",
  "tax_id": "11111111111",
  "username": "11111111111",
  "password": "tu_contraseña",
  "alias": "afipsdk",
  "wsid": "wsfe"
}

¿Te gustaría ver el proceso paso a paso o cómo hacerlo desde la web de ARCA?

Sources:

mate
mate

@user en caso de no hacerlo de esa forma, cada cliente tiene que entrar a ARCA y autorizarlo?

RunLLM
RunLLM

Sí, si no autorizas el web service vía API, cada cliente debe ingresar manualmente a la página de ARCA con su CUIT y autorizar el web service desde su cuenta, seleccionando el certificado correspondiente y el servicio a habilitar. Este paso es obligatorio para que el sistema pueda emitir comprobantes en nombre de ese cliente.

¿Te gustaría una guía paso a paso para la autorización manual en la web de ARCA?

Sources:

mate
mate

@user que tiene que hacer cada cliente para autorizar el servicio: RegisterInscriptionProof->GetTaxpayerDetails?

porque si lo tengo que hacer yo automaticamente, debo pedirles la contraseña y no me la van a dar

RunLLM
RunLLM

Cada cliente debe ingresar a la web de ARCA con su CUIT y clave fiscal, ir al Administrador de Relaciones de Clave Fiscal, seleccionar "Nueva Relación", buscar y elegir el servicio "Constancia de Inscripción" (wsid: ws_sr_constancia_inscripcion), y asociarlo al certificado correspondiente. Así autorizan el uso del web service para su CUIT, sin necesidad de que les pidas la contraseña.

Si no lo hacen manualmente, solo podrías autorizarlo automáticamente si te brindan usuario y contraseña, lo cual no es recomendable por seguridad. ¿Te gustaría una guía paso a paso con capturas de pantalla para enviarle a tus clientes?

Sources:

mate
mate

@user si por favor, mandame las capturas

RunLLM
RunLLM

No puedo enviar capturas de pantalla directamente, pero sí puedo indicarte los pasos exactos que tus clientes deben seguir y dónde encontrar imágenes ilustrativas en la documentación oficial. El proceso es el siguiente:

  1. Ingresar a ARCA con CUIT y clave fiscal.
  2. Ir a "Administrador de Relaciones de Clave Fiscal".
  3. Seleccionar "Nueva Relación".
  4. Buscar el servicio "Constancia de Inscripción" (ws_sr_constancia_inscripcion) en "ARCA > Web Services".
  5. Elegir el certificado digital correspondiente.
  6. Confirmar la autorización.

Puedes ver imágenes y una guía visual detallada en la documentación oficial de Afip SDK en estos enlaces:

¿Te gustaría que te resuma estos pasos en un PDF para enviar a tus clientes?

Sources:

mate
mate

@user como hago para consultar la condicion de iva del receptor con algun metodo de afip sdk?

RunLLM
RunLLM

Para consultar la condición de IVA del receptor con Afip SDK, debes usar el web service padrón de constancia de inscripción (RegisterInscription->GetTaxpayerDetails) y analizar los impuestos devueltos para determinar la condición frente al IVA. No existe un método que devuelva directamente el ID de condición de IVA; debes mapear manualmente el impuesto a la condición correspondiente.

¿Te gustaría ver un ejemplo de código para este proceso?

Sources:

mate
mate

@user a partir de cuando es obligatorio mandar este dato?

RunLLM
RunLLM

El dato de la condición frente al IVA del receptor será obligatorio en los comprobantes electrónicos a partir del 1 de julio de 2025. Hasta el 30 de junio de 2025, su envío es opcional y no excluyente; desde el 1 de julio, las solicitudes sin este dato serán rechazadas.

¿Te gustaría ver la normativa o ejemplos de implementación?

Sources:

mate
mate

@user la pagina dice que es a partir del 1 de agosto. si hasta ese momento no lo mando, no pasa nada cierto?

RunLLM
RunLLM

La obligatoriedad de enviar el dato de condición frente al IVA del receptor fue postergada y será exigible a partir del 1 de agosto de 2025. Hasta el 31 de julio de 2025, si no lo envías, la solicitud no será rechazada y podrás seguir emitiendo comprobantes normalmente.

¿Te gustaría ver la fuente oficial o ejemplos de mensajes de error?

Sources:

mate
mate

@user cuando quiero obtener la condicion de iva del receptor, me pide autorizar el web_service, como hago eso desde el codigo?

RunLLM
RunLLM

Para autorizar el web service desde el código, debes hacer un POST a https://app.afipsdk.com/api/v1/afip/ws-auths con los datos: environment, tax_id, username, password, alias del certificado y wsid del web service (por ejemplo, "ws_sr_constancia_inscripcion" para constancia de inscripción). El proceso devuelve un long_job_id que debes consultar hasta que el status sea "complete".

Ejemplo en JSON:

{
  "environment": "dev",
  "tax_id": "11111111111",
  "username": "11111111111",
  "password": "tu_contraseña",
  "alias": "afipsdk",
  "wsid": "ws_sr_constancia_inscripcion"
}

¿Te gustaría ver el ejemplo en PHP o cómo consultar el estado del long_job_id?

Sources:

mate
mate

@user pasame el codigo php para poder habilitar el web_service a la hora de hacer la factura para obtener la condicion de iva del recpetor y luego mandarlo en el $data de la factura

RunLLM
RunLLM

Mi entendimiento es que primero debes autorizar el web service "ws_sr_constancia_inscripcion" para el CUIT, luego consultar la condición de IVA del receptor y finalmente incluir el ID correspondiente en el array $data de la factura. El proceso requiere usuario, contraseña y alias del certificado del cliente.

Aquí tienes un ejemplo de código PHP para autorizar el web service, consultar la condición de IVA y armar el array $data:

// 1. Autorizar el web service (solo es necesario hacerlo una vez por CUIT)
$afip = new Afip(array('CUIT' => $cuit_cliente));
$res = $afip->CreateWSAuth($cuit_cliente, $password, $alias, 'ws_sr_constancia_inscripcion');

// 2. Consultar la condición de IVA del receptor
$padron = $afip->RegisterInscription->GetTaxpayerDetails($cuit_receptor);
$condicionIVA = obtenerCondicionIVA($padron); // Usa la función de mapeo que vimos antes

// 3. Armar el array $data para la factura
$data = array(
    'CantReg' => 1,
    'PtoVta' => 1,
    'CbteTipo' => 6,
    'Concepto' => 1,
    'DocTipo' => 80,
    'DocNro' => $cuit_receptor,
    'CondicionIVAReceptorId' => $condicionIVA,
    // ...otros campos requeridos
);

Recuerda que la autorización solo es necesaria una vez por CUIT y web service. ¿Te gustaría el detalle de la función obtenerCondicionIVA o cómo manejar el long_job_id si la autorización demora?

Sources:

mate
mate

@user el web-service que quiero autorizar es este:

$afip->RegisterInscriptionProof->GetTaxpayerDetails($doc_nro);

RunLLM
RunLLM

Para autorizar el web service que usas con $afip->RegisterInscriptionProof->GetTaxpayerDetails($doc_nro);, debes autorizar el servicio "Constancia de Inscripción" cuyo wsid es ws_sr_constancia_inscripcion. Esto se hace enviando una solicitud de autorización para ese wsid, no para "wsfe" ni para otros.

Ejemplo en PHP:

$afip = new Afip(array('CUIT' => $cuit_cliente));
$res = $afip->CreateWSAuth($cuit_cliente, $password, $alias, 'ws_sr_constancia_inscripcion');

Asegúrate de que el certificado esté creado y autorizado para ese servicio. ¿Te gustaría ver cómo verificar si la autorización fue exitosa?

Sources:

mate
mate

@user mostrame como hago para saber si fue exitosa o no la autorizacion

RunLLM
RunLLM

Después de ejecutar la autorización con $afip->CreateWSAuth(...), revisa la respuesta: si el status es "created" o "exists", la autorización fue exitosa; si es "error", revisa el mensaje devuelto. Si usas la API, debes consultar el estado con el long_job_id hasta obtener "complete" y "created".

Ejemplo básico:

$res = $afip->CreateWSAuth($cuit_cliente, $password, $alias, 'ws_sr_constancia_inscripcion');
if (isset($res['status']) && ($res['status'] == 'created' || $res['status'] == 'exists')) {
    echo "Autorización exitosa";
} else {
    echo "Error: " . ($res['message'] ?? 'Desconocido');
}

¿Te gustaría ver cómo consultar el estado usando el long_job_id si la respuesta es "in_process"?

Sources:

mate
mate

@user Cuando sale el mensaje: "El CUIT xxxxxxxxxxx fue baneado de AFIP SDK"? en que momento sale y por que?

RunLLM
RunLLM

Podría ser que el mensaje "El CUIT xxxxxxxxxxx fue baneado de AFIP SDK" aparezca cuando se detectan usos indebidos, violaciones a los términos del servicio, o comportamientos sospechosos (como abuso de solicitudes, automatizaciones no permitidas, o intentos de vulnerar la plataforma). Este mensaje suele mostrarse al intentar realizar operaciones con un CUIT que ha sido bloqueado por el sistema de Afip SDK, impidiendo el acceso a los web services.

No se detalla en la documentación oficial el listado exacto de causas, pero generalmente ocurre al momento de autenticar o realizar una solicitud a la API con un CUIT restringido. ¿Te gustaría saber cómo solicitar el desbloqueo o evitar el baneo?

mate
mate

@user tengo este mensaje que puedo hacer?

Uncaught Exception: El CUIT 20270273891 fue baneado de Afip SDK. Si creés que esto es un error, comunicate con [email protected].

RunLLM
RunLLM

Podría ser que este mensaje aparezca porque el CUIT fue bloqueado por Afip SDK debido a un uso indebido, abuso de la API o alguna violación de los términos del servicio. En este caso, la única acción recomendada es comunicarte directamente con [email protected] para solicitar una revisión y posible desbloqueo del CUIT.

No hay un método automático para resolverlo desde el código; el soporte de Afip SDK debe intervenir manualmente. ¿Te gustaría saber qué información enviarles para agilizar el proceso?

Sources:

Javo
Javo

@user afip.RegisterScopeTen.getTaxpayerDetails me está arrojando el error "Error: Request failed with status code 400" en el ambiente de homologación y en el de producción. Necesito habilitar este ws?

RunLLM
RunLLM

Sí, es necesario autorizar el uso del web service "ws_sr_padron_a10" antes de poder consultar datos con afip.RegisterScopeTen.getTaxpayerDetails. Si no está autorizado, recibirás errores como el que mencionas. La autorización debe hacerse tanto en homologación como en producción, y puede demorar un poco en impactar después de realizarla. Además, asegúrate de que el CUIT consultado exista en el padrón correspondiente, ya que en desarrollo no todos los CUIT están disponibles y en producción solo se puede consultar CUITs válidos según el padrón elegido.

Para autorizar el web service, sigue el tutorial oficial de autorización de web services de ARCA. Si el error persiste tras la autorización y el CUIT es válido, revisa que estés usando el token y el entorno correctos, y que el certificado corresponda al ambiente seleccionado. Más detalles en Padrón alcance 10 y Solución a errores comunes.

¿Te gustaría una guía paso a paso para autorizar el web service o ejemplos de código?

Sources: