5.Developers

Desarrolladores

NuestraFactura.com permite mediante una sencilla API poder subir facturas emitidas con cualquier software de generación que genere ficheros PDF.

1. Generación de los ficheros necesarios

2. Enviar los ficheros al servidor FTP

3. Definición del fichero XML

4. Pseudocódigo

5. Ejemplos

a. Envío sencillo (una factura)

b. Envío múltiple (varias facturas)

1. Generación de los ficheros necesarios

Para cada factura que se quiera enviar a NuestraFactura.com se deberá generar un fichero PDF y un fichero XML.

El fichero PDF es la factura, tal y como se imprimirá, en formato digital.

El fichero XML contiene información de la factura asociada. Puede ver la definición exacta del fichero XML en el punto 3. Definición del fichero XML.

El nombre de los ficheros PDF y XML serán iguales (exceptuando la extensión).

El nombre de estos ficheros será tal que no provoque colisiones entre otras facturas. Por ejemplo, podría ser:

SSS_FFFFFF-YYYYMMDD-CCCCC

donde:


SSS_FFFFFF:

Serie y Factura

YYYYMMDD:

Fecha

CCCCC:

Cliente

2. Enviar los ficheros al servidor FTP

Para cada envío, se creará una carpeta en el raíz del servidor FTP y se copiarán los ficheros PDF y XML generados dentro. El nombre de la carpeta deberá ser único, para evitar colisiones en el caso de que haya varios usuarios realizando envíos simultáneos.

Por ejemplo, podría ser:

YYYYMMDD-HHNNSSZZZ-IDTERMINAL

donde:


YYYYMMDD:

Fecha

HHNNSSZZZ:

Hora

IDTERMIANL:

Identificador del terminal

Una vez enviados todos los ficheros PDF y XML, se creará y enviará un fichero vacío con nombre “OK”. Este fichero servirá para indicar que el envío de ficheros ya ha terminado y estos pueden ser procesados por parte de NuestraFactura.com.

3. Definición del fichero XML

<?xml version="1.0" encoding="UTF-8"?>


<NuestraFactura
 Version="1.00"

 DateTime="20121106122110"

 Origin="Nombre programa"

 User="Nombre usuario">


  <Emisor
   NIF="NIF Emisor"

   Nombre="Nombre Empresa Emisora"/>


  <Documento>


    <Receptor
     NIF="NIF Receptor"

     Nombre="Nombre Empresa Receptora"

     Email="receptor@mail.com"/>


    <DocInfo
     Fichero="010673-20120110-09029.pdf"

     Kind="Facturas"

     Ejercicio="2012"

     Identificador="169973"

     Documento="10.673"

     Fecha="20120110"

     Importe="26550"

     Descripcion="Comentario sobre la factura"/>


  </Documento>


  <Envio
   Descripcion="Comentario sobre el envio"

   Documentos="1"

   Importe="26550"

   Bytes="78713"

   Notificar="1"/>


</NuestraFactura>

Nodo <NuestraFactura> 

Atributo Tipo Opcional Comentario
Version texto NO Versión del formato del fichero XML.
DateTime texto NO Fecha y hora de generación del envío en formato yyyymmddhhnnss.
Origin texto NO Nombre del programa generador del envío.
User texto NO Usuario que genera el envío.

Nodo <Emisor> 

Atributo Tipo Opcional Comentario
NIF texto NO N.I.F. del emisor
Nombre texto NO Nombre fiscal emisor

Nodo <Receptor> 

Atributo Tipo Opcional Comentario
NIF texto NO N.I.F. del receptor
Nombre texto NO Nombre fiscal del receptor
Email texto NO Dirección fe correo del receptor

Nodo <DocInfo> 

Atributo Tipo Opcional Comentario
Fichero texto NO Nombre del fichero PFD al que acompaña este XML. Consultar el punto 1.Generación de los ficheros necesarios para más detalles.
Kind texto NO Tipo de documento. El único tipo admitido es: Facturas
Ejercicio nñumero NO Ejercicio del documento en formato yyyy (4 dígitos)
Identificador texto NO Código interno del documento en el software generador de ficheros. Deberá ser invariable y no repetirse
Documento texto NO Número de documento correctamente formateado. Por ejemplo: ABO/100.050
Fecha texto NO Fecha del documento en formato yyyymmdd
Importe número NO Importe total del documento. Convertido a céntimos (multiplicar por 100 los valores en Euros)
Descripción texto NO Texto descriptivo sobre el documento

Nodo <Envio> 

Atributo Tipo Opcional Comentario
Descripcion texto SI Texto descriptivo sobre el envío
Documentos número NO Número de documentos incluidos en el envío
Importe número NO Importe total de todos los documentos incluidos en el envío. Convertido céntimos (multiplicar por 100 los valores en Euros)
Bytes número NO Número de bytes de todos los ficheros PDF del envío
Notificar número SI Si se ha de enviar notificación por correo electrónico al RECEPTOR. Valores posibles: [1 = SI | 0 = NO]

La información de ENVIO incluye información del conjunto de todos los ficheros PDF que se envían. NuestraFactura.com usará esta información al procesar los ficheros para asegurarse de que se han recibido todos los ficheros esperados.

En el caso de ser un envío múltiple (varias facturas), la información de ENVIO será la misma para todos los ficheros XML del envío.

4. Pseudocódigo

Ejemplo en pseudocódigo de los procesos necesarios para el envío de facturas a NuestraFactura.com.

para cada factura

 generar fichero PDF;

 acumular número de documentos;

 acumular importe total;

 acumular bytes totales;

fin para;

para cada factura

 generar fichero XML;

fin para;

conectar con FTP;

crear carpeta envio;

enviar ficheros PDF y XML;

crear y enviar fichero OK;

5. Ejemplos

a. Envío sencillo (una factura)

Carpeta:        20121106-122110046-500123

PDF:        101340-20121103-01397.pdf

XML:        101340-20121103-01397.xml

OK:        ok

<?xml version="1.0" encoding="UTF-8"?>


<NuestraFactura
 Version="1.00"
 DateTime="20121106122110"

 Origin="SisFactu"
 User="José">


  <Emisor
   NIF="B12345678"
   Nombre=
"NUESTRO TALLER, S.L."/>


  <Documento>


   <Receptor
    NIF="X23456789"
    Nombre="ELECTRICIDAD, S.L."

    Email=
"gestion@electricidadmail.com"/>


   <DocInfo
     Fichero="101340-20121103-01397.pdf"
     Kind="Facturas"

     Ejercicio="2012"
     Identificador="1234"
     Documento="101.340"

     Fecha="20121103" 
     Importe="8495"

     Descripcion="Revisión pre-ITV"/>


  </Documento>


  <Envio
   Descripcion=""
   Documentos="1"
   Importe="8495"

   Bytes="78713"
   Notificar="1"/>


</NuestraFactura>

b. Envío múltiple (varias facturas)

Carpeta:        20121106-122243366-500123

PDF:                001020-20121015-01039.pdf

XML:                001020-20121015-01039.xml

PDF:                M_000752-20121031-05002.pdf

XML:                M_000752-20121031-05002.xml

OK:                ok

<?xml version="1.0" encoding="UTF-8"?>


<NuestraFactura
 Version="1.00"
 DateTime="20121106122243"

 Origin="SisFactu" User="José">


  <Emisor
   NIF="B12345678"
   Nombre="NUESTRO TALLER, S.L."/>


  <Documento>


   <Receptor
    NIF="B23456789"
    Nombre="TRANSPORTES PAQUETES, S.L."

    Email=
"admin@transportesmail.com"/>


   <DocInfo
    Fichero="001020-20121015-01039.pdf"
    Kind="Facturas"

    Ejercicio="2012"
    Identificador="1235"
    Documento="1.020"

    Fecha="20121015"
    Importe="46550"

    Descripcion="Cambio 4 neumáticos"/>


  </Documento>


  <Envio
   Descripcion="Facturación mensual"
   Documentos="2"
   Importe="276550"

   Bytes="157220"
   Notificar="1"/>


</NuestraFactura>

<?xml version="1.0" encoding="UTF-8"?>


<NuestraFactura
 Version="1.00"
 DateTime="20121106122243"

 Origin="SisFactu"
 User="José">


  <Emisor
   NIF="B12345678"
   Nombre="NUESTRO TALLER, S.L."/>


  <Documento>


    <Receptor
     NIF="B34567890"
     Nombre="ALQUILER COCHES, S.L."

     Email=
"admin@alquilermail.com"/>


    <DocInfo
     Fichero="M_000752-20121031-05002.pdf"
     Kind="Facturas"

     Ejercicio="2012"
     Identificador="1236"
     Documento="M/752"

     Fecha="20121031"
     Importe="230000"

     Descripcion="Revisión flota (10 coches)"/>


  </Documento>


  <Envio
   Descripcion="Facturación mensual"
   Documentos="2"
   Importe="276550"

   Bytes="157220"
   Notificar="1"/>

</NuestraFactura>

Nótese que la información de ENVIO de los dos ficheros XML, es exactamente la misma.


Última revisión: 26 de noviembre de 2012