update bots
This commit is contained in:
@@ -0,0 +1,165 @@
|
||||
import re
|
||||
import string
|
||||
|
||||
from math import ceil
|
||||
from string import ascii_uppercase
|
||||
from typing import Dict, Optional
|
||||
|
||||
from .. import BaseProvider
|
||||
|
||||
localized = True
|
||||
default_locale = "en_GB"
|
||||
|
||||
|
||||
class Provider(BaseProvider):
|
||||
"""Implement default bank provider for Faker.
|
||||
|
||||
.. important::
|
||||
Bank codes, account numbers, and other ID's generated by this provider
|
||||
are only valid in form, i.e. they conform to some standard/format, are
|
||||
of the expected lengths, and have valid checksums (where applicable).
|
||||
Results generated that turn out to be valid in real life are purely
|
||||
coincidental.
|
||||
|
||||
Sources:
|
||||
|
||||
- https://en.wikipedia.org/wiki/International_Bank_Account_Number
|
||||
- https://www.theswiftcodes.com/swift-code-checker/
|
||||
"""
|
||||
|
||||
ALPHA: Dict[str, str] = {c: str(ord(c) % 55) for c in string.ascii_uppercase}
|
||||
bban_format: str = "????#############"
|
||||
country_code: str = "GB"
|
||||
|
||||
def aba(self) -> str:
|
||||
"""Generate an ABA routing transit number."""
|
||||
fed_num = self.random_int(min=1, max=12)
|
||||
rand = self.numerify("######")
|
||||
aba = f"{fed_num:02}{rand}"
|
||||
|
||||
# calculate check digit
|
||||
d = [int(n) for n in aba]
|
||||
chk_digit = 3 * (d[0] + d[3] + d[6]) + 7 * (d[1] + d[4] + d[7]) + d[2] + d[5]
|
||||
chk_digit = ceil(chk_digit / 10) * 10 - chk_digit
|
||||
|
||||
return f"{aba}{chk_digit}"
|
||||
|
||||
def bank_country(self) -> str:
|
||||
"""Generate the bank provider's ISO 3166-1 alpha-2 country code."""
|
||||
return self.country_code
|
||||
|
||||
def bank(self) -> str:
|
||||
"""Generate a bank name."""
|
||||
if not hasattr(self, "banks"):
|
||||
raise AttributeError(
|
||||
f"The {self.__class__.__name__} provider does not have a 'banks' "
|
||||
"attribute. Consider contributing to the project and "
|
||||
" adding a 'banks' tuple to enable bank name generation."
|
||||
)
|
||||
return self.random_element(self.banks)
|
||||
|
||||
def bban(self) -> str:
|
||||
"""Generate a Basic Bank Account Number (BBAN)."""
|
||||
temp = re.sub(r"\?", lambda x: self.random_element(ascii_uppercase), self.bban_format)
|
||||
return self.numerify(temp)
|
||||
|
||||
def iban(self) -> str:
|
||||
"""Generate an International Bank Account Number (IBAN)."""
|
||||
bban = self.bban()
|
||||
|
||||
check = bban + self.country_code + "00"
|
||||
check_ = int("".join(self.ALPHA.get(c, c) for c in check))
|
||||
check_ = 98 - (check_ % 97)
|
||||
check = str(check_).zfill(2)
|
||||
|
||||
return self.country_code + check + bban
|
||||
|
||||
def swift8(self, use_dataset: bool = False) -> str:
|
||||
"""Generate an 8-digit SWIFT code.
|
||||
|
||||
This method uses |swift| under the hood with the ``length`` argument set
|
||||
to ``8`` and with the ``primary`` argument omitted. All 8-digit SWIFT
|
||||
codes already refer to the primary branch/office.
|
||||
|
||||
:sample:
|
||||
:sample: use_dataset=True
|
||||
"""
|
||||
return self.swift(length=8, use_dataset=use_dataset)
|
||||
|
||||
def swift11(self, primary: bool = False, use_dataset: bool = False) -> str:
|
||||
"""Generate an 11-digit SWIFT code.
|
||||
|
||||
This method uses |swift| under the hood with the ``length`` argument set
|
||||
to ``11``. If ``primary`` is set to ``True``, the SWIFT code will always
|
||||
end with ``'XXX'``. All 11-digit SWIFT codes use this convention to
|
||||
refer to the primary branch/office.
|
||||
|
||||
:sample:
|
||||
:sample: use_dataset=True
|
||||
"""
|
||||
return self.swift(length=11, primary=primary, use_dataset=use_dataset)
|
||||
|
||||
def swift(
|
||||
self,
|
||||
length: Optional[int] = None,
|
||||
primary: bool = False,
|
||||
use_dataset: bool = False,
|
||||
) -> str:
|
||||
"""Generate a SWIFT code.
|
||||
|
||||
SWIFT codes, reading from left to right, are composed of a 4 alphabet
|
||||
character bank code, a 2 alphabet character country code, a 2
|
||||
alphanumeric location code, and an optional 3 alphanumeric branch code.
|
||||
This means SWIFT codes can only have 8 or 11 characters, so the value of
|
||||
``length`` can only be ``None`` or the integers ``8`` or ``11``. If the
|
||||
value is ``None``, then a value of ``8`` or ``11`` will randomly be
|
||||
assigned.
|
||||
|
||||
Because all 8-digit SWIFT codes already refer to the primary branch or
|
||||
office, the ``primary`` argument only has an effect if the value of
|
||||
``length`` is ``11``. If ``primary`` is ``True`` and ``length`` is
|
||||
``11``, the 11-digit SWIFT codes generated will always end in ``'XXX'``
|
||||
to denote that they belong to primary branches/offices.
|
||||
|
||||
For extra authenticity, localized providers may opt to include SWIFT
|
||||
bank codes, location codes, and branch codes used in their respective
|
||||
locales. If ``use_dataset`` is ``True``, this method will generate SWIFT
|
||||
codes based on those locale-specific codes if included. If those codes
|
||||
were not included, then it will behave as if ``use_dataset`` were
|
||||
``False``, and in that mode, all those codes will just be randomly
|
||||
generated as per the specification.
|
||||
|
||||
:sample:
|
||||
:sample: length=8
|
||||
:sample: length=8, use_dataset=True
|
||||
:sample: length=11
|
||||
:sample: length=11, primary=True
|
||||
:sample: length=11, use_dataset=True
|
||||
:sample: length=11, primary=True, use_dataset=True
|
||||
"""
|
||||
if length is None:
|
||||
length = self.random_element((8, 11))
|
||||
if length not in (8, 11):
|
||||
raise AssertionError("length can only be 8 or 11")
|
||||
|
||||
if use_dataset and hasattr(self, "swift_bank_codes"):
|
||||
bank_code: str = self.random_element(self.swift_bank_codes) # type: ignore[attr-defined]
|
||||
else:
|
||||
bank_code = self.lexify("????", letters=string.ascii_uppercase)
|
||||
|
||||
if use_dataset and hasattr(self, "swift_location_codes"):
|
||||
location_code: str = self.random_element(self.swift_location_codes) # type: ignore[attr-defined]
|
||||
else:
|
||||
location_code = self.lexify("??", letters=string.ascii_uppercase + string.digits)
|
||||
|
||||
if length == 8:
|
||||
return bank_code + self.country_code + location_code
|
||||
|
||||
if primary:
|
||||
branch_code = "XXX"
|
||||
elif use_dataset and hasattr(self, "swift_branch_codes"):
|
||||
branch_code = self.random_element(self.swift_branch_codes) # type: ignore[attr-defined]
|
||||
else:
|
||||
branch_code = self.lexify("???", letters=string.ascii_uppercase + string.digits)
|
||||
|
||||
return bank_code + self.country_code + location_code + branch_code
|
||||
Binary file not shown.
@@ -0,0 +1,36 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``az_AZ`` locale."""
|
||||
|
||||
bban_format = "????####################"
|
||||
country_code = "AZ"
|
||||
|
||||
banks = (
|
||||
"AccessBank",
|
||||
"AFB Bank",
|
||||
"Azərbaycan Sənaye Bankı",
|
||||
"Azər Türk Bank",
|
||||
"Bank Avrasiya",
|
||||
"Bank BTB",
|
||||
"Bank Melli Iran",
|
||||
"Bank of Baku",
|
||||
"Bank Respublika",
|
||||
"Expressbank",
|
||||
"Günay Bank",
|
||||
"Kapital Bank",
|
||||
"MuğanBank",
|
||||
"Naxçıvan Bank",
|
||||
"National Bank of Pakistan",
|
||||
"PAŞA Bank",
|
||||
"Premium Bank",
|
||||
"Rabitəbank",
|
||||
"TuranBank",
|
||||
"Unibank",
|
||||
"VTB Bank",
|
||||
"Xalq Bank",
|
||||
"Yapıkredi Bank Azərbaycan",
|
||||
"Yelo Bank",
|
||||
"Ziraat Bank Azərbaycan",
|
||||
)
|
||||
Binary file not shown.
@@ -0,0 +1,83 @@
|
||||
from typing import Optional
|
||||
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""
|
||||
Implement bank provider for ``bn_BD`` locale.
|
||||
Sources:
|
||||
- https://wise.com/gb/swift-codes/BBHOBDDHXXX
|
||||
- https://www.banksbd.org/swift-codes.html
|
||||
"""
|
||||
|
||||
bban_format: str = "????#########"
|
||||
country_code = "BD"
|
||||
swift_location_codes = ("DH",)
|
||||
swift_branch_codes = (
|
||||
"ABBL",
|
||||
"AGBK",
|
||||
"ALAR",
|
||||
"ALFH",
|
||||
"BCBL",
|
||||
"BDDB",
|
||||
"BKBA",
|
||||
"BKSI",
|
||||
"BALB",
|
||||
"BRAK",
|
||||
"BBSH",
|
||||
"BSON",
|
||||
"CITI",
|
||||
"CCEY",
|
||||
"COYM",
|
||||
"CIBL",
|
||||
"DHBL",
|
||||
"DBBL",
|
||||
"EBLD",
|
||||
"EXBK",
|
||||
"FSEB",
|
||||
"FRMS",
|
||||
"HABB",
|
||||
"HSBC",
|
||||
"HVBK",
|
||||
"IFIC",
|
||||
"IBBL",
|
||||
"JAMU",
|
||||
"JANB",
|
||||
"MGBL",
|
||||
"MBLB",
|
||||
"MDBL",
|
||||
"MODH",
|
||||
"MTBL",
|
||||
"NGBL",
|
||||
"NBLB",
|
||||
"NBPA",
|
||||
"NCCL",
|
||||
"NRBD",
|
||||
"NRBB",
|
||||
"ONEB",
|
||||
"PRBL",
|
||||
"PRMR",
|
||||
"PUBA",
|
||||
"RUPB",
|
||||
"SJBL",
|
||||
"SOIV",
|
||||
"SBAC",
|
||||
"SEBD",
|
||||
"SDBL",
|
||||
"SCBL",
|
||||
"SBIN",
|
||||
"TTBL",
|
||||
"UBLD",
|
||||
"UCBL",
|
||||
"UTBL",
|
||||
)
|
||||
|
||||
def swift8(self, use_dataset: bool = True) -> str:
|
||||
return super(self.__class__, self).swift8(use_dataset=use_dataset)
|
||||
|
||||
def swift11(self, primary: bool = False, use_dataset: bool = True) -> str:
|
||||
return super(self.__class__, self).swift11(primary=primary, use_dataset=use_dataset)
|
||||
|
||||
def swift(self, length: Optional[int] = None, primary: bool = False, use_dataset: bool = True) -> str:
|
||||
return super(self.__class__, self).swift(length=length, primary=primary, use_dataset=use_dataset)
|
||||
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``cs_CZ`` locale.
|
||||
|
||||
https://www.mbank.cz/informace-k-produktum/info/ucty/cislo-uctu-iban.html
|
||||
"""
|
||||
|
||||
bban_format = "####################"
|
||||
country_code = "CZ"
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``da_DK`` locale."""
|
||||
|
||||
bban_format = "################"
|
||||
country_code = "DK"
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``de_AT`` locale."""
|
||||
|
||||
bban_format = "################"
|
||||
country_code = "AT"
|
||||
Binary file not shown.
@@ -0,0 +1,24 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``de_CH`` locale."""
|
||||
|
||||
bban_format = "#################"
|
||||
country_code = "CH"
|
||||
|
||||
# Major Swiss banks - Source: https://de.wikipedia.org/wiki/Schweizer_Bankwesen
|
||||
banks = (
|
||||
"UBS",
|
||||
"Credit Suisse",
|
||||
"Raiffeisen Schweiz",
|
||||
"Zürcher Kantonalbank",
|
||||
"PostFinance",
|
||||
"Julius Bär",
|
||||
"Banque Cantonale Vaudoise",
|
||||
"Migros Bank",
|
||||
"Basler Kantonalbank",
|
||||
"Luzerner Kantonalbank",
|
||||
"Union Bancaire Privée",
|
||||
"Vontobel",
|
||||
)
|
||||
Binary file not shown.
@@ -0,0 +1,21 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``de_DE`` locale.
|
||||
|
||||
Source for rules for swift location codes:
|
||||
|
||||
- https://www.ebics.de/de/datenformate
|
||||
"""
|
||||
|
||||
bban_format = "##################"
|
||||
country_code = "DE"
|
||||
|
||||
first_place = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "23456789"
|
||||
second_place = "ABCDEFGHIJKLMNPQRSTUVWXYZ" + "0123456789"
|
||||
swift_location_codes = []
|
||||
for i in first_place:
|
||||
for j in second_place:
|
||||
swift_location_codes.append(str(i) + str(j))
|
||||
swift_location_codes = tuple(swift_location_codes)
|
||||
Binary file not shown.
@@ -0,0 +1,28 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``el_GR`` locale."""
|
||||
|
||||
bban_format = "#######################"
|
||||
country_code = "GR"
|
||||
|
||||
# Major GR banks (with a head office in Greece)
|
||||
# Source:
|
||||
# - https://www.bankofgreece.gr/en/main-tasks/supervision/supervised-institutions
|
||||
# Last verified: January 2026
|
||||
banks = (
|
||||
"Aegean Baltic Bank",
|
||||
"Alpha Bank",
|
||||
"Credia Bank",
|
||||
"Eurobank",
|
||||
"Optima Bank",
|
||||
"SNAPPI",
|
||||
"Vivabank",
|
||||
"Εθνική Τράπεζα",
|
||||
"Συνεταιριστική Τράπεζα Θεσσαλίας",
|
||||
"Συνεταιριστική Τράπεζα Καρδίτσας",
|
||||
"Συνεταιριστική Τράπεζα Χανίων",
|
||||
"Τράπεζα Ηπείρου",
|
||||
"Τράπεζα Πειραιώς",
|
||||
)
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``en_GB`` locale."""
|
||||
|
||||
bban_format = "????##############"
|
||||
country_code = "GB"
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``en_IE`` locale."""
|
||||
|
||||
bban_format = "#######################"
|
||||
country_code = "IE"
|
||||
Binary file not shown.
@@ -0,0 +1,47 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``en_IN`` locale.
|
||||
Source: https://en.wikipedia.org/wiki/List_of_banks_in_India
|
||||
"""
|
||||
|
||||
banks = (
|
||||
"Bank of Baroda",
|
||||
"Bank of India",
|
||||
"Bank of Maharashtra",
|
||||
"Canara Bank",
|
||||
"Central Bank of India",
|
||||
"Indian Bank",
|
||||
"Indian Overseas Bank",
|
||||
"Punjab National Bank",
|
||||
"Punjab and Sind Bank",
|
||||
"Union Bank of India",
|
||||
"UCO Bank",
|
||||
"State Bank of India",
|
||||
"Axis Bank",
|
||||
"Bandhan Bank",
|
||||
"CSB Bank",
|
||||
"City Union Bank",
|
||||
"DCB Bank",
|
||||
"Dhanlaxmi Bank",
|
||||
"Federal Bank",
|
||||
"HDFC Bank",
|
||||
"ICICI Bank",
|
||||
"IDBI Bank",
|
||||
"IDFC First Bank",
|
||||
"IndusInd Bank",
|
||||
"Jammu & Kashmir Bank",
|
||||
"Karnataka Bank",
|
||||
"Karur Vysya Bank",
|
||||
"Kotak Mahindra Bank",
|
||||
"Nainital Bank",
|
||||
"RBL Bank",
|
||||
"South Indian Bank",
|
||||
"Tamilnad Mercantile Bank",
|
||||
"Yes Bank",
|
||||
)
|
||||
|
||||
def bank(self) -> str:
|
||||
"""Generate a bank name."""
|
||||
return self.random_element(self.banks)
|
||||
Binary file not shown.
@@ -0,0 +1,109 @@
|
||||
import logging
|
||||
|
||||
from faker.providers.bank import Provider as BankProvider
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``en_PH`` locale."""
|
||||
|
||||
country_code = "PH"
|
||||
bban_format = "################"
|
||||
swift_bank_codes = (
|
||||
"ANZB",
|
||||
"AUBK",
|
||||
"BKCH",
|
||||
"BKKB",
|
||||
"BNOR",
|
||||
"BNPA",
|
||||
"BOFA",
|
||||
"BOPI",
|
||||
"BOTK",
|
||||
"BPDI",
|
||||
"BPFS",
|
||||
"BPGO",
|
||||
"CHAS",
|
||||
"CHBK",
|
||||
"CHSV",
|
||||
"CITI",
|
||||
"CPHI",
|
||||
"CTCB",
|
||||
"DBPH",
|
||||
"DEUT",
|
||||
"EQSN",
|
||||
"EWBC",
|
||||
"FCBK",
|
||||
"HBPH",
|
||||
"HNBK",
|
||||
"HSBC",
|
||||
"IBKO",
|
||||
"ICBC",
|
||||
"INGB",
|
||||
"KOEX",
|
||||
"MBBE",
|
||||
"MBTC",
|
||||
"MHCB",
|
||||
"PABI",
|
||||
"PHSB",
|
||||
"PHTB",
|
||||
"PHVB",
|
||||
"PNBM",
|
||||
"PPBU",
|
||||
"RCBC",
|
||||
"ROBP",
|
||||
"SCBL",
|
||||
"SETC",
|
||||
"SHBK",
|
||||
"SMBC",
|
||||
"STLA",
|
||||
"TACB",
|
||||
"TLBP",
|
||||
"TYBK",
|
||||
"UBPH",
|
||||
"UCPB",
|
||||
"UOVB",
|
||||
"UWCB",
|
||||
)
|
||||
swift_location_codes = (
|
||||
"22",
|
||||
"2X",
|
||||
"M1",
|
||||
"MM",
|
||||
"MQ",
|
||||
"MX",
|
||||
)
|
||||
swift_branch_codes = (
|
||||
"CBU",
|
||||
"EQI",
|
||||
"TSU",
|
||||
"XXX",
|
||||
)
|
||||
|
||||
def bban(self) -> str:
|
||||
"""Generate a Basic Bank Account Number (BBAN).
|
||||
|
||||
.. warning::
|
||||
Philippine bank accounts do not have BBANs or IBANs, so any number
|
||||
generated by this method is a purely hypothetical number. Local bank
|
||||
account numbers are typically 10 or 12 digits long, so the BBAN
|
||||
format used in this implementation has been arbitrarily set to 16
|
||||
digits to simulate a hypothetical standardization of account numbers.
|
||||
Using this method will log a warning regarding the hypotheticality of
|
||||
the result.
|
||||
"""
|
||||
logger.warning("Numbers generated by this method are purely hypothetical.")
|
||||
return super().bban()
|
||||
|
||||
def iban(self) -> str:
|
||||
"""Generate an International Bank Account Number (IBAN).
|
||||
|
||||
.. warning::
|
||||
Philippine bank accounts do not have BBANs or IBANs, so any number
|
||||
generated by this method is a purely hypothetical number. This method
|
||||
uses hypothetical PH BBANs and the PH country code as inputs to the
|
||||
IBAN generation algorithm. Using this method will log a warning
|
||||
regarding the hypotheticality of the result.
|
||||
"""
|
||||
logger.warning("Numbers generated by this method are purely hypothetical.")
|
||||
return super().iban()
|
||||
Binary file not shown.
@@ -0,0 +1,32 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``es_AR`` locale.
|
||||
source: https://www.bcra.gob.ar/SistemasFinancierosYdePagos/Activos.asp"""
|
||||
|
||||
bban_format = "????####################"
|
||||
country_code = "AR"
|
||||
|
||||
banks = (
|
||||
"Banco de la Nación Argentina",
|
||||
"Banco Santander",
|
||||
"Banco de Galicia y Buenos Aires",
|
||||
"Banco de la Provincia de Buenos Aires",
|
||||
"BBVA Argentina",
|
||||
"Banco Macro",
|
||||
"HSBC Bank Argentina",
|
||||
"Banco Ciudad de Buenos Aires",
|
||||
"Banco Credicoop",
|
||||
"Industrial And Commercial Bank Of China",
|
||||
"Citibank",
|
||||
"Banco Patagonia",
|
||||
"Banco de la Provincia de Córdoba",
|
||||
"Banco Supervielle",
|
||||
"Nuevo Banco de Santa Fe",
|
||||
"Banco Hipotecario S. A.",
|
||||
"Banco Itaú Argentina",
|
||||
"Banco de Inversión y Comercio Exterior (BICE)",
|
||||
"Banco Comafi",
|
||||
"BSE - Banco Santiago del Estero",
|
||||
)
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``es_ES`` locale."""
|
||||
|
||||
bban_format = "####################"
|
||||
country_code = "ES"
|
||||
Binary file not shown.
@@ -0,0 +1,274 @@
|
||||
from typing import List, Optional, Tuple
|
||||
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
def get_clabe_control_digit(clabe: str) -> int:
|
||||
"""Generate the checksum digit for a CLABE.
|
||||
|
||||
:param clabe: CLABE.
|
||||
:return: The CLABE checksum digit.
|
||||
"""
|
||||
factors = [3, 7, 1]
|
||||
products: List[int] = []
|
||||
|
||||
for i, digit in enumerate(clabe[:17]):
|
||||
products.append((int(digit) * factors[i % 3]) % 10)
|
||||
|
||||
return (10 - sum(products)) % 10
|
||||
|
||||
|
||||
def is_valid_clabe(clabe: str) -> bool:
|
||||
"""Check if a CLABE is valid using the checksum.
|
||||
|
||||
:param clabe: CLABE.
|
||||
:return: True if the CLABE is valid, False otherwise.
|
||||
"""
|
||||
if len(clabe) != 18 or not clabe.isdigit():
|
||||
return False
|
||||
|
||||
return get_clabe_control_digit(clabe) == int(clabe[-1])
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Bank provider for ``es_MX`` locale."""
|
||||
|
||||
banks: Tuple[str, ...] = (
|
||||
"ABC Capital, S.A. I.B.M.",
|
||||
"Acciones y Valores Banamex, S.A. de C.V., Casa de Bolsa",
|
||||
"Actinver Casa de Bolsa, S.A. de C.V.",
|
||||
"Akala, S.A. de C.V., Sociedad Financiera Popular",
|
||||
"American Express Bank (México), S.A.",
|
||||
"AXA Seguros, S.A. De C.V.",
|
||||
"B y B Casa de Cambio, S.A. de C.V.",
|
||||
"Banca Afirme, S.A.",
|
||||
"Banca Mifel, S.A.",
|
||||
"Banco Actinver, S.A.",
|
||||
"Banco Ahorro Famsa, S.A.",
|
||||
"Banco Autofin México, S.A.",
|
||||
"Banco Azteca, S.A.",
|
||||
"Banco BASE, S.A. de I.B.M.",
|
||||
"Banco Compartamos, S.A.",
|
||||
"Banco Credit Suisse (México), S.A.",
|
||||
"Banco del Ahorro Nacional y Servicios Financieros, S.N.C.",
|
||||
"Banco del Bajío, S.A.",
|
||||
"Banco Inbursa, S.A.",
|
||||
"Banco Inmobiliario Mexicano, S.A., Institución de Banca Múltiple",
|
||||
"Banco Interacciones, S.A.",
|
||||
"Banco Invex, S.A.",
|
||||
"Banco J.P. Morgan, S.A.",
|
||||
"Banco Mercantil del Norte, S.A.",
|
||||
"Banco Monex, S.A.",
|
||||
"Banco Multiva, S.A.",
|
||||
"Banco Nacional de Comercio Exterior",
|
||||
"Banco Nacional de México, S.A.",
|
||||
"Banco Nacional de Obras y Servicios Públicos",
|
||||
"Banco Nacional del Ejército, Fuerza Aérea y Armada",
|
||||
"Banco PagaTodo S.A., Institución de Banca Múltiple",
|
||||
"Banco Regional de Monterrey, S.A.",
|
||||
"Banco Sabadell, S.A. I.B.M.",
|
||||
"Banco Santander, S.A.",
|
||||
"Banco Ve por Mas, S.A.",
|
||||
"Banco Wal Mart de México Adelante, S.A.",
|
||||
"BanCoppel, S.A.",
|
||||
"Bank of America México, S.A.",
|
||||
"Bank of Tokyo-Mitsubishi UFJ (México), S.A.",
|
||||
"Bankaool, S.A., Institución de Banca Múltiple",
|
||||
"Bansi, S.A.",
|
||||
"Barclays Bank México, S.A.",
|
||||
"BBVA Bancomer, S.A.",
|
||||
"Bulltick Casa de Bolsa, S.A. de C.V.",
|
||||
"Caja Popular Mexicana, S.C. de A.P. de R.L. De C.V.",
|
||||
"Casa de Bolsa Finamex, S.A. de C.V.",
|
||||
"Casa de Cambio Tíber, S.A. de C.V.",
|
||||
"CI Casa de Bolsa, S.A. de C.V.",
|
||||
"CLS Bank International",
|
||||
"Consubanco, S.A.",
|
||||
"Consultoría Internacional Banco, S.A.",
|
||||
"Consultoría Internacional Casa de Cambio, S.A. de C.V.",
|
||||
"Deutsche Bank México, S.A.",
|
||||
"Deutsche Securities, S.A. de C.V.",
|
||||
"Estructuradores del Mercado de Valores Casa de Bolsa, S.A. de C.V.",
|
||||
"Evercore Casa de Bolsa, S.A. de C.V.",
|
||||
"Financiera Nacional De Desarrollo Agropecuario, Rural, F y P.",
|
||||
"Fincomún, Servicios Financieros Comunitarios, S.A. de C.V.",
|
||||
"GBM Grupo Bursátil Mexicano, S.A. de C.V.",
|
||||
"GE Money Bank, S.A.",
|
||||
"HDI Seguros, S.A. de C.V.",
|
||||
"Hipotecaria su Casita, S.A. de C.V.",
|
||||
"HSBC México, S.A.",
|
||||
"Industrial and Commercial Bank of China, S.A., Institución de Banca Múltiple",
|
||||
"ING Bank (México), S.A.",
|
||||
"Inter Banco, S.A.",
|
||||
"Intercam Casa de Bolsa, S.A. de C.V.",
|
||||
"Intercam Casa de Cambio, S.A. de C.V.",
|
||||
"Inversora Bursátil, S.A. de C.V.",
|
||||
"IXE Banco, S.A.",
|
||||
"J.P. Morgan Casa de Bolsa, S.A. de C.V.",
|
||||
"J.P. SOFIEXPRESS, S.A. de C.V., S.F.P.",
|
||||
"Kuspit Casa de Bolsa, S.A. de C.V.",
|
||||
"Libertad Servicios Financieros, S.A. De C.V.",
|
||||
"MAPFRE Tepeyac S.A.",
|
||||
"Masari Casa de Bolsa, S.A.",
|
||||
"Merrill Lynch México, S.A. de C.V., Casa de Bolsa",
|
||||
"Monex Casa de Bolsa, S.A. de C.V.",
|
||||
"Multivalores Casa de Bolsa, S.A. de C.V. Multiva Gpo. Fin.",
|
||||
"Nacional Financiera, S.N.C.",
|
||||
"Opciones Empresariales Del Noreste, S.A. DE C.V.",
|
||||
"OPERADORA ACTINVER, S.A. DE C.V.",
|
||||
"Operadora De Pagos Móviles De México, S.A. De C.V.",
|
||||
"Operadora de Recursos Reforma, S.A. de C.V.",
|
||||
"OrderExpress Casa de Cambio , S.A. de C.V. AAC",
|
||||
"Profuturo G.N.P., S.A. de C.V.",
|
||||
"Scotiabank Inverlat, S.A.",
|
||||
"SD. INDEVAL, S.A. de C.V.",
|
||||
"Seguros Monterrey New York Life, S.A de C.V.",
|
||||
"Sistema de Transferencias y Pagos STP, S.A. de C.V., SOFOM E.N.R.",
|
||||
"Skandia Operadora S.A. de C.V.",
|
||||
"Skandia Vida S.A. de C.V.",
|
||||
"Sociedad Hipotecaria Federal, S.N.C.",
|
||||
"Solución Asea, S.A. de C.V., Sociedad Financiera Popular",
|
||||
"Sterling Casa de Cambio, S.A. de C.V.",
|
||||
"Telecomunicaciones de México",
|
||||
"The Royal Bank of Scotland México, S.A.",
|
||||
"UBS Banco, S.A.",
|
||||
"UNAGRA, S.A. de C.V., S.F.P.",
|
||||
"Única Casa de Cambio, S.A. de C.V.",
|
||||
"Valores Mexicanos Casa de Bolsa, S.A. de C.V.",
|
||||
"Valué, S.A. de C.V., Casa de Bolsa",
|
||||
"Vector Casa de Bolsa, S.A. de C.V.",
|
||||
"Volkswagen Bank S.A. Institución de Banca Múltiple",
|
||||
"Zúrich Compañía de Seguros, S.A.",
|
||||
"Zúrich Vida, Compañía de Seguros, S.A.",
|
||||
)
|
||||
|
||||
bank_codes: Tuple[int, ...] = (
|
||||
2,
|
||||
6,
|
||||
9,
|
||||
12,
|
||||
14,
|
||||
19,
|
||||
21,
|
||||
22,
|
||||
30,
|
||||
32,
|
||||
36,
|
||||
37,
|
||||
42,
|
||||
44,
|
||||
58,
|
||||
59,
|
||||
60,
|
||||
62,
|
||||
72,
|
||||
102,
|
||||
103,
|
||||
106,
|
||||
108,
|
||||
110,
|
||||
112,
|
||||
113,
|
||||
116,
|
||||
124,
|
||||
126,
|
||||
127,
|
||||
128,
|
||||
129,
|
||||
130,
|
||||
131,
|
||||
132,
|
||||
133,
|
||||
134,
|
||||
135,
|
||||
136,
|
||||
137,
|
||||
138,
|
||||
139,
|
||||
140,
|
||||
141,
|
||||
143,
|
||||
145,
|
||||
147,
|
||||
148,
|
||||
150,
|
||||
155,
|
||||
156,
|
||||
166,
|
||||
168,
|
||||
600,
|
||||
601,
|
||||
602,
|
||||
604,
|
||||
605,
|
||||
606,
|
||||
607,
|
||||
608,
|
||||
610,
|
||||
611,
|
||||
613,
|
||||
614,
|
||||
615,
|
||||
616,
|
||||
617,
|
||||
618,
|
||||
619,
|
||||
620,
|
||||
621,
|
||||
622,
|
||||
623,
|
||||
624,
|
||||
626,
|
||||
627,
|
||||
628,
|
||||
629,
|
||||
630,
|
||||
631,
|
||||
632,
|
||||
633,
|
||||
634,
|
||||
636,
|
||||
637,
|
||||
638,
|
||||
640,
|
||||
642,
|
||||
646,
|
||||
647,
|
||||
648,
|
||||
649,
|
||||
651,
|
||||
652,
|
||||
653,
|
||||
655,
|
||||
656,
|
||||
659,
|
||||
670,
|
||||
674,
|
||||
677,
|
||||
679,
|
||||
684,
|
||||
901,
|
||||
902,
|
||||
)
|
||||
|
||||
def clabe(self, bank_code: Optional[int] = None) -> str:
|
||||
"""Generate a mexican bank account CLABE.
|
||||
|
||||
Sources:
|
||||
|
||||
- https://en.wikipedia.org/wiki/CLABE
|
||||
|
||||
:return: A fake CLABE number.
|
||||
|
||||
:sample:
|
||||
:sample: bank_code=2
|
||||
"""
|
||||
bank = bank_code or self.random_element(self.bank_codes)
|
||||
city = self.random_int(0, 999)
|
||||
branch = self.random_int(0, 9999)
|
||||
account = self.random_int(0, 9999999)
|
||||
|
||||
result = f"{bank:03d}{city:03d}{branch:04d}{account:07d}"
|
||||
control_digit = get_clabe_control_digit(result)
|
||||
|
||||
return result + str(control_digit)
|
||||
Binary file not shown.
@@ -0,0 +1,56 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``fa_IR`` locale."""
|
||||
|
||||
bban_format = "IR########################"
|
||||
country_code = "IR"
|
||||
swift_bank_codes = (
|
||||
"BEGN",
|
||||
"KESH",
|
||||
"BKMN",
|
||||
"BKBP",
|
||||
"CIYB",
|
||||
"BTOS",
|
||||
"IVBB",
|
||||
"KBID",
|
||||
"KIBO",
|
||||
"KHMI",
|
||||
)
|
||||
swift_location_codes = ("TH",)
|
||||
swift_branch_codes = ("BSH", "BCQ", "tIR", "tTH", "ATM", "BIC", "TIR", "ASR", "FOR")
|
||||
|
||||
banks = (
|
||||
"بانکهای قرض الحسنه",
|
||||
"بانک ملّی ایران",
|
||||
"بانک اقتصاد نوین",
|
||||
"بانک قرضالحسنه مهر ایران",
|
||||
"بانک سپه",
|
||||
"بانک پارسیان",
|
||||
"بانک قرضالحسنه رسالت",
|
||||
"بانک صنعت و معدن",
|
||||
"بانک کارآفرین",
|
||||
"بانک کشاورزی",
|
||||
"بانک سامان",
|
||||
"بانک مسکن",
|
||||
"بانک سینا",
|
||||
"بانک توسعه صادرات ایران",
|
||||
"بانک خاور میانه",
|
||||
"بانک توسعه تعاون",
|
||||
"بانک شهر",
|
||||
"پست بانک ایران",
|
||||
"بانک دی",
|
||||
"بانک صادرات",
|
||||
"بانک ملت",
|
||||
"بانک تجارت",
|
||||
"بانک رفاه",
|
||||
"بانک حکمت ایرانیان",
|
||||
"بانک گردشگری",
|
||||
"بانک ایران زمین",
|
||||
"بانک قوامین",
|
||||
"بانک انصار",
|
||||
"بانک سرمایه",
|
||||
"بانک پاسارگاد",
|
||||
"بانک مشترک ایران-ونزوئلا",
|
||||
)
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``fi_FI`` locale."""
|
||||
|
||||
bban_format = "##############"
|
||||
country_code = "FI"
|
||||
Binary file not shown.
@@ -0,0 +1,10 @@
|
||||
from ..en_PH import Provider as EnPhBankProvider
|
||||
|
||||
|
||||
class Provider(EnPhBankProvider):
|
||||
"""Implement bank provider for ``fil_PH`` locale.
|
||||
|
||||
There is no difference from the ``en_PH`` implementation.
|
||||
"""
|
||||
|
||||
pass
|
||||
Binary file not shown.
@@ -0,0 +1,10 @@
|
||||
from ..de_CH import Provider as DeChBankProvider
|
||||
|
||||
|
||||
class Provider(DeChBankProvider):
|
||||
"""Implement bank provider for ``fr_CH`` locale.
|
||||
|
||||
There is no difference from the ``de_CH`` implementation.
|
||||
"""
|
||||
|
||||
pass
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``fr_FR`` locale."""
|
||||
|
||||
bban_format = "#######################"
|
||||
country_code = "FR"
|
||||
Binary file not shown.
@@ -0,0 +1,10 @@
|
||||
from ..de_CH import Provider as DeChBankProvider
|
||||
|
||||
|
||||
class Provider(DeChBankProvider):
|
||||
"""Implement bank provider for ``it_CH`` locale.
|
||||
|
||||
There is no difference from the ``de_CH`` implementation.
|
||||
"""
|
||||
|
||||
pass
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``it_IT`` locale."""
|
||||
|
||||
bban_format = "?######################"
|
||||
country_code = "IT"
|
||||
Binary file not shown.
@@ -0,0 +1,92 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for `nl_BE` locale.
|
||||
|
||||
Information about the Belgian banks can be found on the website
|
||||
of the National Bank of Belgium:
|
||||
https://www.nbb.be/nl/betalingen-en-effecten/betalingsstandaarden/bankidentificatiecodes
|
||||
"""
|
||||
|
||||
bban_format = "############"
|
||||
country_code = "BE"
|
||||
|
||||
banks = (
|
||||
"Argenta Spaarbank",
|
||||
"AXA Bank",
|
||||
"Belfius Bank",
|
||||
"BNP Paribas Fortis",
|
||||
"Bpost Bank",
|
||||
"Crelan",
|
||||
"Deutsche Bank AG",
|
||||
"ING België",
|
||||
"KBC Bank",
|
||||
)
|
||||
swift_bank_codes = (
|
||||
"ARSP",
|
||||
"AXAB",
|
||||
"BBRU",
|
||||
"BPOT",
|
||||
"DEUT",
|
||||
"GEBA",
|
||||
"GKCC",
|
||||
"KRED",
|
||||
"NICA",
|
||||
)
|
||||
swift_location_codes = (
|
||||
"BE",
|
||||
"B2",
|
||||
"99",
|
||||
"21",
|
||||
"91",
|
||||
"23",
|
||||
"3X",
|
||||
"75",
|
||||
"2X",
|
||||
"22",
|
||||
"88",
|
||||
"B1",
|
||||
"BX",
|
||||
"BB",
|
||||
)
|
||||
swift_branch_codes = [
|
||||
"203",
|
||||
"BTB",
|
||||
"CIC",
|
||||
"HCC",
|
||||
"IDJ",
|
||||
"IPC",
|
||||
"MDC",
|
||||
"RET",
|
||||
"VOD",
|
||||
"XXX",
|
||||
]
|
||||
|
||||
def bban(self) -> str:
|
||||
"""Generate a valid BBAN."""
|
||||
account_number = self._generate_account_number()
|
||||
check_digits = self._calculate_mod97(account_number)
|
||||
return f"{account_number}{check_digits}"
|
||||
|
||||
def iban(self) -> str:
|
||||
"""Generate a valid IBAN."""
|
||||
bban = self.bban()
|
||||
iban_check_digits = self._calculate_iban_check_digits(bban)
|
||||
return f"{self.country_code}{iban_check_digits}{bban}"
|
||||
|
||||
def _generate_account_number(self) -> str:
|
||||
"""Generate a random 10-digit account number."""
|
||||
return self.numerify("##########")
|
||||
|
||||
def _calculate_mod97(self, account_number: str) -> str:
|
||||
"""Calculate the mod 97 check digits for a given account number."""
|
||||
remainder = int(account_number) % 97
|
||||
return str(remainder).zfill(2) if remainder != 0 else "97"
|
||||
|
||||
def _calculate_iban_check_digits(self, bban: str) -> str:
|
||||
"""Calculate the IBAN check digits using mod 97 algorithm."""
|
||||
raw_iban = f"{bban}{self.country_code}00"
|
||||
numeric_iban = "".join(str(ord(char) - 55) if char.isalpha() else char for char in raw_iban)
|
||||
check_digits = 98 - (int(numeric_iban) % 97)
|
||||
return str(check_digits).zfill(2)
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``nl_NL`` locale."""
|
||||
|
||||
bban_format = "????##########"
|
||||
country_code = "NL"
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``no_NO`` locale."""
|
||||
|
||||
bban_format = "###########"
|
||||
country_code = "NO"
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``pl_PL`` locale."""
|
||||
|
||||
bban_format = "#" * 24
|
||||
country_code = "PL"
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``pt_PT`` locale."""
|
||||
|
||||
bban_format = "#####################"
|
||||
country_code = "PT"
|
||||
Binary file not shown.
@@ -0,0 +1,50 @@
|
||||
from faker.providers.bank import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``ro_RO`` locale."""
|
||||
|
||||
country_code = "RO"
|
||||
bban_format = "????################"
|
||||
swift_bank_codes = (
|
||||
"NBOR",
|
||||
"ABNA",
|
||||
"BUCU",
|
||||
"ARBL",
|
||||
"MIND",
|
||||
"BPOS",
|
||||
"CARP",
|
||||
"RNCB",
|
||||
"BROM",
|
||||
"BITR",
|
||||
"BRDE",
|
||||
"BRMA",
|
||||
"BTRL",
|
||||
"DAFB",
|
||||
"MIRB",
|
||||
"CECE",
|
||||
"CITI",
|
||||
"CRCO",
|
||||
"FNNB",
|
||||
"EGNA",
|
||||
"BSEA",
|
||||
"EXIM",
|
||||
"UGBI",
|
||||
"HVBL",
|
||||
"INGB",
|
||||
"BREL",
|
||||
"CRDZ",
|
||||
"BNRB",
|
||||
"PIRB",
|
||||
"PORL",
|
||||
"MIRO",
|
||||
"RZBL",
|
||||
"RZBR",
|
||||
"ROIN",
|
||||
"WBAN",
|
||||
"TRFD",
|
||||
"TREZ",
|
||||
"BACX",
|
||||
"VBBU",
|
||||
"DARO",
|
||||
)
|
||||
Binary file not shown.
@@ -0,0 +1,755 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``ru_RU`` locale.
|
||||
|
||||
Sources for region codes, currency codes, and bank names:
|
||||
|
||||
- https://ru.wikipedia.org/wiki/Коды_субъектов_Российской_Федерации
|
||||
- https://ru.wikipedia.org/wiki/Общероссийский_классификатор_валют
|
||||
- http://cbr.ru/credit/coreports/ko17012020.zip
|
||||
"""
|
||||
|
||||
country_code = "RU"
|
||||
|
||||
region_codes = (
|
||||
"01",
|
||||
"03",
|
||||
"04",
|
||||
"05",
|
||||
"07",
|
||||
"08",
|
||||
"10",
|
||||
"11",
|
||||
"12",
|
||||
"14",
|
||||
"15",
|
||||
"17",
|
||||
"18",
|
||||
"19",
|
||||
"20",
|
||||
"22",
|
||||
"24",
|
||||
"25",
|
||||
"26",
|
||||
"27",
|
||||
"28",
|
||||
"29",
|
||||
"30",
|
||||
"32",
|
||||
"33",
|
||||
"34",
|
||||
"35",
|
||||
"36",
|
||||
"37",
|
||||
"38",
|
||||
"40",
|
||||
"41",
|
||||
"42",
|
||||
"44",
|
||||
"45",
|
||||
"46",
|
||||
"47",
|
||||
"49",
|
||||
"50",
|
||||
"52",
|
||||
"53",
|
||||
"54",
|
||||
"56",
|
||||
"57",
|
||||
"58",
|
||||
"60",
|
||||
"61",
|
||||
"63",
|
||||
"64",
|
||||
"65",
|
||||
"66",
|
||||
"67",
|
||||
"68",
|
||||
"69",
|
||||
"70",
|
||||
"71",
|
||||
"73",
|
||||
"75",
|
||||
"76",
|
||||
"77",
|
||||
"78",
|
||||
"79",
|
||||
"80",
|
||||
"81",
|
||||
"82",
|
||||
"83",
|
||||
"84",
|
||||
"85",
|
||||
"86",
|
||||
"87",
|
||||
"88",
|
||||
"89",
|
||||
"90",
|
||||
"91",
|
||||
"92",
|
||||
"93",
|
||||
"94",
|
||||
"95",
|
||||
"96",
|
||||
"97",
|
||||
"98",
|
||||
"99",
|
||||
)
|
||||
|
||||
department_code_formats = (
|
||||
"0#",
|
||||
"1#",
|
||||
"2#",
|
||||
"3#",
|
||||
"4#",
|
||||
"5#",
|
||||
"6#",
|
||||
"7#",
|
||||
"8#",
|
||||
"9#",
|
||||
)
|
||||
|
||||
credit_organization_code_formats = (
|
||||
"05#",
|
||||
"06#",
|
||||
"07#",
|
||||
"08#",
|
||||
"09#",
|
||||
"1##",
|
||||
"2##",
|
||||
"3##",
|
||||
"4##",
|
||||
"5##",
|
||||
"6##",
|
||||
"7##",
|
||||
"8##",
|
||||
"9##",
|
||||
)
|
||||
|
||||
checking_account_codes = (
|
||||
[str(i) for i in range(102, 110)]
|
||||
+ ["203", "204"]
|
||||
+ [str(i) for i in range(301, 330)]
|
||||
+ [str(i) for i in range(401, 409)]
|
||||
+ [str(i) for i in range(411, 426)]
|
||||
+ ["430"]
|
||||
+ [str(i) for i in range(501, 527)]
|
||||
)
|
||||
|
||||
organization_codes = (
|
||||
"01",
|
||||
"02",
|
||||
"03",
|
||||
"04",
|
||||
)
|
||||
|
||||
currency_codes = (
|
||||
"008",
|
||||
"012",
|
||||
"032",
|
||||
"036",
|
||||
"044",
|
||||
"048",
|
||||
"050",
|
||||
"051",
|
||||
"052",
|
||||
"060",
|
||||
"064",
|
||||
"068",
|
||||
"072",
|
||||
"084",
|
||||
"090",
|
||||
"096",
|
||||
"104",
|
||||
"108",
|
||||
"116",
|
||||
"124",
|
||||
"132",
|
||||
"136",
|
||||
"144",
|
||||
"152",
|
||||
"156",
|
||||
"170",
|
||||
"174",
|
||||
"188",
|
||||
"191",
|
||||
"192",
|
||||
"203",
|
||||
"208",
|
||||
"214",
|
||||
"222",
|
||||
"230",
|
||||
"232",
|
||||
"238",
|
||||
"242",
|
||||
"262",
|
||||
"270",
|
||||
"292",
|
||||
"320",
|
||||
"324",
|
||||
"328",
|
||||
"332",
|
||||
"340",
|
||||
"344",
|
||||
"348",
|
||||
"352",
|
||||
"356",
|
||||
"360",
|
||||
"364",
|
||||
"368",
|
||||
"376",
|
||||
"388",
|
||||
"392",
|
||||
"398",
|
||||
"400",
|
||||
"404",
|
||||
"408",
|
||||
"410",
|
||||
"414",
|
||||
"417",
|
||||
"418",
|
||||
"422",
|
||||
"426",
|
||||
"430",
|
||||
"434",
|
||||
"440",
|
||||
"446",
|
||||
"454",
|
||||
"458",
|
||||
"462",
|
||||
"478",
|
||||
"480",
|
||||
"484",
|
||||
"496",
|
||||
"498",
|
||||
"504",
|
||||
"512",
|
||||
"516",
|
||||
"524",
|
||||
"532",
|
||||
"533",
|
||||
"548",
|
||||
"554",
|
||||
"558",
|
||||
"566",
|
||||
"578",
|
||||
"586",
|
||||
"590",
|
||||
"598",
|
||||
"600",
|
||||
"604",
|
||||
"608",
|
||||
"634",
|
||||
"643",
|
||||
"646",
|
||||
"654",
|
||||
"678",
|
||||
"682",
|
||||
"690",
|
||||
"694",
|
||||
"702",
|
||||
"704",
|
||||
"706",
|
||||
"710",
|
||||
"728",
|
||||
"748",
|
||||
"752",
|
||||
"756",
|
||||
"760",
|
||||
"764",
|
||||
"776",
|
||||
"780",
|
||||
"784",
|
||||
"788",
|
||||
"800",
|
||||
"807",
|
||||
"810",
|
||||
"818",
|
||||
"826",
|
||||
"834",
|
||||
"840",
|
||||
"858",
|
||||
"860",
|
||||
"882",
|
||||
"886",
|
||||
"894",
|
||||
"901",
|
||||
"931",
|
||||
"932",
|
||||
"933",
|
||||
"934",
|
||||
"936",
|
||||
"937",
|
||||
"938",
|
||||
"940",
|
||||
"941",
|
||||
"943",
|
||||
"944",
|
||||
"946",
|
||||
"947",
|
||||
"948",
|
||||
"949",
|
||||
"950",
|
||||
"951",
|
||||
"952",
|
||||
"953",
|
||||
"959",
|
||||
"960",
|
||||
"961",
|
||||
"962",
|
||||
"963",
|
||||
"964",
|
||||
"968",
|
||||
"969",
|
||||
"970",
|
||||
"971",
|
||||
"972",
|
||||
"973",
|
||||
"975",
|
||||
"976",
|
||||
"977",
|
||||
"978",
|
||||
"980",
|
||||
"981",
|
||||
"985",
|
||||
"986",
|
||||
"997",
|
||||
"998",
|
||||
"999",
|
||||
)
|
||||
|
||||
banks = (
|
||||
"Абсолют Банк",
|
||||
"Авангард",
|
||||
"Аверс",
|
||||
"Автоградбанк",
|
||||
"Автокредитбанк",
|
||||
"Автоторгбанк",
|
||||
"Агора",
|
||||
"Агропромкредит",
|
||||
"Агророс",
|
||||
"Азиатско-Тихоокеанский Банк",
|
||||
"Азия-Инвест Банк",
|
||||
"Айсибиси Банк",
|
||||
"АК Барс",
|
||||
"Акибанк",
|
||||
"Акрополь",
|
||||
"Актив Банк",
|
||||
"Акцепт",
|
||||
"Александровский",
|
||||
"Алеф-Банк",
|
||||
"Алмазэргиэнбанк",
|
||||
"Алтайкапиталбанк",
|
||||
"Алтынбанк",
|
||||
"Альба Альянс",
|
||||
"Альтернатива",
|
||||
"Альфа-Банк",
|
||||
"Америкэн Экспресс Банк",
|
||||
"Апабанк",
|
||||
"Аресбанк",
|
||||
"Арзамас",
|
||||
"Байкалинвестбанк",
|
||||
"Байкалкредобанк",
|
||||
"Балаково-Банк",
|
||||
"Балтинвестбанк",
|
||||
'Банк "Санкт-Петербург"',
|
||||
'Банк "СКС"',
|
||||
"Банк 131",
|
||||
"Банк Берейт",
|
||||
"Банк Дом.рф",
|
||||
"Банк Жилищного Финансирования",
|
||||
"Банк Зенит",
|
||||
"Банк Зенит Сочи",
|
||||
"Банк Интеза",
|
||||
"Банк Казани",
|
||||
"Банк Корпоративного Финансирования",
|
||||
"Банк Кредит Свисс (Москва)",
|
||||
"Банк Оранжевый",
|
||||
"Банк Оренбург",
|
||||
"Банк ПСА Финанс Рус",
|
||||
"Банк Раунд",
|
||||
"Банк Реалист",
|
||||
"Банк РМП",
|
||||
"Банк РСИ",
|
||||
"Банк СГБ",
|
||||
"Банк Стандарт-Кредит",
|
||||
"Банк Финам",
|
||||
"Банк ЧБРР",
|
||||
"ББР Банк",
|
||||
"Белгородсоцбанк",
|
||||
"Бест Эффортс Банк",
|
||||
"Бизнес-Сервис-Траст",
|
||||
"БКС Банк",
|
||||
"БМ-Банк",
|
||||
"БМВ Банк",
|
||||
"БНП Париба Банк",
|
||||
"Братский АНКБ",
|
||||
"Быстробанк",
|
||||
"Бэнк Оф Чайна",
|
||||
"Вакобанк",
|
||||
"Великие Луки Банк",
|
||||
"Венец",
|
||||
"Веста",
|
||||
"Викинг",
|
||||
"Витабанк",
|
||||
"Вкабанк",
|
||||
"Владбизнесбанк",
|
||||
"Внешфинбанк",
|
||||
"Возрождение",
|
||||
"Вологжанин",
|
||||
"Восточный",
|
||||
"ВРБ",
|
||||
"Всероссийский Банк Развития Регионов",
|
||||
"ВТБ",
|
||||
"Вуз-Банк",
|
||||
"Вятич",
|
||||
"Газнефтьбанк",
|
||||
"Газпромбанк",
|
||||
"Газтрансбанк",
|
||||
"Газэнергобанк",
|
||||
"Гарант-Инвест",
|
||||
"Генбанк",
|
||||
"Геобанк",
|
||||
"Гефест",
|
||||
"Глобус",
|
||||
"Голдман Сакс Банк",
|
||||
"Горбанк",
|
||||
"Гута-Банк",
|
||||
"Далена",
|
||||
"Дальневосточный Банк",
|
||||
"Денизбанк Москва",
|
||||
"Держава",
|
||||
"Дж.П. Морган Банк Интернешнл",
|
||||
"Джей Энд Ти Банк",
|
||||
"Дойче Банк",
|
||||
"Долинск",
|
||||
"Дом-Банк",
|
||||
"Донкомбанк",
|
||||
"Дон-Тексбанк",
|
||||
"Дружба",
|
||||
"ЕАТП Банк",
|
||||
"Евразийский Банк",
|
||||
"Евроазиатский Инвестиционный Банк",
|
||||
"Евроальянс",
|
||||
"Еврофинанс Моснарбанк",
|
||||
"Екатеринбург",
|
||||
"Енисейский Объединенный Банк",
|
||||
"Ермак",
|
||||
"Живаго Банк",
|
||||
"Запсибкомбанк",
|
||||
"Заречье",
|
||||
"Заубер Банк",
|
||||
"Земельный",
|
||||
"Земский Банк",
|
||||
"Зираат Банк (Москва)",
|
||||
"Ижкомбанк",
|
||||
"ИК Банк",
|
||||
"Икано Банк",
|
||||
"Инбанк",
|
||||
"Инвестторгбанк",
|
||||
"Инг Банк (Евразия)",
|
||||
"Интерпрогрессбанк",
|
||||
"Интерпромбанк",
|
||||
"ИРС",
|
||||
"ИС Банк",
|
||||
"ИТ Банк",
|
||||
"Итуруп",
|
||||
"Ишбанк",
|
||||
"Йошкар-Ола",
|
||||
"Калуга",
|
||||
"Камский Коммерческий Банк",
|
||||
"Капитал",
|
||||
"Кетовский Коммерческий Банк",
|
||||
"Киви Банк",
|
||||
"Классик Эконом Банк",
|
||||
"Кольцо Урала",
|
||||
"Коммерцбанк (Евразия)",
|
||||
"Коммерческий Индо Банк",
|
||||
"Консервативный Коммерческий Банк",
|
||||
"Континенталь",
|
||||
"Космос",
|
||||
"Костромаселькомбанк",
|
||||
"Кошелев-Банк",
|
||||
"Креди Агриколь Киб",
|
||||
"Кредит Европа Банк",
|
||||
"Кредит Урал Банк",
|
||||
"Кремлевский",
|
||||
"Крокус-Банк",
|
||||
"Крона-Банк",
|
||||
"Кросна-Банк",
|
||||
"КС Банк",
|
||||
"Кубань Кредит",
|
||||
"Кубаньторгбанк",
|
||||
"Кузбассхимбанк",
|
||||
"Кузнецкбизнесбанк",
|
||||
"Кузнецкий",
|
||||
"Кузнецкий Мост",
|
||||
"Курган",
|
||||
"Курскпромбанк",
|
||||
"Кэб Эйчэнби Банк",
|
||||
"Ланта-Банк",
|
||||
"Левобережный",
|
||||
"Локо-Банк",
|
||||
"Майкопбанк",
|
||||
"Майский",
|
||||
"Максима",
|
||||
"МБА-Москва",
|
||||
"МВС Банк",
|
||||
"Мегаполис",
|
||||
"Международный Финансовый Клуб",
|
||||
"Мерседес-Бенц Банк Рус",
|
||||
"Металлинвестбанк",
|
||||
"Металлург",
|
||||
"Меткомбанк",
|
||||
"Мидзухо Банк (Москва)",
|
||||
"Мир Бизнес Банк",
|
||||
"МКБ",
|
||||
"Модульбанк",
|
||||
"Морган Стэнли Банк",
|
||||
"Морской Банк",
|
||||
"Москва-Сити",
|
||||
"Московский Индустриальный Банк",
|
||||
"Московский Коммерческий Банк",
|
||||
"Московский Кредитный Банк",
|
||||
"Московский Нефтехимический Банк",
|
||||
"Московский Областной Банк",
|
||||
"Московское Ипотечное Агентство",
|
||||
"Москоммерцбанк",
|
||||
"МС Банк Рус",
|
||||
"МСКБ",
|
||||
"МСП Банк",
|
||||
"МТИ Банк",
|
||||
"МТС-Банк",
|
||||
"Муниципальный Камчатпрофитбанк",
|
||||
"Нальчик",
|
||||
"Народный Банк",
|
||||
"Народный Банк Тувы",
|
||||
"Народный Доверительный Банк",
|
||||
"Натиксис Банк",
|
||||
"Национальный Банк Сбережений",
|
||||
"Национальный Инвестиционно-Промышленный",
|
||||
"Национальный Резервный Банк",
|
||||
"Национальный Стандарт",
|
||||
"НБД-Банк",
|
||||
"Невастройинвест",
|
||||
"Нейва",
|
||||
"Нефтепромбанк",
|
||||
"НИБ",
|
||||
"Нижневолжский Коммерческий Банк",
|
||||
"Нико-Банк",
|
||||
"НК Банк",
|
||||
"Новикомбанк",
|
||||
"Новобанк",
|
||||
"Новокиб",
|
||||
"Новый Век",
|
||||
"Новый Московский Банк",
|
||||
"Нокссбанк",
|
||||
"Ноосфера",
|
||||
"Норвик Банк",
|
||||
"Нордеа Банк",
|
||||
"НС Банк",
|
||||
"НФК",
|
||||
"Объединенный Банк Республики",
|
||||
"Объединенный Капитал",
|
||||
"Онего",
|
||||
"Оней Банк",
|
||||
"Орбанк",
|
||||
"Оргбанк",
|
||||
"ОТП Банк",
|
||||
"Первоуральскбанк",
|
||||
"Первый Дортрансбанк",
|
||||
"Первый Инвестиционный Банк",
|
||||
"Первый Клиентский Банк",
|
||||
"Пересвет",
|
||||
"Пермь",
|
||||
"Петербургский Социальный Ком. Банк",
|
||||
"Платина",
|
||||
"Плюс Банк",
|
||||
"Пойдём!",
|
||||
"Почта Банк",
|
||||
"Почтобанк",
|
||||
"Приморский Территориальный",
|
||||
"Приморье",
|
||||
"Примсоцбанк",
|
||||
"Приобье",
|
||||
"Прио-Внешторгбанк",
|
||||
"Прокоммерцбанк",
|
||||
"Проминвестбанк",
|
||||
"Промсвязьбанк",
|
||||
"Промсельхозбанк",
|
||||
"Промтрансбанк",
|
||||
"Профессионал Банк",
|
||||
"Профессиональный Инвестиционный Банк",
|
||||
"Прохладный",
|
||||
"Развитие-Столица",
|
||||
"Райффайзенбанк",
|
||||
"РБА",
|
||||
"Ренессанс Кредит",
|
||||
"Рента-Банк",
|
||||
"Ресо Кредит",
|
||||
"Республиканский Кредитный Альянс",
|
||||
"Ресурс-Траст",
|
||||
"РН Банк",
|
||||
"Росбанк",
|
||||
"Росбизнесбанк",
|
||||
"Росгосстрах Банк",
|
||||
"Росдорбанк",
|
||||
"Роскосмосбанк",
|
||||
"Россельхозбанк",
|
||||
"Российская Финансовая Корпорация",
|
||||
"Российский Национальный Коммерческий Банк",
|
||||
"Россита-Банк",
|
||||
"Россия",
|
||||
"Ростфинанс",
|
||||
"Росэксимбанк",
|
||||
"Роял Кредит Банк",
|
||||
"Руна-Банк",
|
||||
"Руснарбанк",
|
||||
"Русский Банк Сбережений",
|
||||
"Русский Региональный Банк",
|
||||
"Русский Стандарт",
|
||||
"Русфинанс Банк",
|
||||
"Русьуниверсалбанк",
|
||||
"РФИ Банк",
|
||||
"Саммит Банк",
|
||||
"Санкт-Петербургский Банк Инвестиций",
|
||||
"Саратов",
|
||||
"Саровбизнесбанк",
|
||||
"Сбербанк России",
|
||||
"Связь-Банк",
|
||||
"СДМ-Банк",
|
||||
"Севастопольский Морской Банк",
|
||||
"Северный Морской Путь",
|
||||
"Северный Народный Банк",
|
||||
"Северстройбанк",
|
||||
"Севзапинвестпромбанк",
|
||||
"Сельмашбанк",
|
||||
"Сервис Резерв",
|
||||
"Сетелем Банк",
|
||||
"СИАБ",
|
||||
"Сибсоцбанк",
|
||||
"Синко-Банк",
|
||||
"Система",
|
||||
"Сити Инвест Банк",
|
||||
"Ситибанк",
|
||||
"СКБ-Банк",
|
||||
"Славия",
|
||||
"Славянбанк",
|
||||
"Славянский Кредит",
|
||||
"Снежинский",
|
||||
"Собинбанк",
|
||||
"Совкомбанк",
|
||||
"Современные Стандарты Бизнеса",
|
||||
"Соколовский",
|
||||
"Солид Банк",
|
||||
"Солидарность",
|
||||
"Социум-Банк",
|
||||
"Союз",
|
||||
"Спецстройбанк",
|
||||
"Спиритбанк",
|
||||
"Спутник",
|
||||
"Ставропольпромстройбанк",
|
||||
"Столичный Кредит",
|
||||
"Стройлесбанк",
|
||||
"Сумитомо Мицуи Рус Банк",
|
||||
"Сургутнефтегазбанк",
|
||||
"СЭБ Банк",
|
||||
"Таврический Банк",
|
||||
"Таганрогбанк",
|
||||
"Тайдон",
|
||||
"Тамбовкредитпромбанк",
|
||||
"Татсоцбанк",
|
||||
"Тексбанк",
|
||||
"Тендер-Банк",
|
||||
"Тимер Банк",
|
||||
"Тинькофф Банк",
|
||||
"Тойота Банк",
|
||||
"Тольяттихимбанк",
|
||||
"Томскпромстройбанк",
|
||||
"Торжок",
|
||||
"Транскапиталбанк",
|
||||
"Трансстройбанк",
|
||||
"Траст",
|
||||
"Тэмбр-Банк",
|
||||
"Углеметбанк",
|
||||
"Унифондбанк",
|
||||
"Уралпромбанк",
|
||||
"Уралсиб",
|
||||
"Уралфинанс",
|
||||
"Уральский Банк Реконструкции и Развития",
|
||||
"Уральский Финансовый Дом",
|
||||
"УРИ Банк",
|
||||
"Финанс Бизнес Банк",
|
||||
"Финсервис",
|
||||
"ФК Открытие",
|
||||
"Фольксваген Банк Рус",
|
||||
"Фора-Банк",
|
||||
"Форбанк",
|
||||
"Форштадт",
|
||||
"Фридом Финанс",
|
||||
"Хакасский Муниципальный Банк",
|
||||
"Химик",
|
||||
"ХКФ Банк",
|
||||
"Хлынов",
|
||||
"Центрально-Азиатский",
|
||||
"Центр-Инвест",
|
||||
"Центрокредит",
|
||||
"ЦМРБанк",
|
||||
"Чайна Констракшн Банк",
|
||||
"Чайнасельхозбанк",
|
||||
"Челиндбанк",
|
||||
"Челябинвестбанк",
|
||||
"Эйч-Эс-Би-Си Банк (РР)",
|
||||
"Эко-Инвест",
|
||||
"Экономбанк",
|
||||
"Экси-Банк",
|
||||
"Экспобанк",
|
||||
"Экспресс-Волга",
|
||||
"Элита",
|
||||
"Эм-Ю-Эф-Джи Банк (Евразия)",
|
||||
"Энергобанк",
|
||||
"Энергомашбанк",
|
||||
"Энерготрансбанк",
|
||||
"Эс-Би-Ай Банк",
|
||||
"Ю Би Эс Банк",
|
||||
"Юг-Инвестбанк",
|
||||
"ЮМК Банк",
|
||||
"Юникредит Банк",
|
||||
"Юнистрим",
|
||||
"Яринтербанк",
|
||||
)
|
||||
|
||||
def bic(self) -> str:
|
||||
"""Generate a bank identification code (BIC).
|
||||
|
||||
BIC is a bank identification code that is used in Russia.
|
||||
See https://ru.wikipedia.org/wiki/Банковский_идентификационный_код.
|
||||
"""
|
||||
region: str = self.random_element(self.region_codes)
|
||||
department_code: str = self.numerify(self.random_element(self.department_code_formats))
|
||||
credit_organization_code: str = self.numerify(self.random_element(self.credit_organization_code_formats))
|
||||
return "04" + region + department_code + credit_organization_code
|
||||
|
||||
def correspondent_account(self) -> str:
|
||||
"""Generate a correspondent account number.
|
||||
|
||||
Correspondent account is established to handle various financial
|
||||
operations between financial institutions.
|
||||
See https://ru.wikipedia.org/wiki/Корреспондентский_счёт.
|
||||
"""
|
||||
credit_organization_code = self.numerify(self.random_element(self.credit_organization_code_formats))
|
||||
return "301" + self.numerify("#" * 14) + credit_organization_code
|
||||
|
||||
def checking_account(self) -> str:
|
||||
"""Generate a checking account number.
|
||||
|
||||
Checking account is used in banks to handle financial operations of
|
||||
clients.
|
||||
See https://ru.wikipedia.org/wiki/Расчётный_счёт.
|
||||
"""
|
||||
account: str = self.random_element(self.checking_account_codes)
|
||||
organization: str = self.random_element(self.organization_codes)
|
||||
currency: str = self.random_element(self.currency_codes)
|
||||
return account + organization + currency + self.numerify("#" * 12)
|
||||
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``sk_SK`` locale.
|
||||
|
||||
https://www.mbank.cz/informace-k-produktum/info/ucty/cislo-uctu-iban.html
|
||||
"""
|
||||
|
||||
bban_format = "####################"
|
||||
country_code = "SK"
|
||||
Binary file not shown.
@@ -0,0 +1,64 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``th_TH`` locale."""
|
||||
|
||||
bban_format = "#" * 10
|
||||
country_code = "TH"
|
||||
swift_bank_codes = (
|
||||
"AIAC",
|
||||
"ANZB",
|
||||
"BKKB",
|
||||
"BAAB",
|
||||
"BOFA",
|
||||
"AYUD",
|
||||
"BKCH",
|
||||
"BOTH",
|
||||
"BNPA",
|
||||
"UBOB",
|
||||
"CITI",
|
||||
"CRES",
|
||||
"DEUT",
|
||||
"EXTH",
|
||||
"GSBA",
|
||||
"BHOB",
|
||||
"ICBK",
|
||||
"TIBT",
|
||||
"CHAS",
|
||||
"KASI",
|
||||
"KKPB",
|
||||
"KRTH",
|
||||
"LAHR",
|
||||
"ICBC",
|
||||
"MHCB",
|
||||
"OCBC",
|
||||
"DCBB",
|
||||
"SICO",
|
||||
"SMEB",
|
||||
"SCBL",
|
||||
"SMBC",
|
||||
"THBK",
|
||||
"HSBC",
|
||||
"TMBK",
|
||||
"UOVB",
|
||||
)
|
||||
swift_location_codes = (
|
||||
"BK",
|
||||
"B2",
|
||||
"BB",
|
||||
"BX",
|
||||
"2X",
|
||||
)
|
||||
swift_branch_codes = (
|
||||
"BKO",
|
||||
"BNA",
|
||||
"RYO",
|
||||
"CHB",
|
||||
"IBF",
|
||||
"SEC",
|
||||
"HDY",
|
||||
"CHM",
|
||||
"NAV",
|
||||
"XXX",
|
||||
)
|
||||
Binary file not shown.
@@ -0,0 +1,10 @@
|
||||
from ..en_PH import Provider as EnPhBankProvider
|
||||
|
||||
|
||||
class Provider(EnPhBankProvider):
|
||||
"""Implement bank provider for ``tl_PH`` locale.
|
||||
|
||||
There is no difference from the ``en_PH`` implementation.
|
||||
"""
|
||||
|
||||
pass
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``tr_TR`` locale."""
|
||||
|
||||
bban_format = "######################"
|
||||
country_code = "TR"
|
||||
Binary file not shown.
@@ -0,0 +1,83 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``uk_UA`` locale.
|
||||
Source for rules for bban format:
|
||||
https://bank.gov.ua/en/iban
|
||||
Banks list:
|
||||
https://ubanks.com.ua/adr/
|
||||
"""
|
||||
|
||||
bban_format = "#" * 27
|
||||
country_code = "UA"
|
||||
banks = (
|
||||
"izibank",
|
||||
"monobank",
|
||||
"O.Bank",
|
||||
"sportbank",
|
||||
"А-Банк",
|
||||
"Агропросперіс Банк",
|
||||
"АкордБанк",
|
||||
"Альтбанк",
|
||||
"Асвіо Банк",
|
||||
"Банк 3/4",
|
||||
"Банк Авангард",
|
||||
"Банк Альянс",
|
||||
"Банк Власний Рахунок",
|
||||
"Банк Восток",
|
||||
"Банк інвестицій та заощаджень",
|
||||
"Банк Кредит Дніпро",
|
||||
"Банк Портал",
|
||||
"Банк Український Капітал",
|
||||
"Банк Фамільний",
|
||||
"БТА Банк",
|
||||
"Глобус",
|
||||
"Грант",
|
||||
"Дойче Банк ДБУ",
|
||||
"Європейський Промисловий Банк",
|
||||
"Ідея Банк",
|
||||
"ІНГ Банк Україна",
|
||||
"Індустріалбанк",
|
||||
"Кліринговий Дім",
|
||||
"Комінбанк",
|
||||
"КомІнвестБанк",
|
||||
"Кредит Європа Банк",
|
||||
"Кредитвест Банк",
|
||||
"Креді Агріколь",
|
||||
"Кредобанк",
|
||||
"Кристалбанк",
|
||||
"Львів",
|
||||
"МетаБанк",
|
||||
"Міжнародний Інвестиційний Банк",
|
||||
"Мотор-Банк",
|
||||
"МТБ Банк",
|
||||
"Національний банк України",
|
||||
"Оксі Банк",
|
||||
"ОТП Банк",
|
||||
"Ощадбанк",
|
||||
"Перший Інвестиційний Банк",
|
||||
"Перший Український Міжнародний Банк",
|
||||
"Південний",
|
||||
"Піреус Банк",
|
||||
"Полікомбанк",
|
||||
"Полтава-Банк",
|
||||
"Правекс Банк",
|
||||
"ПриватБанк",
|
||||
"ПроКредит Банк",
|
||||
"Радабанк",
|
||||
"Райффайзен Банк",
|
||||
"РВС Банк",
|
||||
"СЕБ Корпоративний Банк",
|
||||
"Сенс Банк",
|
||||
"Сітібанк",
|
||||
"Скай Банк",
|
||||
"ТАСкомбанк",
|
||||
"Траст-капітал",
|
||||
"Український банк реконструкції та розвитку",
|
||||
"Укргазбанк",
|
||||
"Укрексімбанк",
|
||||
"УкрСиббанк",
|
||||
"Універсал Банк",
|
||||
"Юнекс Банк",
|
||||
)
|
||||
Binary file not shown.
@@ -0,0 +1,33 @@
|
||||
from .. import Provider as BankProvider
|
||||
|
||||
|
||||
class Provider(BankProvider):
|
||||
"""Implement bank provider for ``zh_CN`` locale.
|
||||
Source: https://zh.wikipedia.org/wiki/中国大陆银行列表
|
||||
"""
|
||||
|
||||
banks = (
|
||||
"中国人民银行",
|
||||
"国家开发银行",
|
||||
"中国进出口银行",
|
||||
"中国农业发展银行",
|
||||
"交通银行",
|
||||
"中国银行",
|
||||
"中国建设银行",
|
||||
"中国农业银行",
|
||||
"中国工商银行",
|
||||
"中国邮政储蓄银行",
|
||||
"中国光大银行",
|
||||
"中国民生银行",
|
||||
"招商银行",
|
||||
"中信银行",
|
||||
"华夏银行",
|
||||
"上海浦东发展银行",
|
||||
"平安银行",
|
||||
"广发银行",
|
||||
"兴业银行",
|
||||
"浙商银行",
|
||||
"渤海银行",
|
||||
"恒丰银行",
|
||||
"西安银行",
|
||||
)
|
||||
Binary file not shown.
Reference in New Issue
Block a user