Download Especificación del formato CSV del fichero de Factura

Document related concepts
no text concepts found
Transcript
Manual para Proveedores de Facturación
Electrónica de BIESA
1
Contenidos
Contenidos ........................................................................................................................ 2
Introducción ...................................................................................................................... 3
Instrucciones de uso ......................................................................................................... 4
Formulario ................................................................................................................ 4
CSV .......................................................................................................................... 4
XML ......................................................................................................................... 5
Formato Fichero Firmado ......................................................................................... 5
Instalación Java................................................................................................................. 6
Protocolo OTA ................................................................................................................. 7
Especificación del formato CSV del fichero de Factura .................................................. 8
Especificación del formato XML del fichero de Factura ............................................... 15
2
Introducción
3
Instrucciones de uso
Requisitos para que un proveedor pueda enviar sus facturas a Boehringer de forma
electrónica:
1. Ser usuario del Portal del Proveedor de BIESA
2. Estar autorizado y configurado por BIESA como proveedor que puede facturarle
electrónicamente
3. Estar en posesión de un certificado digital cualificado y no caducado de persona
física o jurídica expedido a nombre del proveedor y perteneciente a alguna de las
autoridades de certificación homologadas por la AEAT (ver dirección
Autoridades de Certificación )
4. Instalar en los ordenadores del proveedor que se usarán para conectarse al Portal
del Proveedor de BIESA la plataforma estándar de ejecución de Java (un Java
Runtime Environment). Ver Instalación Java
BIESA pone a disposición de sus proveedores tres diferentes formas de generación y
envío de sus facturas electrónicas:
1. Formulario
2. CSV
3. XML
Formulario
En el portal del proveedor en la pestaña de “Factura Electrónica” existe la opción de
“Crear Factura”. Esta opción da acceso a un formulario que permite al proveedor crear
su factura a partir de la selección de las líneas de los pedidos afectadas.
Este formulario crea la factura como un fichero de texto con formato CSV que el
proveedor debe salvar en su sistema de ficheros con el nombre que le parezca oportuno.
Seguidamente el formulario presenta la pantalla para realizar la firma electrónica del
fichero. El proveedor debe de indicar el fichero que contiene su factura en formato csv,
el fichero que contiene su certificado, la contraseña que protege a su certificado y el
nombre que desea darle al fichero que contendrá su factura electrónica firmada. Al
pulsar el botón de “Firmar” se genera el fichero factura electrónica firmada que se
localiza en el directorio “C:\TEMP” en el disco duro del ordenador del proveedor.
Finalmente la factura electrónica firmada se envía a BIESA para su tratamiento.
CSV
En esta opción es el proveedor quien debe generar mediante sus propios medios el
fichero de texto CSV con una sola factura a enviar. Este fichero debe respetar el formato
CSV especificado más adelante y no debe de estar firmado.
Una vez generado el fichero, el proveedor debe de realizar la carga “online” del fichero.
Es decir, debe de conectarse al portal del proveedor de BIESA, acceder a la pestaña de
“Factura Electrónica” y escoger la opción de “Cargar Factura vía Fichero CSV”. Esta
opción da acceso a la pantalla para realizar la firma electrónica. El proveedor debe de
indicar el fichero que contiene su factura en formato CSV, el fichero que contiene su
certificado, la contraseña del certificado (que se introdujo en su exportación) y el
nombre que desea darle al fichero que contendrá su factura electrónica firmada. Al
pulsar el botón de “Firmar” se genera el fichero factura electrónica firmada que se
localiza en el directorio “C:\TEMP” en el disco duro del ordenador del proveedor.
4
Finalmente al pulsar el botón “Enviar Factura” la factura electrónica firmada se envía a
BIESA para su tratamiento.
XML
En esta opción el proveedor debe de generar mediante sus propios medios el fichero de
texto firmado con el contenido de la factura en formato XML según lo especificado más
adelante y realizar una transmisión directa de la misma al servidor web de BIESA
utilizando el protocolo OTA.
Formato Fichero Firmado
Tanto si la firma de la factura la realiza el formulario del portal del proveedor (factura
en formato CSV) como si la firma la generan los sistemas propios del proveedor
(factura en formato XML) el fichero firmado que se envía debe de tener la siguiente
estructura:
<NOMFIC>
…
</NOMFIC>
<FACB64>
…
</FACB64>
<FIRB64>
…
</FIRB64>
donde,
<NOMFIC>: Nombre del fichero factura
<FACB64>: Factura en codificación BASE-64. En formato CSV (firmada y enviada
desde el portal del proveedor de BIESA) o formato XML (firmada por el proveedor y
enviada por protocolo OTA)
<FIRB64>: Firma electrónica de la factura en formato PKCS#7, que estará en Base64,
donde se firma el resumen SHA-1 en hexadecimal en mayúsculas del contenido de la
factura original.
La Agencia Tributaria con el fin de facilitar a los contribuyentes el uso del sistema de
facturación telemática, proporciona sendos componentes con los que se podrá realizar la
firma de la factura según el formato arriba especificado. Estos componentes son un
ActiveX y un conjunto de clases java.
El proveedor puede optar por usar uno (ActiveX) u otro (clase Java) para realizar sus
desarrollo a medida que generará la firma de electrónica de su factura XML. Recordar
de nuevo que el proveedor sólo debe de firmar la factura por sus propios medios en el
caso que opte por la opción “XML” para la generación y envío de sus facturas.
Estos componentes junto con los documentos de la AEAT con las especificaciones
técnicas de los mismos acompañan a esta documentación: Doc-Adjunta.zip




aeat_factu_cax.zip : contiene dos archivos jar con las clases java
aeat_factu_cax.cab : contiene el control ActiveX
factucax.pdf : especificaciones técnicas para el uso del control ActiveX
factujav.pdf : especificaciones técnicas para el uso de las clases java
5
Instalación Java
Para que desde un ordenador del proveedor conectado al Portal del Proveedor de BIESA
funcione la pantalla que realiza la firma digital avanzada de la factura es necesario que
esté instalado en el mismo un Java Runtime Environment (jre). Es un programa gratuito
de Sun Microsystems, Inc. Dependiendo de la configuración del navegador puede que
se realice su descarga automática al acceder por primera vez a la pantalla de firma de
facturas del Portal del Proveedor. Si no es así hay que instalarlo manualmente.
Acompañando a esta documentación se incluye la versión 1.6.0 del jre (jre-6-windowsi586.exe). Para instalarlo sólo hay que ejecutar este fichero.
Además hay que modificar un archivo de configuración de este programa (el jre) para
que permita a la aplicación de BIESA grabar el fichero firmado generado en el
directorio C:\TEMP del ordenador del proveedor. El archivo a modificar es java.policy
y se encuentra en el directorio:
Archivos de programa o Program Files
Java
jrex.x.x (p.e.: jre1.6.0 depende de la versión instalada del jre)
lib
security
Hay que editar este archivo de texto (java.policy) y añadir al final del mismo las
siguientes líneas:
grant {
permission java.util.PropertyPermission "java.security.policy", "read";
permission java.security.SecurityPermission "putProviderProperty.IAIK";
permission java.security.SecurityPermission "insertProvider.IAIK";
permission java.io.FilePermission "C:\\Temp\\*", "read,write";
permission java.security.AllPermission;
};
6
Protocolo OTA
El protocolo OTA (Oracle Transport Agent) es un protocolo de mensajería para
transmitir documentos por HTTP y HTTP Seguro (HTTPS).
Funciona por encima del protocolo de Aplicación HTTP.
La comunicación se realiza enviando/recibiendo una serie de parejas nombre/valor en el
Body HTTP de un HTTP POST/RESPONSE.
Entre otros campos con valores fijos, el mensaje OTA que contiene la factura
electrónica a enviar debe de tener informados los siguientes campos:
 Código de Usuario: es el código del usuario del proveedor para acceder al Portal
del Proveedor de BIESA
 Contraseña de Usuario: es la contraseña del usuario del proveedor para acceder
al Portal del Proveedor de BIESA
 Número del Proveedor: es un código único para el proveedor que BIESA asigna
para el envío de facturas electrónicas.
 Número de Factura: el número de la factura que se está enviando
 Factura firmada: la factura XML firmada
Acompañando a esta documentación se incluye un pequeño manual que explica el
protocolo OTA (protocolo_OTA.pdf) así como dos ejemplos de programas realizados
en java para el envío a BIESA de facturas XML con el protocolo OTA. Uno vía http
(SendHTTP.java) y el otro vía https (SendHTTPS.java)
7
Especificación del formato CSV del fichero de Factura
Format Setup:
<TEMPLATE TYPE>
<OUTPUT CHARACTER SET>
<NEW RECORD CHARACTER>
DELIMITER_BASED
iso-8859-1
Carriage Return
Format Data Records:
8
Level
Max.
Length
2
1
2
1
2
CABECERA FACTURA
Format
Data
Value
Alpha
Alpha
Alpha
Alpha
Alpha
RecordType
Delimiter
InvoiceDocumentType
Delimiter
InvoiceClass
‘01’
‘,’
‘FC’
‘,’
1
25
1
10
Alpha
Alpha
Alpha
Date,
DD/MM/YYYY
Delimiter
InvoiceNumber
Delimiter
IssueDate
‘,’
1
25
Alpha
Alpha
Delimiter
CorrectiveInvoiceNumber
‘,’
1
3
Alpha
Alpha
Delimiter
InvoiceCurrencyCode
‘,’
1
2500
1
Alpha
Alpha
Alpha
NumberTwoDecimal
9999999999990,99
Alpha
NumberTwoDecimal
9999999999990,99
Alpha
NumberTwoDecimal
9999999999990,99
Alpha
NumberTwoDecimal
9999999999990,99
Alpha
Delimiter
InvoiceComments
Delimiter
TotalGrossAmount
‘,’
Delimiter
TotalTaxOutputs
‘,’
Delimiter
TotalTaxesWithheld
‘,’
Delimiter
InvoiceTotal
‘,’
Delimiter
‘,’
1
1
1
1
Req.
Sí
Comments
Sí
Tipo de Registro
Separador de campos
Tipo documento factura. Sólo se admite la factura completa (‘FC’)
Separador de campos
Clase de Factura. Este dato refleja la clase de factura, a saber: "OO" Original, "OR"
Rectificativa. Cuando sea rectificativa debe estar cumplimentado el campo
CorrectiveInvoiceNumber con el número de la factura que se rectifica
Separador de campos
Número de factura. Número asignado por el Emisor
Separador de campos
Fecha de expedición. Fecha en la que se genera la factura con efectos fiscales. Esta
fecha no podrá ser posterior a la fecha de la firma electrónica ni a la fecha de
caducidad del certificado con que se firma la factura
Separador de campos
Número de la factura que se rectifica. Debe informarse si y sólo si es una factura
rectificativa
Separador de campos
Moneda de la operación y del impuesto. Código ISO/ALFA de la moneda en la que
se emite la factura y los impuestos
Separador de campos
Observaciones de la factura
Separador de campos
Suma total de importes brutos de los detalles de la factura. Siempre con dos
decimales
Separador de campos
Total impuestos repercutidos. Siempre con dos decimales
Sí
Separador de campos
Total impuestos retenidos. Siempre con dos decimales
Sí
Sí
Sí
‘,’
Sí
No
Sí
‘,’
Sí
Sí
Separador de campos
Total factura. Resultado: Importe Bruto Total + Total Impuestos Repercutidos - Total
Impuestos Retenidos. Siempre con dos decimales
Separador de campos
9
Level
Max.
Length
2
1
30
1
80
1
80
1
80
1
20
1
3
1
EMISOR
Format
Data
Value
Alpha
Alpha
Alpha
RecordType
Delimiter
TaxIdentificationNumber
‘02’
‘,’
Alpha
Alpha
Alpha
Alpha
Alpha
Alpha
Alpha
Alpha
Alpha
Alpha
Alpha
Delimiter
Name
Delimiter
Address
Delimiter
PostCodeAndTown
Delimiter
Province
Delimiter
CountryCode
Delimiter
‘,’
Req.
Sí
Sí
Sí
‘,’
Sí
‘,’
Sí
‘,’
‘,’
Sí
‘,’
Comments
Tipo de Registro
Separador de campos
Código de Identificación Fiscal del sujeto en cuestión. Se trata de las composiciones
de NIF / CIF que marca la Administración correspondiente, precedidas de las dos
letras del país si no reside en España
Separador de campos
Razón Social (persona jurídica) o Nombre completo del individuo (persona física)
Separador de campos
Calle, denominación, número, piso,...
Separador de campos
Código Postal y Población
Separador de campos
Provincia a la que corresponde la Población
Separador de campos
Código País. ISO 3166 ALPHA-3
Separador de campos
10
Level
Max.
Length
2
1
30
1
80
1
80
1
80
1
20
1
3
1
RECEPTOR
Format
Data
Value
Alpha
Alpha
Alpha
RecordType
Delimiter
TaxIdentificationNumber
‘03’
‘,’
Alpha
Alpha
Alpha
Alpha
Alpha
Alpha
Alpha
Alpha
Alpha
Alpha
Alpha
Delimiter
Name
Delimiter
Address
Delimiter
PostCodeAndTown
Delimiter
Province
Delimiter
CountryCode
Delimiter
‘,’
Req.
Sí
Sí
Sí
‘,’
Sí
‘,’
Sí
‘,’
‘,’
Sí
‘,’
Comments
Tipo de Registro
Separador de campos
Código de Identificación Fiscal del sujeto en cuestión. Se trata de las composiciones
de NIF / CIF que marca la Administración correspondiente, precedidas de las dos
letras del país si no reside en España
Separador de campos
Razón Social (persona jurídica) o Nombre completo del individuo (persona física)
Separador de campos
Calle, denominación, número, piso,...
Separador de campos
Código Postal y Población
Separador de campos
Provincia a la que corresponde la Población
Separador de campos
Código País. ISO 3166 ALPHA-3
Separador de campos
11
Level
Max.
Length
2
1
20
1
20
1
1
1
2500
1
30
1
10
1
1
2
1
1
1
1
1
1
5
1
DETALLE FACTURA
Format
Data
Value
Alpha
Alpha
Alpha
Alpha
Alpha
Alpha
Integer
Alpha
Integer
RecordType
Delimiter
LineType
Delimiter
PurchaseOrderNum
Delimiter
PurchaseOrderLineNum
Delimiter
PurchaseOrderShipmentN
um
Delimiter
ItemDescription
Delimiter
DeliveryNoteNumber
Delimiter
TransactionDate
‘04’
‘,’
Delimiter
Quantity
‘,’
Delimiter
UnitOfMeasure
‘,’
Delimiter
UnitPriceWithoutTax
‘,’
Delimiter
TotalCost
‘,’
Delimiter
DiscountRate
‘,’
Delimiter
DiscountAmount
‘,’
Delimiter
GrossAmount
‘,’
Delimiter
LineTaxWithheldTypeCod
e
Delimiter
LineTaxWithheldRate
‘,’
Separador de campos
Clase de impuesto retenido: PF15, PF07, AL18
‘,’
Separador de campos
Porcentaje a aplicar en cada caso
Alpha
Alpha
Alpha
Alpha
Alpha
Date,
DD/MM/YYYY
Alpha
Number
9999999999990,99999
9
Alpha
Alpha
Alpha
NumberSixDecimal
9999999999990,99999
9
Alpha
NumberTwoDecimal
9999999999990,99
Alpha
NumberFourDecimal
9999999999990D9999
Alpha
NumberTwoDecimal
9999999999990,99
Alpha
NumberTwoDecimal
9999999999990,99
Alpha
Alpha
Alpha
NumberThreeDecimal
9999999999990,999
Req.
Sí
Sí
‘,’
‘,’
‘,’
‘,’
Sí
‘,’
‘,’
Sí
Sí
Sí
Comments
Tipo de Registro
Separador de campos
Tipo de línea de factura: ITEM, FREIGHT o MISCELLANEOUS
Separador de campos
Referencia de la orden de pedido. Obligatorio para las líneas de tipo ITEM
Separador de campos
Número de línea de la orden de pedido. Obligatorio para las líneas de tipo ITEM
Separador de campos
Número de envío de la línea de la orden de pedido. Obligatorio para las líneas de tipo
ITEM
Separador de campos
Descripción del bien o servicio
Separador de campos
Número de referencia del albarán
Separador de campos
Fecha concreta de prestación o entrega del bien o servicio. ISO 8601
Separador de campos
Número de Unidades servidas/prestadas. Puede ser negativo.
Separador de campos
Unidad a que está referida la Cantidad: BI-Bidón, CJ-Caja, CM-Centímetro, CRCuota Renting, GR-Gramo, HR-Hora, KG-Kilogramo, KM-Kilómetro, LT-Litro, MMetro, M2-Metro Cuadrado, M3-Metro Cúbico, MS-Mes, TN-Tonelada, U-Unidad
Separador de campos
Precio de la unidad de bien o servicio servido/prestado, en la moneda indicada en la
Cabecera de la Factura. Siempre sin Impuestos. Siempre con seis decimales
Separador de campos
Cantidad * Precio. Siempre con dos decimales
Separador de campos
Porcentaje a descontar del Total Importe Bruto (TIB). Los porcentajes se reflejan con
4 decimales
Separador de campos
Importe a descontar sobre el Total Importe Bruto (TIB). Siempre con dos decimales
Sí
Separador de campos
TotalCost - Descuento. Siempre con dos decimales
12
Level
Max.
Length
2
1
5
1
1
1
1
IMPUESTOS RETENIDOS
Format
Data
Value
Alpha
Alpha
Alpha
Alpha
NumberThreeDecimal
9999999999990,999
Alpha
NumberTwoDecimal
9999999999990,99
Alpha
NumberTwoDecimal
9999999999990,99
Alpha
RecordType
Delimiter
TaxTypeCode
Delimiter
TaxRate
‘05’
‘,’
Delimiter
TaxableBase
‘,’
Delimiter
TaxAmount
‘,’
Delimiter
‘,’
Req.
Sí
Comments
Sí
Tipo de Registro
Separador de campos
Clase de impuesto retenido: PF15, PF07, AL18
Separador de campos
Porcentaje a aplicar en cada caso
Sí
Separador de campos
Base imponible de los impuestos. Siempre con dos decimales
Sí
‘,’
Sí
Separador de campos
Cuota. Importe resultante de aplicar a la Base Imponible el porcentaje
correspondiente. Siempre con dos decimales
Separador de campos
13
Level
Max.
Length
2
1
5
1
1
1
1
IMPUESTOS REPERCUTIDOS
Format
Data
Value
Alpha
Alpha
Alpha
RecordType
Delimiter
TaxTypeCode
‘06’
‘,’
Alpha
NumberThreeDecimal
9999999999990,999
Alpha
NumberTwoDecimal
9999999999990,99
Alpha
NumberTwoDecimal
9999999999990,99
Alpha
Delimiter
TaxRate
‘,’
Delimiter
TaxableBase
‘,’
Delimiter
TaxAmount
‘,’
Delimiter
‘,’
Req.
Sí
Comments
Sí
Tipo de Registro
Separador de campos
Clase de impuesto repercutido. Concepto Fiscal por el que se tributa.: IVA16,
IVA07, IVA04, IVA6A, EXENT, IGIC2, IGIC5, IGIC9, IGI13, EXIGI
Separador de campos
Porcentaje a aplicar en cada caso
Sí
Separador de campos
Base imponible de los impuestos. Siempre con dos decimales
Sí
Sí
Separador de campos
Cuota. Importe resultante de aplicar a la Base Imponible el porcentaje
correspondiente. Siempre con dos decimales
Separador de campos
14
Especificación del formato XML del fichero de Factura
La estructura y sintaxis de la factura XML que admite BIESA están especificadas tanto
en el fichero XML Doc Adjunta\FacturaBIEv1_0.xsd como en el fichero DTD Doc
Adjunta\FacturaBIEv1_0.dtd. Sendos ficheros acompañan a este documento.
También se adjunta a modo de ejemplo el fichero EjemploFacturaBIE.xml que contiene
una factura inventada con el formato correcto.
A continuación se describen los cuatro grupos de datos que constituyen la e-factura,
mostrándose de forma detallada la estructura de los tipos y campos más importantes.
Nótese que a efectos de una mejor representación, 'Emisor' y 'Receptor', se han
agrupado bajo el tipo 'Sujetos' (‘Parties’).
2.1 FileHeader (Cabecera)
El bloque de datos “FileHeader” sólo contiene la versión del formato.
2.2 Parties (Sujetos)
15
El bloque “Parties” identifica al emisor (obligado tributario) y al receptor del lote de
facturas. Un mismo lote admite una única relación emisor - receptor.
Su estructura y composición son idénticas.
Codificación del bloque PartyAddress (Dirección):
16
2.3 Invoices (Facturas)
El bloque de datos “Factura” contiene la información requerida en cada factura para
identificar claramente la transacción a la que se refiere, como son: los detalles,
descuentos, impuestos y totales.
En esta versión el lote sólo puede estar constituído por una factura, que presentará una
cabecera con sus datos identificativos, sus totales, sus impuestos, y otras informaciones
únicas para cada factura. Cada factura contendrá también tantos detalles como items
diferentes intervengan en la misma. La codificación de los Impuestos Retenidos y
Repercutidos se realiza usando un único tipo, 'Impuesto', reutilizable para todos los
tipos de impuestos existentes. Obsérvese que es obligatorio declarar los Impuestos
Repercutidos. Igualmente los campos de totales para ambos tipos de impuestos
(retenidos o repercutidos) es obligatorio informarlos, rellenándose en su caso a cero.
17
Codificación del bloque Invoices/Invoice/InvoiceHeader (Cabecera Factura):
Codificación del bloque Invoices/Invoice/InvoiceIssueData (Emisión Factura):
18
Codificación del bloque Invoices/Invoice/InvoiceTotals (Totales Factura):
19
Codificación del bloque Invoices/Invoice/TaxesOutputs y TaxesWithheld
(Impuestos Repercutidos y Retenidos):
20
Codificación del bloque Invoices/Invoice/Items/InvoiceLine (Detalle):
21
22