PHPackages                             jamesmosq/laravel-fiscal-colombia - 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. [Framework](/categories/framework)
4. /
5. jamesmosq/laravel-fiscal-colombia

ActiveLibrary[Framework](/categories/framework)

jamesmosq/laravel-fiscal-colombia
=================================

Validador NIT, retenciones y campos fiscales colombianos para Laravel

v1.0.0(1mo ago)00MITPHPPHP ^8.3

Since May 29Pushed 1mo agoCompare

[ Source](https://github.com/jamesmosq/laravel-fiscal-colombia)[ Packagist](https://packagist.org/packages/jamesmosq/laravel-fiscal-colombia)[ RSS](/packages/jamesmosq-laravel-fiscal-colombia/feed)WikiDiscussions main Synced 1w ago

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

laravel-fiscal-colombia
=======================

[](#laravel-fiscal-colombia)

[![Versión en Packagist](https://camo.githubusercontent.com/a760660a8e1b183c962eae45e746ece4eabe7212005ee8d6164e15922d64a427/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a616d65736d6f73712f6c61726176656c2d66697363616c2d636f6c6f6d6269612e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/jamesmosq/laravel-fiscal-colombia)[![Descargas](https://camo.githubusercontent.com/e16352a3fa6fbcce72f66d379a634f6491d7838a761f3d8c8c3adb22cf82a484/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6a616d65736d6f73712f6c61726176656c2d66697363616c2d636f6c6f6d6269612e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/jamesmosq/laravel-fiscal-colombia)[![PHP](https://camo.githubusercontent.com/6b733db0a80db11825d8526dae68bc0695dda9b3b732562b743611f49dc3a4f4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6a616d65736d6f73712f6c61726176656c2d66697363616c2d636f6c6f6d6269612e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/jamesmosq/laravel-fiscal-colombia)[![Licencia](https://camo.githubusercontent.com/11610fee382fdbb88a23f5c31e1749c44c5b67db6e0b37bf32e97bcc8a0d128c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6a616d65736d6f73712f6c61726176656c2d66697363616c2d636f6c6f6d6269612e7376673f7374796c653d666c61742d737175617265)](LICENSE)

Herramientas fiscales y tributarias colombianas para Laravel y MoonShine.

- **Valida NIT** con dígito de verificación según el algoritmo oficial de la DIAN.
- **Tipos de documento** conforme a la Resolución 000042 de 2020 (CC, NIT, CE, TI, PEP, PPT, NUIP…).
- **Retenciones** configurables: retefuente, reteiva y reteica.
- **Campos MoonShine** listos para usar en el panel administrativo (opcional).

**Doble uso:** funciona como paquete Laravel puro o como plugin con campos de UI para MoonShine v4.

---

Requisitos
----------

[](#requisitos)

DependenciaVersión mínimaPHP8.2+Laravel10 / 11 / 12MoonShine *(opcional)*^4.14---

Instalación
-----------

[](#instalación)

```
composer require jamesmosq/laravel-fiscal-colombia
```

El `FiscalColombiaServiceProvider` se registra automáticamente vía auto-discovery de Laravel.

### Publicar la configuración

[](#publicar-la-configuración)

```
php artisan vendor:publish --tag=fiscal-colombia-config
```

Esto crea `config/fiscal-colombia.php` en tu aplicación con las tarifas de retención. Puedes ajustarlas según tu actividad económica o cada reforma tributaria.

---

Uso — Laravel puro
------------------

[](#uso--laravel-puro)

### NitValidator

[](#nitvalidator)

Clase PHP pura, sin dependencias de framework. Se puede usar en cualquier proyecto PHP 8.2+.

```
use JamesMosquera\FiscalColombia\Support\NitValidator;

// Calcular el dígito de verificación
NitValidator::calcularDv('800197268');   // → 4

// Validar NIT completo (acepta con puntos, guión, espacios o dígitos continuos)
NitValidator::esValido('800197268-4');   // → true
NitValidator::esValido('800.197.268-4'); // → true
NitValidator::esValido('8001972684');    // → true  (último dígito = DV)
NitValidator::esValido('800197268-9');   // → false (DV incorrecto)

// Formatear con puntos y guión: 800.197.268-4
NitValidator::formatear('800197268', 4);
```

NITs de referencia verificados con la DIAN:

EntidadNITDVDIAN800.197.2684EPM890.904.9961Univ. Nacional899.999.0633### NitRule — Validación en formularios

[](#nitrule--validación-en-formularios)

```
use JamesMosquera\FiscalColombia\Rules\NitRule;

$request->validate([
    'nit' => ['required', new NitRule],
]);
```

Acepta todos los formatos: `800197268-4`, `800.197.268-4`, `8001972684`.

### TipoDocumento — Enum DIAN

[](#tipodocumento--enum-dian)

Tipos de documento según la **Resolución DIAN 000042 de 2020**.

```
use JamesMosquera\FiscalColombia\Enums\TipoDocumento;

TipoDocumento::CC->label();       // → "Cédula de Ciudadanía"
TipoDocumento::NIT->codigoDian(); // → 31
TipoDocumento::NIT->requiereDv(); // → true
TipoDocumento::CC->requiereDv();  // → false

// Array para selects HTML
TipoDocumento::opciones();
// [['value' => 'CC', 'label' => 'Cédula de Ciudadanía'], ...]
```

EnumSiglaCódigo DIAN`TipoDocumento::CC`CC13`TipoDocumento::NIT`NIT31`TipoDocumento::CE`CE22`TipoDocumento::RC`RC11`TipoDocumento::TI`TI12`TipoDocumento::PEP`PEP41`TipoDocumento::PPT`PPT42`TipoDocumento::PAS`PAS47`TipoDocumento::NUIP`NUIP91### RegimenTributario — Enum

[](#regimentributario--enum)

```
use JamesMosquera\FiscalColombia\Enums\RegimenTributario;

RegimenTributario::RESPONSABLE_IVA->label();         // → "Responsable de IVA"
RegimenTributario::RESPONSABLE_IVA->aplicaReteiva(); // → true
RegimenTributario::NO_RESPONSABLE_IVA->aplicaReteiva(); // → false

RegimenTributario::opciones(); // array para selects
```

EnumLabel`RegimenTributario::RESPONSABLE_IVA`Responsable de IVA`RegimenTributario::NO_RESPONSABLE_IVA`No Responsable de IVA`RegimenTributario::GRAN_CONTRIBUYENTE`Gran Contribuyente`RegimenTributario::REGIMEN_SIMPLE`Régimen Simple de Tributación### TipoPersona — Enum

[](#tipopersona--enum)

```
use JamesMosquera\FiscalColombia\Enums\TipoPersona;

TipoPersona::JURIDICA->label();              // → "Persona Jurídica"
TipoPersona::NATURAL->documentosPermitidos(); // → [CC, CE, RC, TI, PEP, PPT, PAS, NUIP]
TipoPersona::JURIDICA->documentosPermitidos(); // → [NIT]
```

### Retenciones

[](#retenciones)

Las tarifas se leen desde `config/fiscal-colombia.php`, lo que permite ajustarlas sin modificar el paquete.

```
use JamesMosquera\FiscalColombia\Support\Retenciones;

$resultado = Retenciones::calcular(
    valorBase: 1_000_000,
    concepto: 'honorarios',
    calcularReteiva: true,
    actividadIca: 'servicios'
);

// [
//   'retefuente'        => 110_000,   // 11%
//   'reteiva'           => 150_000,   // 15% del IVA
//   'reteica'           => 966,       // 0.966‰
//   'total_retenciones' => 260_966,
//   'valor_neto'        => 739_034,
// ]

// Solo retefuente
Retenciones::retefuente(1_000_000, 'honorarios'); // → 110_000
```

Conceptos disponibles por defecto:

ConceptoTarifa`honorarios`11 %`servicios`4 %`compras`2.5 %`arrendamiento`4 %`rendimientos`7 %---

Uso — Con MoonShine v4
----------------------

[](#uso--con-moonshine-v4)

### NitField

[](#nitfield)

Campo de texto con cálculo automático del dígito de verificación en tiempo real (Alpine.js).

```
use JamesMosquera\FiscalColombia\MoonShine\NitField;

NitField::make('NIT', 'nit')->required(),
```

El campo muestra el DV calculado mientras el usuario escribe.

### TipoDocumentoField

[](#tipodocumentofield)

Select pre-cargado con todos los tipos de documento de la Resolución 000042/2020.

```
use JamesMosquera\FiscalColombia\MoonShine\TipoDocumentoField;

TipoDocumentoField::make('Tipo de documento', 'tipo_documento')->required(),
```

Las opciones se cargan automáticamente desde el enum `TipoDocumento`. Puedes pasarle un subconjunto con `->options([...])`.

---

Actualización de tarifas
------------------------

[](#actualización-de-tarifas)

Las tarifas cambian anualmente por decreto del Ministerio de Hacienda. Después de publicar el config, edita `config/fiscal-colombia.php`:

```
'retefuente' => [
    'honorarios' => 11.0, // actualizar según decreto vigente
],
```

---

Tests
-----

[](#tests)

```
cd packages/laravel-fiscal-colombia
./vendor/bin/phpunit
```

**20 tests, 27 aserciones** — todos los algoritmos DIAN verificados contra NITs reales.

---

Licencia
--------

[](#licencia)

MIT — ver [LICENSE](LICENSE).

---

*Desarrollado por [James Mosquera Rentería](https://jamesmosquera.com) · Medellín, Colombia**Basado en normatividad colombiana: E.T., Resolución DIAN 000042/2020*

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance89

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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

Unknown

Total

1

Last Release

56d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/161092898?v=4)[JAMES MOSQUERA RENTERIA](/maintainers/jamesmosq)[@jamesmosq](https://github.com/jamesmosq)

---

Top Contributors

[![jamesmosquera](https://avatars.githubusercontent.com/u/9124363?v=4)](https://github.com/jamesmosquera "jamesmosquera (6 commits)")

---

Tags

frameworklaravel

###  Code Quality

TestsPHPUnit

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/jamesmosq-laravel-fiscal-colombia/health.svg)

```
[![Health](https://phpackages.com/badges/jamesmosq-laravel-fiscal-colombia/health.svg)](https://phpackages.com/packages/jamesmosq-laravel-fiscal-colombia)
```

###  Alternatives

[laravel/laravel

The skeleton application for the Laravel framework.

84.7k63.2M1.0k](/packages/laravel-laravel)[unopim/unopim

UnoPim Laravel PIM

10.5k2.4k](/packages/unopim-unopim)[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.7k](/packages/nasirkhan-laravel-starter)[codewithdennis/larament

Larament is a time-saving starter kit to quickly launch Laravel 13.x projects. It includes FilamentPHP 5.x pre-installed and configured, along with additional tools and features to streamline your development workflow.

3991.8k](/packages/codewithdennis-larament)[ercogx/laravel-filament-starter-kit

This is a Filament v5 Starter Kit for Laravel 13, designed to accelerate the development of Filament-powered applications.

461.8k](/packages/ercogx-laravel-filament-starter-kit)

PHPackages © 2026

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