Usar web services de ARCA en C#
Con pocas líneas de código

Consumir los web services de ARCA en C# puede ser un poco complicado, por eso vamos a utilizar la API de Afip SDK, que nos permite conectarnos a los web services de ARCA en C# sin complicarnos con el uso de SOAP y la autenticación.
Vamos a usar Newtonsoft.Json para trabajar con JSON.
dotnet add package Newtonsoft.Json
Obtener la autorización
Lo primero que tenemos hacer es obtener el “Token authorization”, que seria 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
using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using Newtonsoft.Json;
var client = new HttpClient();
// Paso 1: Obtener el Token y Sign
var authUrl = "https://app.afipsdk.com/api/v1/afip/auth";
var authData = new
{
environment = "dev",
tax_id = "20409378472", // CUIT a utilizar
wsid = "wsct"
};
var authJsonContent = JsonConvert.SerializeObject(authData);
var authContent = new StringContent(authJsonContent, Encoding.UTF8, "application/json");
var authResponse = await client.PostAsync(authUrl, authContent);
if (!authResponse.IsSuccessStatusCode)
{
Console.WriteLine($"Error en la autorización: {authResponse.StatusCode}");
return;
}
var authResponseBody = await authResponse.Content.ReadAsStringAsync();
dynamic auth = JsonConvert.DeserializeObject(authResponseBody);
string token = auth.token;
string sign = auth.sign;
Console.WriteLine($"Token: {token}");
Console.WriteLine($"Sign: {sign}");
En este ejemplo utilizamos el web service id wsct "wsid": "wsct"
, el cual corresponde al web service de comprobantes de turismo.
En la pestaña “API” de la documentacion podes consultar todos los parametros del endpoint.
Ahora tenemos token y sign que nos dio ARCA para usar el web service. No es necesario que lo guardemos, Afip SDK se encarga de esto por nosotros, debemos solicitarlo antes de cada llamada a los métodos del web service.
Llamar al web service
Para este ejemplo vamos a consultar el ultimo comprobante autorizado llamando al metodo consultarUltimoComprobanteAutorizado
.
Debemos ejecutar una solicitud POST al endpoint
https://app.afipsdk.com/api/v1/afip/requests
// Paso 2: Crear la consulta con el Token y Sign obtenidos
var invoiceUrl = "https://app.afipsdk.com/api/v1/afip/requests";
var invoiceData = new
{
environment = "dev",
method = "consultarUltimoComprobanteAutorizado",
wsid = "wsct",
@params = new
{
authRequest = new
{
token = token, // Token obtenido previamente
sign = sign, // Sign obtenido previamente
cuitRepresentada = "20409378472" // CUIT que estamos utilizando
},
codigoTipoComprobante = 195, // Código del tipo de comprobante
numeroPuntoVenta = 1 // Número del punto de venta
}
};
var invoiceJsonContent = JsonConvert.SerializeObject(invoiceData);
var invoiceContent = new StringContent(invoiceJsonContent, Encoding.UTF8, "application/json");
var invoiceResponse = await client.PostAsync(invoiceUrl, invoiceContent);
if (!invoiceResponse.IsSuccessStatusCode)
{
Console.WriteLine($"Error al consultar el último comprobante autorizado: {invoiceResponse.StatusCode}");
return;
}
var invoiceResponseBody = await invoiceResponse.Content.ReadAsStringAsync();
dynamic invoice = JsonConvert.DeserializeObject(invoiceResponseBody);
Console.WriteLine($"Response: {invoice}");
En la pestaña “API” de la documentacion podes consultar todos los parametros del endpoint.
En invoice
nos devolverá la respuesta del web service.
{
"consultarUltimoComprobanteAutorizadoReturn": ...,
}
Con esto ya podemos conectarnos a cualquier web service de ARCA con C#.
Lo único que nos queda es pasar a modo producción.
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.