Saltar a contenido

New Sales

Mediante este punto de entrada SDH recibirá el alta de una nueva factura y lo convertirá a todas las normativas de destino. Incluye los pasos siguientes:

Llamada

Dependiendo del destino de la factura, serán necesarios rellenar los distintos campos de la clase SalesInvoice. En cada normativa se especifican los campos requeridos para una correcta conversión del formato.

InvoicingClient client = new InvoicingClient();

...

SalesInvoice si = new()
{
    Number = "", 
    Series = "", 
    DateAndTime = DateTime.Parse(""), 
    ...
};
Solmicro.DigitalHub.Global.Interfaces.List<IResult> results = client.NewSales(si);
curl -X POST https://apitest.solmicrosdh.com/v2.0/Invoicing/NewSales \
--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",
    "dateAndTime": "datetime",
    ...
}'

Resultado

*VeriFactu

Para esta normativa la factura queda pendiente de entrega en el servicio de la administración y SDH lo entregará más tarde. La respuesta es una lista de resultados (List<IResult>) con algún elemento de tipo VeriFactuResult que contendrá la siguiente información:

  • SalesInvoiceId: Identificador único de la factura en la BBDD de SDH.
  • UrlQR: Texto con la información necesaria para generar el QR.
  • QRBase64: Texto codificado en Base64 que contiene la imagen QR.
  • Hash: Huella de la factura.
  • DateAndTime: Fecha de expedición 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.
  • DestinationStateDateAndTime: La fecha en que se ha procesado en SDH.
  • Para el resto de campos ver información de respuesta servicios.
VeriFactuResult result = results.OfType<VeriFactuResult>().FirstOrDefault();
if (result is not null)
{
    result.SalesInvoiceId
    result.UrlQR
    result.QRBase64
    result.Hash
    result.DateAndTime
    result.PreviousSeries
    result.PreviousNumber
    result.PreviousDateAndTime
    result.DestinationStateDateAndTime
    ...
}
[
    {
        "SalesInvoiceId": "string",
        "UrlQR": "string",
        "QRBase64": "string",
        "Hash": "string",
        "DateAndTime": "datetime",
        "PreviousSeries": "string",
        "PreviousNumber": "string",
        "PreviousDateAndTime": "datetime",
        "DestinationStateDateAndTime": "datetime",
        ...
    }
]

TicketBAI

Para esta normativa la factura se entrega directamente al servicio de la administración. La respuesta es una lista de resultados (List<IResult>) con algún elemento de tipo TicketBAIResult que contendrá la siguiente información:

  • SalesInvoiceId: Identificador único de la factura en la BBDD de SDH.
  • IdTicketBAI: Texto con la información necesaria para imprimir junto el QR.
  • UrlQR: Texto con la información necesaria para generar el QR.
  • QRBase64: Texto codificado en Base64 que contiene la imagen QR.
  • SignatureValue: Huella de la factura para el encadenamiento..
  • SignableContent: Factura en formato XML enviado a la administración.
  • Para el resto de campos ver información de respuesta servicios administración.
TicketBAIResult result = results.OfType<TicketBAIResult>().FirstOrDefault();
if (result is not null)
{
    result.SalesInvoiceId
    result.IdTicketBAI
    result.UrlQR
    result.QRBase64
    result.SignatureValue
    result.SignableContent
    ...
}
[
    {
        "SalesInvoiceId": "string",
        "IdTicketBAI": "string",
        "UrlQR": "string",
        "QRBase64": "string",
        "SignatureValue": "string",
        "SignableContent": "string",
        ...
    }
]