Para consultar el último comprobante emitido en Java, debes seguir estos pasos:
Obtener el Token de Autorización: Realiza una solicitud POST al endpoint
https://app.afipsdk.com/api/v1/afip/authpara obtener el token y sign necesarios. Debes incluir los parámetrosenvironment,tax_id, ywsiden el cuerpo de la solicitud.Realizar la solicitud al web service: Con el token y sign obtenidos, realiza una solicitud POST al endpoint
https://app.afipsdk.com/api/v1/afip/requests. En el cuerpo de la solicitud, especifica el métodoconsultarUltimoComprobanteAutorizado, elwsidcorrespondiente, y los parámetros necesarios comoauthRequest,codigoTipoComprobante, ynumeroPuntoVenta.
Aquí tienes un ejemplo de cómo hacerlo en Java:
HttpClient client = HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(15)).build();
Map<String, Object> authRequestMap = new LinkedHashMap<>();
authRequestMap.put("environment", "dev");
authRequestMap.put("tax_id", "20409378472");
authRequestMap.put("wsid", "wsct");
String authRequestBody = new 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());
Map<String, String> authData = new Gson().fromJson(authResponse.body(), new TypeToken<Map<String, String>>() {}.getType());
String token = authData.get("token");
String sign = authData.get("sign");
Map<String, Object> invoiceRequestMap = new LinkedHashMap<>();
invoiceRequestMap.put("environment", "dev");
invoiceRequestMap.put("method", "consultarUltimoComprobanteAutorizado");
invoiceRequestMap.put("wsid", "wsct");
Map<String, Object> authParams = new LinkedHashMap<>();
authParams.put("token", token);
authParams.put("sign", sign);
authParams.put("cuitRepresentada", "20409378472");
Map<String, Object> params = new LinkedHashMap<>();
params.put("authRequest", authParams);
params.put("codigoTipoComprobante", 195);
params.put("numeroPuntoVenta", 1);
invoiceRequestMap.put("params", params);
String invoiceRequestBody = new Gson().toJson(invoiceRequestMap);
HttpRequest invoiceRequest = HttpRequest.newBuilder()
.uri(new URI("https://app.afipsdk.com/api/v1/afip/requests"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(invoiceRequestBody))
.build();
HttpResponse<String> invoiceResponse = client.send(invoiceRequest, HttpResponse.BodyHandlers.ofString());
System.out.println("Invoice Response: " + invoiceResponse.body());
Este código realiza la autenticación y luego consulta el último comprobante autorizado. Asegúrate de reemplazar los valores de tax_id y cuitRepresentada con los correctos para tu caso.
Sources: