Factura Electrónica
Rendición de comprobantes asociados a un CAEA.
Factura Electrónica
Solicitud
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
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.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.ArrayList;
// Deben cambiar los datos de "params" por los que correspondan.
// Esta request de ejemplo incluye todos posibles valores para
// llamar al metodo FECAEARegInformativo, puede que algun valor sea opcional.
Map<String, Object> data = new LinkedHashMap<>();
data.put("environment", "dev");
data.put("method", "FECAEARegInformativo");
data.put("wsid", "wsfe");
Map<String, Object> params = new LinkedHashMap<>();
data.put("params", params);
Map<String, Object> Auth = new LinkedHashMap<>();
params.put("Auth", Auth);
Auth.put("Token", "string");
Auth.put("Sign", "string");
Auth.put("Cuit", 1);
Map<String, Object> FeCAEARegInfReq = new LinkedHashMap<>();
params.put("FeCAEARegInfReq", FeCAEARegInfReq);
Map<String, Object> FeCabReq = new LinkedHashMap<>();
FeCAEARegInfReq.put("FeCabReq", FeCabReq);
FeCabReq.put("CantReg", 1);
FeCabReq.put("PtoVta", 1);
FeCabReq.put("CbteTipo", 1);
Map<String, Object> FeDetReq = new LinkedHashMap<>();
FeCAEARegInfReq.put("FeDetReq", FeDetReq);
List<Object> FECAEADetRequest = new ArrayList<Object>();
FeDetReq.put("FECAEADetRequest", FECAEADetRequest);
Map<String, Object> FECAEADetRequest0 = new LinkedHashMap<>();
FECAEADetRequest.add(FECAEADetRequest0);
FECAEADetRequest0.put("Concepto", 1);
FECAEADetRequest0.put("DocTipo", 1);
FECAEADetRequest0.put("DocNro", 1);
FECAEADetRequest0.put("CbteDesde", 1);
FECAEADetRequest0.put("CbteHasta", 1);
FECAEADetRequest0.put("CbteFch", "string");
FECAEADetRequest0.put("ImpTotal", 1.5);
FECAEADetRequest0.put("ImpTotConc", 1.5);
FECAEADetRequest0.put("ImpNeto", 1.5);
FECAEADetRequest0.put("ImpOpEx", 1.5);
FECAEADetRequest0.put("ImpTrib", 1.5);
FECAEADetRequest0.put("ImpIVA", 1.5);
FECAEADetRequest0.put("FchServDesde", "string");
FECAEADetRequest0.put("FchServHasta", "string");
FECAEADetRequest0.put("FchVtoPago", "string");
FECAEADetRequest0.put("MonId", "string");
FECAEADetRequest0.put("MonCotiz", 1.5);
FECAEADetRequest0.put("CanMisMonExt", "string");
FECAEADetRequest0.put("CondicionIVAReceptorId", 1);
Map<String, Object> CbtesAsoc = new LinkedHashMap<>();
FECAEADetRequest0.put("CbtesAsoc", CbtesAsoc);
List<Object> CbteAsoc = new ArrayList<Object>();
CbtesAsoc.put("CbteAsoc", CbteAsoc);
Map<String, Object> CbteAsoc0 = new LinkedHashMap<>();
CbteAsoc.add(CbteAsoc0);
CbteAsoc0.put("Tipo", 1);
CbteAsoc0.put("PtoVta", 1);
CbteAsoc0.put("Nro", 1);
CbteAsoc0.put("Cuit", "string");
CbteAsoc0.put("CbteFch", "string");
Map<String, Object> Tributos = new LinkedHashMap<>();
FECAEADetRequest0.put("Tributos", Tributos);
List<Object> Tributo = new ArrayList<Object>();
Tributos.put("Tributo", Tributo);
Map<String, Object> Tributo0 = new LinkedHashMap<>();
Tributo.add(Tributo0);
Tributo0.put("Id", 1);
Tributo0.put("Desc", "string");
Tributo0.put("BaseImp", 1.5);
Tributo0.put("Alic", 1.5);
Tributo0.put("Importe", 1.5);
Map<String, Object> Iva = new LinkedHashMap<>();
FECAEADetRequest0.put("Iva", Iva);
List<Object> AlicIva = new ArrayList<Object>();
Iva.put("AlicIva", AlicIva);
Map<String, Object> AlicIva0 = new LinkedHashMap<>();
AlicIva.add(AlicIva0);
AlicIva0.put("Id", 1);
AlicIva0.put("BaseImp", 1.5);
AlicIva0.put("Importe", 1.5);
Map<String, Object> Opcionales = new LinkedHashMap<>();
FECAEADetRequest0.put("Opcionales", Opcionales);
List<Object> Opcional = new ArrayList<Object>();
Opcionales.put("Opcional", Opcional);
Map<String, Object> Opcional0 = new LinkedHashMap<>();
Opcional.add(Opcional0);
Opcional0.put("Id", "string");
Opcional0.put("Valor", "string");
Map<String, Object> Compradores = new LinkedHashMap<>();
FECAEADetRequest0.put("Compradores", Compradores);
List<Object> Comprador = new ArrayList<Object>();
Compradores.put("Comprador", Comprador);
Map<String, Object> Comprador0 = new LinkedHashMap<>();
Comprador.add(Comprador0);
Comprador0.put("DocTipo", 1);
Comprador0.put("DocNro", 1);
Comprador0.put("Porcentaje", 1.5);
Map<String, Object> PeriodoAsoc = new LinkedHashMap<>();
FECAEADetRequest0.put("PeriodoAsoc", PeriodoAsoc);
PeriodoAsoc.put("FchDesde", "string");
PeriodoAsoc.put("FchHasta", "string");
Map<String, Object> Actividades = new LinkedHashMap<>();
FECAEADetRequest0.put("Actividades", Actividades);
List<Object> Actividad = new ArrayList<Object>();
Actividades.put("Actividad", Actividad);
Map<String, Object> Actividad0 = new LinkedHashMap<>();
Actividad.add(Actividad0);
Actividad0.put("Id", 1);
FECAEADetRequest0.put("CAEA", "string");
FECAEADetRequest0.put("CbteFchHsGen", "string");
// Creamos un cliente HTTP para llamar a la API
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(20))
.build();
// Realizamos la llamada a la API
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String dataJSON = gson.toJson(data);
HttpRequest.Builder request = HttpRequest.newBuilder()
.uri(new URI("https://app.afipsdk.com/api/v1/afip/requests"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(dataJSON));
// Reemplazar con tu access_token obtenido de https://app.afipsdk.com
String accessToken = "TU_TOKEN_AQUI";
request.header("Authorization", "Bearer "+ accessToken);
HttpResponse<String> requestResponse = client.send(request.build(), HttpResponse.BodyHandlers.ofString());
// En caso de error lo mostramos por consola
if (requestResponse.statusCode() >= 400) {
JsonElement errorResponse = gson.fromJson(requestResponse.body(), JsonElement.class);
System.out.println("Error en la request: " + gson.toJson(errorResponse));
return;
}
// Convertimos la respuesta en un objeto
JsonObject jsonObject = gson.fromJson(requestResponse.body(), JsonElement.class).getAsJsonObject();
// Mostramos la respuesta por consola
System.out.println(gson.toJson(jsonObject));Respuesta
{
"FECAEARegInformativoResult": {
"FeCabResp": {
"Cuit": "long",
"PtoVta": "integer",
"CbteTipo": "integer",
"FchProceso": "string",
"CantReg": "integer",
"Resultado": "string",
"Reproceso": "string"
},
"FeDetResp": {
"FECAEADetResponse": [
{
"Concepto": "integer",
"DocTipo": "integer",
"DocNro": "long",
"CbteDesde": "long",
"CbteHasta": "long",
"CbteFch": "string",
"Resultado": "string",
"Observaciones": {
"Obs": [
{
"Code": "integer",
"Msg": "string"
}
]
},
"CAEA": "string"
}
]
},
"Events": {
"Evt": [
{
"Code": "integer",
"Msg": "string"
}
]
},
"Errors": {
"Err": [
{
"Code": "integer",
"Msg": "string"
}
]
}
}
}