/sepa

Normativa Sepa

Primary LanguagexBase

SEPA para Harbour

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

Otra documentación

  • ./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

Calculo de Identificador del acreedor

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.
Los dígitos de control se calculan en base al NIF, aplicando el modelo 97-10 (regla de cálculo definida en la norma ISO 7604 y ampliamente usada en la norma ISO 20022, UNIFI).
  • 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

Notas

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... )

Construccion y entorno

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)