Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
115 / 115
100.00% covered (success)
100.00%
7 / 7
CRAP
100.00% covered (success)
100.00%
1 / 1
BrazilianBankCode
100.00% covered (success)
100.00%
115 / 115
100.00% covered (success)
100.00%
7 / 7
10
100.00% covered (success)
100.00%
1 / 1
 label
100.00% covered (success)
100.00%
52 / 52
100.00% covered (success)
100.00%
1 / 1
1
 shortName
100.00% covered (success)
100.00%
31 / 31
100.00% covered (success)
100.00%
1 / 1
1
 ispb
100.00% covered (success)
100.00%
19 / 19
100.00% covered (success)
100.00%
1 / 1
1
 labelList
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 toArray
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
2
 toArrayWithLabels
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
2
 toArrayWithShortNames
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3declare(strict_types=1);
4
5namespace DevToolbelt\Enums\Brazil;
6
7use DevToolbelt\Enums\EnumInterface;
8
9enum BrazilianBankCode: string implements EnumInterface
10{
11    case BANCO_DO_BRASIL = '001';
12    case BANCO_CENTRAL = '002';
13    case BANCO_DA_AMAZONIA = '003';
14    case BANCO_DO_NORDESTE = '004';
15    case BNDES = '007';
16    case CREDICOAMO = '010';
17    case CREDIT_SUISSE = '011';
18    case BANCO_INBURSA = '012';
19    case STATE_STREET = '014';
20    case UBS_BRASIL = '015';
21    case SICOOB = '016';
22    case BNY_MELLON = '017';
23    case TRICURY = '018';
24    case BANESTES = '021';
25    case BANCO_BANDEPE = '024';
26    case ALFA = '025';
27    case SANTANDER = '033';
28    case BANCO_BEG = '037';
29    case BANCO_CARGILL = '040';
30    case BANRISUL = '041';
31    case BANCO_DO_ESTADO_DE_SERGIPE = '047';
32    case BRB = '070';
33    case BANCO_COMERCIAL_E_DE_INVESTIMENTO_SUDAMERIS = '073';
34    case BANCO_J_SAFRA = '074';
35    case BANCO_ABN_AMRO = '075';
36    case BANCO_KDB = '076';
37    case BANCO_INTER = '077';
38    case HAITONG = '078';
39    case ORIGINAL_AGRONEGOCIO = '079';
40    case BT_FINANCIERA = '080';
41    case BANCOSEGURO = '081';
42    case TOPAZIO = '082';
43    case BANCO_DA_CHINA = '083';
44    case UNIPRIME_NORTE_DO_PARANA = '084';
45    case COOPERATIVA_AILOS = '085';
46    case BANCO_RANDON = '088';
47    case CREDISAN = '089';
48    case BANCO_MASTER = '091';
49    case BRK_FINANCEIRA = '092';
50    case POLOCRED = '093';
51    case BANCO_FINAXIS = '094';
52    case TRAVELEX = '095';
53    case BANCO_BMF = '096';
54    case CREDISIS = '097';
55    case CREDIALIANCA = '098';
56    case UNIPRIME_CENTRAL = '099';
57    case PLANNER = '100';
58    case RENASCENCA = '101';
59    case XP_INVESTIMENTOS = '102';
60    case CAIXA_ECONOMICA_FEDERAL = '104';
61    case LECCA = '105';
62    case BANCO_BOCOM_BBM = '107';
63    case PORTOCRED = '108';
64    case OLIVEIRA_TRUST = '111';
65    case MAGLIANO = '113';
66    case CENTRAL_COOPERATIVA_DE_CREDITO = '114';
67    case ADVANCED = '117';
68    case WESTERN_UNION = '119';
69    case BANCO_RODOBENS = '120';
70    case BANCO_AGIBANK = '121';
71    case BANCO_BRADESCO_BERJ = '122';
72    case BANCO_WOORI = '124';
73    case BANCO_GENIAL = '125';
74    case BR_PARTNERS = '126';
75    case CODEPE = '127';
76    case MS_BANK = '128';
77    case UBS_BRASIL_BI = '129';
78    case CARUANA = '130';
79    case TULLETT_PREBON = '131';
80    case ICBC_DO_BRASIL = '132';
81    case CRESOL = '133';
82    case BGC_LIQUIDEZ = '134';
83    case GRADUAL = '135';
84    case UNICRED = '136';
85    case MULTIMONEY = '137';
86    case GET_MONEY = '138';
87    case INTESA_SANPAOLO = '139';
88    case EASYNVEST = '140';
89    case BROKER_BRASIL = '142';
90    case TREVISO = '143';
91    case BEXS = '144';
92    case LEVYCAM = '145';
93    case GUITTA = '146';
94    case FACTA_FINANCEIRA = '149';
95    case ICAP = '157';
96    case BANCO_OLE = '169';
97    case BANCO_PLURAL = '173';
98    case PEFISA = '174';
99    case GENIAL_INVESTIMENTOS = '177';
100    case CM_CAPITAL = '180';
101    case DACASA_FINANCEIRA = '182';
102    case SOCRED = '183';
103    case BANCO_ITAU_BBA = '184';
104    case BANCO_NEON = '188';
105    case HS_FINANCEIRA = '189';
106    case COOPERATIVA_DE_CREDITO_RURAL_COOPAVEL = '190';
107    case NOVA_FUTURA = '191';
108    case CARREFOUR = '192';
109    case PAGA_MAIS = '193';
110    case BANCO_DIGITAL = '194';
111    case VALOR_CAPITAL = '195';
112    case FAIR_CREDITO = '197';
113    case BANCO_BRADESCO_CARTOES = '204';
114    case BANCO_KEB_HANA = '218';
115    case BANCO_CREDIT_AGRICOLE = '222';
116    case BANCO_FIBRA = '224';
117    case BANCO_CIFRA = '233';
118    case BRADESCO = '237';
119    case BANCO_CLASSICO = '241';
120    case BANCO_MAXIMA = '243';
121    case BANCO_ABC_BRASIL = '246';
122    case BANCO_INVESTCRED_UNIBANCO = '249';
123    case BCV = '250';
124    case PARANÁ_BANCO = '254';
125    case NUBANK = '260';
126    case BANCO_FATOR = '265';
127    case CEDULA = '266';
128    case BANCO_CSUL = '269';
129    case SAGITUR = '270';
130    case IB_CCTVM = '271';
131    case AGK = '272';
132    case CCRC_SAO_MIGUEL_OESTE = '273';
133    case MONEY_PLUS = '274';
134    case BANCO_SENFF = '276';
135    case GENIAL = '278';
136    case CCR_PRIMAVERA_CAMPO = '279';
137    case AVISTA = '280';
138    case CCR_COOPAVEL = '281';
139    case RB_INVESTIMENTOS = '283';
140    case FRENTE = '285';
141    case CCR_ALTO_VALE = '286';
142    case CCR_DEXIS = '287';
143    case CAROL = '288';
144    case DECYSEO = '289';
145    case PAGSEGURO = '290';
146    case BS2 = '291';
147    case LASTRO_RDV = '293';
148    case VISION = '296';
149    case VIPS = '298';
150    case SOROCRED = '299';
151    case BANCO_DE_LA_NACION_ARGENTINA = '300';
152    case BPP = '301';
153    case PICPAY = '306';
154    case TERRA_INVESTIMENTOS = '307';
155    case CAMBIO_POSITIVO = '309';
156    case VORTX = '310';
157    case CHINA_CONSTRUCTION = '315';
158    case BMG = '318';
159    case OM = '319';
160    case CCR_LOJAS = '320';
161    case CREFAZ = '321';
162    case CCR_UBERABA = '322';
163    case MERCADO_PAGO = '323';
164    case CARTOS = '324';
165    case ORAMA = '325';
166    case PARATI = '326';
167    case CECM_COOPERFORTE = '329';
168    case BANCO_BARI = '330';
169    case BANCO_SIMPLES = '332';
170    case BANCO_DIGIO = '335';
171    case C6_BANK = '336';
172    case SUPER_PAGAMENTOS = '340';
173    case ITAU_UNIBANCO = '341';
174    case CREDITAS = '342';
175    case FFA = '343';
176    case BANCO_XP = '348';
177    case AL5 = '349';
178    case CREHNOR_LARANJEIRAS = '350';
179    case TORO_INVESTIMENTOS = '352';
180    case NECTON = '354';
181    case ÓTIMO = '355';
182    case MIDWAY = '358';
183    case ZEMA = '359';
184    case TRINUS_CAPITAL = '360';
185    case CIELO = '362';
186    case SOCOPA = '363';
187    case GERENCIANET_PAGAMENTOS_DO_BRASIL = '364';
188    case SIMPAUL = '365';
189    case BANCO_SOCIETE_GENERALE_BRASIL = '366';
190    case VITREO = '367';
191    case BANCO_CSF = '368';
192    case BANCO_MIZUHO = '370';
193    case WARREN = '371';
194    case UP_INVEST = '373';
195    case REALIZE = '374';
196    case BANCO_J_P_MORGAN = '376';
197    case BMS = '377';
198    case BBC_LEASING = '378';
199    case CECM_COOPERFIBRA = '379';
200    case PICPAY_BANK = '380';
201    case BANCO_MERCEDES_BENZ = '381';
202    case FIDUCIA = '382';
203    case EBANX = '383';
204    case GLOBAL_SCM = '384';
205    case NU_FINANCEIRA = '386';
206    case BANCO_TOYOTA = '387';
207    case BANCO_MERCANTIL = '389';
208    case BANCO_GM = '390';
209    case CCR_IBIAM = '391';
210    case BANCO_VOLKSWAGEN = '393';
211    case BANCO_BRADESCO_FINANCIAMENTOS = '394';
212    case F_D_GOLD = '395';
213    case HUB_PAGAMENTOS = '396';
214    case LISTO = '397';
215    case IDEAL = '398';
216    case KIRTON = '399';
217    case COOP_CREDITAG = '400';
218    case IUGU = '401';
219    case COBUCCIO = '402';
220    case CORA = '403';
221    case SUMUP = '404';
222    case ACCREDITO = '406';
223    case SICREDI = '748';
224    case SCOTIABANK_BRASIL = '751';
225    case BANCO_BANCOOB = '756';
226
227    public function label(): string
228    {
229        return match ($this) {
230            self::BANCO_DO_BRASIL => 'Banco do Brasil S.A.',
231            self::BANCO_CENTRAL => 'Banco Central do Brasil',
232            self::BANCO_DA_AMAZONIA => 'Banco da Amazônia S.A.',
233            self::BANCO_DO_NORDESTE => 'Banco do Nordeste do Brasil S.A.',
234            self::BNDES => 'Banco Nacional de Desenvolvimento Econômico e Social',
235            self::CREDICOAMO => 'Credicoamo Crédito Rural Cooperativa',
236            self::CREDIT_SUISSE => 'Credit Suisse Hedging-Griffo CV S/A',
237            self::BANCO_INBURSA => 'Banco Inbursa S.A.',
238            self::STATE_STREET => 'State Street Brasil S.A.',
239            self::UBS_BRASIL => 'UBS Brasil Corretora de Câmbio, Títulos e Valores Mobiliários S.A.',
240            self::SICOOB => 'Sicoob Confederação',
241            self::BNY_MELLON => 'BNY Mellon Banco S.A.',
242            self::TRICURY => 'Banco Tricury S.A.',
243            self::BANESTES => 'Banco Banestes S.A.',
244            self::BANCO_BANDEPE => 'Banco Bandepe S.A.',
245            self::ALFA => 'Banco Alfa S.A.',
246            self::SANTANDER => 'Banco Santander Brasil S.A.',
247            self::BANCO_BEG => 'Banco do Estado de Goiás S.A.',
248            self::BANCO_CARGILL => 'Banco Cargill S.A.',
249            self::BANRISUL => 'Banco do Estado do Rio Grande do Sul S.A.',
250            self::BANCO_DO_ESTADO_DE_SERGIPE => 'Banco do Estado de Sergipe S.A.',
251            self::BRB => 'BRB - Banco de Brasília S.A.',
252            self::BANCO_INTER => 'Banco Inter S.A.',
253            self::CAIXA_ECONOMICA_FEDERAL => 'Caixa Econômica Federal',
254            self::XP_INVESTIMENTOS => 'XP Investimentos CCTVM S/A',
255            self::BRADESCO => 'Banco Bradesco S.A.',
256            self::NUBANK => 'Nu Pagamentos S.A. (Nubank)',
257            self::ITAU_UNIBANCO => 'Itaú Unibanco S.A.',
258            self::C6_BANK => 'Banco C6 S.A.',
259            self::PAGSEGURO => 'PagSeguro Internet S.A.',
260            self::MERCADO_PAGO => 'Mercado Pago',
261            self::PICPAY => 'PicPay Servicos S.A.',
262            self::BANCO_NEON => 'Banco Neon S.A.',
263            self::ORIGINAL_AGRONEGOCIO => 'Banco Original do Agronegócio S.A.',
264            self::BANCO_J_SAFRA => 'Banco Safra S.A.',
265            self::SICREDI => 'Banco Cooperativo Sicredi S.A.',
266            self::BANCO_BANCOOB => 'Banco Cooperativo do Brasil S.A. - Bancoob',
267            self::BMG => 'Banco BMG S.A.',
268            self::BS2 => 'Banco BS2 S.A.',
269            self::BANCO_BARI => 'Banco Bari de Investimentos e Financiamentos S.A.',
270            self::BANCO_DIGIO => 'Banco Digio S.A.',
271            self::CREDITAS => 'Creditas Sociedade de Crédito Direto S.A.',
272            self::CORA => 'Cora Sociedade de Crédito Direto S.A.',
273            self::BANCO_XP => 'Banco XP S.A.',
274            self::WARREN => 'Warren Corretora de Valores Mobiliários e Câmbio Ltda.',
275            self::BANCO_FIBRA => 'Banco Fibra S.A.',
276            self::BANCO_ABC_BRASIL => 'Banco ABC Brasil S.A.',
277            self::BANCO_FATOR => 'Banco Fator S.A.',
278            self::BANCO_CLASSICO => 'Banco Clássico S.A.',
279            default => $this->name,
280        };
281    }
282
283    public function shortName(): string
284    {
285        return match ($this) {
286            self::BANCO_DO_BRASIL => 'Banco do Brasil',
287            self::BANCO_CENTRAL => 'Banco Central',
288            self::BANCO_DA_AMAZONIA => 'Banco da Amazônia',
289            self::BANCO_DO_NORDESTE => 'Banco do Nordeste',
290            self::BNDES => 'BNDES',
291            self::CAIXA_ECONOMICA_FEDERAL => 'Caixa',
292            self::SANTANDER => 'Santander',
293            self::BRADESCO => 'Bradesco',
294            self::ITAU_UNIBANCO => 'Itaú',
295            self::NUBANK => 'Nubank',
296            self::BANCO_INTER => 'Inter',
297            self::C6_BANK => 'C6 Bank',
298            self::PAGSEGURO => 'PagBank',
299            self::MERCADO_PAGO => 'Mercado Pago',
300            self::PICPAY => 'PicPay',
301            self::BANCO_NEON => 'Neon',
302            self::SICREDI => 'Sicredi',
303            self::SICOOB => 'Sicoob',
304            self::BANRISUL => 'Banrisul',
305            self::BRB => 'BRB',
306            self::BMG => 'BMG',
307            self::BS2 => 'BS2',
308            self::CORA => 'Cora',
309            self::CREDITAS => 'Creditas',
310            self::BANCO_BARI => 'Bari',
311            self::BANCO_DIGIO => 'Digio',
312            self::XP_INVESTIMENTOS => 'XP',
313            self::WARREN => 'Warren',
314            default => $this->name,
315        };
316    }
317
318    public function ispb(): string
319    {
320        return match ($this) {
321            self::BANCO_DO_BRASIL => '00000000',
322            self::BANCO_CENTRAL => '00038166',
323            self::BANCO_DA_AMAZONIA => '04902979',
324            self::BANCO_DO_NORDESTE => '07237373',
325            self::CAIXA_ECONOMICA_FEDERAL => '00360305',
326            self::SANTANDER => '90400888',
327            self::BRADESCO => '60746948',
328            self::ITAU_UNIBANCO => '60701190',
329            self::NUBANK => '18236120',
330            self::BANCO_INTER => '00416968',
331            self::C6_BANK => '31872495',
332            self::PAGSEGURO => '08561701',
333            self::MERCADO_PAGO => '10573521',
334            self::PICPAY => '22896431',
335            self::SICREDI => '01181521',
336            self::SICOOB => '02038232',
337            default => '',
338        };
339    }
340
341    /**
342     * @return string[]
343     */
344    public function labelList(): array
345    {
346        return array_map(fn (self $case) => $case->label(), self::cases());
347    }
348
349    /**
350     * @return array<string, string>
351     */
352    public static function toArray(): array
353    {
354        $result = [];
355
356        foreach (self::cases() as $bank) {
357            $result[$bank->value] = $bank->value;
358        }
359
360        return $result;
361    }
362
363    /**
364     * @return array<string, string>
365     */
366    public static function toArrayWithLabels(): array
367    {
368        $result = [];
369
370        foreach (self::cases() as $bank) {
371            $result[$bank->value] = $bank->label();
372        }
373
374        return $result;
375    }
376
377    /**
378     * @return array<string, string>
379     */
380    public static function toArrayWithShortNames(): array
381    {
382        $result = [];
383
384        foreach (self::cases() as $bank) {
385            $result[$bank->value] = $bank->shortName();
386        }
387
388        return $result;
389    }
390}