from enum import Enum


def extend_enum(inherited_enum):
    def wrapper(added_enum):
        joined = {}
        for item in inherited_enum:
            joined[item.name] = item.value
        for item in added_enum:
            joined[item.name] = item.value
        return Enum(added_enum.__name__, joined)

    return wrapper


class BankCodes(Enum):
    TEST_PROVIDER = "999"
    ALL = ""


@extend_enum(BankCodes)
class Peru(Enum):
    BANCO_DE_CREDITO = "002"
    INTERBANK = "003"
    SCOTIABANK = "009"
    BANCO_CONTINENTAL = "011"
    BANCO_DE_LA_NACION = "018"
    BANCO_DE_COMERCIO = "023"
    BANCO_PICHINCHA = "035"
    BANBIF = "038"
    CREDISCOTIA = "043"
    MI_BANCO = "049"
    BNP_PARIBAS = "050"
    GNB = "053"
    CITIBANK = "007"
    AGROBANCO = "051"
    BANCO_FALABELLA = "054"
    RIPLEY = "055"
    SANTANDER = "056"
    AZTECA = "058"
    ICBC = "060"
    JPMORGAN = "061"
    CAJA_MUNICIPAL_DE_TRUJILLO = "802"
    CAJA_MUNICIPAL_AREQUIPA = "803"
    CAJA_SULLANA = "805"
    CAJA_CUZCO = "806"
    CAJA_ICA = "809"


@extend_enum(BankCodes)
class Mexico(Enum):
    BANXICO = "001"
    BANAMEX = "002"
    BANCOMEXT = "006"
    BANOBRAS = "009"
    BBVABANCOMER = "012"
    BANCO_SANTANDER = "014"
    BANJERCITO = "019"
    HSBC = "021"
    BAJIO = "030"
    INBURSA = "036"
    MIFEL = "042"
    SCOTIABANK = "044"
    BANREGIO = "058"
    INVEX = "059"
    BANSI = "060"
    AFIRME_SA = "062"
    BANORTE_IXE = "072"
    BAMSA = "106"
    MUFG = "108"
    JP_MORGAN = "110"
    BANCO_MONEX = "112"
    BANCO_VE_POR_MAS_SA = "113"
    CITIBANK = "124"
    CREDIT_SUISSE = "126"
    AZTECA = "127"
    BANCO_AUTOFIN_MEXICO = "128"
    BARCLAYS = "129"
    BANCO_COMPARTAMOS = "130"
    BANCO_MULTIVA = "132"
    BANCO_ACTINVER = "133"
    NAFIN = "135"
    INTERCAM_BANCO = "136"
    BANCOPPEL = "137"
    ABC_CAPITAL = "138"
    CONSUBANCO = "140"
    VOLSKWAGEN_BANK_SA = "141"
    CONSULTORIAINT_BANCO = "143"
    BANCO_BASE_SA = "145"
    BANKAOOL = "147"
    PAGATODO = "148"
    BANCO_INMOBILIARIO = "150"
    DONDE_BANCO = "151"
    BM_BANCREA = "152"
    BANCO_COVALTO = "154"
    BANCO_ICBC = "155"
    SABADELL = "156"
    SHINHAN = "157"
    BANCO_MIZUHO = "158"
    BANK_OF_CHINA = "159"
    BANCO_S3 = "160"
    BANCO_BIENESTAR = "166"
    HIPOTECARIA_FEDERAL = "168"
    CASA_BOLSA_MONEX = "600"
    CASA_BOLSA_GBM = "601"
    MASARI = "602"
    VALUE = "605"
    VECTOR = "608"
    CASA_BOLSA_MULTIVA = "613"
    FINAMEX = "616"
    VALMEX = "617"
    PROFUTURO_GNP_AFORE = "620"
    CB_INTERCAM = "630"
    CASA_BOLSA_CI = "631"
    FINCOMUN = "634"
    HDI_SEGUROS = "636"
    AKALA = "638"
    REFORMA = "642"
    BANCO_STP = "646"
    TACTIV_CB = "648"
    SOLUCION_ASEA_SFP = "652"
    KUSPIT_CASA_DE_BOLSA = "653"
    UNGARA = "656"
    ASP_INTEGRA_OPC = "659"
    ALTERNATIVOS = "661"
    LIBERTAD = "670"
    CAJA_POP_MEXICANA = "677"
    CRISTOBAL_COLON = "680"
    CAJA_TELEFONIST = "683"
    TRANSFER = "684"
    FONDO_FIRA = "685"
    INVERCAP = "686"
    FOMPED = "689"
    TESORED = "703"
    ARCUS = "706"
    NVIO = "710"
    BANAMEX2 = "802"
    BBVA_BANCOMER2_x = "812"
    SANTANDER2_x = "814"
    HSBC2_x = "821"
    BANORTE2_x = "872"
    CLS = "901"
    INDEVAL = "902"
    CoDi_Valida = "903"
    AZTECA2_x = "927"


@extend_enum(BankCodes)
class Brazil(Enum):
    BANCO_DO_BRASIL_SA = "001"
    BANCO_DA_AMAZONIA_SA = "003"
    BANCO_DO_NORDESTE_DO_BRASIL_SA = "004"
    BNDES = "007"
    CREDICOAMO = "010"
    C_SUISSE_HEDGING_GRIFFO_CV_SA = "011"
    BANCO_INBURSA = "012"
    STATE_STREET_BR_SA_BANCO_COMERCIAL = "014"
    UBS_BRASIL_CCTVM_SA = "015"
    CCM_DESP_TRANS_SC_E_RS = "016"
    BNY_MELLON_BANCO_SA = "017"
    BANCO_TRICURY_SA = "018"
    BANCO_BANESTES_SA = "021"
    BANCO_BANDEPE_SA = "024"
    BANCO_ALFA_SA = "025"
    BANCO_ITA_CONSIGNADO_SA = "029"
    BANCO_SANTANDER_SA = "033"
    BANCO_BRADESCO_BBI_SA = "036"
    BANCO_DO_EST_DO_PA_SA = "037"
    BANCO_CARGILL_SA = "040"
    BANCO_DO_ESTADO_DO_RS_SA = "041"
    BANCO_DO_EST_DE_SE_SA = "047"
    CONFIDENCE_CC_SA = "060"
    HIPERCARD_BM_SA = "062"
    BANCO_BRADESCARD = "063"
    GOLDMAN_SACHS_DO_BRASIL_BM_SA = "064"
    BANCO_ANDBANK_SA = "065"
    BANCO_MORGAN_STANLEY_SA = "066"
    BANCO_CREFISA_SA = "069"
    BRB_BANCO_DE_BRASILIA_SA = "070"
    BANCO_JSAFRA_SA = "074"
    BANCO_ABN_AMRO_SA = "075"
    BANCO_KDB_BRASIL_SA = "076"
    BANCO_INTER = "077"
    HAITONG_BI_DO_BRASIL_SA = "078"
    PICPAY_BANK_BANCO_MLTIPLO_SA = "079"
    BT_CC_LTDA = "080"
    BANCOSEGURO_SA = "081"
    BANCO_TOPZIO_SA = "082"
    BANCO_DA_CHINA_BRASIL_SA = "083"
    UNIPRIME_DO_BRASIL_COOP = "084"
    COOPCENTRAL_AILOS = "085"
    BANCO_RANDON_SA = "088"
    CREDISAN_CC = "089"
    POLOCRED_SCMEPP_LTDA = "093"
    BANCO_FINAXIS = "094"
    TRAVELEX_BANCO_DE_CAMBIO_SA = "095"
    BANCO_B3_SA = "096"
    CREDISIS_CENTRAL_DE_COOPERATIVAS_DE_CRDITO_LTDA = "097"
    CREDIALIANA_CCR = "098"
    UNIPRIME_COOPCENTRAL_LTDA = "099"
    PLANNER_CV_SA = "100"
    RENASCENCA_DTVM_LTDA = "101"
    XP_INVESTIMENTOS_CCTVM_SA = "102"
    CAIXA_ECONOMICA_FEDERAL = "104"
    LECCA_CFI_SA = "105"
    BANCO_BOCOM_BBM_SA = "107"
    OLIVEIRA_TRUST_DTVM_SA = "111"
    NEON_CTVM_SA = "113"
    CENTRAL_COOPERATIVA_DE_CRDITO_NO_ESTADO_DO_ESPRITO_SANTO = "114"
    ADVANCED_CC_LTDA = "117"
    BCO_WESTERN_UNION = "119"
    BANCO_RODOBENS_SA = "120"
    BANCO_AGIBANK_SA = "121"
    BANCO_BRADESCO_BERJ_SA = "122"
    BANCO_WOORI_BANK_DO_BRASIL_SA = "124"
    BANCO_GENIAL = "125"
    BR_PARTNERS_BI = "126"
    CODEPE_CVC_SA = "127"
    BRAZA_BANK_SA_BCO_DE_CAMBIO = "128"
    UBS_BRASIL_BI_SA = "129"
    CARUANA_SCFI = "130"
    TULLETT_PREBON_BRASIL_CVC_LTDA = "131"
    ICBC_DO_BRASIL_BM_SA = "132"
    BGC_LIQUIDEZ_DTVM_LTDA = "134"
    CRESOL_CONFEDERAO = "133"
    CONF_NAC_COOP_CENTRAIS_UNICRED = "136"
    GET_MONEY_CC_LTDA = "138"
    INTESA_SANPAOLO_BRASIL_SA_BM = "139"
    NU_INVEST_CORRETORA_DE_VALORES_SA = "140"
    MASTER_BI_SA = "141"
    BROKER_BRASIL_CC_LTDA = "142"
    TREVISO_CC_SA = "143"
    BEXS_BCO_DE_CAMBIO_SA = "144"
    LEVYCAM_CCV_LTDA = "145"
    GUITTA_CC_LTDA = "146"
    FACTA_SA_CFI = "149"
    ICAP_DO_BRASIL_CTVM_LTDA = "157"
    CASA_CREDITO_SA_SCM = "159"
    BRL_TRUST_DTVM_SA = "173"
    PEFISA_SA_CFI = "174"
    GUIDE = "177"
    CM_CAPITAL_MARKETS_CCTVM_LTDA = "180"
    SOCRED_SA_SCMEPP = "183"
    BANCO_ITA_BBA_SA = "184"
    ATIVA_SA_INVESTIMENTOS_CCTVM = "188"
    HS_FINANCEIRA = "189"
    SERVICOOP = "190"
    NOVA_FUTURA_CTVM_LTDA = "191"
    PARMETAL_DTVM_LTDA = "194"
    VALOR_SCD_SA = "195"
    FAIR_CC_SA = "196"
    STONE_IP_SA = "197"
    BANCO_BRADESCO_CARTOES_SA = "204"
    BANCO_BTG_PACTUAL_SA = "208"
    BANCO_ORIGINAL = "212"
    BANCO_ARBI_SA = "213"
    BANCO_JOHN_DEERE_SA = "217"
    BANCO_BS2_SA = "218"
    BANCO_CRDIT_AGRICOLE_BR_SA = "222"
    BANCO_FIBRA_SA = "224"
    BANCO_CIFRA = "233"
    BANCO_BRADESCO_SA = "237"
    BANCO_CLASSICO_SA = "241"
    BANCO_MASTER = "243"
    BANCO_ABC_BRASIL_SA = "246"
    BANCO_INVESTCRED_UNIBANCO_SA = "249"
    BCV_BANCO_CRDITO_E_VAREJO_SA = "250"
    BEXS_CC_SA = "253"
    PARANA_BANCO_SA = "254"
    MONEYCORP_BCO_DE_CAMBIO_SA = "259"
    NU_PAGAMENTOS_IP = "260"
    BANCO_FATOR_SA = "265"
    BANCO_CEDULA_SA = "266"
    BARI_CIA_HIPOTECARIA = "268"
    BCO_HSBC_SA = "269"
    SAGITUR_CC = "270"
    IB_CCTVM_SA = "271"
    AGK_CC_SA = "272"
    CCR_DE_SAO_MIGUEL_DO_OESTE = "273"
    BMP_SCMEPP_LTDA = "274"
    BCO_SENFF_SA = "276"
    GENIAL_INVESTIMENTOS_CVM_SA = "278"
    COOP_DE_PRIMAVERA_DO_LESTE = "279"
    WILL_FINANCEIRA_SA_CFI = "280"
    CCR_COOPAVEL = "281"
    RB_INVESTIMENTOS_DTVM_LTDA = "283"
    FRENTE_CC_SA = "285"
    CAROL_DTVM_LTDA = "288"
    EFX_CC_LTDA = "289"
    PAGSEGURO_INTERNET_IP_SA = "290"
    BS2_DTVM_SA = "292"
    LASTRO_RDV_DTVM_LTDA = "293"
    OZ_CORRETORA_DE_CAMBIO_SA = "296"
    VIPS_CC_LTDA = "298"
    BCO_AFINZ_SA_BM = "299"
    BANCO_LA_NACION_ARGENTINA = "300"
    DOCK_IP_SA = "301"
    PORTOPAR_DTVM_LTDA = "306"
    TERRA_INVESTIMENTOS_DTVM = "307"
    CAMBIONET_CC_LTDA = "309"
    VORTX_DTVM_LTDA = "310"
    DOURADA_CORRETORA = "311"
    HSCM_SCMEPP_LTDA = "312"
    AMAZANIA_CC_LTDA = "313"
    BANCO_BMG_SA = "318"
    OM_DTVM_LTDA = "319"
    BANCO_CCB_BRASIL_SA = "320"
    CREFAZ_SCMEPP_LTDA = "321"
    CCR_DE_ABELARDO_LUZ = "322"
    MERCADO_PAGO_IP_LTDA = "323"
    CARTOS_SCD_SA = "324"
    ARAMA_DTVM_SA = "325"
    PARATICFI_SA = "326"
    CECM_FABRIC_CALAADOS_SAPIRANGA = "328"
    QI_SCD_SA = "329"
    BANCO_BARI_SA = "330"
    FRAM_CAPITAL_DTVM_SA = "331"
    ACESSO_SOLUAA_ES_DE_PAGAMENTO_SA_INSTITUIAAO_DE_PAGAMENTO = "332"
    BANCO_BESA_SA = "334"
    BANCO_DIGIO = "335"
    BCO_C6_SA = "336"
    SUPERDIGITAL_I_P_SA = "340"
    BANCO_ITAU_UNIBANCO_SA = "341"
    CREDITAS_SCD = "342"
    FFA_SCMEPP_LTDA = "343"
    BCO_XP_SA = "348"
    AL5_SA_CFI = "349"
    CREHNOR_LARANJEIRAS = "350"
    TORO_CTVM_SA = "352"
    ATIMO_SCD_SA = "355"
    MIDWAY_SA_SCFI = "358"
    ZEMA_CFI_SA = "359"
    TRINUS_CAPITAL_DTVM = "360"
    CIELO_IP_SA = "362"
    SINGULARE_CTVM_SA = "363"
    EFA_SA_IP = "364"
    SIMPAUL = "365"
    BANCO_SOCIETE_GENERALE_BRASIL = "366"
    VITREO_DTVM_SA = "367"
    BCO_CSF_SA = "368"
    BANCO_MIZUHO_SA = "370"
    WARREN_CVMC_LTDA = "371"
    UP_P_SEP_SA = "373"
    REALIZE_CFI_SA = "374"
    BMS_SCD_SA = "377"
    BCO_BRASILEIRO_DE_CRADITO_SA = "378"
    CECM_COOPERFORTE = "379"
    BANCO_JP_MORGAN_SA = "376"
    PICPAY = "380"
    BCO_MERCEDES_BENZ_SA = "381"
    FIDUCIA_SCMEPP_LTDA = "382"
    EBANX_IP_LTDA = "383"
    GLOBAL_SCM_LTDA = "384"
    CECM_DOS_TRAB_PORT_DA_G_VITOR = "385"
    NU_FINANCEIRA_SA_CFI = "386"
    BCO_TOYOTA_DO_BRASIL_SA = "387"
    BANCO_MERCANTIL_DO_BRASIL_SA = "389"
    BCO_GM_SA = "390"
    CCR_DE_IBIAM = "391"
    BCO_VOLKSWAGEN_SA = "393"
    BANCO_BRADESCO_FINANCIAMENTOS_SA = "394"
    F_D_GOLD_DTVM_LTDA = "395"
    HUB_IP_SA = "396"
    LISTO_SCD_SA = "397"
    IDEAL_CTVM_SA = "398"
    KIRTON_BANK = "399"
    COOP_CREDITAG = "400"
    IUGU_IP_SA = "401"
    COBUCCIO_SA_SCFI = "402"
    CORA_SCD_SA = "403"
    SUMUP_SCD_SA = "404"
    ACCREDITO_SCD_SA = "406"
    ANDIGO_INVESTIMENTOS_DTVM_LTDA = "407"
    BONUSPAGO_SCD_SA = "408"
    PLANNER_SOCIEDADE_DE_CRADITO_DIRETO = "410"
    VIA_CERTA_FINANCIADORA_SA_CFI = "411"
    SOCIAL_BANK_SA = "412"
    BCO_BV_SA = "413"
    LEND_SCD_SA = "414"
    LAMARA_SCD_SA = "416"
    ZIPDIN_SCD_SA = "418"
    NUMBRS_SCD_SA = "419"
    CC_LAR_CREDI = "421"
    BANCO_SAFRA_SA = "422"
    COLUNA_SA_DTVM = "423"
    SOCINAL_SA_CFI = "425"
    NEON_FINANCEIRACFI_SA = "426"
    CRED_UFES = "427"
    CREDSYSTEM_SCD_SA = "428"
    CREDIARE_CFI_SA = "429"
    CCR_SEARA = "430"
    BR_CAPITAL_DTVM_SA = "433"
    DELCRED_SCD_SA = "435"
    TRUSTEE_DTVM_LTDA = "438"
    ID_CTVM = "439"
    CREDIBRF_COOP = "440"
    MAGNETISDTVM = "442"
    CREDIHOME_SCD = "443"
    TRINUS_SCD_SA = "444"
    PLANTAE_CFI = "445"
    MIRAE_ASSET_CCTVM_LTDA = "447"
    HEMERA_DTVM_LTDA = "448"
    DM = "449"
    FITBANK_IP = "450"
    J17SCD_SA = "451"
    CREDIFIT_SCD_SA = "452"
    MARITO_DTVM_LTDA = "454"
    FAŠNIX_DTVM_LTDA = "455"
    BANCO_MUFG_BRASIL_SA = "456"
    UY3_SCD_SA = "457"
    HEDGE_INVESTMENTS_DTVM_LTDA = "458"
    CCM_SERV_PAšBLICOS_SP = "459"
    UNAVANTI_SCD_SA = "460"
    ASAAS_IP_SA = "461"
    STARK_SCD_SA = "462"
    AZUMI_DTVM = "463"
    BANCO_SUMITOMO_MITSUI_BRASIL_SA = "464"
    CAPITAL_CONSIG_SCD_SA = "465"
    MASTER_SA_CCTVM = "467"
    PORTOSEG_SA_CFI = "468"
    LIGA_INVEST_DTVM_LTDA = "469"
    CDC_SCD_SA = "470"
    CECM_SERV_PUBL_PINHAO = "471"
    BANCO_CAIXA_GERAL_BRASIL_SA = "473"
    BCO_YAMAHA_MOTOR_SA = "475"
    CITIBANK_NA = "477"
    GAZINCRED_SA_SCFI = "478"
    BCO_ITAUBANK_SA = "479"
    SUPERLAGICA_SCD_SA = "481"
    SBCASH_SCD = "482"
    MAF_DTVM_SA = "484"
    DEUTSCHE_BANK_SABANCO_ALEMAO = "487"
    JPMORGAN_CHASE_BANK = "488"
    BANCO_LA_PROVINCIA_B_AIRES_BCE = "495"
    BANCO_CREDIT_SUISSE_SA = "505"
    RJI = "506"
    SCFI_EFA_SA = "507"
    AVENUE_SECURITIES_DTVM_LTDA = "508"
    CELCOIN_IP_SA = "509"
    FFCRED_SCD_SA = "510"
    MAGNUM_SCD = "511"
    FINVEST_DTVM = "512"
    ATF_CREDIT_SCD_SA = "513"
    QISTA_SA_CFI = "516"
    MERCADO_CRADITO_SCFI_SA = "518"
    LIONS_TRUST_DTVM = "519"
    PEAK_SEP_SA = "521"
    RED_SCD_SA = "522"
    HR_DIGITAL_SCD = "523"
    WNT_CAPITAL_DTVM = "524"
    INTERCAM_CC_LTDA = "525"
    MONETARIE_SCD = "526"
    ATICCA_SCD_SA = "527"
    REAG_DTVM_SA = "528"
    PINBANK_IP = "529"
    SER_FINANCE_SCD_SA = "530"
    EAGLE_SCD_SA = "532"
    EWALLY_IP_SA = "534"
    MARU_SCD_SA = "535"
    NEON_PAGAMENTOS_SA_IP = "536"
    MICROCASH_SCMEPP_LTDA = "537"
    SANTINVEST_SA_CFI = "539"
    FDO_GARANTIDOR_CRADITOS = "541"
    SENSO_CCVM_SA = "545"
    U4C_INSTITUIAAO_DE_PAGAMENTO_SA = "546"
    BANCO_LUSO_BRASILEIRO_SA = "600"
    BANCO_INDUSTRIAL_DO_BRASIL_SA = "604"
    BANCO_VR_SA = "610"
    BANCO_PAULISTA_SA = "611"
    BANCO_GUANABARA_SA = "612"
    OMNI_BANCO_SA = "613"
    BANCO_PAN = "623"
    BANCO_C6_CONSIG = "626"
    BANCO_LETSBANK_SA = "630"
    BANCO_RENDIMENTO_SA = "633"
    BANCO_TRIANGULO_SA = "634"
    BANCO_SOFISA_SA = "637"
    BANCO_PINE_SA = "643"
    BANCO_VOITER = "653"
    BANCO_DIGIMAIS_SA = "654"
    BANCO_VOTORANTIM_SA = "655"
    BANCO_DAYCOVAL_SA = "707"
    BCO_OURINVEST_SA = "712"
    BCO_RNX_SA = "720"
    BANCO_CETELEM_SA = "739"
    BANCO_RIBEIRAO_PRETO_SA = "741"
    BANCO_SEMEAR = "743"
    BANCO_CITIBANK_SA = "745"
    BANCO_MODAL_SA = "746"
    BANCO_RABOBANK_INTL_BRASIL_SA = "747"
    BANCO_COOPERATIVO_SICREDI_SA = "748"
    SCOTIABANK_BRASIL = "751"
    BANCO_BNP_PARIBAS_BRASIL_SA = "752"
    NOVO_BANCO_CONTINENTAL_SA_BM = "753"
    BANCO_SISTEMA = "754"
    BOFA_MERRILL_LYNCH_BM_SA = "755"
    BANCO_SICOOB_SA = "756"
    BANCO_KEB_HANA_DO_BRASIL_SA = "757"
    TRANSFEERA_PAGAMENTOS_SA = "27084098"


@extend_enum(BankCodes)
class Uruguay(Enum):
    CITIBANK = "000"
    BROU = "001"
    BANCO_DE_SEGUROS_DEL = "063"
    HIPOTECARIO = "091"
    BANCO_BANDES_URUGUAY = "110"
    BANCO_ITAU = "113"
    CREDIT_URUGUAY = "114"
    AMERICAN_EXPRESS = "120"
    SCOTIABANK = "128"
    DISCOUNT = "134"
    SANTANDER = "137"
    BBVA_URUGUAY_SA = "153"
    HSBC_BANK_URUGUAY = "157"
    HERITAGE = "162"
    CITIBANK_NEW_YORK = "206"
    ABN_AMRO_BANK = "212"
    NOT_USED = "213"
    LLOYDS = "216"
    NACION_ARGENTINA = "246"
    HAPOALIM_C_B = "321"
    LEUMI_LE_ISRAEL_C_B = "323"
    EXPRINTER_C_B = "356"
    PRBA_UY = "361"
    BEAL_C_B = "364"
    BNL_CASA_FINAN = "374"
    CREDIT_LYONNAIS = "375"
    BNP_URUGUAY = "376"
    IFE_EXTERBANCA = "382"
    IFE_SAFRA_URUGUAY_S = "392"
    IFE_MERRIL_LYNCH = "394"
    BOLSA_DE_VALORES_DE = "549"
    VARLIX = "552"
    INDUMEX = "558"
    LESPAN = "566"
    ILREMA_SA = "583"
    CAJA_BANCARIA = "622"
    ECON_UY = "452"
    AFAL_UY = "815"
    NUMM_UY = "6917"


@extend_enum(BankCodes)
class Argentina(Enum):
    pass


@extend_enum(BankCodes)
class Colombia(Enum):
    BANCO_DE_BOGOTA = "001"
    BANCO_POPULAR = "002"
    BANCAFE = "005"
    BANCO_ITAU = "006"
    BANCOLOMBIA = "007"
    BANCOLOMBIA_2 = "1007"
    CITIBANK = "009"
    BANCO_GNB_SUDAMERIS_COLOMBIA = "012"
    BANCO_BBVA = "013"
    BANCO_SCOTIABANK_COLPATRIA = "042"
    BANCO_DE_OCCIDENTE = "023"
    BANCOLDEX = "031"
    BANCO_CAJA_SOCIAL = "030"
    BANCO_DAVIVIENDA = "039"
    BANCO_AGRARIO = "043"
    BANCO_AV_VILLAS = "049"
    BANCO_BANCIEN = "051"
    BANCAMIA = "052"
    BANCO_W = "053"
    BANCO_COOMEVA = "054"
    BANCO_FINANDINA = "055"
    BANCO_FALABELLA = "056"
    BANCO_PICHINCHA = "057"
    BANCO_SANTANDER_DE_NEGOCIOS_COLOMBIA = "059"
    MIBANCO = "062"
    BANCO_SERFINANZA = "063"
    BANCO_JP_MORGAN_COLOMBIA = "064"
    LULO_BANK = "065"
    BANCO_BTG_PACTUAL_COLOMBIA = "066"
    BANCO_UNION = "067"
    BANCO_CONTACTAR = "068"


@extend_enum(BankCodes)
class Chile(Enum):
    BANCO_DE_CHILE = "0001"
    BANCO_INTERNACIONAL = "0009"
    BANCO_ESTADO = "0012"
    SCOTIABANK = "0014"
    BCI = "0016"
    BANCO_BICE = "0028"
    HSBC_BANK = "0031"
    SANTANDER = "0037"
    BANCO_ITAÚ = "0039"
    JPMORGAN_CHASE_BANK = "0041"
    SECURITY = "0049"
    BANCO_FALABELLA = "0051"
    BANCO_RIPLEY = "0053"
    BANCO_CONSORCIO = "0055"
    BBVA = "0504"
    COOPEUCH = "0672"
    PREPAGO_LOS_HEROES = "0729"
    TENPO_PREPAGO = "0730"
    TAPP_CAJA_LOS_ANDES = "0732"
    MERCADO_PAGO = "0875"
    SIMULATED_SANDBOX_BANK = "0000"


@extend_enum(BankCodes)
class USA(Enum):
    pass


@extend_enum(BankCodes)
class Ecuador(Enum):
    BANCO_PACIFICO = "0030"
    BANCO_GUAYAQUIL = "0017"
    BANCO_BANINTER = "0032"
    BANCO_AMAZONAS = "0034"
    BANCO_PICHINCHA = "0010"
    BANCO_BOLIVARIANO = "0037"
    BANCO_GENERAL_RUMINAHUI_SA = "0042"
    BANCO_PRODUBANCO = "0036"
    BANCO_SOLIDARIO = "0059"
    BANCO_DEL_AUSTRO = "0035"
    BANCO_DELBANK_SA = "0201"
    BANCO_DINERS_CLUB = "0232"
    BANCO_PROCREDIT_SA = "0060"
    BANCO_DE_LOJA = "0029"
    COOP_AY_C_COOPROGRESO_LTDA = "0218"
    COOP_AHORRO_Y_CREDITO_MUSHUC_RUNA_LTDA = "0412"
    COOP_AHORRO_Y_CREDITO_PADRE_JULIAN_LORENTE_LTDA = "0421"
    COOP_MANUEL_ESTEBAN_GODOY_ORTEGA_LTDA_COOPMEGO = "0420"
    COOP_DE_AHORRO_Y_CREDITO_FERNANDO_DAQUILEMA = "0429"
    COOP_AHORRO_Y_CREDITO_15_DE_ABRIL_LTDA = "0070"
    COOP_AHORRO_Y_CREDITO_23_DE_JULIO = "0205"
    COOP_AHORRO_Y_CREDITO_29_DE_OCTUBRE = "0206"
    COOP_AHORRO_Y_CREDITO_ANDALUCIA = "0207"
    COOP_AHORRO_Y_CREDITO_PABLO_MUNOZ_VEGA = "0217"
    COOP_AHORRO_Y_CREDITO_SAN_FRANCISCO = "0220"
    COOP_AHORRO_Y_CREDITO_SAN_MIGUEL_DE_LOS_BANCOS = "0330"
    COOP_AHORRO_Y_CREDITO_DE_LA_PEQUENA_EMPRESA_GUALAQUIZA = "0277"
    COOP_AHORRO_Y_CREDITO_EL_SAGRARIO = "0210"
    COOP_CALCETA_LTDA = "0324"
    COOP_JUVENTUD_ECUATORIANA_PROGRESISTA_LTDA_JEP = "0213"
    COOP_DE_AYC_CHIBULEO_LTDA = "0604"
    COOP_DE_AHORRO_Y_CREDITO_ATUNTAQUI_LTDA = "0223"
    COOP_DE_AHORRO_Y_CREDITO_COMERCIO_LTDA_PORTOVIEJO = "0224"
    COOP_AHORRO_Y_CREDITO_CHONE_LTDA = "0229"
    COOP_DE_AHORRO_Y_CREDITO_POLICIA_NACIONAL = "0079"
    COOPERATIVA_DE_AHORRO_Y_CREDITO_CREA_LTDA_MIES = "0603"
    MUTUALISTA_IMBABURA = "0236"
    MUTUALISTA_PICHINCHA = "0238"
