Como suplidor, estos son los principales métodos del API que pueden ser de su interés:
| Método | Descripción |
|---|---|
GET /RequestsForQuotes/{requestId} | Devuelve el detalle de una licitación |
GET /PurchaseOrders/{purchaseOrderId} | Devuelve el detalle de una orden de compra |
POST /Quotes | Emitir una cotización |
En adición a estos métodos, puede utilizar los que aparecen en el objeto Configuration para obtener algunos datos del sistema. De igual manera, los métodos que aparecen en el objeto Associates pueden ser utilizados para obtener información de las empresas registradas en infopiezas.net.
infopiezas.net enviará unos eventos a un endpoint que ustedes indiquen para recibir notificaciones. Estas notificaciones serán una llamada POST de HTTP cada uno con la data correspondiente.
Cada mensaje, traerá la siguiente información en el header:
| Variable | Descripción |
|---|---|
| X-Infopiezas-Hmac-Sha256 | Esta variable contiene un hash del mensaje creado con una llave para que pueda validar que el mensaje vino de infopiezas.net. |
| X-Infopiezas-Topic | Indica el tipo de mensaje que se está enviando (nueva licitación o nueva orden de compra) |
Este es un ejemplo de código en C# que hace el cálculo del Hmac. Esta función recibe como entrada la llave que utiliza el sistema (le será proporcionada por infopiezas) y el contenido completo cuerpo del mensaje recibido. El resultado de la llamada a esta función debe dar igual al contenido de la variable del header X-Infopiezas-Hmac-Sha256.
xxxxxxxxxxpublic static string CalculateHMacDigest(string sharedKey, string contents){ System.Text.ASCIIEncoding encoding = new ASCIIEncoding(); byte[] keyBytes = encoding.GetBytes(sharedKey); byte[] messageBytes = encoding.GetBytes(contents); System.Security.Cryptography.HMACSHA256 cryptographer = new System.Security.Cryptography.HMACSHA256(keyBytes); byte[] bytes = cryptographer.ComputeHash(messageBytes); string digest = BitConverter.ToString(bytes).Replace("-", ""); return digest.ToUpper();}
A continuación un listado de los eventos disponibles.
| Evento | Descripción | Información recibida |
|---|---|---|
| Notificación de nueva solicitud de cotización | Se envía al momento de abrir una licitación en el sistema para la cual su empresa está participando. | Datos generales de la licitación |
| Notificación de nueva orden de compra | Se envía al momento en que su empresa recibe una orden de compra. | Datos generales de la orden de compra |
Cuando se inicia un proceso de licitación en infopiezas.net y su empresa está participando en la misma, el sistema hará una llamada a una URL especificada por ustedes con los datos generales de la licitación.
En el header, en la variable X-Infopiezas-Topic llega con el valor requestsForQuotes/new.
A continuación, un detalle de la estructura del objeto recibido:
public class NewRequestForQuoteEvent { /// <summary> /// Número de licitación /// </summary> public int RequestId { get; set; } /// <summary> /// Tipo de licitación (aseguradora, corporativo, personal) /// </summary> public int RequestTypeId { get; set; } /// <summary> /// Tipo de licitación (aseguradora, corporativo, personal) /// </summary> public string RequestTypeName { get; set; } /// <summary> /// Id de la empresa que creó la licitación /// </summary> public int CreatedByPersonId { get; set; } /// <summary> /// RNC de la empresa que creó la licitación /// </summary> public string CreatedByPersonTaxId { get; set; } /// <summary> /// Nombre de la empresa que creó la licitación /// </summary> public string CreatedByPersonName { get; set; } /// <summary> /// Id de la empresa que emitirá la orden de compra /// </summary> public int BuyerPersonId { get; set; } /// <summary> /// RNC de la empresa que emitirá la orden de compra /// </summary> public string BuyerPersonTaxId { get; set; } /// <summary> /// Nombre de la empresa que emitirá la orden de compra /// </summary> public string BuyerPersonName { get; set; } /// <summary> /// Fecha y hora de creación (UTC) /// </summary> public DateTime CreatedOnUtc { get; set; } /// <summary> /// Vehículo /// </summary> public string VehicleName { get; set; } /// <summary> /// Duración de la licitación en minutos /// </summary> public int AuctionDurationMinutes { get; set; } /// <summary> /// Fecha estimada de cierre de la licitación (UTC) /// </summary> public DateTime AuctionEstimadedCloseTimeUtc { get; set; } /// <summary> /// Número de piezas a licitar /// </summary> /// <returns></returns> public int ItemsCount { get; set; } }Si requiere obtener más información sobre la licitación, puede obtenerla haciendo una llamada al método /RequestsForQuotes/{requestId}, donde {requestId} debe ser reemplazado por el valor del campo RequestId recibido en la notificación.
Cuando su empresa recibe una orden de compra, recibirá una notificacion con información general de la misma.
En el header, en la variable X-Infopiezas-Topic llega con el valor purchaseOrders/new.
A continuación, un detalle de la estructura del objeto recibido:
xxxxxxxxxx public class NewPurchaseOrderEvent { ///<summary> ///Id de la orden de compra en infopiezas.net ///</summary> public int PurchaseOrderId { get; set; } ///<summary> ///Id de la licitación a que corresponte ///</summary> public int RequestId { get; set; } ///<summary> ///Fecha de creación de la orden de compra, en UTC ///</summary> public DateTime CreatedOnDateUtc { get; set; } /// <summary> /// Id de la empresa que creó la orden /// </summary> public int CreatedByPersonId { get; set; } /// <summary> /// RNC de la empresa que creó la orden /// </summary> public string CreatedByPersonTaxId { get; set; } /// <summary> /// Nombre de la empresa que creó la orden /// </summary> public string CreatedByPersonName { get; set; } }Para obtener más información sobre la orden de compra, puede obtener el objeto completo haciendo una llamada GET a PurchaseOrders/{PurchaseOrderId} donde {PurchaseOrderId} debe ser reemplazado por el valor recibido en el campo PurchaseOrderId de la notificación.
Para la configuración de los URL que estarán recibiendo estas notificaciones, debe comunicarlo vía correo electrónico a infopiezas.net para configurarlo en el sistema.