API PDF ANMAT

Api Rest para firmar PDFs con certificado de Servidor

Consultar por los parámetros requeridos

uID es el id del Sistema que requiere la firma.

sGuid es un Guid identificatorio del sistema

Ayuda

Por favor, revisar la documentación de la API para poder hacer request.


Ejemplo de uso


//LEO UN ARCHIVO FISICO
string source = Server.MapPath("~") + "\CarpetaX\" + "Archivo_Ejemplo.pdf";

byte[] oData = null;
if (File.Exists(source))
{
oData = File.ReadAllBytes(source); // .FileBytes
}




PDFRequest objReq = new PDFRequest();
objReq.ArchivoNombre = "Archivo_Ejemplo.pdf";
objReq.SistemaOrigen = "NOMBRE_SISTEMA_ANMAT";
objReq.ArchivoData = Convert.ToBase64String(oData);
objReq.NombrePersonaFirmante = "Nombre Persona";
objReq.CargoPersonaFirmante = "Cargo de la persona que firma";



//El primer parámetro es el {uId} del sistema y el segundo {sGuid} es el GUID asociado -provistos por ANMAT-
Uri url = new Uri(String.Format("https://pdff.anmat.gob.ar/apiPDF/GenerarPDF/{xx}/{26FA7xxx-5A89-xxxx-A5D4-C1C4ED745A6C}"));



//Serializo el objeto a enviar
string jsonToSend = JsonConvert.SerializeObject(objReq);

HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
httpWebRequest.Accept = "application/json";

//Escribo el string del json en el Stream
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
streamWriter.Write(jsonToSend);
}

//Obtengo el response
HttpWebResponse httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
string sResult;
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
sResult = streamReader.ReadToEnd();
}


// OBJETO QUE ARMO DE RESPONSE
dynamic PDFResult = JsonConvert.DeserializeObject(sResult.ToString());

PDFResponse objResponse = new PDFResponse();
objResponse.ArchivoNombre = PDFResult.ArchivoNombre;
objResponse.SistemaOrigen = PDFResult.SistemaOrigen;
objResponse.ArchivoDataSigned = PDFResult.ArchivoDataSigned;



//LO LEO COMO ARRAY DE BYTES
byte[] oDataFinal = System.Convert.FromBase64String(objResponse.ArchivoDataSigned);

//DESCARGO EL ARCHIVO
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/force-download";
Response.AddHeader("Content-Disposition", "inline; filename=PDF_firmado_" + DateTime.Now.ToString() + ".pdf");

Response.BinaryWrite(oDataFinal);


Response.End();
Response.Flush();
Response.Clear();