TicketBai sistema erabiltzeko PHP liburutegia Librería para integrarse con el sistema TicketBai
- 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. @areinaNubeApp-en ekarpenei esker.
- 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. Gracias a las aportaciones de @areinaNubeApp
composer require barnetik/ticketbai
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:
https://barnetik.github.io/tbai-php-lib/
Adibide moduan erabiltzen dugun JSON fitxategia / JSON usado como ejemplo
use Barnetik\Tbai\Fingerprint\Vendor;
use Barnetik\Tbai\PrivateKey;
use Barnetik\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
);
// We have an endpoint for each province Araba, Bizkaia or Gipuzkoa
use Barnetik\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
$shortSignatureValue = $ticketbai->chainSignatureValue();
use Barnetik\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();