Generación de ficheros para normas AEB (Asociación Española de Banca) adaptadas a SEPA (Single Euro Payments Area), formatos XML y texto *
* Para periodo transitorio hasta 31-Enero-2016 ===============================================================
- SepaXML Adeudos directos (CORE, COR1 y B2B) y transferencias (formato XML)
- aeb1914 Adeudos Directos CORE Direct Debit (para particulares)
- aeb1944 Adeudos Directos B2B Direct Debit (entre empresas)
- aeb3414 Ordenes en fichero para emision de transferencias y cheques en euros (formato texto).
- Cuaderno es un embrión de clase OOPS para Harbour, para encapsulación de todas las normas.
- xmlCT Ordenes en fichero para emision de transferencias y cheques en euros (formato XML) *
* A unificar con SepaXML
- ./data Ficheros DBF con los codigos BIC para entidades bancarias españolas y europeas.
- ./doc Ficheros PDF de las normas AEB utilizados en esta implementación y ultimas novedades SEPA Boletin BBVA
SEPA – Identificador del acreedor
Uno de los datos importantes del mandato SEPA es el “identificador del acreedor” o “creditor Identifier” que tiene una regla de construcción un poco enrevesada en cuanto al cálculo del código de control.
En España el formato es este: ESZZXXXAAAAAAAAA, siendo:
- ES: código del país España según la norma ISO 3166
- ZZ: dígitos de control (cuyo cálculo se explica a continuación)
- XXX: sufijo (normalmente 000, pero el acreedor puede gestionar más de un canal de adeudos poniendo otros valores)
- AAAAAAAAA: CIF del acreedor, frecuentemente una letra seguida de 8 cifras, sin espacios, guiones u otros símbolos.
- Tomamos posiciones de la 8 a la 15, es decir el CIF, añadiendo ES y 00
Por ejemplo, en el caso de EADTrust, B85626240ES00 - Convertimos letras a números, considerando que la A es 10, la B es 11, … la E es 14, … la S es 28, … hasta que la Z es 35.
Por ejemplo, en el caso de EADTrust, 1185626240142800 - Aplicamos modelo 97-10 (dado un número, lo dividimos entre 97 y restamos a 98 el resto de la operación. Si se obtiene un único dígito, se completa con un cero a la izquierda)
Por ejemplo,
en el caso de EADTrust, el resto de dividir 1185626240142800 entre 97 sale 21 y 98-21=77,
por tanto el código completo: ES77000B85626240
Cada norma dispone de su propio directorio de trabajo y utiliza sepamisc.prg del directorio raiz, a modo de libreria de funciones misceláneas, comunes a todas las normas.
Se ha desarrollado pensando en la implementación más simple, para que pueda ser fácilmente trasladable a otros paradigmas (OOPS, arrays asociativos) e incluso a otros lenguajes (PHP, Java... )
Cada norma dispone de c.bat para automatizar la creación del ejecutable, que no es más que una llamada simplificada a la utilidad make hbmk2 de harbour. Para establecer variables de entorno de compilacion, adaptar y/o ejecutar cset.bat
Sugerencias y mejoras serán bienvenidas :) Que lo disfruten !
(c)2013 Joaquim Ferrer
quim_ferrer@yahoo.es
No es que tengamos poco tiempo, sino que perdemos mucho (Séneca)