Saltar a contenido

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.SalesInvoiceQueryGroupResult results = client.QuerySales(idSalesInvoiceList);
curl -X POST https://apitest.solmicrosdh.com/v2.0/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

El resultado será un objeto de tipo SalesInvoiceQueryGroupResult que contendrá la siguiente información:

  • ResultList: Lista con la información:
    • Clave correspondiente a Series + Number de la factura consultada.
    • Lista de objetos de tipo SalesInvoiceQueryGroup con la información:
      • VeriFactuConsultaResult: Información de estado en Veri*Factu.
      • InvoiceStatusResults: Lista de objetos de tipo InvoiceStatus en B2B.

VeriFactuConsultaResult contiene 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.
  • 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.
  • HashType: Tipo de huella de la factura.
  • Hash: Huella de la factura.
  • 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 respuesta servicios administración.
if (result is not null)
{
    foreach (var item in result.ResultList)
    {
        string key = item.Key; // Series+Number
        var vf = item.Value.VeriFactuConsultaResult;
        var b2bStatuses = item.Value.InvoiceStatusResults;

        vf.Series
        vf.Number
        vf.SalesInvoiceId
        vf.DateAndTime
        vf.Type
        vf.DestinationStateState
        vf.DestinationStateResponse
        vf.DestinationStateErrorCode
        vf.DestinationStateDateAndTime
        vf.HashType
        vf.Hash
        vf.PreviousSeries
        vf.PreviousNumber
        vf.PreviousDateAndTime
        vf.UrlQR
        vf.QRBase64
        ...

        foreach (var status in b2bStatuses)
        {
            status.Id
            status.StatusType
            ...
        }
    }
}
{
    "resultList": {
        "serie1numero1": {
            "veriFactuConsultaResult": {
                "series": "string",
                "number": "string",
                "salesInvoiceId": "guid",
                "dateAndTime": "datetime",
                "type": integer,
                "destinationStateState": integer,
                "destinationStateResponse": "string",
                "destinationStateErrorCode": "string",
                "destinationStateDateAndTime": "datetime",
                "hashType": "string",
                "hash": "string",
                "previousSeries": "string",
                "previousNumber": "string",
                "previousDateAndTime": "datetime",
                "urlQR": "string",
                "qrBase64": "string"
                ...
            },
            "invoiceStatusResults": [
                {
                    "id": "guid",
                    "statusType": integer,
                    "action": integer,
                    "statusDate": "datetime"
                    ...
                }
            ]
        }
    }
}