PHPackages                             cotopaco/laravel-factus-sdk - 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. [API Development](/categories/api)
4. /
5. cotopaco/laravel-factus-sdk

ActiveLibrary[API Development](/categories/api)

cotopaco/laravel-factus-sdk
===========================

Interacts with Factus API with this SDK.

0.1.0(5mo ago)15MITPHPPHP ^8.3CI passing

Since Nov 29Pushed 4mo agoCompare

[ Source](https://github.com/Cotopaco1/laravel-factus-sdk)[ Packagist](https://packagist.org/packages/cotopaco/laravel-factus-sdk)[ Docs](https://github.com/cotopaco1/laravel-factus-sdk)[ GitHub Sponsors](https://github.com/Cotopaco)[ RSS](/packages/cotopaco-laravel-factus-sdk/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (8)Versions (3)Used By (0)

### ⚠️ Este paquete esta en desarrollo y puede cambiar su estructura, no se recomienda para produccion por el momento, Si te es util puedes realizar un Fork al paquete y acomodarlo a tus necesidades

[](#️-este-paquete-esta-en-desarrollo-y-puede-cambiar-su-estructura-no-se-recomienda-para-produccion-por-el-momento-si-te-es-util-puedes-realizar-un-fork-al-paquete-y-acomodarlo-a-tus-necesidades)

SDK Factus para interactuar facilmente con la API de Factus
===========================================================

[](#sdk-factus-para-interactuar-facilmente-con-la-api-de-factus)

[![Latest Version on Packagist](https://camo.githubusercontent.com/d5f017bef0a6b394a00482e728d9c41ffb8eadccc91e86b1d71631eb22a2c3b0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f636f746f7061636f2f6c61726176656c2d6661637475732d73646b2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/cotopaco/laravel-factus-sdk)[![GitHub Tests Action Status](https://camo.githubusercontent.com/b7d4a434d8585713872e47573e023011d3b208c0fc64e68344400d03008e63e7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f636f746f7061636f2f6c61726176656c2d6661637475732d73646b2f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/cotopaco/laravel-factus-sdk/actions?query=workflow%3Arun-tests+branch%3Amain)[![GitHub Code Style Action Status](https://camo.githubusercontent.com/ce7ff2d07d1eb8aef30452c2a493e9da304b5396eacfacf9b8e9cd6b3722be93/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f636f746f7061636f2f6c61726176656c2d6661637475732d73646b2f6669782d7068702d636f64652d7374796c652d6973737565732e796d6c3f6272616e63683d6d61696e266c6162656c3d636f64652532307374796c65267374796c653d666c61742d737175617265)](https://github.com/cotopaco/laravel-factus-sdk/actions?query=workflow%3A%22Fix+PHP+code+style+issues%22+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/9805484c8d0710a987fd2c4e2dc877f066d0599ccc71b507cedd5f3bf7246d18/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f636f746f7061636f2f6c61726176656c2d6661637475732d73646b2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/cotopaco/laravel-factus-sdk)

[Factus](https://developers.factus.com.co/) es un proveedor tecnologico de Colombia, que provee como servicio una API para interactuar mas facil con la DIAN. **Este paquete no es oficial de Halltec(Empresa dueña de Factus).**Interactua con Factus facilmente con las herramientas disponibles en este paquete !

ejemplo simplicifado:

```
$factus = app(Cotopaco\Factus\Factus::class);
$response = $factus->invoice()->createAndValidate($invoice);
$response->rawData; // Respuesta de factus en un array asociativo.
$response->getCufe(); // Cufe de la factura
```

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

[](#instalación)

Instala el paquete via composer:

```
composer require cotopaco/laravel-factus-sdk
```

Ahora en nuestro archivo .env de la raiz del proyecto debemos agregar las siguientes variables

```
FACTUS_PRODUCTION=false # true si es produccion
FACTUS_USERNAME=myuusername
FACTUS_PASSWORD=mypassword
FACTUS_CLIENT_ID=myclientid
FACUTS_CLIENT_SECRET=myclientsecret
```

Conceptos Clave
---------------

[](#conceptos-clave)

- CLIENT: Representa un cliente que puede solicitar recursos en la API de factus, ej: InvoiceClient puede realizar solicitdes acorde a la facutración.
- DTO: Son clases que transportan la información referente a una entidad, estos debes instanciarlos y pasarlos a los metodos del cliente correspondiente.

Uso
---

[](#uso)

Ya con las credenciales configuradas, podemos utilizar la clase Cotopaco\\Factus\\Factus::class para interactuar con la API de factus.

### Crear una factura

[](#crear-una-factura)

```
use Cotopaco\Factus\DTO\Customer;
use Cotopaco\Factus\DTO\Invoice;
use Cotopaco\Factus\DTO\InvoiceItem;
use Cotopaco\Factus\Factus;

/* Instanciamos Singleton */
$factus = app(Factus::class);

/* Instanciamos un Customer */
$customer = new Customer(
    identificationDocumentId: 3,
    identification: "123456789",
    legalOrganizationId: 1,
    tributeId: 18,
    dv: 0,
    company: 'Empresa Test',
    tradeName: 'Test Trade',
    names: 'Cliente de Prueba',
    address: 'Calle 123 #45-67',
    email: 'test@example.com',
    phone: '3001234567',
    municipalityId: 1
);

/* Instanciamos un item */
$item = new InvoiceItem(
    codeReference: 'PROD-001',
    name: 'Producto de Prueba',
    quantity: 2,
    discountRate: 0.0,
    price: 100000.0,
    taxRate: 19.0,
    unitMeasureId: 70,
    standardCodeId: 1,
    isExclude: 0,
    tributeId: 1
);

/* Instanciamos una factura con el customer y los items */
$invoice = new Invoice(
    items: [$item],
    customer: $customer,
    referenceCode: 'TEST-111',
    sendEmail: false
);

/* Realizamos peticion y obtenemos respuesta */
$response = $factus->invoice()->createAndValidate($invoice);
$response->rawData; // Body de la respuesta de Factus en un array asociativo.
$response->getCufe() // Cufe de la factura
$response->statusCode // Status code de la respuesta
```

### Listar factura

[](#listar-factura)

```
use Cotopaco\Factus\Factus;

/* Instanciamos Singleton */
$factus = app(Factus::class);

$response = $factus->invoice()->list(); // Realizar peticion

$response->getInvoices(); // Data de las facturas

$response->rawData // Obtener body de la respuesta de FACTUS

/* Peticion con filtros */
$params = [
    'page' => 2, // Pagina a solicitar
    'status' => 1, // estado de las facturas
];
$response = $factus->invoice()->list($params);
```

### Mostrar una factura

[](#mostrar-una-factura)

```
use Cotopaco\Factus\Factus;

/* Instanciamos Singleton */
$factus = app(Factus::class);

$response = $factus->invoice()->show('ETP990000493'); // Realizamos solicitud
$response->customer // Obtener cliente de la factura
$response->rawData //  Obtener body de la respuesta de FACTUS
```

### Descargar pdf de una factura

[](#descargar-pdf-de-una-factura)

```
use Cotopaco\Factus\Factus;

/* Instanciamos Singleton */
$factus = app(Factus::class);

$response = $factus->invoice()->downloadPdf('ETP990000493'); // Realizamos solicitud
$response->getPdfDownloadResponse(); // Retorna respuesta para descargar el PDF.
/* Otros metodos utiles */
$response->getFileName();
$response->getPdfBase64();
$response->getPdfBinary();
```

### Eliminar una factura no validada por la DIAN

[](#eliminar-una-factura-no-validada-por-la-dian)

```
use Cotopaco\Factus\Factus;

/* Instanciamos Singleton */
$factus = app(Factus::class);

$response = $factus->invoice()->delete('ETP990000493'); // Realizamos solicitud
$response->isDeleted(); // Retorna true si es eliminada validando el mensaje recibido de la API.
$response->rawData // Respuesta del body de la API FACTUS.
```

Opcional: Publica las configuraciones

```
php artisan vendor:publish --tag="laravel-factus-sdk-config"
```

Se publicara el archivo 'config/factus.php' con el siguiente contenido.

```
return [
    'base_url' => env('FACTUS_BASE_URL', 'https://api.factus.com.co'),
    'sandbox_base_url' => env('FACTUS_SANDBOX_BASE_URL', 'https://api-sandbox.factus.com.co'),
    'client' => [
        'id' => env('FACTUS_CLIENT_ID'),
        'secret' => env('FACTUS_CLIENT_SECRET')
    ],
    'username' => env('FACTUS_USERNAME'),
    'password' => env('FACTUS_PASSWORD'),
    'production' => env('FACTUS_PRODUCTION', false)
];
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contribución
------------

[](#contribución)

Eres libre de contribuir, crea una PR y con gusto lo revisaré.

Credits
-------

[](#credits)

- [Sergio](https://github.com/Cotopaco)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance73

Regular maintenance activity

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity41

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

163d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1169253684de595d531c94b2db49c247c76891afd45fcdfbe06a458045591e82?d=identicon)[Cotopaco1](/maintainers/Cotopaco1)

---

Top Contributors

[![Cotopaco1](https://avatars.githubusercontent.com/u/107371466?v=4)](https://github.com/Cotopaco1 "Cotopaco1 (35 commits)")

---

Tags

laravelCotopacolaravel-factus-sdk

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/cotopaco-laravel-factus-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/cotopaco-laravel-factus-sdk/health.svg)](https://phpackages.com/packages/cotopaco-laravel-factus-sdk)
```

###  Alternatives

[dedoc/scramble

Automatic generation of API documentation for Laravel applications.

2.0k7.8M57](/packages/dedoc-scramble)[scalar/laravel

Render your OpenAPI-based API reference

6183.9k2](/packages/scalar-laravel)[ryangjchandler/bearer

Minimalistic token-based authentication for Laravel API endpoints.

8129.8k](/packages/ryangjchandler-bearer)[combindma/laravel-facebook-pixel

Meta pixel integration for Laravel

4956.9k](/packages/combindma-laravel-facebook-pixel)[stechstudio/laravel-hubspot

A Laravel SDK for the HubSpot CRM Api

2971.0k](/packages/stechstudio-laravel-hubspot)[njoguamos/laravel-plausible

A laravel package for interacting with plausible analytics api.

208.8k](/packages/njoguamos-laravel-plausible)

PHPackages © 2026

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