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:
- Las validaciones de reglas pertinentes.
- El encadenamiento de las facturas y la obtención del QR a imprimir en la factura.
- Para TicketBAI el envío a la administración y el tratamiento de la respuesta.
Para Veri*Factu se realiza entrega diferida.
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.
- Ver campos para Veri*Factu.
curl -X POST https://apitest.solmicrosdh.com/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
Veri*Factu
Para esta normativa la factura queda pendiente de entrega en el servicio de la administración y SDH lo entregará más tarde.
El resultado será un objeto 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 resultado.
if (result.ErrorMessages.Count() > 0)
{
// Habrá que recorrerse la lista y tratar los errores
return;
}
VeriFactuResult vfResult = result.OfType<VeriFactuResult>().FirstOrDefault();
if (vfResult is not null)
{
vfResult.SalesInvoiceId
vfResult.UrlQR
vfResult.QRBase64
vfResult.Hash
vfResult.DateAndTime
vfResult.PreviousSeries
vfResult.PreviousNumber
vfResult.PreviousDateAndTime
vfResult.DestinationStateDateAndTime
...
}