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
a. Envío sencillo (una factura)
b. Envío múltiple (varias facturas)
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 |
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.
<?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 |
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.
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;
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>
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