PHPackages                             pereirapthiago/dbk-irrf - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. pereirapthiago/dbk-irrf

ActiveLibrary[File &amp; Storage](/categories/file-storage)

pereirapthiago/dbk-irrf
=======================

Pacote PHP para geracao e leitura de arquivos .DBK compativeis com IRPF 2026

1.4.1(1mo ago)026↓100%MITPHPPHP ^8.2

Since Apr 10Pushed 1mo agoCompare

[ Source](https://github.com/pereirapthiago/dbkIRRF)[ Packagist](https://packagist.org/packages/pereirapthiago/dbk-irrf)[ RSS](/packages/pereirapthiago-dbk-irrf/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (1)Versions (11)Used By (0)

DBK IRRF - Pacote PHP para IRPF 2026
====================================

[](#dbk-irrf---pacote-php-para-irpf-2026)

Pacote PHP para geracao e leitura de arquivos `.DBK` compativeis com o programa IRPF 2026 da Receita Federal do Brasil.

Requisitos
----------

[](#requisitos)

- PHP 8.2+
- Composer

Instalacao
----------

[](#instalacao)

```
composer require pereirapthiago/dbk-irrf
```

Uso Rapido
----------

[](#uso-rapido)

### Gerar um arquivo DBK

[](#gerar-um-arquivo-dbk)

```
use DbkIrrf\Aplicacao\Fabrica\FabricaDeclaracao;
use DbkIrrf\Aplicacao\Servico\GeradorDbk;
use DbkIrrf\Aplicacao\Servico\NomeadorArquivo;
use DbkIrrf\Dominio\DTO\RegistroRendimentosPJDTO;
use DbkIrrf\Dominio\Enum\EstadoCivil;
use DbkIrrf\Dominio\Enum\TipoDeclaracao;
use DbkIrrf\Dominio\Enum\UnidadeFederativa;
use DbkIrrf\Dominio\ValorObjeto\Cnpj;
use DbkIrrf\Dominio\ValorObjeto\Cpf;
use DbkIrrf\Dominio\ValorObjeto\Data;
use DbkIrrf\Dominio\ValorObjeto\ValorMonetario;

// 1. Criar declaracao base
$fabrica = new FabricaDeclaracao();
$declaracao = $fabrica->criar(
    cpf: new Cpf('41653508000'),
    anoExercicio: 2026,
    anoCalendario: 2025,
    tipoDeclaracao: TipoDeclaracao::ORIGINAL,
);

// 2. Preencher dados do header
$declaracao->header = new \DbkIrrf\Dominio\DTO\RegistroHeaderDTO(
    cpf: new Cpf('41653508000'),
    anoExercicio: 2026,
    anoCalendario: 2025,
    tipoDeclaracao: TipoDeclaracao::ORIGINAL,
    nome: 'JORGE LUCAS DA SILVA MONTANO',
    uf: UnidadeFederativa::RJ,
    dataNascimento: Data::deDateTime(new \DateTime('2000-10-10')),
    estadoCivil: EstadoCivil::SOLTEIRO,
    codigoMunicipioIbge: '5877',
    cep: '25845060',
    cidade: 'PETROPOLIS',
    cnpjFontePrincipal: new Cnpj('27865757000102'),
    impostoAPagar: ValorMonetario::deCentavos(1480109),
);

// 3. Adicionar rendimentos PJ
$declaracao->adicionarRendimentoPJ(new RegistroRendimentosPJDTO(
    cpf: new Cpf('41653508000'),
    cnpjFontePagadora: new Cnpj('27865757000102'),
    nomeFontePagadora: 'GLOBO COMUNICACAO E PARTICIPACOES S/A',
    rendimentosRecebidos: ValorMonetario::deReais(180000.00),
    contribPrevidenciaria: ValorMonetario::deReais(12000.00),
    impostoRetidoFonte: ValorMonetario::deReais(50000.00),
));

// 4. Gerar arquivo
$gerador = new GeradorDbk();
$nomeador = new NomeadorArquivo();

$nomeArquivo = $nomeador->gerarDeDeclaracao($declaracao);
// Resultado: "41653508000-IRPF-A-2026-2025-ORIGI.DBK"

$gerador->gerarParaArquivo($declaracao, "/caminho/{$nomeArquivo}");
```

### Ler um arquivo DBK existente

[](#ler-um-arquivo-dbk-existente)

```
use DbkIrrf\Aplicacao\Servico\LeitorDbk;

$leitor = new LeitorDbk();
$declaracao = $leitor->lerDeArquivo('/caminho/41653508000-IRPF-A-2026-2025-ORIGI.DBK');

echo $declaracao->header->nome; // "JORGE LUCAS DA SILVA MONTANO"
echo $declaracao->header->impostoAPagar->emReais(); // 14801.09

foreach ($declaracao->obterRendimentosPJ() as $rendimento) {
    echo $rendimento->nomeFontePagadora;
    echo $rendimento->rendimentosRecebidos->emReais();
}
```

### Validar um arquivo DBK

[](#validar-um-arquivo-dbk)

```
use DbkIrrf\Infraestrutura\Validador\ValidadorRegistro;

$validador = new ValidadorRegistro();
$resultado = $validador->validarArquivo(file_get_contents('arquivo.DBK'));

if ($resultado->valido) {
    echo "Arquivo valido!";
} else {
    foreach ($resultado->erros as $erro) {
        echo $erro . "\n";
    }
}
```

Registros Suportados
--------------------

[](#registros-suportados)

TipoDescricaoTamanhoIRPFHeader/Cabecalho124416Dados Pessoais93021Rendimentos Tributaveis PJ17022Rendimentos Mensais PF/Exterior16723Imposto Pago/Retido4024Deducoes Legais4025Dependentes22426Pagamentos Efetuados67127Bens e Direitos125128Dividas e Onus Reais57637Invest. Exterior (Lei 14.754)10345Rendimentos Isentos PJ21684Rendimentos Isentos14488Trib. Exclusiva/Definitiva131T9Trailer/Totalizador449Arquitetura
-----------

[](#arquitetura)

```
src/
├── Dominio/          # ENUMs, DTOs, Value Objects, Contratos
├── Aplicacao/        # Servicos (GeradorDbk, LeitorDbk), Fabricas
└── Infraestrutura/   # Geradores, Leitores, Formatadores, Validadores

```

- **DDD + Clean Architecture**
- **DTOs fortemente tipados** (zero arrays genericos)
- **ENUMs** para valores categoricos
- **Value Objects** imutaveis (Cpf, Cnpj, ValorMonetario, Data, Checksum)
- **Strategy Pattern**: cada registro tem seu gerador/leitor
- **Factory Pattern**: FabricaRegistro mapeia tipo -&gt; gerador/leitor

Testes
------

[](#testes)

```
composer test
```

Limitacoes
----------

[](#limitacoes)

- **Checksum**: O algoritmo de checksum dos ultimos 10 digitos de cada linha nao foi descoberto. Linhas geradas usam placeholder `0000000000`.
- **Registros 19 e 20** (Resumo Rendimentos e Resumo Calculos): fora do escopo. Ao ler um arquivo que os contenha, serao ignorados.

Licenca
-------

[](#licenca)

MIT

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance91

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

10

Last Release

42d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/134432326?v=4)[Thiago Pereira](/maintainers/pereirapthiago)[@pereirapthiago](https://github.com/pereirapthiago)

---

Tags

receita-federalIRPFirrfdbkimposto-rendadeclaracao

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/pereirapthiago-dbk-irrf/health.svg)

```
[![Health](https://phpackages.com/badges/pereirapthiago-dbk-irrf/health.svg)](https://phpackages.com/packages/pereirapthiago-dbk-irrf)
```

###  Alternatives

[glicer/sync-sftp

Sync local files with ftp server

212.7k](/packages/glicer-sync-sftp)[venveo/craft-compress

Create smart zip files from Craft assets on the fly

124.7k](/packages/venveo-craft-compress)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
