PHPackages                             komma-softhouse/tbai-engine - 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. komma-softhouse/tbai-engine

ActiveLibrary

komma-softhouse/tbai-engine
===========================

Generate, sign and submit TicketBAI compatible invoices

v0.6.102(today)05↑2300%proprietaryPHPPHP &gt;=8.3CI failing

Since Aug 28Pushed todayCompare

[ Source](https://github.com/komma-softhouse/tbai-engine)[ Packagist](https://packagist.org/packages/komma-softhouse/tbai-engine)[ RSS](/packages/komma-softhouse-tbai-engine/feed)WikiDiscussions main Synced today

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

Tbai PHP lib
============

[](#tbai-php-lib)

TicketBai sistema erabiltzeko PHP liburutegia Librería para integrarse con el sistema TicketBai

Egungo Funtzionalitateak / Funcionalidades actuales
---------------------------------------------------

[](#egungo-funtzionalitateak--funcionalidades-actuales)

- Fakturen, fakturen zuzenketen eta hauen baliogabetzeen TicketBai formatudun XML-a sortu
- Fakturak, fakturen zuzenketak eta hauen baliogabetzeak XaDES motako sinadurarekin sinatu
- Fakturak, fakturen zuzenketak eta hauen baliogabetzeak EAEko hiru diputazioetako zerbitzuetara igorri.
- Bizkaiko kasuan (Batuz), pertsona fisikoentzako 140 modeloa ere badabil hiru kasuetarako (igorketa, zuzenketa eta baliogabetzeak)
- Gipuzkoa eta Arabako **Zuzendu** zerbitzuarekin integrazioa. Igorritako fakturen aldaketa eta zuzenketak baimentzen dituen zerbitzua.
- Bizkaiko Batuz zerbitzuan gastuak erregistratzea (faktura eta fakturarik gabe).

---

- Generar XML en formato TicketBai de facturas, facturas rectificativas y cancelaciones de factura
- Firmar estos documentos con firma XaDES
- Enviar estos documentos a los servicios de las tres haciendas forales de la CAV.
- En el caso de Bizkaia (Batuz), es posible también emitir, rectificar y cancelar facturas para personas físicas utilizando el modelo 140.
- Integración con el servicio **Zuzendu** de Araba y Gipuzkoa que permite la subsanación y modificación de facturas emitidas.
- Emisión de gastos con y sin factura en el LROE de Bizkaia (Batuz).

Instalazioa / Instalación
-------------------------

[](#instalazioa--instalación)

```
composer require komma-softhouse/ticketbai
```

Erabilgarri dauden JSON dokumentuen definizioak / Definición de los documentos JSON disponibles
-----------------------------------------------------------------------------------------------

[](#erabilgarri-dauden-json-dokumentuen-definizioak--definición-de-los-documentos-json-disponibles)

Hurrengo helbidean, dokumentuak sortzeko erabili daitezkeen JSON dokumentuen definizioak topatu ahal ditzazkezue:

Podéis encontrar las definiciones de los JSON disponibles para la generación de documentos en el siguiente enlace:

Erabilera adibideak / Ejemplos de uso
-------------------------------------

[](#erabilera-adibideak--ejemplos-de-uso)

### Fakturaren sinaketa / Firma de una factura

[](#fakturaren-sinaketa--firma-de-una-factura)

[Adibide moduan erabiltzen dugun JSON fitxategia / JSON usado como ejemplo](./tests/Komma/Tbai/__files/tbai-sample.json)

```
use Komma\Tbai\Fingerprint\Vendor;
use Komma\Tbai\PrivateKey;
use Komma\Tbai\TicketBai;

$license = 'LICENCIA_DESARROLLO';
$developerCif = 'CIF';
$appName = 'TBAI PHP APP';
$version = '1.0';

$certificatePath = '/path/to/certificate.p12';
$certificatePassword = 'myCertificatePassword';

// Where we want the signed document to be stored
$signedXmlPath = './signed.xml';

$ticketbai = TicketBai::createFromJson(
    new Vendor($license, $developerCif, $appName, $version),
    json_decode(file_get_contents('tbai-sample.json'), true)
);

$ticketbai->sign(
    PrivateKey::p12($certificatePath),
    $certificatePassword,
    $signedXmlPath
);
```

### Faktura bidaltzea / Envío de la factura

[](#faktura-bidaltzea--envío-de-la-factura)

```
// We have an endpoint for each province Araba, Bizkaia or Gipuzkoa
use Komma\Tbai\Api\Bizkaia\Endpoint as BizkaiaEndpoint;

/**
 * BizkaiaEndpoint(bool $dev = false, bool $debug = false)
 * For production usage $dev param must be false
 * $bizkaiaEndpoint = new BizkaiaEndpoint();
 */
$bizkaiaEndpoint = new BizkaiaEndpoint(true, true);
$result = $bizkaiaEndpoint->submitInvoice(
    $ticketbai,
    PrivateKey::p12($certificatePath),
    $certificatePassword,
);

if ($result->isDelivered()) {
    var_dump('SUCCESS!');
} else {
    var_dump($result->errorDataRegistry());
    var_dump($result->headers());
}
```

### Hurrengo faktura kateatzeko behar den sinadura zatia lortu / Obtener el trozo de firma necesaria para encadenar la próxima factura

[](#hurrengo-faktura-kateatzeko-behar-den-sinadura-zatia-lortu---obtener-el-trozo-de-firma-necesaria-para-encadenar-la-próxima-factura)

```
$shortSignatureValue = $ticketbai->chainSignatureValue();
```

### QR kodea sortzea / Creación del QR

[](#qr-kodea-sortzea---creación-del-qr)

```
use Komma\Tbai\Qr;

/**
 * Qr(TicketBai $ticketBai, bool $dev = false)
 * For production usage $dev param must be false
 * $qr = new Qr($ticketbai);
 */
$qr = new Qr($ticketbai, true);

$qr->savePng('/path/to/qr.png');

// Get the code that must be shown over QR on any invoice
$tbaiIdentifier = $qr->ticketbaiIdentifier();
```

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance100

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity40

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

Every ~0 days

Total

3

Last Release

0d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1172636?v=4)[KOMMA - RDF object mapper and editing framework for Java](/maintainers/komma)[@komma](https://github.com/komma)

---

Top Contributors

[![edeoliv](https://avatars.githubusercontent.com/u/76831154?v=4)](https://github.com/edeoliv "edeoliv (3 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/komma-softhouse-tbai-engine/health.svg)

```
[![Health](https://phpackages.com/badges/komma-softhouse-tbai-engine/health.svg)](https://phpackages.com/packages/komma-softhouse-tbai-engine)
```

###  Alternatives

[leantime/leantime

Open source project management system for non-project managers. Simple like Trello, powerful like Jira. Built with neurodiversity in mind.

11.3k4.0k](/packages/leantime-leantime)[kimai/kimai

Kimai - Time Tracking

4.8k9.4k1](/packages/kimai-kimai)[nativephp/mobile

NativePHP for Mobile

1.1k102.1k165](/packages/nativephp-mobile)[n1ebieski/ksef-php-client

PHP API client that allows you to interact with the API Krajowego Systemu e-Faktur

9082.3k](/packages/n1ebieski-ksef-php-client)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9626.1k76](/packages/open-dxp-opendxp)[pimcore/admin-ui-classic-bundle

171.2M60](/packages/pimcore-admin-ui-classic-bundle)

PHPackages © 2026

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