PHPackages                             ralego/laravel-timbox - 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. [PDF &amp; Document Generation](/categories/documents)
4. /
5. ralego/laravel-timbox

ActiveLibrary[PDF &amp; Document Generation](/categories/documents)

ralego/laravel-timbox
=====================

Timbrado de xml con timbox para laravel

v1.0.0(6y ago)0112MITPHPPHP &gt;=7.1

Since May 16Pushed 6y ago1 watchersCompare

[ Source](https://github.com/ralego/laravel-timbox)[ Packagist](https://packagist.org/packages/ralego/laravel-timbox)[ RSS](/packages/ralego-laravel-timbox/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

Laravel Timbox
==============

[](#laravel-timbox)

- [Instalación](#instalaci%C3%B3n)
- [Uso](#uso)

Este paquete te ayuda a utilizar todos los servicios de [Timbox](https://www.timbox.com.mx/) de una manera sencilla.

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

[](#instalación)

Este paquete puede ser utlizado en Laravel 5.5 o superior.

Instalar el paquete a través de composer:

```
composer require ralego/laravel-timbox
```

Uso
---

[](#uso)

### Timbrado

[](#timbrado)

Agrega `Ralego\Timbox\Traits\Timbrado` trait en la clase que vayas a necesitar timbrar:

```
use Ralego\Timbox\Traits\Timbrado;

class HomeController extends Controller
{
    use Timbrado,

    // ...
}
```

Ejemplo:

```
use Illuminate\Http\Request;
use Ralego\Timbox\Traits\Timbrado;

class HomeController extends Controller
{
    use Timbrado;

    public function timbrar()
    {
        // Cargamos el XML de prueba
        $xml = file_get_contents('ejemplo_cfdi33.xml');
        // Usuario y contraseña de la cuenta de timbox
        $credenciales = (object)[
            'username'  => 'AAA010101000',
            'password'  => 'h6584D56fVdBbSmmnB'
        ];
        // Cargamos la llave del SAT en formato PEM
        $key = file_get_contents('CSD01_AAA010101AAA.key.pem');
        // Sellamos y actualizamos la hora del cfdi versión 3.3.
        $xml = $this->sellar($xml, $key);
        // Timbramos el documento
        $resultado = $this->timbrar($credenciales, $xml);
        // Si ocurre algun error retornamos el mensaje con status 422
        if(!$resultado->success)
            return response($resultado->message, 422);

        $xml_timbrado = $resultado->xml;
        return $xml_timbrado;
    }
}
```

### Cancelacion

[](#cancelacion)

Agrega `Ralego\Timbox\Traits\Cancelacion` trait en la clase que vayas a necesitar cancelar:

```
use Ralego\Timbox\Traits\Cancelacion;

class HomeController extends Controller
{
    use Cancelacion,

    // ...
}
```

Ejemplo:

```
use Illuminate\Http\Request;
use Ralego\Timbox\Traits\Cancelacion;

class HomeController extends Controller
{
    use Cancelacion;

    public function cancelar()
    {
        // Usuario y contraseña de la cuenta de timbox
        $credenciales = (object)[
            'username'  => 'AAA010101000',
            'password'  => 'h6584D56fVdBbSmmnB'
        ];
        // Cargamos el certificado y la llave del SAT en formato PEM
        $cer = file_get_contents('CSD01_AAA010101AAA.cer.pem');
        $key = file_get_contents('CSD01_AAA010101AAA.key.pem');
        // Colocamos los cfdis a cancelar
        $uuids = [
            [
                "uuid"          => 'EE728194-B356-4B84-9349-254F532A3E01',
                "rfc_receptor"  => 'IAD121214B34',
                "total"         => '1751.60'
            ]// ... n folio a cancelar
        ];
        $resultado = $this->cancelar($credenciales, 'AAA010101AAA',$cer, $key, $uuids);
        // Si ocurre algun error retornamos el mensaje con status 422
        if(!$resultado->success)
            return response($resultado->message, 422);

        $xml_timbrado = $resultado->xml;
        return $xml_timbrado;
    }
}
```

### Consultas

[](#consultas)

```
use Ralego\Timbox\Traits\Status;

class HomeController extends Controller
{
    use Status,

    // ...
}
```

Ejemplo para obtener el estatus de un cfdi:

```
use Illuminate\Http\Request;
use Ralego\Timbox\Traits\Status;

class HomeController extends Controller
{
    use Status;

    public function estatus()
    {
        // Usuario y contraseña de la cuenta de timbox
        $credenciales = (object)[
            'username'  => 'AAA010101000',
            'password'  => 'h6584D56fVdBbSmmnB'
        ];
        // Colocamos el uuid, rfc_emisor, rfc_receptor y el total del cfdi
        $resultado = $this->status($credenciales, 'EE728194-B356-4B84-9349-254F532A3E01', 'AAA010101AAA','IAD121214B34', '1751.60');
        // Si ocurre algun error retornamos el mensaje con status 422
        if(!$resultado->success)
            return response($resultado->message, 422);

        $estatus = $resultado->estado;
        return $estatus;
    }
}
```

Ejemplo para consultar peticiones pendientes:

```
use Illuminate\Http\Request;
use Ralego\Timbox\Traits\Status;

class HomeController extends Controller
{
    use Status;

    public function pendientes()
    {
        // Usuario y contraseña de la cuenta de timbox
        $credenciales = (object)[
            'username'  => 'AAA010101000',
            'password'  => 'h6584D56fVdBbSmmnB'
        ];
         // Cargamos el certificado y la llave del SAT en formato PEM
        $cer = file_get_contents('CSD01_AAA010101AAA.cer.pem');
        $key = file_get_contents('CSD01_AAA010101AAA.key.pem');
        // Colocamos al final el rfc_receptor
        $result = $this->pendientes($credenciales, $cer, $key, 'AAA010101AAA');
        // Si ocurre algun error retornamos el mensaje con status 422
        if(!$resultado->success)
            return response($resultado->message, 422);

        $uuids_pendientes = $resultado->uuids;
        return $uuids_pendientes;
    }
}
```

Ejemplo para consultar los documentos relacionados de un cfdi:

```
use Illuminate\Http\Request;
use Ralego\Timbox\Traits\Status;

class HomeController extends Controller
{
    use Status;

    public function relacionados()
    {
        // Usuario y contraseña de la cuenta de timbox
        $credenciales = (object)[
            'username'  => 'AAA010101000',
            'password'  => 'h6584D56fVdBbSmmnB'
        ];
         // Cargamos el certificado y la llave del SAT en formato PEM
        $cer = file_get_contents('CSD01_AAA010101AAA.cer.pem');
        $key = file_get_contents('CSD01_AAA010101AAA.key.pem');
        // Colocamos al final el rfc_receptor y el uuid
        $result = $this->relacionados($credenciales, $cer, $key, 'AAA010101AAA','EE728194-B356-4B84-9349-254F532A3E01');
        // Si ocurre algun error retornamos el mensaje con status 422
        if(!$resultado->success)
            return response($resultado->message, 422);

        $uuids_relacionados = $resultado;
        return $uuids_relacionados;
    }
}
```

Ejemplo para realizar la petición de aceptacion/rechazo de la solicitud de cancelación:

```
use Illuminate\Http\Request;
use Ralego\Timbox\Traits\Status;

class HomeController extends Controller
{
    use Status;

    public function responder()
    {
        // Usuario y contraseña de la cuenta de timbox
        $credenciales = (object)[
            'username'  => 'AAA010101000',
            'password'  => 'h6584D56fVdBbSmmnB'
        ];
         // Cargamos el certificado y la llave del SAT en formato PEM
        $cer = file_get_contents('CSD01_AAA010101AAA.cer.pem');
        $key = file_get_contents('CSD01_AAA010101AAA.key.pem');
        // Colocamos el rfc del receptor
        $respuestas = [
            [
                "uuid" => 'EE728194-B356-4B84-9349-254F532A3E01',
                "rfc_emisor" => 'AAA010101AAA',
                "total" => '1751.60',
                "respuesta" => 'A'
            ] // ... n folios_respuestas a procesar
        ];
        $resultado = $this->responder($credenciales, $cer, $key, 'IAD121214B34', $respuestas);
        // Si ocurre algun error retornamos el mensaje con status 422
        if(!$resultado->success)
            return response($resultado->message, 422);

        $folios = $resultado->folios;
        return $folios;
    }
}
```

Soporte
-------

[](#soporte)

Cualquier duda referente a la información retornada por el web service de timbox lo puedes consultar en su [documentación](https://www.timbox.com.mx/timbrado/).

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community5

Small or concentrated contributor base

Maturity54

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

Unknown

Total

1

Last Release

2553d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/12535957?v=4)[Rafael Lemus G](/maintainers/ralego)[@ralego](https://github.com/ralego)

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ralego-laravel-timbox/health.svg)

```
[![Health](https://phpackages.com/badges/ralego-laravel-timbox/health.svg)](https://phpackages.com/packages/ralego-laravel-timbox)
```

###  Alternatives

[phpoffice/phpspreadsheet

PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine

13.9k293.5M1.3k](/packages/phpoffice-phpspreadsheet)[spatie/browsershot

Convert a webpage to an image or pdf using headless Chrome

5.2k32.1M102](/packages/spatie-browsershot)[smalot/pdfparser

Pdf parser library. Can read and extract information from pdf file.

2.7k34.5M216](/packages/smalot-pdfparser)[barryvdh/laravel-snappy

Snappy PDF/Image for Laravel

2.8k24.8M48](/packages/barryvdh-laravel-snappy)[openspout/openspout

PHP Library to read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way

1.1k57.6M131](/packages/openspout-openspout)[keboola/csv

Keboola CSV reader and writer

1451.8M21](/packages/keboola-csv)

PHPackages © 2026

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