Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Calculo código BIC/SWIFT (https://www.clubdelphi.com/foros/showthread.php?t=85250)

Miguel45 20-02-2014 16:40:59

Calculo código BIC/SWIFT
 
Buenas tardes amigos y compañeros.
Estoy actualizando un módulo de clientes de mi aplicación y adaptándolo a las nuevas normas SEPA. El cálculo del código IBAN de una cuenta bancaria ya lo tengo resuelto. Ahora estoy buscando la función para poder calcular el código BIC/SWIFT a partir del IBAN.
Un saludo

duilioisola 20-02-2014 17:56:34

No existe un "cálculo".
El BIC/SWIFT es un código que se le da a cada banco o banco-sucursal
Deberías tener una relación con estos datos (PAIS, BANCO, SUCURSAL, BIC).

cecam 20-02-2014 18:01:42

Hooola!

Yo dispongo de esta lista

Código:

  aBIC:=TStringList.create;
  aBIC.Values['0019']:='DEUTESBBASS';
  aBIC.Values['0031']:='ETCHES2GXXX';
  aBIC.Values['0046']:='GALEES2GXXX';
  aBIC.Values['0049']:='BSCHESMMXXX';
  aBIC.Values['0058']:='BNPAESMZXXX';
  aBIC.Values['0059']:='MADRESMMXXX';
  aBIC.Values['0061']:='BMARES2MXXX';
  aBIC.Values['0065']:='BARCESMMXXX';
  aBIC.Values['0075']:='POPUESMMXXX';
  aBIC.Values['0078']:='BAPUES22XXX';
  aBIC.Values['0081']:='BSABESBBXXX';
  aBIC.Values['0083']:='RENBESMMXXX';
  aBIC.Values['0094']:='BVALESMMXXX';
  aBIC.Values['0108']:='SOGEESMMAGM';
  aBIC.Values['0122']:='CITIES2XXXX';
  aBIC.Values['0128']:='BKBKESMMXXX';
  aBIC.Values['0130']:='CGDIESMMXXX';
  aBIC.Values['0131']:='BESMESMMXXX';
  aBIC.Values['0136']:='AREBESMMXXX';
  aBIC.Values['0138']:='BKOAES22XXX';
  aBIC.Values['0144']:='PARBESMHXXX';
  aBIC.Values['0149']:='BNPAESMHXXX';
  aBIC.Values['0152']:='BPLCESMMXXX';
  aBIC.Values['0154']:='BSUIESMMXXX';
  aBIC.Values['0155']:='BRASESMMXXX';
  aBIC.Values['0156']:='ABNAESMMXXX';
  aBIC.Values['0159']:='COBAESMXTMA';
  aBIC.Values['0160']:='BOTKESMXXXX';
  aBIC.Values['0162']:='MIDLESMXXXX';
  aBIC.Values['0167']:='GEBAESMMBIL';
  aBIC.Values['0168']:='BBRUESMXXXX';
  aBIC.Values['0169']:='NACNESMMXXX';
  aBIC.Values['0182']:='BBVAESMMXXX';
  aBIC.Values['0186']:='BFIVESBBXXX';
  aBIC.Values['0188']:='ALCLESMMXXX';
  aBIC.Values['0190']:='BBPIESMMXXX';
  aBIC.Values['0196']:='WELAESMMFUN';
  aBIC.Values['0198']:='BCOEESMMXXX';
  aBIC.Values['0211']:='PROAESMMXXX';
  aBIC.Values['0216']:='POHIESMMXXX';
  aBIC.Values['0219']:='BMCEESMMXXX';
  aBIC.Values['0226']:='UBSWESMMNPB';
  aBIC.Values['0229']:='POPLESMMXXX';
  aBIC.Values['0231']:='DSBLESMMXXX';
  aBIC.Values['0232']:='INVLESMMXXX';
  aBIC.Values['0233']:='POPIESMMXXX';
  aBIC.Values['0234']:='CCOCESMMXXX';
  aBIC.Values['0236']:='LOYIESMMXXX';
  aBIC.Values['0237']:='CSURES2CXXX';
  aBIC.Values['0487']:='GBMNESMMXXX';
  aBIC.Values['0488']:='BFASESMMXXX';
  aBIC.Values['1000']:='ICROESMMXXX';
  aBIC.Values['1459']:='PRABESMMXXX';
  aBIC.Values['1460']:='CRESESMMXXX';
  aBIC.Values['1465']:='INGDESMMXXX';
  aBIC.Values['1467']:='EHYPESMXXXX';
  aBIC.Values['1474']:='CITIESMXSEC';
  aBIC.Values['1479']:='NATXESMMXXX';
  aBIC.Values['1497']:='ESSIESMMXXX';
  aBIC.Values['1524']:='UBIBESMMXXX';
  aBIC.Values['2000']:='CECAESMMXXX';
  aBIC.Values['2013']:='CESCESBBXXX';
  aBIC.Values['2038']:='CAHMESMMXXX';
  aBIC.Values['2045']:='CECAESMM045';
  aBIC.Values['2048']:='CECAESMM048';
  aBIC.Values['2056']:='CECAESMM056';
  aBIC.Values['2080']:='CAGLESMMVIG';
  aBIC.Values['2085']:='CAZRES2ZXXX';
  aBIC.Values['2086']:='CECAESMM086';
  aBIC.Values['2095']:='BASKES2BXXX';
  aBIC.Values['2100']:='CAIXESBBXXX';
  aBIC.Values['2103']:='UCJAES2MXXX';
  aBIC.Values['2108']:='CSPAES2L108';
  aBIC.Values['3025']:='CDENESBBXXX';
  aBIC.Values['3035']:='CLPEES2MXXX';
  aBIC.Values['3058']:='CCRIES2AXXX';
  aBIC.Values['3081']:='BCOEESMM081';
  aBIC.Values['3183']:='CASDESBBXXX';
  aBIC.Values['3501']:='RENTESMMXXX';
  aBIC.Values['3524']:='AHCFESMMXXX';
  aBIC.Values['3563']:='MISVESMMXXX';
  aBIC.Values['3575']:='INSGESMMXXX';
  aBIC.Values['3604']:='CAPIESMMXXX';
  aBIC.Values['3641']:='LISEESMMXXX';
  aBIC.Values['3656']:='CSSOES2SFIN';
  aBIC.Values['3661']:='MLCEESMMXXX';
  aBIC.Values['3669']:='IVALESMMXXX';
  aBIC.Values['3682']:='GVCBESBBETB';
  aBIC.Values['9000']:='ESPBESMMXXX';
  aBIC.Values['9020']:='IPAYESMMXXX';
  aBIC.Values['9091']:='XBCNESBBXXX';
  aBIC.Values['9092']:='XRBVES2BXXX';
  aBIC.Values['9093']:='XRVVESVVXXX';
  aBIC.Values['9094']:='MEFFESBBXXX';
  aBIC.Values['9096']:='IBRCESMMXXX';

Para acceder al BIC tan solo debes usar algo similar a esto
Código:

Result:=aBIC.Values[copy(Iban,5,4)]
Saludos!

duilioisola 20-02-2014 18:27:05

Debes tener en cuenta que para los BIC que terminan en 'XXX' el procedimiento es correcto.
Para los que terminan con otra cosa, deberías tener en cuenta tanto el banco (entidad) como la sucursal.

Además de esto, debes tener en cuenta el País del IBAN porque podría ser que otro banco en europa tenga esa misma entidad y no corresponda a ese BIC.

Miguel45 07-03-2014 13:11:58

Hola.
Gracias por vuestras respuestas.
Es verdad. no hace falta tener que hacer un cálculo del BIC/SWIFT, ya que es un valor fijo de cada banco o banco-sucursal.

Un saludo


La franja horaria es GMT +2. Ahora son las 22:29:25.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi