Saltar a contenido

Query Sales

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.
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.

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"
        }
    ]
}

Veri*Factu

{
    "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",
    ...
}