Consultar constancia de Inscripción de ARCA en Java

Con pocas líneas de código

Ivan Muñoz feb 17, 2025 - Ultima edicion feb 22, 2025
Java

Consultar constancia de Inscripción de ARCA en Java

Para obtener la constancia de inscripción de ARCA en Java, debemos usar el web service de Padrón de constancia de inscripción.

Consumir los web services de ARCA en Java puede ser complicado, por eso vamos a utilizar la API de Afip SDK, que nos permite conectarnos a los web services de ARCA en Java sin complicarnos con el uso de SOAP y la autenticación.

Vamos a usar Gson para trabajar con JSON.

Añadimos la dependencia de Maven:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.11.0</version>
</dependency>

Obtener la autorización

Lo primero que tenemos que hacer es obtener el “Token authorization”, que sería la autorización en ARCA.

Para usar los web services de ARCA, se requiere un certificado digital, con Afip SDK puedes integrarte en modo desarrollo usando el CUIT 20409378472 sin necesidad de obtener un certificado, para poder integrarte lo más rápido posible.

Te dejo este enlace por si luego quieres usar tu propio certificado para desarrollo.

Debemos ejecutar una solicitud POST al endpoint:

https://app.afipsdk.com/api/v1/afip/auth
package com.example;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;
import java.util.HashMap;
import java.util.Map;

public class Main {

    public static void main(String[] args) {
        try {
            // Paso 1: Obtener el Token Authorization
            HttpClient client = HttpClient.newBuilder()
                    .connectTimeout(Duration.ofSeconds(15))
                    .build();

            // Crear JSON para el request usando GSON
            Map<String, String> authRequestMap = new LinkedHashMap<>();
            authRequestMap.put("environment", "dev");
            authRequestMap.put("tax_id", "20409378472"); // CUIT para pruebas
            authRequestMap.put("wsid", "ws_sr_constancia_inscripcion");

            Gson gson = new Gson();
            String authRequestBody = gson.toJson(authRequestMap);

            HttpRequest authRequest = HttpRequest.newBuilder()
                    .uri(new URI("https://app.afipsdk.com/api/v1/afip/auth"))
                    .header("Content-Type", "application/json")
                    .POST(HttpRequest.BodyPublishers.ofString(authRequestBody))
                    .build();

            HttpResponse<String> authResponse = client.send(authRequest, HttpResponse.BodyHandlers.ofString());

            if (authResponse.statusCode() >= 400) {
                System.out.println("Error en la solicitud de autenticación: " + authResponse.body());
                return;
            }

            // Parsear respuesta para extraer el sign y token usando GSON
            Type mapType = new TypeToken<Map<String, String>>() {}.getType();
            Map<String, String> authData = gson.fromJson(authResponse.body(), mapType);

            String token = authData.get("token");
            String sign = authData.get("sign");

            System.out.println("Token: " + token);
            System.out.println("Sign: " + sign);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

En este ejemplo utilizamos el web service id ws_sr_constancia_inscripcion, que corresponde al web service constancia de inscripción.

En la pestaña “API” de la documentación puedes consultar todos los parámetros del endpoint.

Ahora tenemos token y sign que nos dio ARCA para usar el web service. No es necesario guardarlos, ya que Afip SDK se encarga de ello por nosotros. Solo debemos solicitarlos antes de cada llamada a los métodos del web service.

Obtenemos los datos

Vamos a obtener los datos del contribuyente con el CUIT 33693450239 (cambiar esto por el CUIT que queramos consultar). Esto lo vamos a hacer llamando al método getPersona_v2.

Debemos ejecutar una solicitud POST al endpoint

https://app.afipsdk.com/api/v1/afip/requests
// Paso 2: Preparar los datos de la consulta
Map<String, Object> inscriptionRequestMap = new LinkedHashMap<>();
inscriptionRequestMap.put("environment", "dev");
inscriptionRequestMap.put("method", "getPersona_v2");
inscriptionRequestMap.put("wsid", "ws_sr_constancia_inscripcion");

Map<String, Object> params = new LinkedHashMap<>();
params.put("token", token);
params.put("sign", sign);
params.put("cuitRepresentada", "20409378472");
params.put("idPersona", 33693450239); // CUIT a consultar

inscriptionRequestMap.put("params", params);

String inscriptionRequestBody = gson.toJson(inscriptionRequestMap);

HttpRequest inscriptionRequest = HttpRequest.newBuilder()
        .uri(new URI("https://app.afipsdk.com/api/v1/afip/requests"))
        .header("Content-Type", "application/json")
        .POST(HttpRequest.BodyPublishers.ofString(inscriptionRequestBody))
        .build();

HttpResponse<String> inscriptionResponse = client.send(inscriptionRequest, HttpResponse.BodyHandlers.ofString());

if (inscriptionResponse.statusCode() >= 400) {
    System.out.println("Error request: " + inscriptionResponse.body());
    return;
}

System.out.println("Response: " + inscriptionResponse.body());

En inscriptionResponse.body(), nos devolverá los datos de la constancia de inscripción del contribuyente.

{
    "apellido": ...,
    "nombre": ...,
    "domicilioFiscal": ...,
    "actividad": ...
}

Problemas comunes

Si estás teniendo el error “No existe persona con ese ID”, se debe a que no todos los CUIT están disponibles en el ambiente de desarrollo. Te recomiendo leer este artículo:

No existe persona con ese Id

No existe persona con ese Id

Pasos para resolver este error

Con esto ya tenemos los datos del contribuyente. También podes usar el padrón de alcance 13 o el padrón de alcance 10.

Lo único que nos queda es pasar a modo producción para obtener información real de los contribuyentes.


Ante cualquier duda o pregunta al respecto, pueden resolverla rápidamente dentro de la Comunidad Afip SDK. Además, puedes unirte para estar al tanto de las novedades y problemas técnicos al usar los servicios de ARCA.

Conéctate a ARCA hoy mismo

Certificados, código, tutoriales, soporte... todo lo que necesitas para usar los web services de ARCA en un solo lugar.