Search by

timbrix / sdk-php

IvanSotelo

SDK de PHP para la API de facturación electrónica CFDI 4.0 de Timbrix

v0.1.2 2026-11-12 23:42 UTC

This package is auto-updated.

Last update: 2026-11-12 23:43:35 UTC


README

Packagist PHP Licencia CFDI 4.0 México

Cliente oficial de PHP para la API de Timbrix: facturación electrónica CFDI 4.0. Funciona con cualquier framework (Laravel, Symfony o PHP puro). Requiere PHP 8.1 o superior.

Instalación

composer require timbrix/sdk-php

Quickstart

$timbrix = new Timbrix\TimbrixClient(getenv('TIMBRIX_API_KEY') ?: '');

$invoice = $timbrix->invoices->create([
    'type' => 'I', 'use' => 'G03', 'paymentForm' => '01', 'paymentMethod' => 'PUE',
    'date' => (new DateTimeImmutable('now', new DateTimeZone('America/Mexico_City')))->format('Y-m-d\TH:i:s'),
    'customerId' => $customerId,
    'items' => [['productId' => $productId, 'quantity' => 1]],
    'idempotencyKey' => $orderId,
]);
file_put_contents('factura.pdf', $timbrix->invoices->getPdf($invoice->uuid));

Con una API key de sandbox (sk_test_...) el CFDI no tiene validez fiscal; con una de producción (sk_live_...), sí. Las keys creadas antes de este formato empiezan solo con sk_; su entorno se ve en el panel, en la lista de API keys. No expongas la key en código que corre en el navegador.

Pasa siempre una idempotencyKey estable (por ejemplo, el id de tu pedido) al timbrar: es lo que permite al SDK reintentar sin riesgo de duplicar un CFDI.

Recursos y métodos

Todos los métodos aceptan arrays asociativos con las llaves camelCase de la API y devuelven modelos de solo lectura (toArray() conserva los campos que el SDK aún no declara). Cada API key pertenece a una sola organización; para emitir con otro RFC emisor, usa una API key de esa organización.

Recurso Método Qué hace
$timbrix->invoices create($data) Crea y timbra un CFDI 4.0
registerPayment($data) Registra un pago PPD y timbra su Complemento de Pago
getPayments($uuid) Parcialidades y saldo de una factura PPD
previewPdf($data) PDF de vista previa sin timbrar (bytes)
list($params) Lista facturas con filtros y paginación
get($uuid) Obtiene una factura por su folio fiscal
getXml($uuid) / getPdf($uuid) Descarga el XML o el PDF (bytes)
cancel($uuid, $data) Cancela un CFDI ante el SAT
sendEmail($uuid, $data) Envía el CFDI por correo
$timbrix->customers list, get, create, update, delete Clientes (receptores)
$timbrix->products list, get, create, update, delete Productos y servicios
$timbrix->sat regimenes($params) Regímenes fiscales
usosCfdi($params) Usos de CFDI
searchClavesProdServ($params) Busca claves de producto o servicio
searchClavesUnidad($params) Busca claves de unidad
Timbrix\Webhook constructEvent($payload, $signature, $secret) Verifica la firma y devuelve el evento
verify($payload, $signature, $secret) Solo verifica la firma (booleano)

Las series y los webhooks se configuran desde el panel; el SDK no los administra.

Documentación

Guía completa, errores, reintentos y webhooks: docs.timbrix.mx/sdk-php.

Licencia

MIT