-
Notifications
You must be signed in to change notification settings - Fork 0
/
LibBradescoApiCriaBoleto.pas
578 lines (557 loc) · 34.6 KB
/
LibBradescoApiCriaBoleto.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
unit LibBradescoApiCriaBoleto;
interface
uses
uLkJSON, SysUtils;
type
TLibBradescoApiCriaBoleto = class
private
FregistrarTitulo: Integer;
FcodUsuario: string;
FnroCpfCnpjBenef: string;
FfilCpfCnpjBenef: string;
FdigCpfCnpjBenef: string;
FtipoAcesso: Integer;
FcpssoaJuridContr: Integer;
FctpoContrNegoc: Integer;
FnseqContrNegoc: Integer;
FcidtfdProdCobr: Integer;
FcnegocCobr: Integer;
FcodigoBanco: Integer;
Ffiller: string;
FeNseqContrNegoc: Integer;
FtipoRegistro: Integer;
FcprodtServcOper: Integer;
FctitloCobrCdent: Integer;
FctitloCliCdent: string;
FdemisTitloCobr: string;
FdvctoTitloCobr: string;
FcidtfdTpoVcto: Integer;
FcindcdEconmMoeda: Integer;
FvnmnalTitloCobr: Integer;
FqmoedaNegocTitlo: Integer;
FcespceTitloCobr: Integer;
FcindcdAceitSacdo: string;
FctpoProteTitlo: Integer;
FctpoPrzProte: Integer;
FctpoProteDecurs: Integer;
FctpoPrzDecurs: Integer;
FcctrlPartcTitlo: Integer;
FcformaEmisPplta: Integer;
FcindcdPgtoParcial: string;
FqtdePgtoParcial: Integer;
Ffiller1: string;
FptxJuroVcto: Integer;
FvdiaJuroMora: Integer;
FqdiaInicJuro: Integer;
FpmultaAplicVcto: Integer;
FvmultaAtrsoPgto: Integer;
FqdiaInicMulta: Integer;
FpdescBonifPgto01: Integer;
FvdescBonifPgto01: Integer;
FdlimDescBonif1: string;
FpdescBonifPgto02: Integer;
FvdescBonifPgto02: Integer;
FdlimDescBonif2: string;
FpdescBonifPgto03: Integer;
FvdescBonifPgto03: Integer;
FdlimDescBonif3: string;
FctpoPrzCobr: Integer;
FpdescBonifPgto: Integer;
FvdescBonifPgto: Integer;
FdlimBonifPgto: string;
FvabtmtTitloCobr: Integer;
FviofPgtoTitlo: Integer;
Ffiller2: string;
FisacdoTitloCobr: string;
FelogdrSacdoTitlo: string;
FenroLogdrSacdo: Integer;
FecomplLogdrSacdo: string;
FccepSacdoTitlo: Integer;
FccomplCepSacdo: Integer;
FebairoLogdrSacdo: string;
FimunSacdoTitlo: string;
FcsglUfSacdo: string;
FindCpfCnpjSacdo: Integer;
FnroCpfCnpjSacdo: string;
FrenderEletrSacdo: string;
FcdddFoneSacdo: Integer;
FcfoneSacdoTitlo: Integer;
FbancoDeb: Integer;
FagenciaDeb: Integer;
FagenciaDebDv: Integer;
FcontaDeb: Integer;
FbancoCentProt: Integer;
FagenciaDvCentPr: Integer;
FisacdrAvalsTitlo: string;
FelogdrSacdrAvals: string;
FenroLogdrSacdr: Integer;
FecomplLogdrSacdr: string;
FccepSacdrTitlo: Integer;
FccomplCepSacdr: Integer;
FebairoLogdrSacdr: string;
FimunSacdrAvals: string;
FcsglUfSacdr: string;
FindCpfCnpjSacdr: Integer;
FnroCpfCnpjSacdr: Integer;
FrenderEletrSacdr: string;
FcdddFoneSacdr: Integer;
FcfoneSacdrTitlo: Integer;
Ffiller3: string;
Ffase: Integer;
FcindcdCobrMisto: string;
FialiasAdsaoCta: string;
FiconcPgtoSpi: string;
FcaliasAdsaoCta: string;
FilinkGeracQrcd: string;
FwqrcdPdraoMercd: string;
FvalidadeAposVencimento: string;
Ffiller4: string;
public
constructor Create;
destructor Destroy; override;
procedure Clear;
function ToString(): string;
function stringApiModeloDoBanco(): string;
property registrarTitulo: Integer read FregistrarTitulo write FregistrarTitulo; //Registrar título 1 = Registrar o título 2 = Somente consistir dados do título
property codUsuario: string read FcodUsuario write FcodUsuario; //Código do Usuário responsável - Fixo = APISERVIC
property nroCpfCnpjBenef: string read FnroCpfCnpjBenef write FnroCpfCnpjBenef; //Número de Inscrição do CNPJ ou CPF do Beneficiário (Cedente)
property filCpfCnpjBenef: string read FfilCpfCnpjBenef write FfilCpfCnpjBenef; //Número da Filial do CNPJ do Beneficiário (Cedente) Obs.: incluir zeros quando se tratar de CPF
property digCpfCnpjBenef: string read FdigCpfCnpjBenef write FdigCpfCnpjBenef; //Dígitos verificadores do CNPJ ou CPF do Beneficiário (Cedente)
property tipoAcesso: Integer read FtipoAcesso write FtipoAcesso; //Tipo de acesso desejado - Fixo = 2
property cpssoaJuridContr: Integer read FcpssoaJuridContr write FcpssoaJuridContr; //Código da pessoa jurídica do contrato - Fixo = 0
property ctpoContrNegoc: Integer read FctpoContrNegoc write FctpoContrNegoc; //Tipo do Contrato - Fixo = 0
property nseqContrNegoc: Integer read FnseqContrNegoc write FnseqContrNegoc; //Número do Contrato - Fixo = 0
property cidtfdProdCobr: Integer read FcidtfdProdCobr write FcidtfdProdCobr; //Identificador do Produto Cobrança (Carteira)
property cnegocCobr: Integer read FcnegocCobr write FcnegocCobr; //Número do Contrato (Negociação Agência + Conta)
property codigoBanco: Integer read FcodigoBanco write FcodigoBanco; //Código do Banco
property filler: string read Ffiller write Ffiller; //Implementações futuras - Manter em branco
property eNseqContrNegoc: Integer read FeNseqContrNegoc write FeNseqContrNegoc; //Número do Contrato - Fixo = 0
property tipoRegistro: Integer read FtipoRegistro write FtipoRegistro; //Tipo de registro do título: 1 = Título 2 = Título com Instrução de Protesto 3 = Título com Instrução de Protesto Falimentar
property cprodtServcOper: Integer read FcprodtServcOper write FcprodtServcOper; //Código do Produto Cobrança
property ctitloCobrCdent: Integer read FctitloCobrCdent write FctitloCobrCdent; //Nosso Número
property ctitloCliCdent: string read FctitloCliCdent write FctitloCliCdent; //Identificador do título pelo beneficiário (Seu Número)
property demisTitloCobr: string read FdemisTitloCobr write FdemisTitloCobr; //Data de emissão do título. Deve ser informada como o exemplo 01.01.2001
property dvctoTitloCobr: string read FdvctoTitloCobr write FdvctoTitloCobr; //Data de vencimento do título Deve ser informada como o exemplo 01.01.2001
property cidtfdTpoVcto: Integer read FcidtfdTpoVcto write FcidtfdTpoVcto; //Identificador do tipo de vencimento 0 = Data fixa 1 = Contra-apresentação 2 = À vista - Fixo = 0
property cindcdEconmMoeda: Integer read FcindcdEconmMoeda write FcindcdEconmMoeda; //Identificador da moeda do título (BACEN)
property vnmnalTitloCobr: Integer read FvnmnalTitloCobr write FvnmnalTitloCobr; //Valor nominal do título
property qmoedaNegocTitlo: Integer read FqmoedaNegocTitlo write FqmoedaNegocTitlo; //Quantidade de moeda do título - Fixo = 0
property cespceTitloCobr: Integer read FcespceTitloCobr write FcespceTitloCobr; //Código da espécie do título Ex. 02 = DM
property cindcdAceitSacdo: string read FcindcdAceitSacdo write FcindcdAceitSacdo; //Identificador de aceite do devedor (Sacado)
property ctpoProteTitlo: Integer read FctpoProteTitlo write FctpoProteTitlo; //Tipo de protesto automático do título 1 = Dias corridos 2 = Dias úteis
property ctpoPrzProte: Integer read FctpoPrzProte write FctpoPrzProte; //Quantidade de dias após o vencimento, para protesto automático - Sim, caso informado ctpoProteTitlo
property ctpoProteDecurs: Integer read FctpoProteDecurs write FctpoProteDecurs; //Tipo decurso de protesto 1 = Dias corridos 2 = Dias úteis - Sim, caso informado ctpoProteTitlo
property ctpoPrzDecurs: Integer read FctpoPrzDecurs write FctpoPrzDecurs; //Quantidade de dias para decurso de protesto - Fixo = 0
property cctrlPartcTitlo: Integer read FcctrlPartcTitlo write FcctrlPartcTitlo; //Controle do participante
property cformaEmisPplta: Integer read FcformaEmisPplta write FcformaEmisPplta; //Forma de emissão do boleto (Papeleta) 01 = Banco emite 02 = Cliente emite 03 = Banco envia e-mail 04 = Banco envia sms - Fixo = 2
property cindcdPgtoParcial: string read FcindcdPgtoParcial write FcindcdPgtoParcial; //Indicador de pagamento parcial S = Sim N = Não - Fixo = Não
property qtdePgtoParcial: Integer read FqtdePgtoParcial write FqtdePgtoParcial; //Quantidade de pagamento parcial de 001 a 099 - Fixo = 000
property filler1: string read Ffiller1 write Ffiller1; //Implementações futuras - Manter em branco
property ptxJuroVcto: Integer read FptxJuroVcto write FptxJuroVcto; //Percentual de juros após vencimento Deve ser informado com 5 decimais (Exemplo: 2% = 2.00000 | 0,05% = 0.05000)
property vdiaJuroMora: Integer read FvdiaJuroMora write FvdiaJuroMora; //Valor diário de juros após vencimento Deve ser informado com 2 decimais (Exemplo: R$ 2,00 = 200 | R$ 0,05 = 005)
property qdiaInicJuro: Integer read FqdiaInicJuro write FqdiaInicJuro; //Quantidade de dias após o vencimento, para incidência de juros - Sim, caso informado valor ou percentual de Juros
property pmultaAplicVcto: Integer read FpmultaAplicVcto write FpmultaAplicVcto; //Percentual de multa após vencimento Deve ser informado com 5 decimais (Exemplo: 2% = 2.00000 | 0,05% = 0.05000)
property vmultaAtrsoPgto: Integer read FvmultaAtrsoPgto write FvmultaAtrsoPgto; //Valor da multa após vencimento Deve ser informado com 2 decimais (Exemplo: R$ 2,00 = 200 | R$ 0,05 = 005)
property qdiaInicMulta: Integer read FqdiaInicMulta write FqdiaInicMulta; //Quantidade de dias após o vencimento, para incidência de multa - Sim, caso informado valor ou percentual de Multa
property pdescBonifPgto01: Integer read FpdescBonifPgto01 write FpdescBonifPgto01; //1° - Percentual de desconto Deve ser informado com 5 decimais (Exemplo: 2% = 2.00000 | 0,05% = 0.05000)
property vdescBonifPgto01: Integer read FvdescBonifPgto01 write FvdescBonifPgto01; //1° - Valor de desconto Deve ser informado com 2 decimais (Exemplo: R$ 2,00 = 200 | R$ 0,05 = 005)
property dlimDescBonif1: string read FdlimDescBonif1 write FdlimDescBonif1; //1° - Data-limite de desconto Deve ser informada como o exemplo 01.01.2001 - Sim, caso informado valor ou percentual do 1° desconto/ bonificação
property pdescBonifPgto02: Integer read FpdescBonifPgto02 write FpdescBonifPgto02; //2° - Percentual de desconto Deve ser informado com 5 decimais (Exemplo: 2% = 2.00000 | 0,05% = 0.05000)
property vdescBonifPgto02: Integer read FvdescBonifPgto02 write FvdescBonifPgto02; //2° - Valor de desconto Deve ser informado com 2 decimais (Exemplo: R$ 2,00 = 200 | R$ 0,05 = 005)
property dlimDescBonif2: string read FdlimDescBonif2 write FdlimDescBonif2; //2° - Data-limite de desconto Deve ser informada como o exemplo 01.01.2001 - Sim, caso informado valor ou percentual do 2° desconto
property pdescBonifPgto03: Integer read FpdescBonifPgto03 write FpdescBonifPgto03; //3° - Percentual de desconto Deve ser informado com 5 decimais (Exemplo: 2% = 2.00000 | 0,05% = 0.05000)
property vdescBonifPgto03: Integer read FvdescBonifPgto03 write FvdescBonifPgto03; //3° - Valor de desconto Deve ser informado com 2 decimais (Exemplo: R$ 2,00 = 200 | R$ 0,05 = 005)
property dlimDescBonif3: string read FdlimDescBonif3 write FdlimDescBonif3; //3° - Data-limite de desconto Deve ser informada como o exemplo 01.01.2001 - Sim, caso informado valor ou percentual do 3° desconto
property ctpoPrzCobr: Integer read FctpoPrzCobr write FctpoPrzCobr; //Tipo de prazo desconto/bonificação 1 = Dias corridos 2 = Dias úteis - Sim, caso informado valor ou percentual de desconto/ bonificação
property pdescBonifPgto: Integer read FpdescBonifPgto write FpdescBonifPgto; //Percentual de desconto Deve ser informado com 5 decimais (Exemplo: 2% = 2.00000 | 0,05% = 0.05000)
property vdescBonifPgto: Integer read FvdescBonifPgto write FvdescBonifPgto; //Valor de bonificação Deve ser informado com 2 decimais (Exemplo: R$ 2,00 = 200 | R$ 0,05 = 005)
property dlimBonifPgto: string read FdlimBonifPgto write FdlimBonifPgto; //Data-limite de bonificação Deve ser informada como o exemplo 01.01.2001 - Sim, caso informado valor ou percentual de bonificação
property vabtmtTitloCobr: Integer read FvabtmtTitloCobr write FvabtmtTitloCobr; //Valor de abatimento do título
property viofPgtoTitlo: Integer read FviofPgtoTitlo write FviofPgtoTitlo; //Valor de IOF do título - Não, usar apenas para seguradoras
property filler2: string read Ffiller2 write Ffiller2; //Implementações futuras - Manter em branco
property isacdoTitloCobr: string read FisacdoTitloCobr write FisacdoTitloCobr; //Nome do devedor (Sacado)
property elogdrSacdoTitlo: string read FelogdrSacdoTitlo write FelogdrSacdoTitlo; //Logradouro do devedor (Sacado)
property enroLogdrSacdo: Integer read FenroLogdrSacdo write FenroLogdrSacdo; //Número do logradouro do devedor (Sacado)
property ecomplLogdrSacdo: string read FecomplLogdrSacdo write FecomplLogdrSacdo; //Complemento do logradouro do devedor (Sacado)
property ccepSacdoTitlo: Integer read FccepSacdoTitlo write FccepSacdoTitlo; //CEP do devedor (Sacado)
property ccomplCepSacdo: Integer read FccomplCepSacdo write FccomplCepSacdo; //Complemento do CEP do devedor (Sacado)
property ebairoLogdrSacdo: string read FebairoLogdrSacdo write FebairoLogdrSacdo; //Bairro do logradouro do devedor (Sacado)
property imunSacdoTitlo: string read FimunSacdoTitlo write FimunSacdoTitlo; //Município do devedor (Sacado)
property csglUfSacdo: string read FcsglUfSacdo write FcsglUfSacdo; //Sigla da Unidade Federativa do devedor (Sacado)
property indCpfCnpjSacdo: Integer read FindCpfCnpjSacdo write FindCpfCnpjSacdo; //Indicador de CPF ou CNPJ do devedor (Sacado) 1 = CPF 2 = CNPJ
property nroCpfCnpjSacdo: string read FnroCpfCnpjSacdo write FnroCpfCnpjSacdo; //Número do CPF ou CNPJ do devedor (Sacado)
property renderEletrSacdo: string read FrenderEletrSacdo write FrenderEletrSacdo; //Endereço eletrônico do devedor - e-mail (Sacado)
property cdddFoneSacdo: Integer read FcdddFoneSacdo write FcdddFoneSacdo; //DDD do telefone do devedor (Sacado)
property cfoneSacdoTitlo: Integer read FcfoneSacdoTitlo write FcfoneSacdoTitlo; //Número do telefone do devedor (Sacado)
property bancoDeb: Integer read FbancoDeb write FbancoDeb; //Código do Banco para débito automático
property agenciaDeb: Integer read FagenciaDeb write FagenciaDeb; //Número do Agência para débito automático
property agenciaDebDv: Integer read FagenciaDebDv write FagenciaDebDv; //Dígito verificador da Agência para débito automático - Sim, caso informado agenciaDeb
property contaDeb: Integer read FcontaDeb write FcontaDeb; //Número da conta para débito automático - Sim, caso informado agenciaDeb
property bancoCentProt: Integer read FbancoCentProt write FbancoCentProt; //Código do Banco de protesto - Fixo = 0
property agenciaDvCentPr: Integer read FagenciaDvCentPr write FagenciaDvCentPr; //Número da Agência de protesto - Fixo = 0
property isacdrAvalsTitlo: string read FisacdrAvalsTitlo write FisacdrAvalsTitlo; //Nome do sacador avalista (Beneficiário final)
property elogdrSacdrAvals: string read FelogdrSacdrAvals write FelogdrSacdrAvals; //Logradouro do sacador avalista (Beneficiário final) - Sim, caso informado dados do sacador avalista (Beneficiário final)
property enroLogdrSacdr: Integer read FenroLogdrSacdr write FenroLogdrSacdr; //Número do logradouro do sacador avalista (Beneficiário final) - Sim, caso informado dados do sacador avalista (Beneficiário final)
property ecomplLogdrSacdr: string read FecomplLogdrSacdr write FecomplLogdrSacdr; //Complemento do logradouro do sacador avalista (Beneficiário final) - Sim, caso informado dados do sacador avalista (Beneficiário final)
property ccepSacdrTitlo: Integer read FccepSacdrTitlo write FccepSacdrTitlo; //CEP do sacador avalista - Sim, caso informado dados do sacador avalista (Beneficiário final)
property ccomplCepSacdr: Integer read FccomplCepSacdr write FccomplCepSacdr; //Complemento do CEP do sacador avalista - Sim, caso informado dados do sacador avalista (Beneficiário final)
property ebairoLogdrSacdr: string read FebairoLogdrSacdr write FebairoLogdrSacdr; //Bairro do logradouro do sacador avalista - Sim, caso informado dados do sacador avalista (Beneficiário final)
property imunSacdrAvals: string read FimunSacdrAvals write FimunSacdrAvals; //Município do sacador avalista - Sim, caso informado dados do sacador avalista (Beneficiário final)
property csglUfSacdr: string read FcsglUfSacdr write FcsglUfSacdr; //Sigla da Unidade Federativa do sacador avalista - Sim, caso informado dados do sacador avalista (Beneficiário final)
property indCpfCnpjSacdr: Integer read FindCpfCnpjSacdr write FindCpfCnpjSacdr; //Indicador de CPF ou CNPJ do sacador avalista 1 = CPF 2 = CNPJ - Sim, caso informado dados do sacador avalista (Beneficiário final)
property nroCpfCnpjSacdr: Integer read FnroCpfCnpjSacdr write FnroCpfCnpjSacdr; //Número do CPF ou CNPJ do sacador avalista - Sim, caso informado dados do sacador avalista (Beneficiário final)
property renderEletrSacdr: string read FrenderEletrSacdr write FrenderEletrSacdr; //Endereço eletrônico do sacador avalista - e-mail
property cdddFoneSacdr: Integer read FcdddFoneSacdr write FcdddFoneSacdr; //DDD do telefone do sacador avalista
property cfoneSacdrTitlo: Integer read FcfoneSacdrTitlo write FcfoneSacdrTitlo; //Número do telefone do sacador avalista
property filler3: string read Ffiller3 write Ffiller3; //Implementações futuras - Fixo = 0
property fase: Integer read Ffase write Ffase; //Fase de atualização do QR Code: 1 = Registro do título e envio ao BSPI 2 = Vinculação do título com QR Code - Fixo = 1
property cindcdCobrMisto: string read FcindcdCobrMisto write FcindcdCobrMisto; //Indicador do registro de título com QR Code S = Sim N = Não - Fixo = S
property ialiasAdsaoCta: string read FialiasAdsaoCta write FialiasAdsaoCta; //Chave Pix do beneficiário - Manter em branco
property iconcPgtoSpi: string read FiconcPgtoSpi write FiconcPgtoSpi; //TXID do título - Manter em branco
property caliasAdsaoCta: string read FcaliasAdsaoCta write FcaliasAdsaoCta; // Códigos de erro na geração do QR Code pelo BSPI - Manter em branco
property ilinkGeracQrcd: string read FilinkGeracQrcd write FilinkGeracQrcd; //Identificação do location do QR Code gerado pelo BSPI - Manter em branco
property wqrcdPdraoMercd: string read FwqrcdPdraoMercd write FwqrcdPdraoMercd; //Código EMV do QR Code gerado pelo BSPI - Manter em branco
property validadeAposVencimento: string read FvalidadeAposVencimento write FvalidadeAposVencimento; //Quantidade de dias após vencimento, que o título é válido para pagamento via Pix - Manter em branco
property filler4: string read Ffiller4 write Ffiller4; //Implementações futuras - Manter em branco
end;
implementation
uses
Funcoes;
{ TLibBradescoApiCriaBoleto }
procedure TLibBradescoApiCriaBoleto.Clear;
begin
FctitloCobrCdent := 00000000001; //Nosso Número // "UTILIZAR A RAIZ DO CNPJ DA EMPRESA + NÚMEROS SEQUENCIAIS - EX: 01234567001",
FregistrarTitulo := 1;
FcodUsuario := 'APISERVIC';
FnroCpfCnpjBenef := ''; //9 digitos do CNPJ
FfilCpfCnpjBenef := ''; //4 digitos depois da Barra "/".
FdigCpfCnpjBenef := ''; //2 digito verificador.
FtipoAcesso := 2;
FcpssoaJuridContr := 0;
FctpoContrNegoc := 0;
FnseqContrNegoc := 0;
FcidtfdProdCobr := 17; //Carteira
FcnegocCobr := 0; //Número do Contrato (Negociação Agência + Conta).
FcodigoBanco := 237;
Ffiller := '';
FeNseqContrNegoc := 0;
FtipoRegistro := 1;
FcprodtServcOper := 0;
FctitloCliCdent := ''; //Numero da NF.
FdemisTitloCobr := '01.01.2000'; //Data Emissão.
FdvctoTitloCobr := '01.01.2000'; //Data Vencimento.
FcidtfdTpoVcto := 1; //Identificador do tipo de vencimento 0 = Data fixa 1 = Contra-apresentação 2 = À vista
FcindcdEconmMoeda := 0; //Moeda.
FvnmnalTitloCobr := 1000; //Valor do Título.
FqmoedaNegocTitlo := 0; //Quantidade Moeda - Fixo = 0
FcespceTitloCobr := 02; //Espécie do Documento - 02 = DM.
FcindcdAceitSacdo := 'N'; //Aceite do Devedor(SACADO) - Fixo = N.
FctpoProteTitlo := 0; //Tipo de protesto automático do título 1 = Dias corridos 2 = Dias úteis
FctpoPrzProte := 0; //Quantidade de dias após o vencimento, para protesto automático - Obrigatório se informou o Tipo de Protesto
FctpoProteDecurs := 0; //Tipo decurso de protesto 1 = Dias corridos 2 = Dias úteis - Obrigatório se informou o Tipo de Protesto
FctpoPrzDecurs := 0; //Quantidade de dias para decurso de protesto - Fixo = 0
FcctrlPartcTitlo := 0; //Controle do participante
FcformaEmisPplta := 2; //Forma de emissão do boleto (Papeleta) 01 = Banco emite 02 = Cliente emite 03 = Banco envia e-mail 04 = Banco envia sms - Fixo = 2
FcindcdPgtoParcial := 'N'; //Indicador de pagamento parcial S = Sim N = Não - Fixo = Não
FqtdePgtoParcial := 000; //Quantidade de pagamento parcial de 001 a 099 - Fixo = 000
Ffiller1 := '';
FptxJuroVcto := 0; //Percentual de juros após vencimento Deve ser informado com 5 decimais (Exemplo: 2% = 2.00000 | 0,05% = 0.05000)
FvdiaJuroMora := 0; //Valor diário de juros após vencimento Deve ser informado com 2 decimais (Exemplo: R$ 2,00 = 200 | R$ 0,05 = 005)
FqdiaInicJuro := 0; //Quantidade de dias após o vencimento, para incidência de juros - Sim, caso informado valor ou percentual de Juros.
FvmultaAtrsoPgto := 0; //Valor da multa após vencimento Deve ser informado com 2 decimais (Exemplo: R$ 2,00 = 200 | R$ 0,05 = 005)
FqdiaInicMulta := 0; //Quantidade de dias após o vencimento, para incidência de multa - Obrigatório se informar o Valor ou Percentual de Multa.
FpdescBonifPgto01 := 0; //1° - Percentual de desconto Deve ser informado com 5 decimais (Exemplo: 2% = 2.00000 | 0,05% = 0.05000)
FvdescBonifPgto01 := 0; //1° - Valor de desconto Deve ser informado com 2 decimais (Exemplo: R$ 2,00 = 200 | R$ 0,05 = 005)
FdlimDescBonif1 := ''; //1° - Data-limite de desconto Deve ser informada como o exemplo 01.01.2001 - Obrigatório, caso informado valor ou percentual do 1° desconto/ bonificação
FpdescBonifPgto02 := 0; //2° - Percentual de desconto Deve ser informado com 5 decimais (Exemplo: 2% = 2.00000 | 0,05% = 0.05000)
FvdescBonifPgto02 := 0; //2° - Valor de desconto Deve ser informado com 2 decimais (Exemplo: R$ 2,00 = 200 | R$ 0,05 = 005)
FdlimDescBonif2 := ''; //2° - Data-limite de desconto Deve ser informada como o exemplo 01.01.2001
FpdescBonifPgto03 := 0; //3° - Percentual de desconto Deve ser informado com 5 decimais (Exemplo: 2% = 2.00000 | 0,05% = 0.05000)
FvdescBonifPgto03 := 0; //3° - Valor de desconto Deve ser informado com 2 decimais (Exemplo: R$ 2,00 = 200 | R$ 0,05 = 005)
FdlimDescBonif3 := ''; //3° - Data-limite de desconto Deve ser informada como o exemplo 01.01.2001
FctpoPrzCobr := 0; //Tipo de prazo desconto/bonificação 1 = Dias corridos 2 = Dias úteis
FpdescBonifPgto := 0; //Percentual de desconto Deve ser informado com 5 decimais (Exemplo: 2% = 2.00000 | 0,05% = 0.05000)
FvdescBonifPgto := 0; //Valor de bonificação Deve ser informado com 2 decimais (Exemplo: R$ 2,00 = 200 | R$ 0,05 = 005)
FdlimBonifPgto := ''; //Data-limite de bonificação Deve ser informada como o exemplo 01.01.2001
FvabtmtTitloCobr := 0; //Valor de abatimento do título
FviofPgtoTitlo := 0; //Valor de IOF do título - Não, usar apenas para seguradoras
Ffiller2 := ''; //Manter em branco.
FisacdoTitloCobr := ''; //Nome do devedor (Sacado) Tam: 70.
FelogdrSacdoTitlo := ''; //Logradouro do devedor (Sacado) Tam: 40
FenroLogdrSacdo := 0; //Número do logradouro do devedor (Sacado)
FecomplLogdrSacdo := ''; //Complemento do logradouro do devedor (Sacado) Tam: 15
FccepSacdoTitlo := 0; //CEP do devedor (Sacado)
FccomplCepSacdo := 0; //Complemento do CEP do devedor (Sacado)
FebairoLogdrSacdo := ''; //Bairro do logradouro do devedor (Sacado) Tam: 40
FimunSacdoTitlo := ''; //Município do devedor (Sacado) Tam: 30
FcsglUfSacdo := ''; //Sigla da Unidade Federativa do devedor (Sacado) Tam: 2
FindCpfCnpjSacdo := 0; //Indicador de CPF ou CNPJ do devedor (Sacado) 1 = CPF 2 = CNPJ
FnroCpfCnpjSacdo := '0'; //Número do CPF ou CNPJ do devedor (Sacado)
FrenderEletrSacdo := ''; //Endereço eletrônico do devedor - e-mail (Sacado)
FcdddFoneSacdo := 0; //DDD do telefone do devedor (Sacado)
FcfoneSacdoTitlo := 0; //Número do telefone do devedor (Sacado);
FbancoDeb := 0; //Código do Banco para débito automático
FagenciaDeb := 0; //Número do Agência para débito automático
FagenciaDebDv := 0; //Dígito verificador da Agência para débito automático - Obrigatório, caso informado agenciaDeb
FcontaDeb := 0; //Número da conta para débito automático - Obrigatório, caso informado agenciaDeb
FbancoCentProt := 0; //Código do Banco de protesto
FagenciaDvCentPr := 0; //Número da Agência de protesto
FisacdrAvalsTitlo := ''; //Nome do sacador avalista (Beneficiário final) - Tam: 40
FelogdrSacdrAvals := ''; //Logradouro do sacador avalista (Beneficiário final) - Tam: 40
FenroLogdrSacdr := 0; //Número do logradouro do sacador avalista (Beneficiário final)
FecomplLogdrSacdr := ''; //Complemento do logradouro do sacador avalista (Beneficiário final)
FccepSacdrTitlo := 0; //CEP do sacador avalista
FccomplCepSacdr := 0; //Complemento do CEP do sacador avalista
FebairoLogdrSacdr := ''; //Bairro do logradouro do sacador avalista
FimunSacdrAvals := ''; //Município do sacador avalista
FcsglUfSacdr := ''; //Sigla da Unidade Federativa do sacador avalista
FindCpfCnpjSacdr := 0; //Indicador de CPF ou CNPJ do sacador avalista 1 = CPF 2 = CNPJ
FnroCpfCnpjSacdr := 0; //Número do CPF ou CNPJ do sacador avalista
FrenderEletrSacdr := ''; //Endereço eletrônico do sacador avalista - e-mail
FcdddFoneSacdr := 0; //DDD do telefone do sacador avalista
FcfoneSacdrTitlo := 0; //Número do telefone do sacador avalista
Ffiller3 := ''; //Implementações futuras
Ffase := 1; //Fase de atualização do QR Code: 1 = Registro do título e envio ao BSPI 2 = Vinculação do título com QR Code
FcindcdCobrMisto := 'S'; //Indicador do registro de título com QR Code S = Sim N = Não
FialiasAdsaoCta := ''; //Chave Pix do beneficiário
FiconcPgtoSpi := ''; //TXID do título
FcaliasAdsaoCta := ''; //Códigos de erro na geração do QR Code pelo BSPI
FilinkGeracQrcd := ''; //Identificação do location do QR Code gerado pelo BSPI
FwqrcdPdraoMercd := ''; //Código EMV do QR Code gerado pelo BSPI
FvalidadeAposVencimento := ''; //Quantidade de dias após vencimento, que o título é válido para pagamento via Pix
Ffiller4 := ''; //Implementações futuras
end;
constructor TLibBradescoApiCriaBoleto.Create;
begin
Self.Clear;
end;
destructor TLibBradescoApiCriaBoleto.Destroy;
begin
inherited;
end;
function TLibBradescoApiCriaBoleto.ToString(): string;
var
i: Integer;
strJson: string;
json: TlkJSONobject;
begin
json := TlkJSONobject.Create;
json.Add('registrarTitulo', FregistrarTitulo);
json.Add('codUsuario', FcodUsuario);
json.Add('nroCpfCnpjBenef', FnroCpfCnpjBenef);
json.Add('filCpfCnpjBenef', FfilCpfCnpjBenef);
json.Add('digCpfCnpjBenef', FdigCpfCnpjBenef);
json.Add('tipoAcesso', FtipoAcesso);
json.Add('cpssoaJuridContr', FcpssoaJuridContr);
json.Add('ctpoContrNegoc', FctpoContrNegoc);
json.Add('nseqContrNegoc', FnseqContrNegoc);
json.Add('cidtfdProdCobr', FcidtfdProdCobr);
json.Add('cnegocCobr', FcnegocCobr);
json.Add('codigoBanco', FcodigoBanco);
json.Add('filler', Ffiller);
json.Add('eNseqContrNegoc', FeNseqContrNegoc);
json.Add('tipoRegistro', FtipoRegistro);
json.Add('cprodtServcOper', FcprodtServcOper);
json.Add('ctitloCobrCdent', FctitloCobrCdent);
json.Add('ctitloCliCdent', FctitloCliCdent);
json.Add('demisTitloCobr', FdemisTitloCobr);
json.Add('dvctoTitloCobr', FdvctoTitloCobr);
json.Add('cidtfdTpoVcto', FcidtfdTpoVcto);
json.Add('cindcdEconmMoeda', FcindcdEconmMoeda);
json.Add('vnmnalTitloCobr', FvnmnalTitloCobr);
json.Add('qmoedaNegocTitlo', FqmoedaNegocTitlo);
json.Add('cespceTitloCobr', FcespceTitloCobr);
json.Add('cindcdAceitSacdo', FcindcdAceitSacdo);
json.Add('ctpoProteTitlo', FctpoProteTitlo);
json.Add('ctpoPrzProte', FctpoPrzProte);
json.Add('ctpoProteDecurs', FctpoProteDecurs);
json.Add('ctpoPrzDecurs', FctpoPrzDecurs);
json.Add('cctrlPartcTitlo', FcctrlPartcTitlo);
json.Add('cformaEmisPplta', FcformaEmisPplta);
json.Add('cindcdPgtoParcial', FcindcdPgtoParcial);
json.Add('qtdePgtoParcial', FqtdePgtoParcial);
json.Add('filler1', Ffiller1);
json.Add('ptxJuroVcto', FptxJuroVcto);
json.Add('vdiaJuroMora', FvdiaJuroMora);
json.Add('qdiaInicJuro', FqdiaInicJuro);
json.Add('vmultaAtrsoPgto', FvmultaAtrsoPgto);
json.Add('qdiaInicMulta', FqdiaInicMulta);
json.Add('pdescBonifPgto01', FpdescBonifPgto01);
json.Add('vdescBonifPgto01', FvdescBonifPgto01);
json.Add('dlimDescBonif1', FdlimDescBonif1);
json.Add('pdescBonifPgto02', FpdescBonifPgto02);
json.Add('vdescBonifPgto02', FvdescBonifPgto02);
json.Add('dlimDescBonif2', FdlimDescBonif2);
json.Add('pdescBonifPgto03', FpdescBonifPgto03);
json.Add('vdescBonifPgto03', FvdescBonifPgto03);
json.Add('dlimDescBonif3', FdlimDescBonif3);
json.Add('ctpoPrzCobr', FctpoPrzCobr);
json.Add('pdescBonifPgto', FpdescBonifPgto);
json.Add('vdescBonifPgto', FvdescBonifPgto);
json.Add('dlimBonifPgto', FdlimBonifPgto);
json.Add('vabtmtTitloCobr', FvabtmtTitloCobr);
json.Add('viofPgtoTitlo', FviofPgtoTitlo);
json.Add('filler2', Ffiller2);
json.Add('isacdoTitloCobr', FisacdoTitloCobr);
json.Add('elogdrSacdoTitlo', FelogdrSacdoTitlo);
json.Add('enroLogdrSacdo', FenroLogdrSacdo);
json.Add('ecomplLogdrSacdo', FecomplLogdrSacdo);
json.Add('ccepSacdoTitlo', FccepSacdoTitlo);
json.Add('ccomplCepSacdo', FccomplCepSacdo);
json.Add('ebairoLogdrSacdo', FebairoLogdrSacdo);
json.Add('imunSacdoTitlo', FimunSacdoTitlo);
json.Add('csglUfSacdo', FcsglUfSacdo);
json.Add('indCpfCnpjSacdo', FindCpfCnpjSacdo);
json.Add('nroCpfCnpjSacdo', FnroCpfCnpjSacdo);
json.Add('renderEletrSacdo', FrenderEletrSacdo);
json.Add('cdddFoneSacdo', FcdddFoneSacdo);
json.Add('cfoneSacdoTitlo', FcfoneSacdoTitlo);
json.Add('bancoDeb', FbancoDeb);
json.Add('agenciaDeb', FagenciaDeb);
json.Add('agenciaDebDv', FagenciaDebDv);
json.Add('contaDeb', FcontaDeb);
json.Add('bancoCentProt', FbancoCentProt);
json.Add('agenciaDvCentPr', FagenciaDvCentPr);
json.Add('isacdrAvalsTitlo', FisacdrAvalsTitlo);
json.Add('elogdrSacdrAvals', FelogdrSacdrAvals);
json.Add('enroLogdrSacdr', FenroLogdrSacdr);
json.Add('ecomplLogdrSacdr', FecomplLogdrSacdr);
json.Add('ccepSacdrTitlo', FccepSacdrTitlo);
json.Add('ccomplCepSacdr', FccomplCepSacdr);
json.Add('ebairoLogdrSacdr', FebairoLogdrSacdr);
json.Add('imunSacdrAvals', FimunSacdrAvals);
json.Add('csglUfSacdr', FcsglUfSacdr);
json.Add('indCpfCnpjSacdr', FindCpfCnpjSacdr);
json.Add('nroCpfCnpjSacdr', FnroCpfCnpjSacdr);
json.Add('renderEletrSacdr', FrenderEletrSacdr);
json.Add('cdddFoneSacdr', FcdddFoneSacdr);
json.Add('cfoneSacdrTitlo', FcfoneSacdrTitlo);
json.Add('filler3', Ffiller3);
json.Add('fase', Ffase);
json.Add('cindcdCobrMisto', FcindcdCobrMisto);
json.Add('ialiasAdsaoCta', FialiasAdsaoCta);
json.Add('iconcPgtoSpi', FiconcPgtoSpi);
json.Add('caliasAdsaoCta', FcaliasAdsaoCta);
json.Add('ilinkGeracQrcd', FilinkGeracQrcd);
json.Add('wqrcdPdraoMercd', FwqrcdPdraoMercd);
json.Add('validadeAposVencimento', FvalidadeAposVencimento);
json.Add('filler4', Ffiller4);
i := 0;
strJson := GenerateReadableText(json, i);
strJson := RemoveCaracterNaoUtilizadoNoJson(strJson);
Result := strJson;
end;
function TLibBradescoApiCriaBoleto.stringApiModeloDoBanco(): string;
var
i: Integer;
strJson: string;
json: TlkJSONobject;
begin
json := TlkJSONobject.Create;
json.Add('ctitloCobrCdent', '03966317021'); // "UTILIZAR A RAIZ DO CNPJ DA EMPRESA + NÚMEROS SEQUENCIAIS - EX: 01234567001');
json.Add('registrarTitulo', '1');
json.Add('codUsuario', 'APISERVIC');
json.Add('nroCpfCnpjBenef', '68542653');
json.Add('filCpfCnpjBenef', '1018');
json.Add('digCpfCnpjBenef', '38');
json.Add('tipoAcesso', '2');
json.Add('cpssoaJuridContr', '2269651');
json.Add('ctpoContrNegoc', '48');
json.Add('nseqContrNegoc', '2170272');
json.Add('cidtfdProdCobr', '09');
json.Add('cnegocCobr', '386100000000041000');
json.Add('filler', '');
json.Add('codigoBanco', '237');
json.Add('eNseqContrNegoc', '2170272');
json.Add('tipoRegistro', '001');
json.Add('cprodtServcOper', '00000000');
json.Add('ctitloCliCdent', 'CTITLO-CLI-CDENT');
json.Add('demisTitloCobr', '08.07.2024');
json.Add('dvctoTitloCobr', '10.07.2024');
json.Add('cidtfdTpoVcto', '0');
json.Add('cindcdEconmMoeda', '00006');
json.Add('vnmnalTitloCobr', '00000000000100000');
json.Add('qmoedaNegocTitlo', '00000000000100000');
json.Add('cespceTitloCobr', '10');
json.Add('cindcdAceitSacdo', 'N');
json.Add('ctpoProteTitlo', '00');
json.Add('ctpoPrzProte', '07');
json.Add('ctpoProteDecurs', '00');
json.Add('ctpoPrzDecurs', '07');
json.Add('cctrlPartcTitlo', 'CCTRL-PARTC-TITLO');
json.Add('cformaEmisPplta', '01');
json.Add('cindcdPgtoParcial', 'N');
json.Add('qtdePgtoParcial', '000');
json.Add('filler1', '');
json.Add('ptxJuroVcto', '0');
json.Add('vdiaJuroMora', '');
json.Add('qdiaInicJuro', '0');
json.Add('pmultaAplicVcto', '0');
json.Add('vmultaAtrsoPgto', '0');
json.Add('qdiaInicMulta', '0');
json.Add('pdescBonifPgto01', '0');
json.Add('vdescBonifPgto01', '0');
json.Add('dlimDescBonif1', '');
json.Add('pdescBonifPgto02', '0');
json.Add('vdescBonifPgto02', '0');
json.Add('dlimDescBonif2', '');
json.Add('pdescBonifPgto03', '0');
json.Add('vdescBonifPgto03', '0');
json.Add('dlimDescBonif3', '');
json.Add('ctpoPrzCobr', '0');
json.Add('pdescBonifPgto', '0');
json.Add('vdescBonifPgto', '0');
json.Add('dlimBonifPgto', '');
json.Add('vabtmtTitloCobr', '0');
json.Add('viofPgtoTitlo', '0');
json.Add('filler2', '');
json.Add('isacdoTitloCobr', 'SACADOTESTE');
json.Add('elogdrSacdoTitlo', 'LOGRADOUROSACADOTESTE');
json.Add('enroLogdrSacdo', 'LOGRADOURO');
json.Add('ecomplLogdrSacdo', 'LOGRADOUROSACA');
json.Add('ccepSacdoTitlo', '06401');
json.Add('ccomplCepSacdo', '160');
json.Add('ebairoLogdrSacdo', 'BAIRROSACADO');
json.Add('imunSacdoTitlo', 'MUNICIPIOSACADO');
json.Add('csglUfSacdo', 'SP');
json.Add('indCpfCnpjSacdo', '1');
json.Add('nroCpfCnpjSacdo', '00045886591893');
json.Add('renderEletrSacdo', 'ENDERECOSACADO');
json.Add('cdddFoneSacdo', '011');
json.Add('cfoneSacdoTitlo', '00989414444');
json.Add('bancoDeb', '000');
json.Add('agenciaDeb', '00000');
json.Add('agenciaDebDv', '0');
json.Add('contaDeb', '0000000000000');
json.Add('bancoCentProt', '237');
json.Add('agenciaDvCentPr', '4152');
json.Add('isacdrAvalsTitlo', '');
json.Add('elogdrSacdrAvals', '');
json.Add('enroLogdrSacdr', '');
json.Add('ecomplLogdrSacdr', '');
json.Add('ccepSacdrTitlo', '0');
json.Add('ccomplCepSacdr', '0');
json.Add('ebairoLogdrSacdr', '');
json.Add('imunSacdrAvals', '');
json.Add('csglUfSacdr', '');
json.Add('indCpfCnpjSacdr', '0');
json.Add('nroCpfCnpjSacdr', '0');
json.Add('renderEletrSacdr', '');
json.Add('cdddFoneSacdr', '0');
json.Add('cfoneSacdrTitlo', '0');
json.Add('filler3', '');
json.Add('fase', '1');
json.Add('cindcdCobrMisto', 'S');
json.Add('ialiasAdsaoCta', '');
json.Add('iconcPgtoSpi', '');
json.Add('caliasAdsaoCta', '');
json.Add('ilinkGeracQrcd', '');
json.Add('wqrcdPdraoMercd', '');
json.Add('validadeAposVencimento', '0');
json.Add('filler4', '');
i := 0;
strJson := GenerateReadableText(json, i);
strJson := RemoveCaracterNaoUtilizadoNoJson(strJson);
Result := strJson;
end;
end.