@tiare.balbi/boleto.ts 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +146 -0
- package/dist/boleto.cjs +1 -0
- package/dist/boleto.d.ts +143 -0
- package/dist/boleto.js +600 -0
- package/package.json +76 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Tiarê Balbi
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# boleto.ts
|
|
2
|
+
|
|
3
|
+
A TypeScript library for parsing and rendering Brazilian bank payment slips (boletos bancários).
|
|
4
|
+
|
|
5
|
+
This is a TypeScript fork of [boleto.js](https://github.com/guilhermearaujo/boleto.js), providing full type safety and modern ES module support.
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- 🔒 Full TypeScript support with typed objects
|
|
10
|
+
- 📊 Render barcodes as SVG
|
|
11
|
+
- ✅ Validate boleto numbers
|
|
12
|
+
- 💰 Extract payment information (amount, bank, expiration date)
|
|
13
|
+
- 🎯 Works in browsers and Node.js
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
### npm
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm install @tiarebalbi/boleto.ts
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### yarn
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
yarn add @tiarebalbi/boleto.ts
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### pnpm
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
pnpm add @tiarebalbi/boleto.ts
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Usage
|
|
36
|
+
|
|
37
|
+
### Basic Usage
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
import { Boleto } from '@tiarebalbi/boleto.ts';
|
|
41
|
+
|
|
42
|
+
const number = '34195.00008 01233.203189 64221.470004 5 84410000002000';
|
|
43
|
+
const boleto = new Boleto(number);
|
|
44
|
+
|
|
45
|
+
// Render barcode as SVG in an element
|
|
46
|
+
boleto.toSVG('#boleto');
|
|
47
|
+
|
|
48
|
+
// Or get the SVG as a string
|
|
49
|
+
const svg = boleto.toSVG();
|
|
50
|
+
console.log(svg);
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### HTML Integration
|
|
54
|
+
|
|
55
|
+
```html
|
|
56
|
+
<div id="boleto"></div>
|
|
57
|
+
|
|
58
|
+
<script type="module">
|
|
59
|
+
import { Boleto } from '@tiarebalbi/boleto.ts';
|
|
60
|
+
|
|
61
|
+
const number = '34195.00008 01233.203189 64221.470004 5 84410000002000';
|
|
62
|
+
new Boleto(number).toSVG('#boleto');
|
|
63
|
+
</script>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
The boleto number can contain only digits or be formatted with dots and spaces. The library will filter and validate the digits before rendering the barcode.
|
|
67
|
+
|
|
68
|
+
## API Reference
|
|
69
|
+
|
|
70
|
+
### Constructor
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
new Boleto(boletoNumber: string)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Creates a new Boleto instance with the provided number.
|
|
77
|
+
|
|
78
|
+
### Methods
|
|
79
|
+
|
|
80
|
+
#### Number Methods
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
// Get the raw number (digits only)
|
|
84
|
+
boleto.number();
|
|
85
|
+
// Returns: '34195000080123320318964221470004584410000002000'
|
|
86
|
+
|
|
87
|
+
// Get the formatted number (linha digitável)
|
|
88
|
+
boleto.prettyNumber();
|
|
89
|
+
// Returns: '34195.00008 01233.203189 64221.470004 5 84410000002000'
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
#### Barcode Methods
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
// Get the barcode number
|
|
96
|
+
boleto.barcode();
|
|
97
|
+
// Returns: '34195844100000020005000001233203186422147000'
|
|
98
|
+
|
|
99
|
+
// Get the checksum digit
|
|
100
|
+
boleto.checksum();
|
|
101
|
+
// Returns: '5'
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
#### Payment Information
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
// Get the payment amount
|
|
108
|
+
boleto.amount();
|
|
109
|
+
// Returns: 20.00
|
|
110
|
+
|
|
111
|
+
// Get the formatted amount
|
|
112
|
+
boleto.prettyAmount();
|
|
113
|
+
// Returns: 'R$ 20,00'
|
|
114
|
+
|
|
115
|
+
// Get the bank name
|
|
116
|
+
boleto.bank();
|
|
117
|
+
// Returns: 'Itaú'
|
|
118
|
+
|
|
119
|
+
// Get currency information
|
|
120
|
+
boleto.currency();
|
|
121
|
+
// Returns: { code: 'BRL', symbol: 'R$', decimal: ',' }
|
|
122
|
+
|
|
123
|
+
// Get the expiration date
|
|
124
|
+
boleto.expirationDate();
|
|
125
|
+
// Returns: Date object
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
#### Rendering
|
|
129
|
+
|
|
130
|
+
```typescript
|
|
131
|
+
// Render to an HTML element
|
|
132
|
+
boleto.toSVG('#element-selector');
|
|
133
|
+
|
|
134
|
+
// Get SVG as string
|
|
135
|
+
const svgString = boleto.toSVG();
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Barcode Output
|
|
139
|
+
|
|
140
|
+
The barcode is rendered as SVG, providing excellent sharpness at various sizes. Since it uses vectors instead of images, it's ideal for responsive layouts.
|
|
141
|
+
|
|
142
|
+
## License
|
|
143
|
+
|
|
144
|
+
MIT © [Tiare Balbi](https://github.com/tiarebalbi)
|
|
145
|
+
|
|
146
|
+
This project is a fork of [boleto.js](https://github.com/guilhermearaujo/boleto.js) by [Guilherme Araújo](https://github.com/guilhermearaujo).
|
package/dist/boleto.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`http://www.w3.org/2000/svg`,t=4,n=100,r={BLACK:`#000000`,WHITE:`#ffffff`},i=class i{stripes;stripeWidth;constructor(e,n=t){this.stripes=e.split(``).map(e=>parseInt(e,10)),this.stripeWidth=n}render(t){let r=document.createElementNS(e,`svg`),a=0,o=0;for(let t=0;t<this.stripes.length;t+=1,a+=o){o=this.stripeWidth*this.stripes[t];let s=document.createElementNS(e,`rect`);s.setAttribute(`width`,String(o)),s.setAttribute(`height`,String(n)),s.setAttribute(`fill`,i.color(t)),s.setAttribute(`x`,String(a)),s.setAttribute(`y`,`0`),r.appendChild(s)}if(r.setAttribute(`width`,`100%`),r.setAttribute(`height`,`100%`),r.setAttribute(`viewBox`,`0 0 ${this.viewBoxWidth()} ${n}`),t===void 0)return new XMLSerializer().serializeToString(r);let s=document.querySelector(t);return s&&s.appendChild(r),null}viewBoxWidth(){return this.stripes.reduce((e,t)=>e+t,0)*this.stripeWidth}static color(e){return e%2?r.WHITE:r.BLACK}},a=[`11221`,`21112`,`12112`,`22111`,`11212`,`21211`,`12211`,`11122`,`21121`,`12121`],o=5,s=/(..?)/g,c={START:`1111`,STOP:`211`},l=class e{static interleavePair(e){let t=parseInt(e,10),n=a[Math.floor(t/10)],r=a[t%10],i=``;for(let e=0;e<o;e+=1)i+=n[e],i+=r[e];return i}static encode(t){let n=t.match(s);return n?c.START+n.map(e.interleavePair).join(``)+c.STOP:c.START+c.STOP}};function u(e){return l.encode(e)}function d(e){let t;t=typeof e==`string`?e.split(``):[...e],t.reverse();let n=0;for(let e=0;e<t.length;e+=1)n+=(e%8+2)*parseInt(t[e],10);return(11-n%11)%10||1}var f=class extends Error{bankSlipNumber;constructor(e,t){super(e),this.name=`BoletoValidationError`,this.bankSlipNumber=t}},p=8762364e5,m=864e5,h=47,g=4,_=3,v={code:`BRL`,symbol:`R$`,decimal:`,`},y={"001":`BCO DO BRASIL S.A.`,"003":`BCO DA AMAZONIA S.A.`,"004":`BCO DO NORDESTE DO BRASIL S.A.`,"007":`BNDES`,"010":`CREDICOAMO`,"011":`UBS (BRASIL) CORRETORA DE VALORES S.A.`,"012":`BANCO INBURSA`,"014":`STATE STREET BR S.A. BCO COMERCIAL`,"015":`UBS BB CCTVM S.A.`,"016":`CCM DESP TRÂNS SC E RS`,"017":`BNY MELLON BCO S.A.`,"018":`BCO TRICURY S.A.`,"021":`BCO BANESTES S.A.`,"024":`BCO BANDEPE S.A.`,"025":`BCO ALFA S.A.`,"029":`BANCO ITAÚ CONSIGNADO S.A.`,"033":`BCO SANTANDER (BRASIL) S.A.`,"036":`BCO BBI S.A.`,"037":`BCO DO EST. DO PA S.A.`,"040":`BCO CARGILL S.A.`,"041":`BCO DO ESTADO DO RS S.A.`,"047":`BCO DO EST. DE SE S.A.`,"060":`CONFIDENCE CC S.A.`,"062":`HIPERCARD BM S.A.`,"063":`BANCO BRADESCARD`,"064":`GOLDMAN SACHS DO BRASIL BM S.A`,"065":`BCO ANDBANK S.A.`,"066":`BCO MORGAN STANLEY S.A.`,"069":`BCO CREFISA S.A.`,"070":`BRB - BCO DE BRASILIA S.A.`,"074":`BCO. J.SAFRA S.A.`,"075":`BANCO ABN AMRO CLEARING S.A.`,"076":`BCO KDB BRASIL S.A.`,"077":`BANCO INTER`,"078":`HAITONG BI DO BRASIL S.A.`,"079":`PICPAY BANK - BANCO MÚLTIPLO S.A`,"080":`BT CC LTDA.`,"081":`BANCOSEGURO S.A.`,"082":`BANCO TOPÁZIO S.A.`,"083":`BCO DA CHINA BRASIL S.A.`,"084":`SISPRIME DO BRASIL - COOP`,"085":`COOPCENTRAL AILOS`,"088":`BANCO RANDON S.A.`,"089":`CREDISAN CC`,"091":`CCCM UNICRED CENTRAL RS`,"092":`BRK S.A. CFI`,"093":`POLOCRED SCMEPP LTDA.`,"094":`BANCO FINAXIS`,"095":`BANCO TRAVELEX S.A.`,"096":`BCO B3 S.A.`,"097":`CREDISIS - CENTRAL DE COOPERATIVAS DE CRÉDITO LTDA.`,"098":`CREDIALIANÇA CCR`,"099":`UNIPRIME COOPCENTRAL LTDA.`,100:`PLANNER CV S.A.`,101:`WARREN RENA DTVM`,102:`XP INVESTIMENTOS CCTVM S/A`,104:`CAIXA ECONOMICA FEDERAL`,105:`LECCA CFI S.A.`,107:`BCO BOCOM BBM S.A.`,108:`PORTOCRED S.A. - CFI`,111:`OLIVEIRA TRUST DTVM S.A.`,113:`NEON CTVM S.A.`,114:`CENTRAL COOPERATIVA DE CRÉDITO NO ESTADO DO ESPÍRITO SANTO`,117:`ADVANCED CC LTDA`,119:`BCO WESTERN UNION`,120:`BCO RODOBENS S.A.`,121:`BCO AGIBANK S.A.`,122:`BCO BRADESCO BERJ S.A.`,124:`BCO WOORI BANK DO BRASIL S.A.`,125:`BANCO GENIAL`,126:`BR PARTNERS BI`,127:`CODEPE CVC S.A.`,128:`BRAZA BANK S.A. BCO DE CÂMBIO`,129:`UBS BB BI S.A.`,130:`CARUANA SCFI`,131:`TULLETT PREBON BRASIL CVC LTDA`,132:`ICBC DO BRASIL BM S.A.`,133:`CRESOL CONFEDERAÇÃO`,134:`BGC LIQUIDEZ DTVM LTDA`,136:`UNICRED DO BRASIL`,138:`GET MONEY CC LTDA`,139:`INTESA SANPAOLO BRASIL S.A. BM`,140:`NU INVESTIMENTOS S.A. - CTVM`,141:`MASTER BI S.A. - EM LIQUIDAÇÃO EXTRAJUDICIAL`,142:`BROKER BRASIL CC LTDA.`,143:`INTEX BANK BCO DE CÂMBIO S.A.`,144:`EBURY BCO DE CÂMBIO S.A.`,145:`LEVYCAM CCV LTDA`,146:`GUITTA CC LTDA`,149:`FACTA S.A. CFI`,157:`ICAP DO BRASIL CTVM LTDA.`,159:`CASA CREDITO S.A. SCM`,163:`COMMERZBANK BRASIL S.A. - BCO MÚLTIPLO`,173:`BRL TRUST DTVM SA`,174:`PEFISA S.A. - C.F.I.`,177:`SAFRA CTVM`,180:`CM CAPITAL MARKETS CCTVM LTDA`,183:`SOCRED SA - SCMEPP`,184:`BCO ITAÚ BBA S.A.`,188:`ATIVA S.A. INVESTIMENTOS CCTVM`,189:`HS FINANCEIRA`,190:`SERVICOOP`,191:`NOVA FUTURA CTVM LTDA.`,194:`UNIDA DTVM LTDA`,195:`VALOR S/A SCFI`,196:`FAIR CC S.A.`,197:`STONE IP S.A.`,208:`BANCO BTG PACTUAL S.A.`,212:`BANCO ORIGINAL`,213:`BCO ARBI S.A.`,217:`BANCO JOHN DEERE S.A.`,218:`BCO BS2 S.A.`,222:`BCO CRÉDIT AGRICOLE BR S.A.`,224:`BCO FIBRA S.A.`,233:`BANCO BMG SOLUÇÕES FINANCEIRAS S.A.`,237:`BCO BRADESCO S.A.`,241:`BCO CLASSICO S.A.`,243:`BANCO MASTER - EM LIQUIDAÇÃO EXTRAJUDICIAL`,246:`BCO ABC BRASIL S.A.`,249:`BANCO INVESTCRED UNIBANCO S.A.`,250:`BANCO BMG CONSIGNADO S.A.`,253:`BEXS CC S.A.`,254:`PARANA BCO S.A.`,259:`MONEYCORP BCO DE CÂMBIO S.A.`,260:`NU PAGAMENTOS - IP`,265:`BCO FATOR S.A.`,266:`BCO CEDULA S.A.`,268:`BARI CIA HIPOTECÁRIA`,269:`BCO HSBC S.A.`,270:`SAGITUR CC - EM LIQUIDAÇÃO EXTRAJUDICIAL`,271:`BPY CCTVM S.A.`,272:`AGK CC S.A.`,273:`COOP SULCREDI AMPLEA`,274:`BMP SCMEPP LTDA`,276:`BCO SENFF S.A.`,278:`GENIAL INVESTIMENTOS CVM S.A.`,279:`COOP DE PRIMAVERA DO LESTE`,280:`WILL FINANCEIRA S.A.CFI`,281:`CCR COOPAVEL`,283:`RB INVESTIMENTOS DTVM LTDA.`,285:`FRENTE CC S.A.`,286:`UNIPRIME OURO - COOP DE OURO`,288:`CAROL DTVM LTDA.`,289:`EFX CC LTDA.`,290:`PAGSEGURO INTERNET IP S.A.`,292:`GALAPAGOS DTVM S.A.`,293:`LASTRO RDV DTVM LTDA`,296:`OZ CORRETORA DE CÂMBIO S.A.`,298:`VIPS CC S.A.`,299:`BCO AFINZ S.A. - BM`,300:`BCO LA NACION ARGENTINA`,301:`DOCK IP S.A.`,305:`FOURTRADE COR. DE CAMBIO LTDA`,306:`PORTOPAR DTVM LTDA`,307:`TERRA INVESTIMENTOS DTVM`,309:`CAMBIONET CC LTDA`,310:`VORTX DTVM LTDA.`,311:`DOURADA CORRETORA`,312:`HSCM SCMEPP LTDA.`,313:`AMAZÔNIA CC LTDA.`,315:`PI DTVM S.A.`,318:`BCO BMG S.A.`,319:`OM DTVM LTDA`,320:`BOC BRASIL`,321:`CREFAZ SCMEPP SA`,322:`CCR DE ABELARDO LUZ`,323:`MERCADO PAGO IP LTDA.`,324:`CARTOS SCD S.A.`,325:`ÓRAMA DTVM S.A.`,326:`PARATI - CFI S.A.`,328:`CECM FABRIC CALÇADOS SAPIRANGA`,329:`QI SCD S.A.`,330:`BANCO BARI S.A.`,331:`OSLO CAPITAL DTVM SA`,332:`ACESSO SOLUÇÕES DE PAGAMENTO S.A. - INSTITUIÇÃO DE PAGAMENTO`,334:`BANCO BESA S.A.`,335:`BANCO DIGIO`,336:`BCO C6 S.A.`,340:`SUPERDIGITAL I.P. S.A.`,341:`ITAÚ UNIBANCO S.A.`,342:`CREDITAS SCD`,343:`FFA SCMEPP LTDA.`,348:`BCO XP S.A.`,349:`AL5 S.A. SCFI`,350:`COOP DE AGRICULTORES E AEROPORTUÁRIOS DO BRASIL`,352:`TORO CTVM S.A.`,354:`NECTON INVESTIMENTOS S.A CVM`,355:`ÓTIMO SCD S.A.`,358:`MIDWAY S.A. - SCFI`,359:`ZEMA CFI S/A`,360:`TRINUS CAPITAL DTVM`,362:`CIELO IP S.A.`,363:`QI CTVM S.A.`,364:`EFÍ S.A. - IP`,365:`SIMPAUL`,366:`BCO SOCIETE GENERALE BRASIL`,367:`VITREO DTVM S.A.`,368:`BCO CSF S.A.`,370:`BCO MIZUHO S.A.`,371:`WARREN CVMC LTDA`,373:`UP.P SEP S.A.`,374:`REALIZE SCFI S.A.`,376:`BCO J.P. MORGAN S.A.`,377:`BMS SCD S.A.`,378:`BCO BRASILEIRO DE CRÉDITO S.A.`,379:`COOP COOPERFORTE LTDA.`,380:`PICPAY`,381:`BCO MERCEDES-BENZ S.A.`,382:`FIDUCIA SCMEPP LTDA`,383:`EBANX IP LTDA.`,384:`GLOBAL SCM LTDA`,385:`CECM DOS TRAB.PORT. DA G.VITOR`,386:`NU FINANCEIRA S.A. CFI`,387:`BCO TOYOTA DO BRASIL S.A.`,389:`BCO MERCANTIL DO BRASIL S.A.`,390:`BCO GM S.A.`,391:`CCR DE IBIAM`,393:`BCO VOLKSWAGEN S.A`,394:`BCO BRADESCO FINANC. S.A.`,395:`F D GOLD DTVM LTDA`,396:`MAGALUPAY`,397:`LISTO SCD S.A.`,398:`IDEAL CTVM S.A.`,399:`KIRTON BANK`,400:`COOP CREDITAG`,401:`IUGU IP S.A.`,402:`COBUCCIO S.A. SCFI`,403:`CORA SCFI`,404:`SUMUP SCD S.A.`,406:`ACCREDITO SCD S.A.`,407:`SEFER INVESTIMENTOS DTVM LTDA`,408:`BONUSPAGO SCD S.A.`,410:`PLANNER SOCIEDADE DE CRÉDITO DIRETO`,411:`VIA CERTA FINANCIADORA S.A. - CFI`,412:`SOCIAL BANK S/A`,413:`BCO BV S.A.`,414:`LEND SCD S.A.`,415:`BCO NACIONAL`,416:`LAMARA SCD S.A.`,418:`ZIPDIN SCD S.A.`,419:`NUMBRS SCD S.A.`,421:`CC LAR CREDI`,422:`BCO SAFRA S.A.`,423:`COLUNA S.A. DTVM`,425:`SOCINAL S.A. CFI`,426:`NEON FINANCEIRA - CFI S.A.`,427:`CRED.UFES`,428:`CREDSYSTEM SCD S.A.`,429:`CREDIARE CFI S.A.`,430:`CCR SEARA`,433:`BR-CAPITAL DTVM S.A.`,435:`DELCRED SCD S.A.`,438:`TRUSTEE DTVM LTDA.`,439:`ID CTVM`,440:`COOP CREDI&GENTE`,442:`MAGNETIS - DTVM`,443:`OCTA SCD S.A.`,444:`TRINUS SCD S.A.`,445:`PLANTAE CFI`,447:`MIRAE ASSET (BRASIL) CCTVM LTDA.`,448:`HEMERA DTVM LTDA.`,449:`DM`,450:`FITBANK IP`,451:`J17 - SCD S/A`,452:`CREDIFIT SCD S.A.`,454:`MÉRITO DTVM LTDA.`,455:`VIS DTVM LTDA`,456:`BCO MUFG BRASIL S.A.`,457:`UY3 SCD S/A`,458:`HEDGE INVESTMENTS DTVM LTDA.`,459:`CCM SERV. PÚBLICOS SP`,460:`UNAVANTI SCD S/A`,461:`ASAAS IP S.A.`,462:`STARK SCD S.A.`,463:`AZUMI DTVM`,464:`BCO SUMITOMO MITSUI BRASIL S.A.`,465:`CAPITAL CONSIG SCD S.A.`,467:`MASTER S/A CCTVM - EM LIQUIDAÇÃO EXTRAJUDICIAL`,468:`PORTOSEG S.A. CFI`,469:`PICPAY INVEST`,470:`CDC SCD S.A.`,471:`COOP CRESERV CREDISIS`,473:`BCO CAIXA GERAL BRASIL S.A.`,475:`BCO YAMAHA MOTOR S.A.`,477:`CITIBANK N.A.`,478:`GAZINCRED S.A. SCFI`,479:`BCO ITAUBANK S.A.`,481:`SUPERLÓGICA SCD S.A.`,482:`ARTTA SCD`,484:`MAF DTVM SA`,487:`DEUTSCHE BANK S.A.BCO ALEMAO`,488:`JPMORGAN CHASE BANK`,492:`ING BANK N.V.`,495:`BCO LA PROVINCIA B AIRES BCE`,496:`BBVA BRASIL BI S.A.`,505:`BCO UBS BRASIL`,506:`RJI`,507:`SCFI EFÍ S.A.`,508:`AVENUE SECURITIES DTVM LTDA.`,509:`CELCOIN IP S.A.`,510:`FFCRED SCD S.A.`,511:`MAGNUM SCD`,512:`FINVEST DTVM`,513:`ATF SCD S.A.`,514:`EXIM CC LTDA.`,516:`QISTA S.A. CFI`,518:`MERCADO CRÉDITO SCFI S.A.`,519:`LIONS TRUST DTVM`,520:`SOMAPAY SCD S.A.`,521:`PEAK SEP S.A.`,522:`RED SCD S.A.`,523:`HR DIGITAL SCD`,524:`WNT CAPITAL DTVM`,525:`INTERCAM CC LTDA`,526:`MONETARIE SCD`,527:`ATICCA SCD S.A.`,528:`REAG TRUST DTVM`,529:`PINBANK IP`,530:`SER FINANCE SCD S.A.`,531:`BMP SCD S.A.`,532:`EAGLE SCD S.A.`,533:`SRM BANK`,534:`EWALLY IP S.A.`,535:`OPEA SCD`,536:`NEON PAGAMENTOS S.A. IP`,537:`MICROCASH SCMEPP LTDA.`,538:`SUDACRED SCD S.A.`,539:`SANTINVEST S.A. - CFI`,540:`HBI SCD`,541:`FDO GARANTIDOR CRÉDITOS`,542:`CLOUDWALK IP LTDA`,543:`COOPCRECE`,544:`MULTICRED SCD S.A.`,545:`SENSO CCVM S.A.`,546:`OKTO IP`,547:`BNK DIGITAL SCD S.A.`,548:`RPW S.A. SCFI`,549:`INTRA DTVM`,550:`BEETELLER`,551:`VERT DTVM LTDA.`,552:`UZZIPAY IP S.A.`,553:`PERCAPITAL SCD S.A.`,554:`STONEX BANCO DE CÂMBIO S.A.`,555:`PAN FINANCEIRA S.A. - CRÉDITO, FINANCIAMENTO E INVESTIMENTOS`,556:`SAYGO CÂMBIO`,557:`PAGPRIME IP`,558:`QI DTVM LTDA.`,559:`KANASTRA CFI`,560:`MAG IP LTDA.`,561:`PAY4FUN IP S.A.`,562:`AZIMUT BRASIL DTVM LTDA`,563:`PROTEGE CASH`,565:`ÁGORA CTVM S.A.`,566:`FLAGSHIP IP LTDA`,567:`MERCANTIL FINANCEIRA`,568:`BRCONDOS SCD S.A.`,569:`CONTA PRONTA IP`,572:`ALL IN CRED SCD S.A.`,573:`OXY CH`,574:`A55 SCD S.A.`,575:`DGBK CREDIT S.A. - SOCIEDADE DE CRÉDITO DIRETO.`,576:`MERCADO BITCOIN IP LTDA`,577:`AF DESENVOLVE SP S.A.`,578:`SICRES`,579:`QUADRA SCD`,580:`CCCPOUPINV SUL E SUDESTE - CENTRAL SUL/SUDESTE`,581:`CENTRAL NORDESTE`,582:`CCC POUP INV DE MS, GO, DF E TO`,583:`CCC POUP INV DO CENTRO NORTE DO BRASIL`,584:`CCC POUP E INV DOS ESTADOS DO PR, SP E RJ`,585:`SETHI SCD SA`,586:`Z1 IP LTDA.`,587:`FIDD DTVM LTDA.`,588:`PROVER PROMOCAO DE VENDAS IP LTDA.`,589:`G5 SCD SA`,590:`REPASSES FINANCEIROS E SOLUCOES TECNOLOGICAS IP S.A.`,591:`BANVOX DTVM`,592:`MAPS IP LTDA.`,593:`TRANSFEERA IP S.A.`,594:`ASA SCFI S.A.`,595:`ZOOP MEIOS DE PAGAMENTO`,597:`ISSUER IP LTDA.`,598:`KONECT SCD S/A`,599:`AGORACRED S/A SCFI`,600:`BCO LUSO BRASILEIRO S.A.`,604:`BCO INDUSTRIAL DO BRASIL S.A.`,610:`BCO VR S.A.`,611:`BCO PAULISTA S.A.`,612:`BCO GUANABARA S.A.`,613:`OMNI BANCO S.A.`,614:`SANTS SCD S.A.`,615:`SMART SOLUTIONS GROUP IP LTDA`,619:`TRIO IP LTDA.`,620:`REVOLUT SCD S.A.`,623:`BANCO PAN`,626:`BCO C6 CONSIG`,630:`BANCO LETSBANK S.A. - EM LIQUIDAÇÃO EXTRAJUDICIAL`,632:`Z-ON SCD S.A.`,633:`BCO RENDIMENTO S.A.`,634:`BCO TRIANGULO S.A.`,636:`GIRO - SCD S/A`,637:`BCO SOFISA S.A.`,643:`BCO PINE S.A.`,644:`321 SCD S.A.`,646:`DM SA CFI`,651:`PAGARE IP S.A.`,652:`ITAÚ UNIBANCO HOLDING S.A.`,653:`BM PLENO S.A.`,654:`BCO DIGIMAIS S.A.`,655:`BCO VOTORANTIM S.A.`,659:`ONEKEY PAYMENTS IP S.A.`,660:`PAGME IP LTDA`,661:`FREEX CC S.A.`,662:`WE PAY OUT IP LTDA.`,663:`ACTUAL DTVM S.A.`,664:`EAGLE IP LTDA.`,665:`STARK BANK S.A. - IP`,666:`URBANO S.A. SCFI`,667:`LIQUIDO IP LTDA`,668:`VIA CAPITAL SCD S/A`,670:`IP4Y IP LTDA.`,671:`ZERO IP`,672:`STONE CFI S.A.`,673:`CCR DO AGRESTE ALAGOANO`,674:`HINOVA PAY IP S.A.`,675:`BANQI`,676:`DUFRIO CFI S.A.`,678:`FIDEM SCD S/A`,679:`PAY IP S.A.`,680:`DELTA GLOBAL SCD S.A.`,681:`MT IP S.A.`,682:`MONERY IP S.A.`,684:`HARMOS S.A. - SCFI`,685:`TYCOON TECHNOLOGY IIP S.A`,686:`BIZ IP LTDA.`,687:`INCO SEP S.A.`,688:`KIKAI SCD S.A.`,689:`NVIO BRASIL SCD S.A.`,690:`BK IP S.A.`,692:`SQUID SCD S.A.`,693:`EFEX IP`,694:`WOOVI IP LTDA.`,695:`BEES IP LTDA.`,697:`MARMARIS`,698:`BIT SCD S.A.`,699:`BFC SCD S.A.`,700:`MW IP LTDA.`,701:`INTEGRAÇÃO DE CRÉDITO E COBRANÇA SCD`,703:`GETNET IP`,704:`FEATBANK IP LTDA`,707:`BCO DAYCOVAL S.A`,708:`BCO INDUSCRED DE INVESTIM. S/A`,712:`OURIBANK S.A.`,714:`FINAMAX S.A. CFI`,719:`BANCO MASTER MÚLTIPLO - SOB RAET`,720:`BCO RNX S.A.`,739:`BCO CETELEM S.A.`,741:`BCO RIBEIRAO PRETO S.A.`,743:`BANCO SEMEAR`,745:`BCO CITIBANK S.A.`,746:`BCO MODAL S.A.`,747:`BCO RABOBANK INTL BRASIL S.A.`,748:`BCO COOPERATIVO SICREDI S.A.`,751:`SCOTIABANK BRASIL`,752:`BCO BNP PARIBAS BRASIL S A`,753:`NOVO BCO CONTINENTAL S.A. - BM`,754:`BANCO SISTEMA`,755:`BOFA MERRILL LYNCH BM S.A.`,756:`BANCO SICOOB S.A.`,757:`BCO KEB HANA DO BRASIL S.A.`,759:`BANSUR JM SCD S.A.`,760:`EMCASH SERV FINANC SEP S.A.`,761:`URBANO S.A. SCFI`,762:`OPPENS SEP S.A.`,763:`VUE IP S.A.`,764:`INDEPENDÊNCIA CC`,766:`LB PAY IP LTDA`,767:`QORE`,768:`BECKER FINANCEIRA SA - CFI`,769:`99PAY IP S.A.`,771:`WX IP LTDA.`,772:`CC MECUNP`,773:`KIWIFY IP`,790:`MAX IP`},b=class{bankSlipNumber;constructor(e){if(this.bankSlipNumber=e.replace(/[^\d]/g,``),!this.valid())throw new f(`Invalid bank slip number`,this.bankSlipNumber)}valid(){if(this.bankSlipNumber.length!==h)return!1;let e=this.barcode().split(``),[t]=e.splice(g,1);return d(e).toString()===t}barcode(){return this.bankSlipNumber.replace(/^(\d{4})(\d{5})\d{1}(\d{10})\d{1}(\d{10})\d{1}(\d{15})$/,`$1$5$2$3$4`)}number(){return this.bankSlipNumber}prettyNumber(){return this.bankSlipNumber.replace(/^(\d{5})(\d{5})(\d{5})(\d{6})(\d{5})(\d{6})(\d{1})(\d{14})$/,`$1.$2 $3.$4 $5.$6 $7 $8`)}bank(){return y[this.barcode().substring(0,3)]??`Unknown`}currency(){return this.barcode()[_]===`9`?v:null}checksum(){return this.barcode()[g]}expirationDate(){let e=new Date(p),t=parseInt(this.barcode().substring(5,9),10);return new Date(e.getTime()+t*m)}amount(){let e=this.barcode().substring(9,19);return(parseInt(e,10)/100).toFixed(2)}prettyAmount(){let e=this.currency();return e===null?this.amount():`${e.symbol} ${this.amount().replace(`.`,e.decimal)}`}toSVG(e){return new i(u(this.barcode())).render(e)}};exports.Boleto=b,exports.BoletoValidationError=f,exports.SVG=i,exports.encode=u,exports.modulo11=d;
|
package/dist/boleto.d.ts
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boleto class for parsing and rendering Brazilian bank payment slips
|
|
3
|
+
*/
|
|
4
|
+
export declare class Boleto {
|
|
5
|
+
/**
|
|
6
|
+
* The raw bank slip number (digits only)
|
|
7
|
+
*/
|
|
8
|
+
readonly bankSlipNumber: string;
|
|
9
|
+
/**
|
|
10
|
+
* Initializes the Boleto class
|
|
11
|
+
*
|
|
12
|
+
* @param bankSlipNumber - The bank slip number (can include non-digit characters which will be stripped)
|
|
13
|
+
* @throws BoletoValidationError if the bank slip number is invalid
|
|
14
|
+
*/
|
|
15
|
+
constructor(bankSlipNumber: string);
|
|
16
|
+
/**
|
|
17
|
+
* Validates whether the bank slip number is valid or not
|
|
18
|
+
*
|
|
19
|
+
* The validation function ensures that the bank slip number is exactly 47
|
|
20
|
+
* characters long, then applies the modulo-11 algorithm to the bank slip's
|
|
21
|
+
* barcode. Finally, it verifies that the result of the algorithm equals the
|
|
22
|
+
* checksum digit from the bank slip number.
|
|
23
|
+
*
|
|
24
|
+
* @returns Whether the bank slip number is valid or not
|
|
25
|
+
*/
|
|
26
|
+
valid(): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Converts the printed bank slip number into the barcode number
|
|
29
|
+
*
|
|
30
|
+
* The bank slip's number is a rearrangement of its barcode, plus three
|
|
31
|
+
* checksum digits. This function executes the inverse process and returns the
|
|
32
|
+
* original arrangement of the code. Specifications can be found at
|
|
33
|
+
* https://portal.febraban.org.br/pagina/3166/33/pt-br/layout-arrecadacao
|
|
34
|
+
*
|
|
35
|
+
* @returns The barcode extracted from the bank slip number
|
|
36
|
+
*/
|
|
37
|
+
barcode(): string;
|
|
38
|
+
/**
|
|
39
|
+
* Returns the bank slip's raw number
|
|
40
|
+
*
|
|
41
|
+
* @returns The raw bank slip number
|
|
42
|
+
*/
|
|
43
|
+
number(): string;
|
|
44
|
+
/**
|
|
45
|
+
* Returns the bank slip number with the usual, easy-to-read mask:
|
|
46
|
+
* 00000.00000 00000.000000 00000.000000 0 00000000000000
|
|
47
|
+
*
|
|
48
|
+
* @returns The formatted bank slip number
|
|
49
|
+
*/
|
|
50
|
+
prettyNumber(): string;
|
|
51
|
+
/**
|
|
52
|
+
* Returns the name of the bank that issued the bank slip
|
|
53
|
+
*
|
|
54
|
+
* This function is able to identify the most popular or commonly used banks
|
|
55
|
+
* in Brazil, but not all of them are included here.
|
|
56
|
+
*
|
|
57
|
+
* A comprehensive list of all Brazilian banks and their codes can be found at
|
|
58
|
+
* http://www.buscabanco.org.br/AgenciasBancos.asp
|
|
59
|
+
*
|
|
60
|
+
* @returns The bank name
|
|
61
|
+
*/
|
|
62
|
+
bank(): string;
|
|
63
|
+
/**
|
|
64
|
+
* Returns the currency of the bank slip
|
|
65
|
+
*
|
|
66
|
+
* The currency is determined by the currency code, the fourth digit of the
|
|
67
|
+
* barcode. A list of values other than 9 (Brazilian Real) could not be found.
|
|
68
|
+
*
|
|
69
|
+
* @returns The currency object or null if currency is unknown
|
|
70
|
+
*/
|
|
71
|
+
currency(): Currency | null;
|
|
72
|
+
/**
|
|
73
|
+
* Returns the verification digit of the barcode
|
|
74
|
+
*
|
|
75
|
+
* The barcode has its own checksum digit, which is the fifth digit of itself.
|
|
76
|
+
*
|
|
77
|
+
* @returns The checksum of the barcode
|
|
78
|
+
*/
|
|
79
|
+
checksum(): string;
|
|
80
|
+
/**
|
|
81
|
+
* Returns the date when the bank slip is due
|
|
82
|
+
*
|
|
83
|
+
* The portion of the barcode ranging from its sixth to its ninth digits
|
|
84
|
+
* represent the number of days since the 7th of October, 1997 up to when the
|
|
85
|
+
* bank slip is good to be paid. Attempting to pay a bank slip after this date
|
|
86
|
+
* may incur extra fees.
|
|
87
|
+
*
|
|
88
|
+
* @returns The expiration date of the bank slip
|
|
89
|
+
*/
|
|
90
|
+
expirationDate(): Date;
|
|
91
|
+
/**
|
|
92
|
+
* Returns the bank slip's nominal amount
|
|
93
|
+
*
|
|
94
|
+
* @returns The bank slip's raw amount as a string with 2 decimal places
|
|
95
|
+
*/
|
|
96
|
+
amount(): string;
|
|
97
|
+
/**
|
|
98
|
+
* Returns the bank slip's formatted nominal amount
|
|
99
|
+
*
|
|
100
|
+
* @returns The bank slip's formatted amount with currency symbol
|
|
101
|
+
*/
|
|
102
|
+
prettyAmount(): string;
|
|
103
|
+
/**
|
|
104
|
+
* Renders the bank slip as a child of the provided selector
|
|
105
|
+
*
|
|
106
|
+
* @param selector - The selector to the object where the SVG must be appended.
|
|
107
|
+
* If omitted, returns the SVG as a string.
|
|
108
|
+
* @returns null if selector is provided (SVG is appended to DOM), otherwise returns SVG string
|
|
109
|
+
*
|
|
110
|
+
* @see {@link SVG.render}
|
|
111
|
+
*/
|
|
112
|
+
toSVG(selector?: string): string | null;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Custom error class for boleto validation errors
|
|
117
|
+
*
|
|
118
|
+
* Provides a type-safe way to handle boleto-specific validation failures
|
|
119
|
+
*/
|
|
120
|
+
export declare class BoletoValidationError extends Error {
|
|
121
|
+
/** The invalid bank slip number that caused the error */
|
|
122
|
+
readonly bankSlipNumber: string;
|
|
123
|
+
constructor(message: string, bankSlipNumber: string);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Boleto (Brazilian Bank Slip) Parser and Renderer
|
|
128
|
+
*
|
|
129
|
+
* @module Boleto
|
|
130
|
+
*/
|
|
131
|
+
/**
|
|
132
|
+
* Currency information returned by the currency method
|
|
133
|
+
*/
|
|
134
|
+
export declare interface Currency {
|
|
135
|
+
/** ISO 4217 currency code */
|
|
136
|
+
code: string;
|
|
137
|
+
/** Currency symbol */
|
|
138
|
+
symbol: string;
|
|
139
|
+
/** Decimal separator character */
|
|
140
|
+
decimal: string;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export { }
|
package/dist/boleto.js
ADDED
|
@@ -0,0 +1,600 @@
|
|
|
1
|
+
var SVG_NAMESPACE = "http://www.w3.org/2000/svg", DEFAULT_STRIPE_WIDTH = 4, DEFAULT_BARCODE_HEIGHT = 100, BarcodeColors = {
|
|
2
|
+
BLACK: "#000000",
|
|
3
|
+
WHITE: "#ffffff"
|
|
4
|
+
}, SVG = class _ {
|
|
5
|
+
stripes;
|
|
6
|
+
stripeWidth;
|
|
7
|
+
constructor(e, h = DEFAULT_STRIPE_WIDTH) {
|
|
8
|
+
this.stripes = e.split("").map((e) => parseInt(e, 10)), this.stripeWidth = h;
|
|
9
|
+
}
|
|
10
|
+
render(m) {
|
|
11
|
+
let g = document.createElementNS(SVG_NAMESPACE, "svg"), v = 0, y = 0;
|
|
12
|
+
for (let m = 0; m < this.stripes.length; m += 1, v += y) {
|
|
13
|
+
y = this.stripeWidth * this.stripes[m];
|
|
14
|
+
let b = document.createElementNS(SVG_NAMESPACE, "rect");
|
|
15
|
+
b.setAttribute("width", String(y)), b.setAttribute("height", String(DEFAULT_BARCODE_HEIGHT)), b.setAttribute("fill", _.color(m)), b.setAttribute("x", String(v)), b.setAttribute("y", "0"), g.appendChild(b);
|
|
16
|
+
}
|
|
17
|
+
if (g.setAttribute("width", "100%"), g.setAttribute("height", "100%"), g.setAttribute("viewBox", `0 0 ${this.viewBoxWidth()} ${DEFAULT_BARCODE_HEIGHT}`), m === void 0) return new XMLSerializer().serializeToString(g);
|
|
18
|
+
let b = document.querySelector(m);
|
|
19
|
+
return b && b.appendChild(g), null;
|
|
20
|
+
}
|
|
21
|
+
viewBoxWidth() {
|
|
22
|
+
return this.stripes.reduce((e, m) => e + m, 0) * this.stripeWidth;
|
|
23
|
+
}
|
|
24
|
+
static color(e) {
|
|
25
|
+
return e % 2 ? BarcodeColors.WHITE : BarcodeColors.BLACK;
|
|
26
|
+
}
|
|
27
|
+
}, DIGIT_WEIGHTS = [
|
|
28
|
+
"11221",
|
|
29
|
+
"21112",
|
|
30
|
+
"12112",
|
|
31
|
+
"22111",
|
|
32
|
+
"11212",
|
|
33
|
+
"21211",
|
|
34
|
+
"12211",
|
|
35
|
+
"11122",
|
|
36
|
+
"21121",
|
|
37
|
+
"12121"
|
|
38
|
+
], BARS_PER_DIGIT = 5, DIGIT_PAIR_PATTERN = /(..?)/g, ITFMarkers = {
|
|
39
|
+
START: "1111",
|
|
40
|
+
STOP: "211"
|
|
41
|
+
}, ITFEncoder = class e {
|
|
42
|
+
static interleavePair(e) {
|
|
43
|
+
let m = parseInt(e, 10), h = DIGIT_WEIGHTS[Math.floor(m / 10)], g = DIGIT_WEIGHTS[m % 10], _ = "";
|
|
44
|
+
for (let e = 0; e < BARS_PER_DIGIT; e += 1) _ += h[e], _ += g[e];
|
|
45
|
+
return _;
|
|
46
|
+
}
|
|
47
|
+
static encode(m) {
|
|
48
|
+
let h = m.match(DIGIT_PAIR_PATTERN);
|
|
49
|
+
return h ? ITFMarkers.START + h.map(e.interleavePair).join("") + ITFMarkers.STOP : ITFMarkers.START + ITFMarkers.STOP;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
function encode(e) {
|
|
53
|
+
return ITFEncoder.encode(e);
|
|
54
|
+
}
|
|
55
|
+
function modulo11(e) {
|
|
56
|
+
let m;
|
|
57
|
+
m = typeof e == "string" ? e.split("") : [...e], m.reverse();
|
|
58
|
+
let h = 0;
|
|
59
|
+
for (let e = 0; e < m.length; e += 1) h += (e % 8 + 2) * parseInt(m[e], 10);
|
|
60
|
+
return (11 - h % 11) % 10 || 1;
|
|
61
|
+
}
|
|
62
|
+
var BoletoValidationError = class extends Error {
|
|
63
|
+
bankSlipNumber;
|
|
64
|
+
constructor(e, m) {
|
|
65
|
+
super(e), this.name = "BoletoValidationError", this.bankSlipNumber = m;
|
|
66
|
+
}
|
|
67
|
+
}, BOLETO_EPOCH = 8762364e5, MILLISECONDS_PER_DAY = 864e5, BANK_SLIP_NUMBER_LENGTH = 47, BARCODE_CHECKSUM_POSITION = 4, BARCODE_CURRENCY_POSITION = 3, BRL_CURRENCY = {
|
|
68
|
+
code: "BRL",
|
|
69
|
+
symbol: "R$",
|
|
70
|
+
decimal: ","
|
|
71
|
+
}, BANK_CODES = {
|
|
72
|
+
"001": "BCO DO BRASIL S.A.",
|
|
73
|
+
"003": "BCO DA AMAZONIA S.A.",
|
|
74
|
+
"004": "BCO DO NORDESTE DO BRASIL S.A.",
|
|
75
|
+
"007": "BNDES",
|
|
76
|
+
"010": "CREDICOAMO",
|
|
77
|
+
"011": "UBS (BRASIL) CORRETORA DE VALORES S.A.",
|
|
78
|
+
"012": "BANCO INBURSA",
|
|
79
|
+
"014": "STATE STREET BR S.A. BCO COMERCIAL",
|
|
80
|
+
"015": "UBS BB CCTVM S.A.",
|
|
81
|
+
"016": "CCM DESP TRÂNS SC E RS",
|
|
82
|
+
"017": "BNY MELLON BCO S.A.",
|
|
83
|
+
"018": "BCO TRICURY S.A.",
|
|
84
|
+
"021": "BCO BANESTES S.A.",
|
|
85
|
+
"024": "BCO BANDEPE S.A.",
|
|
86
|
+
"025": "BCO ALFA S.A.",
|
|
87
|
+
"029": "BANCO ITAÚ CONSIGNADO S.A.",
|
|
88
|
+
"033": "BCO SANTANDER (BRASIL) S.A.",
|
|
89
|
+
"036": "BCO BBI S.A.",
|
|
90
|
+
"037": "BCO DO EST. DO PA S.A.",
|
|
91
|
+
"040": "BCO CARGILL S.A.",
|
|
92
|
+
"041": "BCO DO ESTADO DO RS S.A.",
|
|
93
|
+
"047": "BCO DO EST. DE SE S.A.",
|
|
94
|
+
"060": "CONFIDENCE CC S.A.",
|
|
95
|
+
"062": "HIPERCARD BM S.A.",
|
|
96
|
+
"063": "BANCO BRADESCARD",
|
|
97
|
+
"064": "GOLDMAN SACHS DO BRASIL BM S.A",
|
|
98
|
+
"065": "BCO ANDBANK S.A.",
|
|
99
|
+
"066": "BCO MORGAN STANLEY S.A.",
|
|
100
|
+
"069": "BCO CREFISA S.A.",
|
|
101
|
+
"070": "BRB - BCO DE BRASILIA S.A.",
|
|
102
|
+
"074": "BCO. J.SAFRA S.A.",
|
|
103
|
+
"075": "BANCO ABN AMRO CLEARING S.A.",
|
|
104
|
+
"076": "BCO KDB BRASIL S.A.",
|
|
105
|
+
"077": "BANCO INTER",
|
|
106
|
+
"078": "HAITONG BI DO BRASIL S.A.",
|
|
107
|
+
"079": "PICPAY BANK - BANCO MÚLTIPLO S.A",
|
|
108
|
+
"080": "BT CC LTDA.",
|
|
109
|
+
"081": "BANCOSEGURO S.A.",
|
|
110
|
+
"082": "BANCO TOPÁZIO S.A.",
|
|
111
|
+
"083": "BCO DA CHINA BRASIL S.A.",
|
|
112
|
+
"084": "SISPRIME DO BRASIL - COOP",
|
|
113
|
+
"085": "COOPCENTRAL AILOS",
|
|
114
|
+
"088": "BANCO RANDON S.A.",
|
|
115
|
+
"089": "CREDISAN CC",
|
|
116
|
+
"091": "CCCM UNICRED CENTRAL RS",
|
|
117
|
+
"092": "BRK S.A. CFI",
|
|
118
|
+
"093": "POLOCRED SCMEPP LTDA.",
|
|
119
|
+
"094": "BANCO FINAXIS",
|
|
120
|
+
"095": "BANCO TRAVELEX S.A.",
|
|
121
|
+
"096": "BCO B3 S.A.",
|
|
122
|
+
"097": "CREDISIS - CENTRAL DE COOPERATIVAS DE CRÉDITO LTDA.",
|
|
123
|
+
"098": "CREDIALIANÇA CCR",
|
|
124
|
+
"099": "UNIPRIME COOPCENTRAL LTDA.",
|
|
125
|
+
100: "PLANNER CV S.A.",
|
|
126
|
+
101: "WARREN RENA DTVM",
|
|
127
|
+
102: "XP INVESTIMENTOS CCTVM S/A",
|
|
128
|
+
104: "CAIXA ECONOMICA FEDERAL",
|
|
129
|
+
105: "LECCA CFI S.A.",
|
|
130
|
+
107: "BCO BOCOM BBM S.A.",
|
|
131
|
+
108: "PORTOCRED S.A. - CFI",
|
|
132
|
+
111: "OLIVEIRA TRUST DTVM S.A.",
|
|
133
|
+
113: "NEON CTVM S.A.",
|
|
134
|
+
114: "CENTRAL COOPERATIVA DE CRÉDITO NO ESTADO DO ESPÍRITO SANTO",
|
|
135
|
+
117: "ADVANCED CC LTDA",
|
|
136
|
+
119: "BCO WESTERN UNION",
|
|
137
|
+
120: "BCO RODOBENS S.A.",
|
|
138
|
+
121: "BCO AGIBANK S.A.",
|
|
139
|
+
122: "BCO BRADESCO BERJ S.A.",
|
|
140
|
+
124: "BCO WOORI BANK DO BRASIL S.A.",
|
|
141
|
+
125: "BANCO GENIAL",
|
|
142
|
+
126: "BR PARTNERS BI",
|
|
143
|
+
127: "CODEPE CVC S.A.",
|
|
144
|
+
128: "BRAZA BANK S.A. BCO DE CÂMBIO",
|
|
145
|
+
129: "UBS BB BI S.A.",
|
|
146
|
+
130: "CARUANA SCFI",
|
|
147
|
+
131: "TULLETT PREBON BRASIL CVC LTDA",
|
|
148
|
+
132: "ICBC DO BRASIL BM S.A.",
|
|
149
|
+
133: "CRESOL CONFEDERAÇÃO",
|
|
150
|
+
134: "BGC LIQUIDEZ DTVM LTDA",
|
|
151
|
+
136: "UNICRED DO BRASIL",
|
|
152
|
+
138: "GET MONEY CC LTDA",
|
|
153
|
+
139: "INTESA SANPAOLO BRASIL S.A. BM",
|
|
154
|
+
140: "NU INVESTIMENTOS S.A. - CTVM",
|
|
155
|
+
141: "MASTER BI S.A. - EM LIQUIDAÇÃO EXTRAJUDICIAL",
|
|
156
|
+
142: "BROKER BRASIL CC LTDA.",
|
|
157
|
+
143: "INTEX BANK BCO DE CÂMBIO S.A.",
|
|
158
|
+
144: "EBURY BCO DE CÂMBIO S.A.",
|
|
159
|
+
145: "LEVYCAM CCV LTDA",
|
|
160
|
+
146: "GUITTA CC LTDA",
|
|
161
|
+
149: "FACTA S.A. CFI",
|
|
162
|
+
157: "ICAP DO BRASIL CTVM LTDA.",
|
|
163
|
+
159: "CASA CREDITO S.A. SCM",
|
|
164
|
+
163: "COMMERZBANK BRASIL S.A. - BCO MÚLTIPLO",
|
|
165
|
+
173: "BRL TRUST DTVM SA",
|
|
166
|
+
174: "PEFISA S.A. - C.F.I.",
|
|
167
|
+
177: "SAFRA CTVM",
|
|
168
|
+
180: "CM CAPITAL MARKETS CCTVM LTDA",
|
|
169
|
+
183: "SOCRED SA - SCMEPP",
|
|
170
|
+
184: "BCO ITAÚ BBA S.A.",
|
|
171
|
+
188: "ATIVA S.A. INVESTIMENTOS CCTVM",
|
|
172
|
+
189: "HS FINANCEIRA",
|
|
173
|
+
190: "SERVICOOP",
|
|
174
|
+
191: "NOVA FUTURA CTVM LTDA.",
|
|
175
|
+
194: "UNIDA DTVM LTDA",
|
|
176
|
+
195: "VALOR S/A SCFI",
|
|
177
|
+
196: "FAIR CC S.A.",
|
|
178
|
+
197: "STONE IP S.A.",
|
|
179
|
+
208: "BANCO BTG PACTUAL S.A.",
|
|
180
|
+
212: "BANCO ORIGINAL",
|
|
181
|
+
213: "BCO ARBI S.A.",
|
|
182
|
+
217: "BANCO JOHN DEERE S.A.",
|
|
183
|
+
218: "BCO BS2 S.A.",
|
|
184
|
+
222: "BCO CRÉDIT AGRICOLE BR S.A.",
|
|
185
|
+
224: "BCO FIBRA S.A.",
|
|
186
|
+
233: "BANCO BMG SOLUÇÕES FINANCEIRAS S.A.",
|
|
187
|
+
237: "BCO BRADESCO S.A.",
|
|
188
|
+
241: "BCO CLASSICO S.A.",
|
|
189
|
+
243: "BANCO MASTER - EM LIQUIDAÇÃO EXTRAJUDICIAL",
|
|
190
|
+
246: "BCO ABC BRASIL S.A.",
|
|
191
|
+
249: "BANCO INVESTCRED UNIBANCO S.A.",
|
|
192
|
+
250: "BANCO BMG CONSIGNADO S.A.",
|
|
193
|
+
253: "BEXS CC S.A.",
|
|
194
|
+
254: "PARANA BCO S.A.",
|
|
195
|
+
259: "MONEYCORP BCO DE CÂMBIO S.A.",
|
|
196
|
+
260: "NU PAGAMENTOS - IP",
|
|
197
|
+
265: "BCO FATOR S.A.",
|
|
198
|
+
266: "BCO CEDULA S.A.",
|
|
199
|
+
268: "BARI CIA HIPOTECÁRIA",
|
|
200
|
+
269: "BCO HSBC S.A.",
|
|
201
|
+
270: "SAGITUR CC - EM LIQUIDAÇÃO EXTRAJUDICIAL",
|
|
202
|
+
271: "BPY CCTVM S.A.",
|
|
203
|
+
272: "AGK CC S.A.",
|
|
204
|
+
273: "COOP SULCREDI AMPLEA",
|
|
205
|
+
274: "BMP SCMEPP LTDA",
|
|
206
|
+
276: "BCO SENFF S.A.",
|
|
207
|
+
278: "GENIAL INVESTIMENTOS CVM S.A.",
|
|
208
|
+
279: "COOP DE PRIMAVERA DO LESTE",
|
|
209
|
+
280: "WILL FINANCEIRA S.A.CFI",
|
|
210
|
+
281: "CCR COOPAVEL",
|
|
211
|
+
283: "RB INVESTIMENTOS DTVM LTDA.",
|
|
212
|
+
285: "FRENTE CC S.A.",
|
|
213
|
+
286: "UNIPRIME OURO - COOP DE OURO",
|
|
214
|
+
288: "CAROL DTVM LTDA.",
|
|
215
|
+
289: "EFX CC LTDA.",
|
|
216
|
+
290: "PAGSEGURO INTERNET IP S.A.",
|
|
217
|
+
292: "GALAPAGOS DTVM S.A.",
|
|
218
|
+
293: "LASTRO RDV DTVM LTDA",
|
|
219
|
+
296: "OZ CORRETORA DE CÂMBIO S.A.",
|
|
220
|
+
298: "VIPS CC S.A.",
|
|
221
|
+
299: "BCO AFINZ S.A. - BM",
|
|
222
|
+
300: "BCO LA NACION ARGENTINA",
|
|
223
|
+
301: "DOCK IP S.A.",
|
|
224
|
+
305: "FOURTRADE COR. DE CAMBIO LTDA",
|
|
225
|
+
306: "PORTOPAR DTVM LTDA",
|
|
226
|
+
307: "TERRA INVESTIMENTOS DTVM",
|
|
227
|
+
309: "CAMBIONET CC LTDA",
|
|
228
|
+
310: "VORTX DTVM LTDA.",
|
|
229
|
+
311: "DOURADA CORRETORA",
|
|
230
|
+
312: "HSCM SCMEPP LTDA.",
|
|
231
|
+
313: "AMAZÔNIA CC LTDA.",
|
|
232
|
+
315: "PI DTVM S.A.",
|
|
233
|
+
318: "BCO BMG S.A.",
|
|
234
|
+
319: "OM DTVM LTDA",
|
|
235
|
+
320: "BOC BRASIL",
|
|
236
|
+
321: "CREFAZ SCMEPP SA",
|
|
237
|
+
322: "CCR DE ABELARDO LUZ",
|
|
238
|
+
323: "MERCADO PAGO IP LTDA.",
|
|
239
|
+
324: "CARTOS SCD S.A.",
|
|
240
|
+
325: "ÓRAMA DTVM S.A.",
|
|
241
|
+
326: "PARATI - CFI S.A.",
|
|
242
|
+
328: "CECM FABRIC CALÇADOS SAPIRANGA",
|
|
243
|
+
329: "QI SCD S.A.",
|
|
244
|
+
330: "BANCO BARI S.A.",
|
|
245
|
+
331: "OSLO CAPITAL DTVM SA",
|
|
246
|
+
332: "ACESSO SOLUÇÕES DE PAGAMENTO S.A. - INSTITUIÇÃO DE PAGAMENTO",
|
|
247
|
+
334: "BANCO BESA S.A.",
|
|
248
|
+
335: "BANCO DIGIO",
|
|
249
|
+
336: "BCO C6 S.A.",
|
|
250
|
+
340: "SUPERDIGITAL I.P. S.A.",
|
|
251
|
+
341: "ITAÚ UNIBANCO S.A.",
|
|
252
|
+
342: "CREDITAS SCD",
|
|
253
|
+
343: "FFA SCMEPP LTDA.",
|
|
254
|
+
348: "BCO XP S.A.",
|
|
255
|
+
349: "AL5 S.A. SCFI",
|
|
256
|
+
350: "COOP DE AGRICULTORES E AEROPORTUÁRIOS DO BRASIL",
|
|
257
|
+
352: "TORO CTVM S.A.",
|
|
258
|
+
354: "NECTON INVESTIMENTOS S.A CVM",
|
|
259
|
+
355: "ÓTIMO SCD S.A.",
|
|
260
|
+
358: "MIDWAY S.A. - SCFI",
|
|
261
|
+
359: "ZEMA CFI S/A",
|
|
262
|
+
360: "TRINUS CAPITAL DTVM",
|
|
263
|
+
362: "CIELO IP S.A.",
|
|
264
|
+
363: "QI CTVM S.A.",
|
|
265
|
+
364: "EFÍ S.A. - IP",
|
|
266
|
+
365: "SIMPAUL",
|
|
267
|
+
366: "BCO SOCIETE GENERALE BRASIL",
|
|
268
|
+
367: "VITREO DTVM S.A.",
|
|
269
|
+
368: "BCO CSF S.A.",
|
|
270
|
+
370: "BCO MIZUHO S.A.",
|
|
271
|
+
371: "WARREN CVMC LTDA",
|
|
272
|
+
373: "UP.P SEP S.A.",
|
|
273
|
+
374: "REALIZE SCFI S.A.",
|
|
274
|
+
376: "BCO J.P. MORGAN S.A.",
|
|
275
|
+
377: "BMS SCD S.A.",
|
|
276
|
+
378: "BCO BRASILEIRO DE CRÉDITO S.A.",
|
|
277
|
+
379: "COOP COOPERFORTE LTDA.",
|
|
278
|
+
380: "PICPAY",
|
|
279
|
+
381: "BCO MERCEDES-BENZ S.A.",
|
|
280
|
+
382: "FIDUCIA SCMEPP LTDA",
|
|
281
|
+
383: "EBANX IP LTDA.",
|
|
282
|
+
384: "GLOBAL SCM LTDA",
|
|
283
|
+
385: "CECM DOS TRAB.PORT. DA G.VITOR",
|
|
284
|
+
386: "NU FINANCEIRA S.A. CFI",
|
|
285
|
+
387: "BCO TOYOTA DO BRASIL S.A.",
|
|
286
|
+
389: "BCO MERCANTIL DO BRASIL S.A.",
|
|
287
|
+
390: "BCO GM S.A.",
|
|
288
|
+
391: "CCR DE IBIAM",
|
|
289
|
+
393: "BCO VOLKSWAGEN S.A",
|
|
290
|
+
394: "BCO BRADESCO FINANC. S.A.",
|
|
291
|
+
395: "F D GOLD DTVM LTDA",
|
|
292
|
+
396: "MAGALUPAY",
|
|
293
|
+
397: "LISTO SCD S.A.",
|
|
294
|
+
398: "IDEAL CTVM S.A.",
|
|
295
|
+
399: "KIRTON BANK",
|
|
296
|
+
400: "COOP CREDITAG",
|
|
297
|
+
401: "IUGU IP S.A.",
|
|
298
|
+
402: "COBUCCIO S.A. SCFI",
|
|
299
|
+
403: "CORA SCFI",
|
|
300
|
+
404: "SUMUP SCD S.A.",
|
|
301
|
+
406: "ACCREDITO SCD S.A.",
|
|
302
|
+
407: "SEFER INVESTIMENTOS DTVM LTDA",
|
|
303
|
+
408: "BONUSPAGO SCD S.A.",
|
|
304
|
+
410: "PLANNER SOCIEDADE DE CRÉDITO DIRETO",
|
|
305
|
+
411: "VIA CERTA FINANCIADORA S.A. - CFI",
|
|
306
|
+
412: "SOCIAL BANK S/A",
|
|
307
|
+
413: "BCO BV S.A.",
|
|
308
|
+
414: "LEND SCD S.A.",
|
|
309
|
+
415: "BCO NACIONAL",
|
|
310
|
+
416: "LAMARA SCD S.A.",
|
|
311
|
+
418: "ZIPDIN SCD S.A.",
|
|
312
|
+
419: "NUMBRS SCD S.A.",
|
|
313
|
+
421: "CC LAR CREDI",
|
|
314
|
+
422: "BCO SAFRA S.A.",
|
|
315
|
+
423: "COLUNA S.A. DTVM",
|
|
316
|
+
425: "SOCINAL S.A. CFI",
|
|
317
|
+
426: "NEON FINANCEIRA - CFI S.A.",
|
|
318
|
+
427: "CRED.UFES",
|
|
319
|
+
428: "CREDSYSTEM SCD S.A.",
|
|
320
|
+
429: "CREDIARE CFI S.A.",
|
|
321
|
+
430: "CCR SEARA",
|
|
322
|
+
433: "BR-CAPITAL DTVM S.A.",
|
|
323
|
+
435: "DELCRED SCD S.A.",
|
|
324
|
+
438: "TRUSTEE DTVM LTDA.",
|
|
325
|
+
439: "ID CTVM",
|
|
326
|
+
440: "COOP CREDI&GENTE",
|
|
327
|
+
442: "MAGNETIS - DTVM",
|
|
328
|
+
443: "OCTA SCD S.A.",
|
|
329
|
+
444: "TRINUS SCD S.A.",
|
|
330
|
+
445: "PLANTAE CFI",
|
|
331
|
+
447: "MIRAE ASSET (BRASIL) CCTVM LTDA.",
|
|
332
|
+
448: "HEMERA DTVM LTDA.",
|
|
333
|
+
449: "DM",
|
|
334
|
+
450: "FITBANK IP",
|
|
335
|
+
451: "J17 - SCD S/A",
|
|
336
|
+
452: "CREDIFIT SCD S.A.",
|
|
337
|
+
454: "MÉRITO DTVM LTDA.",
|
|
338
|
+
455: "VIS DTVM LTDA",
|
|
339
|
+
456: "BCO MUFG BRASIL S.A.",
|
|
340
|
+
457: "UY3 SCD S/A",
|
|
341
|
+
458: "HEDGE INVESTMENTS DTVM LTDA.",
|
|
342
|
+
459: "CCM SERV. PÚBLICOS SP",
|
|
343
|
+
460: "UNAVANTI SCD S/A",
|
|
344
|
+
461: "ASAAS IP S.A.",
|
|
345
|
+
462: "STARK SCD S.A.",
|
|
346
|
+
463: "AZUMI DTVM",
|
|
347
|
+
464: "BCO SUMITOMO MITSUI BRASIL S.A.",
|
|
348
|
+
465: "CAPITAL CONSIG SCD S.A.",
|
|
349
|
+
467: "MASTER S/A CCTVM - EM LIQUIDAÇÃO EXTRAJUDICIAL",
|
|
350
|
+
468: "PORTOSEG S.A. CFI",
|
|
351
|
+
469: "PICPAY INVEST",
|
|
352
|
+
470: "CDC SCD S.A.",
|
|
353
|
+
471: "COOP CRESERV CREDISIS",
|
|
354
|
+
473: "BCO CAIXA GERAL BRASIL S.A.",
|
|
355
|
+
475: "BCO YAMAHA MOTOR S.A.",
|
|
356
|
+
477: "CITIBANK N.A.",
|
|
357
|
+
478: "GAZINCRED S.A. SCFI",
|
|
358
|
+
479: "BCO ITAUBANK S.A.",
|
|
359
|
+
481: "SUPERLÓGICA SCD S.A.",
|
|
360
|
+
482: "ARTTA SCD",
|
|
361
|
+
484: "MAF DTVM SA",
|
|
362
|
+
487: "DEUTSCHE BANK S.A.BCO ALEMAO",
|
|
363
|
+
488: "JPMORGAN CHASE BANK",
|
|
364
|
+
492: "ING BANK N.V.",
|
|
365
|
+
495: "BCO LA PROVINCIA B AIRES BCE",
|
|
366
|
+
496: "BBVA BRASIL BI S.A.",
|
|
367
|
+
505: "BCO UBS BRASIL",
|
|
368
|
+
506: "RJI",
|
|
369
|
+
507: "SCFI EFÍ S.A.",
|
|
370
|
+
508: "AVENUE SECURITIES DTVM LTDA.",
|
|
371
|
+
509: "CELCOIN IP S.A.",
|
|
372
|
+
510: "FFCRED SCD S.A.",
|
|
373
|
+
511: "MAGNUM SCD",
|
|
374
|
+
512: "FINVEST DTVM",
|
|
375
|
+
513: "ATF SCD S.A.",
|
|
376
|
+
514: "EXIM CC LTDA.",
|
|
377
|
+
516: "QISTA S.A. CFI",
|
|
378
|
+
518: "MERCADO CRÉDITO SCFI S.A.",
|
|
379
|
+
519: "LIONS TRUST DTVM",
|
|
380
|
+
520: "SOMAPAY SCD S.A.",
|
|
381
|
+
521: "PEAK SEP S.A.",
|
|
382
|
+
522: "RED SCD S.A.",
|
|
383
|
+
523: "HR DIGITAL SCD",
|
|
384
|
+
524: "WNT CAPITAL DTVM",
|
|
385
|
+
525: "INTERCAM CC LTDA",
|
|
386
|
+
526: "MONETARIE SCD",
|
|
387
|
+
527: "ATICCA SCD S.A.",
|
|
388
|
+
528: "REAG TRUST DTVM",
|
|
389
|
+
529: "PINBANK IP",
|
|
390
|
+
530: "SER FINANCE SCD S.A.",
|
|
391
|
+
531: "BMP SCD S.A.",
|
|
392
|
+
532: "EAGLE SCD S.A.",
|
|
393
|
+
533: "SRM BANK",
|
|
394
|
+
534: "EWALLY IP S.A.",
|
|
395
|
+
535: "OPEA SCD",
|
|
396
|
+
536: "NEON PAGAMENTOS S.A. IP",
|
|
397
|
+
537: "MICROCASH SCMEPP LTDA.",
|
|
398
|
+
538: "SUDACRED SCD S.A.",
|
|
399
|
+
539: "SANTINVEST S.A. - CFI",
|
|
400
|
+
540: "HBI SCD",
|
|
401
|
+
541: "FDO GARANTIDOR CRÉDITOS",
|
|
402
|
+
542: "CLOUDWALK IP LTDA",
|
|
403
|
+
543: "COOPCRECE",
|
|
404
|
+
544: "MULTICRED SCD S.A.",
|
|
405
|
+
545: "SENSO CCVM S.A.",
|
|
406
|
+
546: "OKTO IP",
|
|
407
|
+
547: "BNK DIGITAL SCD S.A.",
|
|
408
|
+
548: "RPW S.A. SCFI",
|
|
409
|
+
549: "INTRA DTVM",
|
|
410
|
+
550: "BEETELLER",
|
|
411
|
+
551: "VERT DTVM LTDA.",
|
|
412
|
+
552: "UZZIPAY IP S.A.",
|
|
413
|
+
553: "PERCAPITAL SCD S.A.",
|
|
414
|
+
554: "STONEX BANCO DE CÂMBIO S.A.",
|
|
415
|
+
555: "PAN FINANCEIRA S.A. - CRÉDITO, FINANCIAMENTO E INVESTIMENTOS",
|
|
416
|
+
556: "SAYGO CÂMBIO",
|
|
417
|
+
557: "PAGPRIME IP",
|
|
418
|
+
558: "QI DTVM LTDA.",
|
|
419
|
+
559: "KANASTRA CFI",
|
|
420
|
+
560: "MAG IP LTDA.",
|
|
421
|
+
561: "PAY4FUN IP S.A.",
|
|
422
|
+
562: "AZIMUT BRASIL DTVM LTDA",
|
|
423
|
+
563: "PROTEGE CASH",
|
|
424
|
+
565: "ÁGORA CTVM S.A.",
|
|
425
|
+
566: "FLAGSHIP IP LTDA",
|
|
426
|
+
567: "MERCANTIL FINANCEIRA",
|
|
427
|
+
568: "BRCONDOS SCD S.A.",
|
|
428
|
+
569: "CONTA PRONTA IP",
|
|
429
|
+
572: "ALL IN CRED SCD S.A.",
|
|
430
|
+
573: "OXY CH",
|
|
431
|
+
574: "A55 SCD S.A.",
|
|
432
|
+
575: "DGBK CREDIT S.A. - SOCIEDADE DE CRÉDITO DIRETO.",
|
|
433
|
+
576: "MERCADO BITCOIN IP LTDA",
|
|
434
|
+
577: "AF DESENVOLVE SP S.A.",
|
|
435
|
+
578: "SICRES",
|
|
436
|
+
579: "QUADRA SCD",
|
|
437
|
+
580: "CCCPOUPINV SUL E SUDESTE - CENTRAL SUL/SUDESTE",
|
|
438
|
+
581: "CENTRAL NORDESTE",
|
|
439
|
+
582: "CCC POUP INV DE MS, GO, DF E TO",
|
|
440
|
+
583: "CCC POUP INV DO CENTRO NORTE DO BRASIL",
|
|
441
|
+
584: "CCC POUP E INV DOS ESTADOS DO PR, SP E RJ",
|
|
442
|
+
585: "SETHI SCD SA",
|
|
443
|
+
586: "Z1 IP LTDA.",
|
|
444
|
+
587: "FIDD DTVM LTDA.",
|
|
445
|
+
588: "PROVER PROMOCAO DE VENDAS IP LTDA.",
|
|
446
|
+
589: "G5 SCD SA",
|
|
447
|
+
590: "REPASSES FINANCEIROS E SOLUCOES TECNOLOGICAS IP S.A.",
|
|
448
|
+
591: "BANVOX DTVM",
|
|
449
|
+
592: "MAPS IP LTDA.",
|
|
450
|
+
593: "TRANSFEERA IP S.A.",
|
|
451
|
+
594: "ASA SCFI S.A.",
|
|
452
|
+
595: "ZOOP MEIOS DE PAGAMENTO",
|
|
453
|
+
597: "ISSUER IP LTDA.",
|
|
454
|
+
598: "KONECT SCD S/A",
|
|
455
|
+
599: "AGORACRED S/A SCFI",
|
|
456
|
+
600: "BCO LUSO BRASILEIRO S.A.",
|
|
457
|
+
604: "BCO INDUSTRIAL DO BRASIL S.A.",
|
|
458
|
+
610: "BCO VR S.A.",
|
|
459
|
+
611: "BCO PAULISTA S.A.",
|
|
460
|
+
612: "BCO GUANABARA S.A.",
|
|
461
|
+
613: "OMNI BANCO S.A.",
|
|
462
|
+
614: "SANTS SCD S.A.",
|
|
463
|
+
615: "SMART SOLUTIONS GROUP IP LTDA",
|
|
464
|
+
619: "TRIO IP LTDA.",
|
|
465
|
+
620: "REVOLUT SCD S.A.",
|
|
466
|
+
623: "BANCO PAN",
|
|
467
|
+
626: "BCO C6 CONSIG",
|
|
468
|
+
630: "BANCO LETSBANK S.A. - EM LIQUIDAÇÃO EXTRAJUDICIAL",
|
|
469
|
+
632: "Z-ON SCD S.A.",
|
|
470
|
+
633: "BCO RENDIMENTO S.A.",
|
|
471
|
+
634: "BCO TRIANGULO S.A.",
|
|
472
|
+
636: "GIRO - SCD S/A",
|
|
473
|
+
637: "BCO SOFISA S.A.",
|
|
474
|
+
643: "BCO PINE S.A.",
|
|
475
|
+
644: "321 SCD S.A.",
|
|
476
|
+
646: "DM SA CFI",
|
|
477
|
+
651: "PAGARE IP S.A.",
|
|
478
|
+
652: "ITAÚ UNIBANCO HOLDING S.A.",
|
|
479
|
+
653: "BM PLENO S.A.",
|
|
480
|
+
654: "BCO DIGIMAIS S.A.",
|
|
481
|
+
655: "BCO VOTORANTIM S.A.",
|
|
482
|
+
659: "ONEKEY PAYMENTS IP S.A.",
|
|
483
|
+
660: "PAGME IP LTDA",
|
|
484
|
+
661: "FREEX CC S.A.",
|
|
485
|
+
662: "WE PAY OUT IP LTDA.",
|
|
486
|
+
663: "ACTUAL DTVM S.A.",
|
|
487
|
+
664: "EAGLE IP LTDA.",
|
|
488
|
+
665: "STARK BANK S.A. - IP",
|
|
489
|
+
666: "URBANO S.A. SCFI",
|
|
490
|
+
667: "LIQUIDO IP LTDA",
|
|
491
|
+
668: "VIA CAPITAL SCD S/A",
|
|
492
|
+
670: "IP4Y IP LTDA.",
|
|
493
|
+
671: "ZERO IP",
|
|
494
|
+
672: "STONE CFI S.A.",
|
|
495
|
+
673: "CCR DO AGRESTE ALAGOANO",
|
|
496
|
+
674: "HINOVA PAY IP S.A.",
|
|
497
|
+
675: "BANQI",
|
|
498
|
+
676: "DUFRIO CFI S.A.",
|
|
499
|
+
678: "FIDEM SCD S/A",
|
|
500
|
+
679: "PAY IP S.A.",
|
|
501
|
+
680: "DELTA GLOBAL SCD S.A.",
|
|
502
|
+
681: "MT IP S.A.",
|
|
503
|
+
682: "MONERY IP S.A.",
|
|
504
|
+
684: "HARMOS S.A. - SCFI",
|
|
505
|
+
685: "TYCOON TECHNOLOGY IIP S.A",
|
|
506
|
+
686: "BIZ IP LTDA.",
|
|
507
|
+
687: "INCO SEP S.A.",
|
|
508
|
+
688: "KIKAI SCD S.A.",
|
|
509
|
+
689: "NVIO BRASIL SCD S.A.",
|
|
510
|
+
690: "BK IP S.A.",
|
|
511
|
+
692: "SQUID SCD S.A.",
|
|
512
|
+
693: "EFEX IP",
|
|
513
|
+
694: "WOOVI IP LTDA.",
|
|
514
|
+
695: "BEES IP LTDA.",
|
|
515
|
+
697: "MARMARIS",
|
|
516
|
+
698: "BIT SCD S.A.",
|
|
517
|
+
699: "BFC SCD S.A.",
|
|
518
|
+
700: "MW IP LTDA.",
|
|
519
|
+
701: "INTEGRAÇÃO DE CRÉDITO E COBRANÇA SCD",
|
|
520
|
+
703: "GETNET IP",
|
|
521
|
+
704: "FEATBANK IP LTDA",
|
|
522
|
+
707: "BCO DAYCOVAL S.A",
|
|
523
|
+
708: "BCO INDUSCRED DE INVESTIM. S/A",
|
|
524
|
+
712: "OURIBANK S.A.",
|
|
525
|
+
714: "FINAMAX S.A. CFI",
|
|
526
|
+
719: "BANCO MASTER MÚLTIPLO - SOB RAET",
|
|
527
|
+
720: "BCO RNX S.A.",
|
|
528
|
+
739: "BCO CETELEM S.A.",
|
|
529
|
+
741: "BCO RIBEIRAO PRETO S.A.",
|
|
530
|
+
743: "BANCO SEMEAR",
|
|
531
|
+
745: "BCO CITIBANK S.A.",
|
|
532
|
+
746: "BCO MODAL S.A.",
|
|
533
|
+
747: "BCO RABOBANK INTL BRASIL S.A.",
|
|
534
|
+
748: "BCO COOPERATIVO SICREDI S.A.",
|
|
535
|
+
751: "SCOTIABANK BRASIL",
|
|
536
|
+
752: "BCO BNP PARIBAS BRASIL S A",
|
|
537
|
+
753: "NOVO BCO CONTINENTAL S.A. - BM",
|
|
538
|
+
754: "BANCO SISTEMA",
|
|
539
|
+
755: "BOFA MERRILL LYNCH BM S.A.",
|
|
540
|
+
756: "BANCO SICOOB S.A.",
|
|
541
|
+
757: "BCO KEB HANA DO BRASIL S.A.",
|
|
542
|
+
759: "BANSUR JM SCD S.A.",
|
|
543
|
+
760: "EMCASH SERV FINANC SEP S.A.",
|
|
544
|
+
761: "URBANO S.A. SCFI",
|
|
545
|
+
762: "OPPENS SEP S.A.",
|
|
546
|
+
763: "VUE IP S.A.",
|
|
547
|
+
764: "INDEPENDÊNCIA CC",
|
|
548
|
+
766: "LB PAY IP LTDA",
|
|
549
|
+
767: "QORE",
|
|
550
|
+
768: "BECKER FINANCEIRA SA - CFI",
|
|
551
|
+
769: "99PAY IP S.A.",
|
|
552
|
+
771: "WX IP LTDA.",
|
|
553
|
+
772: "CC MECUNP",
|
|
554
|
+
773: "KIWIFY IP",
|
|
555
|
+
790: "MAX IP"
|
|
556
|
+
}, Boleto = class {
|
|
557
|
+
bankSlipNumber;
|
|
558
|
+
constructor(e) {
|
|
559
|
+
if (this.bankSlipNumber = e.replace(/[^\d]/g, ""), !this.valid()) throw new BoletoValidationError("Invalid bank slip number", this.bankSlipNumber);
|
|
560
|
+
}
|
|
561
|
+
valid() {
|
|
562
|
+
if (this.bankSlipNumber.length !== BANK_SLIP_NUMBER_LENGTH) return !1;
|
|
563
|
+
let e = this.barcode().split(""), [m] = e.splice(BARCODE_CHECKSUM_POSITION, 1);
|
|
564
|
+
return modulo11(e).toString() === m;
|
|
565
|
+
}
|
|
566
|
+
barcode() {
|
|
567
|
+
return this.bankSlipNumber.replace(/^(\d{4})(\d{5})\d{1}(\d{10})\d{1}(\d{10})\d{1}(\d{15})$/, "$1$5$2$3$4");
|
|
568
|
+
}
|
|
569
|
+
number() {
|
|
570
|
+
return this.bankSlipNumber;
|
|
571
|
+
}
|
|
572
|
+
prettyNumber() {
|
|
573
|
+
return this.bankSlipNumber.replace(/^(\d{5})(\d{5})(\d{5})(\d{6})(\d{5})(\d{6})(\d{1})(\d{14})$/, "$1.$2 $3.$4 $5.$6 $7 $8");
|
|
574
|
+
}
|
|
575
|
+
bank() {
|
|
576
|
+
return BANK_CODES[this.barcode().substring(0, 3)] ?? "Unknown";
|
|
577
|
+
}
|
|
578
|
+
currency() {
|
|
579
|
+
return this.barcode()[BARCODE_CURRENCY_POSITION] === "9" ? BRL_CURRENCY : null;
|
|
580
|
+
}
|
|
581
|
+
checksum() {
|
|
582
|
+
return this.barcode()[BARCODE_CHECKSUM_POSITION];
|
|
583
|
+
}
|
|
584
|
+
expirationDate() {
|
|
585
|
+
let e = new Date(BOLETO_EPOCH), m = parseInt(this.barcode().substring(5, 9), 10);
|
|
586
|
+
return new Date(e.getTime() + m * MILLISECONDS_PER_DAY);
|
|
587
|
+
}
|
|
588
|
+
amount() {
|
|
589
|
+
let e = this.barcode().substring(9, 19);
|
|
590
|
+
return (parseInt(e, 10) / 100).toFixed(2);
|
|
591
|
+
}
|
|
592
|
+
prettyAmount() {
|
|
593
|
+
let e = this.currency();
|
|
594
|
+
return e === null ? this.amount() : `${e.symbol} ${this.amount().replace(".", e.decimal)}`;
|
|
595
|
+
}
|
|
596
|
+
toSVG(e) {
|
|
597
|
+
return new SVG(encode(this.barcode())).render(e);
|
|
598
|
+
}
|
|
599
|
+
};
|
|
600
|
+
export { Boleto, BoletoValidationError, SVG, encode, modulo11 };
|
package/package.json
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@tiare.balbi/boleto.ts",
|
|
3
|
+
"version": "1.0.4",
|
|
4
|
+
"description": "A TypeScript library for parsing and rendering Brazilian bank payment slips (boletos bancários)",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"author": "Tiare Balbi <me@tiarebalbi.com> (https://github.com/tiarebalbi)",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/tiarebalbi/boleto.ts.git"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/tiarebalbi/boleto.ts/issues"
|
|
14
|
+
},
|
|
15
|
+
"homepage": "https://github.com/tiarebalbi/boleto.ts#readme",
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"registry": "https://registry.npmjs.org/",
|
|
18
|
+
"access": "public"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"boleto",
|
|
22
|
+
"boleto-bancario",
|
|
23
|
+
"brazil",
|
|
24
|
+
"brazilian",
|
|
25
|
+
"barcode",
|
|
26
|
+
"payment",
|
|
27
|
+
"banking",
|
|
28
|
+
"typescript"
|
|
29
|
+
],
|
|
30
|
+
"main": "./dist/boleto.cjs",
|
|
31
|
+
"module": "./dist/boleto.js",
|
|
32
|
+
"types": "./dist/boleto.d.ts",
|
|
33
|
+
"exports": {
|
|
34
|
+
".": {
|
|
35
|
+
"import": {
|
|
36
|
+
"types": "./dist/boleto.d.ts",
|
|
37
|
+
"default": "./dist/boleto.js"
|
|
38
|
+
},
|
|
39
|
+
"require": {
|
|
40
|
+
"types": "./dist/boleto.d.ts",
|
|
41
|
+
"default": "./dist/boleto.cjs"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"files": [
|
|
46
|
+
"dist"
|
|
47
|
+
],
|
|
48
|
+
"scripts": {
|
|
49
|
+
"dev": "vite",
|
|
50
|
+
"build": "tsc && vite build",
|
|
51
|
+
"preview": "vite preview",
|
|
52
|
+
"typecheck": "tsc --noEmit",
|
|
53
|
+
"lint": "eslint src/",
|
|
54
|
+
"lint:fix": "eslint src/ --fix",
|
|
55
|
+
"format": "prettier --write \"**/*.{ts,js,jsx,tsx,json,md}\" \"eslint.config.js\" \"vite.config.ts\"",
|
|
56
|
+
"format:check": "prettier --check \"**/*.{ts,js,jsx,tsx,json,md}\" \"eslint.config.js\" \"vite.config.ts\"",
|
|
57
|
+
"test": "vitest run",
|
|
58
|
+
"test:watch": "vitest"
|
|
59
|
+
},
|
|
60
|
+
"devDependencies": {
|
|
61
|
+
"@eslint/js": "^9.39.2",
|
|
62
|
+
"eslint": "^9.39.2",
|
|
63
|
+
"eslint-config-prettier": "^10.1.8",
|
|
64
|
+
"eslint-plugin-prettier": "^5.5.5",
|
|
65
|
+
"prettier": "^3.8.1",
|
|
66
|
+
"jsdom": "^28.1.0",
|
|
67
|
+
"typescript": "~5.9.3",
|
|
68
|
+
"typescript-eslint": "^8.54.0",
|
|
69
|
+
"vite": "npm:rolldown-vite@7.2.5",
|
|
70
|
+
"vite-plugin-dts": "^4.5.4",
|
|
71
|
+
"vitest": "^4.0.18"
|
|
72
|
+
},
|
|
73
|
+
"overrides": {
|
|
74
|
+
"vite": "npm:rolldown-vite@7.2.5"
|
|
75
|
+
}
|
|
76
|
+
}
|