ZaptVupt Delphi Boleto & CNAB 240/400 SDK - FEBRABAN Multi-Banco & Boleto Hibrido Pix
SDK Clean-Room Delphi 10.4/11/12 com FEBRABAN 44d/47d (Fator Pos-2025), CNAB 240/400 Remessa/Retorno (8 Bancos), Registro Online + Pix Hibrido (9 Bancos/PSPs), ITF-25 SVG/Bitmap e Ficha HTML5
ZaptVupt Delphi Boleto & CNAB 240/400 SDK (v1.0.0)
Engine Clean-Room Multi-Banco para emissao de boletos FEBRABAN (codigo de barras 44 digitos + linha digitavel 47 digitos com rollover pos-22/02/2025), arquivos CNAB 240 e CNAB 400 (remessa e retorno), registro/consulta/baixa online via API OAuth2 + mTLS com Boleto Hibrido Pix (EMVCo), renderizacao vetorial ITF-25 SVG/Bitmap e Ficha de Compensacao HTML5 imprimivel — 100% em Object Pascal nativo para Delphi 10.4 Sydney, 11 Alexandria e 12 Athens (Win32 e Win64).
Bancos e PSPs Cobertos
1. Motor Offline FEBRABAN & CNAB 240/400 (8 Bancos Nacionais)
- 001 — Banco do Brasil (
ForBancoDoBrasil): Carteira 17/18, convenio 6/7 digitos, CNAB 240 & CNAB 400. - 033 — Santander (
ForSantander): Carteira 101/102, Mod11 Nosso Numero 13 digitos, CNAB 240 & CNAB 400. - 104 — Caixa Economica Federal (
ForCaixa): SIGCB Carteira 14, Campo Livre 25 posicoes com DVs Mod11, CNAB 240 & CNAB 400. - 237 — Bradesco (
ForBradesco): Carteira 09/19, Mod11 Base 7 Nosso Numero (Ppara resto 1), CNAB 240 & CNAB 400. - 341 — Itau Unibanco (
ForItau): Carteira 109/112, Mod10 DAC agencia/conta/carteira/nosso numero, CNAB 240 & CNAB 400. - 077 — Banco Inter (
ForBancoInter): Carteira 112, Campo Livre estruturado + CNAB 240/400 e Bolepix API v3. - 756 — Sicoob (
ForSicoob): Carteira 1, coeficientes especiais3-1-9-7para DV Nosso Numero, CNAB 240 & CNAB 400. - 748 — Sicredi (
ForSicredi): Carteira A/1, Campo Livre com posto/byte geracao + Mod11, CNAB 240 & CNAB 400.
2. Registro Online & Boleto Hibrido Pix (9 Bancos / PSPs)
- Banco do Brasil Cobrancas v2 (
OAuth2 Basic Form + gw-dev-app-key + mTLS) - Banco Inter Bolepix v3 (
OAuth2 Body Form + x-conta-corrente + mTLS) - Sicoob Cobranca Bancaria v3 (
OpenID Connect + client_id + mTLS) - Sicredi Cobranca v1 (
OAuth2 Basic Form + mTLS) - Itau Bolecode v2 (
STS OAuth2 + x-itau-apikey + x-itau-correlationID + mTLS) - Bradesco Boleto Hibrido v1 (
OAuth2 Basic Form + mTLS) - Santander Collection v2 (
OAuth2 Body Form + client_id + mTLS) - Efi Bank Bolix v1 (
OAuth2 Basic JSON + mTLS) - Asaas Boleto v3 (
API Key access_token)
3. Engine Visual Clean-Room (Sem FastReport/DevExpress)
- ITF-25 Vector SVG (
RenderITF25Svg): codigo de barras intercalado 2 de 5 conforme padrao FEBRABAN (startNNNN, stopWNN). - ITF-25 + Ficha em
TBitmap(RenderBoletoBitmap): renderizacao direta em RAM para formularios VCL sem arquivos temporarios. - QR Code Pix Hibrido (
RenderPixQrSvg): geracao pura em Pascal comDelphiZXIngQRCode. - Ficha de Compensacao HTML5 (
RenderBoletoHtml): layout pronto para impressao A4 / Save-as-PDF no navegador ou WebView2.
Arquitetura Modular
1. Vendor_ZVCore (ZV.Core.*, ZV.Http.*, ZV.Banking.Febraban, ZV.Banking.EMVCo, ZV.Core.QRCode): base compartilha FEBRABAN Mod10/Mod11/Rollover 2025, HTTP WinHTTP com mTLS, OAuth2 cache thread-safe e QR Code Apache 2.0.
2. ZV.Boleto.Types: enumeracoes, configuracao TZVCedenteConfig, titulo TZVBoletoTitle e construtor posicional TZVCnabLineBuilder (240 / 400 posicoes ASCII sem acentuacao).
3. ZV.Boleto.BankProfiles: calculo de DV do Nosso Numero e Campo Livre 25 posicoes de cada banco + montagem de EMVCo Hibrido Pix local.
4. ZV.Boleto.Cnab240 & ZV.Boleto.Cnab400: geracao de Remessa e leitura estruturada de Retorno (ParseCnab240Retorno, ParseCnab400Retorno).
5. ZV.Boleto.ApiEngine: registro, consulta e baixa/cancelamento online nas 9 APIs suportadas com renovacao automatica em HTTP 401.
6. ZV.Boleto.Renderer & ZV.Boleto.Facade: fachada unica TZVBoletoManager.
Guia de Instalacao — ZaptVupt Delphi Boleto & CNAB 240/400 SDK (v1.0.0)
Requisitos de Ambiente
- Delphi: 10.4 Sydney, 11 Alexandria ou 12 Athens (Professional, Enterprise ou Architect).
- Plataformas suportadas: Win32 e Win64.
- Sistema Operacional: Windows 10, Windows 11 ou Windows Server 2016/2019/2022/2025.
- Dependencias externas: Zero DLLs externas obrigatorias (
System.Net.HttpClient/ WinHTTP nativo; zero OpenSSL/FastReport/DevExpress).
Metodo 1: Search Path Direto (Recomendado para ERPs e CI/CD)
1. Descompacte o pacote em uma pasta curta, por exemplo:
C:\Dev\Libs\ZV_Delphi_Boleto_CNAB_SDK\
2. No seu projeto (Project -> Options -> Delphi Compiler -> Search path), adicione:
C:\Dev\Libs\ZV_Delphi_Boleto_CNAB_SDK\src\SourceC:\Dev\Libs\ZV_Delphi_Boleto_CNAB_SDK\src\Vendor_ZVCore\src\CoreC:\Dev\Libs\ZV_Delphi_Boleto_CNAB_SDK\src\Vendor_ZVCore\src\HttpC:\Dev\Libs\ZV_Delphi_Boleto_CNAB_SDK\src\Vendor_ZVCore\src\WebhookC:\Dev\Libs\ZV_Delphi_Boleto_CNAB_SDK\src\Vendor_ZVCore\src\BankingC:\Dev\Libs\ZV_Delphi_Boleto_CNAB_SDK\src\Vendor_ZVCore\src\Adapters
3. Em Include path, adicione:
C:\Dev\Libs\ZV_Delphi_Boleto_CNAB_SDK\src\Vendor_ZVCore\src\Adapters
4. No uses das units da sua aplicacao, inclua:
ZV.Core.Types, ZV.Banking.Febraban, ZV.Boleto.Types, ZV.Boleto.Facade
Metodo 2: Compilacao via Pacotes (ZV.BoletoSDK.groupproj)
1. Abra src\Packages\ZV.BoletoSDK.groupproj no Delphi 12.
2. Compile na ordem para Win32 e Win64:
ZV.Core.dpkZV.Http.dpkZV.Banking.dpkZV.BoletoSDK.D12.dpk
Executando o Simulador Multi-Banco & Demos Localmente
1. Inicie o servidor mock deterministico na porta 18920:
python demo\seed_mock_server.py --port 18920
2. Compile e execute a demo CLI (aceita modos offline, api-bb, api-inter, api-sicoob, api-sicredi, api-itau, api-bradesco, api-santander, api-efi, api-asaas):
demo\ZV_BoletoDemo.dpr
3. Compile e execute a demo VCL desktop (visualizacao do boleto em TBitmap, CNAB 240/400 e exportacao HTML):
demo\ZV_BoletoDemo_VCL.dpr
4. Rode a suite completa automatizada (Win32 e Win64 com deteccao de leaks):
tests\ZV_Boleto_Tests.dpr
Referencia de API — ZaptVupt Delphi Boleto & CNAB SDK (v1.0.0)
1. Nucleo FEBRABAN (ZV.Banking.Febraban.TZVFebrabanHelpers)
CalcDueDateFactor(ADueDate: TDateTime): Integer— Calcula o fator de vencimento FEBRABAN de 4 digitos com rollover automatico apos22/02/2025(1000..9999).CalcMod10(const ADigits: string): Integer— Modulo 10 oficial dos campos da Linha Digitavel.CalcMod11BarcodeDAC(const ADigits43: string): Integer— Digito verificador geral (DAC na 5a posicao do codigo de barras; restos0/1/10retornam1).BuildBarcode44(const ABankCode3, ACurrency1: string; AFactor4: Integer; AAmountBRL: Double; const AFreeField25: string): string— Monta codigo de barras de 44 digitos valido.ValidateBarcode44(const ABarcode44: string): Boolean— Valida tamanho, digitos e DAC.BuildLinhaDigitavelFromBarcode(const ABarcode44: string; AFormatted: Boolean = False): string— Converte codigo 44d em Linha Digitavel de 47 digitos (com ou sem pontuacao).ExtractBarcodeFromLinhaDigitavel(const ALinha47: string): string— Conversao reversa 47d -> 44d validada.SanitizeFebrabanAscii(const AText: string): string— Remove acentos (usando tabela Unicode segura independente de codepage) e converte para ASCII caixa alta seguro para remessas CNAB.
2. Fachada Principal (ZV.Boleto.Facade.TZVBoletoManager)
Fabricas Tipadas por Banco / PSP
TZVBoletoManager.ForBancoDoBrasil(...)TZVBoletoManager.ForSantander(...)TZVBoletoManager.ForCaixa(...)TZVBoletoManager.ForBradesco(...)TZVBoletoManager.ForItau(...)TZVBoletoManager.ForBancoInter(...)TZVBoletoManager.ForSicoob(...)TZVBoletoManager.ForSicredi(...)TZVBoletoManager.ForEfiBank(...)TZVBoletoManager.ForAsaas(...)TZVBoletoManager.ForBankConfig(ACedente, ATransport)
Operacoes Offline FEBRABAN & CNAB
GetBankProfile: TZVBoletoBankProfilePrepareTitle(var ATitle: TZVBoletoTitle)— Calcula Nosso Numero + DV, Campo Livre 25 posicoes, Codigo de Barras 44d, Linha Digitavel 47d e QR Hibrido Pix local quandoUseHybridPix = True.GenerateCnab240Remessa(const ATitles: TArray<TZVBoletoTitle>; AIncludeSegmentR: Boolean = True): stringSaveCnab240Remessa(const ATitles: TArray<TZVBoletoTitle>; const AFilePath: string; AIncludeSegmentR: Boolean = True)ParseCnab240Retorno(const AContent: string): TZVCnabReturnSummaryGenerateCnab400Remessa(const ATitles: TArray<TZVBoletoTitle>): stringSaveCnab400Remessa(const ATitles: TArray<TZVBoletoTitle>; const AFilePath: string)ParseCnab400Retorno(const AContent: string): TZVCnabReturnSummary
Operacoes Online API (OAuth2 Cache + Retry 401 + mTLS Nativo)
RegisterOnline(var ATitle: TZVBoletoTitle): TZVBoletoRegisterResponseQueryOnline(const AExternalIdOrNosso: string): TZVBoletoQueryResponseCancelOnline(const AExternalIdOrNosso: string): TZVBoletoCancelResponse
Renderizacao Visual Clean-Room
RenderITF25Svg(const ABarcode44: string; AHeightPx: Integer = 58): stringRenderPixQrSvg(const APixPayload: string; APixelSize: Integer = 4): stringRenderBoletoHtml(const ATitle: TZVBoletoTitle): stringRenderBoletoBitmap(const ATitle: TZVBoletoTitle; ATarget: TBitmap)
Matriz de Homologacao Honesta — ZaptVupt Delphi Boleto & CNAB SDK (v1.0.0)
| Motor / Banco | Escopo Implementado | Status de Homologacao | Validacao Realizada | Requisito para Producao PJ |
|---|---|---|---|---|
| Nucleo FEBRABAN (44d / 47d / Mod10 / Mod11 / Fator Pos-2025) | Calculo deterministico local | PRODUCTION_READY_VERIFIED | Suite Win32 & Win64 com vetores pre/pos-22/02/2025 e roundtrip 44<->47 | Pronto imediatamente offline |
| Motor CNAB 240 & CNAB 400 (Remessa + Retorno) | Registros 0/1/3P/3Q/3R/5/9 (240) e 0/1/9 (400), leitura 3T/3U e retorno 1 | PRODUCTION_READY_VERIFIED | Validacao de exatamente 240 e 400 bytes por linha + roundtrip Remessa->Retorno | Homologar arquivo remessa no gerenciador do banco contratado |
Caixa Economica Federal (104) | SIGCB Campo Livre 25d + CNAB 240/400 + Ficha HTML/Bitmap | PRODUCTION_READY_VERIFIED | Testes locais de Nosso Numero, Campo Livre e CNAB | Convenio SIGCB ativo na Caixa |
Renderer ITF-25 SVG / TBitmap / Ficha HTML5 + QR Pix | Codigo de barras Interleaved 2 of 5 e QR EMVCo em RAM | PRODUCTION_READY_VERIFIED | Verificacao estrutural SVG/Bitmap/HTML sem vazamento de memoria | Pronto imediatamente offline |
Banco do Brasil Cobrancas v2 (001) | OAuth2 Basic Form + gw-dev-app-key + mTLS + API Registro/Consulta/Baixa + CNAB | MOCK_CONTRACT_VERIFIED | Validado em seed_mock_server.py incluindo renovacao automatica apos HTTP 401 | Credenciais Portal Developers BB + Certificado A1 |
Banco Inter Bolepix v3 (077) | OAuth2 Form + x-conta-corrente + mTLS + Pix Hibrido + CNAB | MOCK_CONTRACT_VERIFIED | Validado em seed_mock_server.py Win32/Win64 | Conta PJ Inter + ClientId/ClientSecret + Certificado A1 |
Sicoob Cobranca Bancaria v3 (756) | OpenID Connect + header client_id + mTLS + Pix Hibrido + CNAB | MOCK_CONTRACT_VERIFIED | Validado em seed_mock_server.py + DV 3-1-9-7 | Convenio Cooperado Sicoob + Certificado A1 |
Sicredi Cobranca v1 (748) | OAuth2 Basic + x-api-key + mTLS + Pix Hibrido + CNAB | MOCK_CONTRACT_VERIFIED | Validado em seed_mock_server.py + Mod11 campo livre | Convenio Sicredi + API Key + Certificado A1 |
Itau Bolecode v2 (341) | STS OAuth2 + x-itau-apikey + mTLS + Bolecode + CNAB | MOCK_CONTRACT_VERIFIED | Validado em seed_mock_server.py + Mod10 Itaú | Cadastro DevPortal Itau PJ + Certificado A1 |
Bradesco Boleto Hibrido v1 (237) | OAuth2 Basic + mTLS + Registro Hibrido + CNAB | MOCK_CONTRACT_VERIFIED | Validado em seed_mock_server.py + DV Carteira/NossoNumero P | Credenciais Bradesco Net Empresa + Certificado A1 |
Santander Collection v2 (033) | OAuth2 Form + client_id + mTLS + Registro + CNAB | MOCK_CONTRACT_VERIFIED | Validado em seed_mock_server.py Win32/Win64 | Portal Santander APIs PJ + Certificado A1 |
| Efi Bank Bolix v1 | OAuth2 JSON + mTLS + Boleto + Pix Hibrido | MOCK_CONTRACT_VERIFIED | Validado em seed_mock_server.py Win32/Win64 | Conta PJ Efi + Certificado .p12/.pfx |
| Asaas Boleto v3 | API Key access_token (Sem mTLS) + Boleto + Pix | MOCK_CONTRACT_VERIFIED | Validado em seed_mock_server.py Win32/Win64 | Chave API $aact_... Asaas |
> Nota de transparencia: Todos os calculos offline (FEBRABAN, Modulo 10/11, Fator Pos-2025, CNAB 240/400, ITF-25 e HTML) operam 100% em producao local (PRODUCTION_READY_VERIFIED). Todas as integracoes online de API possuem cliente HTTP/OAuth2/mTLS completo validado em Win32 e Win64 contra simuladores fiéis dos contratos oficiais (MOCK_CONTRACT_VERIFIED), aguardando credenciais PJ do comprador para emissao contra ambiente real dos bancos.
SBOM & Auditoria de Dependencias (Clean-Room v1.0.0)
Este pacote segue o protocolo Clean-Room ZaptVupt Engenharia. Compila do zero em Win32 e Win64 usando exclusivamente RTL/VCL nativa da Embarcadero e fontes autorais auditados.
| Componente / Unit | Origem | Licenca | Obrigatoria? | Observacao |
|---|---|---|---|---|
System.* (SysUtils, Classes, JSON, Net.HttpClient, NetEncoding, DateUtils, SyncObjs, IOUtils) | Embarcadero Delphi RTL | Licenca da IDE Delphi do cliente | Sim | Inclui transporte WinHTTP nativo TLS 1.2/1.3 e suporte a certificado .pfx / Windows Store |
Vcl.* (Graphics, Controls, Forms, StdCtrls, ExtCtrls, Dialogs) | Embarcadero Delphi VCL | Licenca da IDE Delphi do cliente | Somente Demo VCL / TBitmap | ZV.Boleto.Types, BankProfiles, Cnab240, Cnab400, ApiEngine e SVG/HTML compilam sem UI |
DelphiZXIngQRCode.pas | ZXing Clean Pascal Port | Apache License 2.0 | Sim (QR Pix Hibrido) | Object Pascal puro incluido em Vendor_ZVCore |
ZV.Core.*, ZV.Http.*, ZV.Banking.Febraban, ZV.Banking.EMVCo, ZV.Boleto.* | Engenharia ZaptVupt (CNPJ 28.940.174/0001-53) | Licenca Comercial Perpetua com Codigo-Fonte (proibida revenda avulsa) | Sim | Auditado contra vazamentos (ReportMemoryLeaksOnShutdown := True) e sem DLLs externas |
Dependencias Explicitamente Excluidas
- Zero dependencia de FortesReport (
RLReport,RLBoleto) ou FastReport (frxClass,.fr3). - Zero dependencia de DevExpress VCL (
cxGrid,cxButtons,dxSkins). - Zero dependencia de suites monoliticas de terceiros (
ACBrBoleto,Indylegado,libeay32.dll,ssleay32.dll).
Changelog — ZaptVupt Delphi Boleto & CNAB 240/400 SDK
v1.0.0 (2026-11-13)
- Lancamento inicial Clean-Room do SDK Multi-Banco de Boletos e CNAB para Delphi 10.4 / 11 / 12 (Win32 e Win64).
- Adicionada unit compartilhada
ZV.Banking.FebrabanaoVendor_ZVCorecom Modulo 10/11, DAC 44 digitos, conversao reversa 44<->47 digitos e regra obrigatoria de Fator de Vencimento FEBRABAN pos-22/02/2025 (1000..9999). - Adicionado suporte aos 8 maiores bancos brasileiros no motor FEBRABAN + CNAB 240 & 400 (Banco do Brasil
001, Santander033, Caixa104, Bradesco237, Itau341, Banco Inter077, Sicoob756, Sicredi748). - Adicionado motor online OAuth2 Cache + Retry HTTP 401 + mTLS A1/Store para 9 bancos/PSPs (BB Cobrancas v2, Inter Bolepix v3, Sicoob v3, Sicredi v1, Itau Bolecode v2, Bradesco Hibrido v1, Santander v2, Efi Bank Bolix v1 e Asaas v3).
- Adicionado renderizador nativo ITF-25 vetorial SVG,
TBitmapVCL em RAM, QR Code Pix Hibrido e Ficha de Compensacao HTML5 imprimivel. - Incluido simulador deterministico multi-banco
demo/seed_mock_server.py, demo CLI, demo VCL e suite automatizada completa.