Query Sales
Tener en cuenta que en Veri*Factu se realiza entrega diferida, por lo que cobra sentido la consulta del estado de la entrega de la factura a la administración.
Esto no aplica para TicketBAI, ya que la entrega es inmediata.
Mediante este punto de entrada SDH realizará la consulta, de una lista de hasta 1.000 facturas, para obtener información del estado de la factura en SDH y en la administración.
LLamada
Los datos necesarios para esta entrada son la lista de series y sus números de factura.
InvoicingClient client = new InvoicingClient();
...
List<IdSalesInvoice> idSalesInvoiceList = new List<IdSalesInvoice>();
idSalesInvoiceList.Add(new IdSalesInvoice() { Series = series, Number = number });
...
Solmicro.DigitalHub.Global.Dtos.OutEngineContainer result = client.QuerySales(idSalesInvoiceList);
curl -X POST https://apitest.solmicrosdh.com/invoicing/querysales \
--cert /ruta/al/certificado.pfx \
--cert-type P12 \
--pass mypfxpassword \
-H "Content-Type: application/json" \
-H "CompanyId: guid-unico-empresa" \
-H "InstallationId: guid-unico-instalacion" \
-d '[
{
"series": "string",
"number": "string"
}
]'
Resultado
Veri*Factu
El resultado será un objeto de tipo VeriFactuConsultasResult que contendrá la lista VeriFactuConsultaResults con la siguiente información:
Series: Serie de la factura.Number: Número de la factura.SalesInvoiceId: Identificador único de la factura en la BBDD de SDH.DateAndTime: Fecha de expedición de la factura.Type: Tipo de la factura.DestinationStateState: En caso que la factura esté entregada en la administración, el estado actual en el que se encuentra el registro para la administración.DestinationStateResponse: En caso que la factura esté entregada en la administración con error, el texto del error reportado por la administración.DestinationStateErrorCode: En caso que la factura esté entregada en la administración con error, el código del error reportado por la administración.DestinationStateDateAndTime:- En caso que la factura esté entregada en la administración, la fecha en la que se ha recibido la contestación de la administración.
- Si no se ha entregado a la administración, la fecha en que se ha procesado en SDH.
Hash: Huella de la factura.PreviousSeries: Serie de la factura con la que se ha realizado el encadenamiento.PreviousNumber: Número de la factura con la que se ha realizado el encadenamiento.PreviousDateAndTime: Fecha de la factura con la que se ha realizado el encadenamiento.UrlQR: Texto con la información necesaria para generar el QR.QRBase64: Texto codificado en Base64 que contiene la imagen QR.- Para el resto de campos ver información de resultado.
if (result.ErrorMessages.Count() > 0)
{
// Habrá que recorrerse la lista y tratar los errores
return;
}
VeriFactuConsultasResult vfResults = result.OfType<VeriFactuConsultasResult>().FirstOrDefault();
if (vfResults is not null)
{
foreach (var vfResult in vfResults.VeriFactuConsultaResults)
{
vfResult.Series
vfResult.Number
vfResult.SalesInvoiceId
vfResult.DateAndTime
vfResult.Type
vfResult.DestinationStateState
vfResult.DestinationStateResponse
vfResult.DestinationStateErrorCode
vfResult.DestinationStateDateAndTime
vfResult.Hash
vfResult.PreviousSeries
vfResult.PreviousNumber
vfResult.PreviousDateAndTime
vfResult.UrlQR
vfResult.QRBase64
...
}
}
{
"ContainerId": "string",
"Results": [],
"ErrorMessages": [
{
"Code": "string",
"Text": "string"
}
]
}
{
"Series": "string",
"Number": "string",
"SalesInvoiceId": "string",
"DateAndTime": "datetime",
"Type": integer,
"DestinationStateState": integer,
"DestinationStateResponse": "string",
"Hash": "string",
"PreviousSeries": "string",
"PreviousNumber": "string",
"PreviousDateAndTime": "datetime",
"UrlQR": "string",
"QRBase64": "string",
...
}