ZaptVupt ZV-DELPHI-BOLETO-CNAB-SDK • v1.0.0

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

Gates G0-G4: Aprovados | Testes automatizados: 192 passed, 0 failed | Bundle SHA-256: 72b7721020f5504a...

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 (P para 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 especiais 3-1-9-7 para 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 (start NNNN, stop WNN).
  • 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 com DelphiZXIngQRCode.
  • 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\Source
  • C:\Dev\Libs\ZV_Delphi_Boleto_CNAB_SDK\src\Vendor_ZVCore\src\Core
  • C:\Dev\Libs\ZV_Delphi_Boleto_CNAB_SDK\src\Vendor_ZVCore\src\Http
  • C:\Dev\Libs\ZV_Delphi_Boleto_CNAB_SDK\src\Vendor_ZVCore\src\Webhook
  • C:\Dev\Libs\ZV_Delphi_Boleto_CNAB_SDK\src\Vendor_ZVCore\src\Banking
  • C:\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.dpk
  • ZV.Http.dpk
  • ZV.Banking.dpk
  • ZV.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 apos 22/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; restos 0/1/10 retornam 1).
  • 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: TZVBoletoBankProfile
  • PrepareTitle(var ATitle: TZVBoletoTitle) — Calcula Nosso Numero + DV, Campo Livre 25 posicoes, Codigo de Barras 44d, Linha Digitavel 47d e QR Hibrido Pix local quando UseHybridPix = True.
  • GenerateCnab240Remessa(const ATitles: TArray<TZVBoletoTitle>; AIncludeSegmentR: Boolean = True): string
  • SaveCnab240Remessa(const ATitles: TArray<TZVBoletoTitle>; const AFilePath: string; AIncludeSegmentR: Boolean = True)
  • ParseCnab240Retorno(const AContent: string): TZVCnabReturnSummary
  • GenerateCnab400Remessa(const ATitles: TArray<TZVBoletoTitle>): string
  • SaveCnab400Remessa(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): TZVBoletoRegisterResponse
  • QueryOnline(const AExternalIdOrNosso: string): TZVBoletoQueryResponse
  • CancelOnline(const AExternalIdOrNosso: string): TZVBoletoCancelResponse

Renderizacao Visual Clean-Room

  • RenderITF25Svg(const ABarcode44: string; AHeightPx: Integer = 58): string
  • RenderPixQrSvg(const APixPayload: string; APixelSize: Integer = 4): string
  • RenderBoletoHtml(const ATitle: TZVBoletoTitle): string
  • RenderBoletoBitmap(const ATitle: TZVBoletoTitle; ATarget: TBitmap)

Matriz de Homologacao Honesta — ZaptVupt Delphi Boleto & CNAB SDK (v1.0.0)

Motor / BancoEscopo ImplementadoStatus de HomologacaoValidacao RealizadaRequisito para Producao PJ
Nucleo FEBRABAN (44d / 47d / Mod10 / Mod11 / Fator Pos-2025)Calculo deterministico localPRODUCTION_READY_VERIFIEDSuite Win32 & Win64 com vetores pre/pos-22/02/2025 e roundtrip 44<->47Pronto 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 1PRODUCTION_READY_VERIFIEDValidacao de exatamente 240 e 400 bytes por linha + roundtrip Remessa->RetornoHomologar arquivo remessa no gerenciador do banco contratado
Caixa Economica Federal (104)SIGCB Campo Livre 25d + CNAB 240/400 + Ficha HTML/BitmapPRODUCTION_READY_VERIFIEDTestes locais de Nosso Numero, Campo Livre e CNABConvenio SIGCB ativo na Caixa
Renderer ITF-25 SVG / TBitmap / Ficha HTML5 + QR PixCodigo de barras Interleaved 2 of 5 e QR EMVCo em RAMPRODUCTION_READY_VERIFIEDVerificacao estrutural SVG/Bitmap/HTML sem vazamento de memoriaPronto imediatamente offline
Banco do Brasil Cobrancas v2 (001)OAuth2 Basic Form + gw-dev-app-key + mTLS + API Registro/Consulta/Baixa + CNABMOCK_CONTRACT_VERIFIEDValidado em seed_mock_server.py incluindo renovacao automatica apos HTTP 401Credenciais Portal Developers BB + Certificado A1
Banco Inter Bolepix v3 (077)OAuth2 Form + x-conta-corrente + mTLS + Pix Hibrido + CNABMOCK_CONTRACT_VERIFIEDValidado em seed_mock_server.py Win32/Win64Conta PJ Inter + ClientId/ClientSecret + Certificado A1
Sicoob Cobranca Bancaria v3 (756)OpenID Connect + header client_id + mTLS + Pix Hibrido + CNABMOCK_CONTRACT_VERIFIEDValidado em seed_mock_server.py + DV 3-1-9-7Convenio Cooperado Sicoob + Certificado A1
Sicredi Cobranca v1 (748)OAuth2 Basic + x-api-key + mTLS + Pix Hibrido + CNABMOCK_CONTRACT_VERIFIEDValidado em seed_mock_server.py + Mod11 campo livreConvenio Sicredi + API Key + Certificado A1
Itau Bolecode v2 (341)STS OAuth2 + x-itau-apikey + mTLS + Bolecode + CNABMOCK_CONTRACT_VERIFIEDValidado em seed_mock_server.py + Mod10 ItaúCadastro DevPortal Itau PJ + Certificado A1
Bradesco Boleto Hibrido v1 (237)OAuth2 Basic + mTLS + Registro Hibrido + CNABMOCK_CONTRACT_VERIFIEDValidado em seed_mock_server.py + DV Carteira/NossoNumero PCredenciais Bradesco Net Empresa + Certificado A1
Santander Collection v2 (033)OAuth2 Form + client_id + mTLS + Registro + CNABMOCK_CONTRACT_VERIFIEDValidado em seed_mock_server.py Win32/Win64Portal Santander APIs PJ + Certificado A1
Efi Bank Bolix v1OAuth2 JSON + mTLS + Boleto + Pix HibridoMOCK_CONTRACT_VERIFIEDValidado em seed_mock_server.py Win32/Win64Conta PJ Efi + Certificado .p12/.pfx
Asaas Boleto v3API Key access_token (Sem mTLS) + Boleto + PixMOCK_CONTRACT_VERIFIEDValidado em seed_mock_server.py Win32/Win64Chave 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 / UnitOrigemLicencaObrigatoria?Observacao
System.* (SysUtils, Classes, JSON, Net.HttpClient, NetEncoding, DateUtils, SyncObjs, IOUtils)Embarcadero Delphi RTLLicenca da IDE Delphi do clienteSimInclui transporte WinHTTP nativo TLS 1.2/1.3 e suporte a certificado .pfx / Windows Store
Vcl.* (Graphics, Controls, Forms, StdCtrls, ExtCtrls, Dialogs)Embarcadero Delphi VCLLicenca da IDE Delphi do clienteSomente Demo VCL / TBitmapZV.Boleto.Types, BankProfiles, Cnab240, Cnab400, ApiEngine e SVG/HTML compilam sem UI
DelphiZXIngQRCode.pasZXing Clean Pascal PortApache License 2.0Sim (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)SimAuditado 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, Indy legado, 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.Febraban ao Vendor_ZVCore com 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, Santander 033, Caixa 104, Bradesco 237, Itau 341, Banco Inter 077, Sicoob 756, Sicredi 748).
  • 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, TBitmap VCL 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.