aalonzolu / digifact
PHP SDK for Digifact FEL Guatemala e-invoicing API (v2)
v2.0.2
2026-03-27 01:16 UTC
Requires
- php: >=8.1
- ext-bcmath: *
- ext-curl: *
- ext-json: *
Requires (Dev)
- phpunit/phpunit: ^10 || ^11
README
SDKs para la API Digifact FEL NUC GT — facturación electrónica SAT Guatemala.
| SDK | Paquete | Versión mínima |
|---|---|---|
| Python | digifact-sdk (PyPI) |
Python 3.10+ |
| JavaScript | digifact-sdk (npm) |
Node 18+ |
| PHP | aalonzolu/digifact (Packagist) |
PHP 8.1+ |
Instalación rápida
# Python pip install digifact-sdk # JavaScript npm install digifact-sdk # PHP composer require aalonzolu/digifact
Uso básico (los 3 SDKs)
# Python from digifact_sdk import DigifactClient client = DigifactClient( taxid="12345678", username="FELUSER", password="...", environment="test", # o "production" ) result = client.invoice("CF", [ {"description": "Servicio", "qty": 1, "price": 100}, ]) print(result.auth_number)
// JavaScript import { DigifactClient } from 'digifact-sdk'; const client = new DigifactClient({ taxid: '12345678', username: 'FELUSER', password: '...', environment: 'test', }); const result = await client.invoice('CF', [ { description: 'Servicio', qty: 1, price: 100 }, ]); console.log(result.authNumber);
// PHP use Digifact\Fel\DigifactClient; $client = new DigifactClient([ 'taxid' => '12345678', 'username' => 'FELUSER', 'password' => '...', 'environment' => 'test', ]); $result = $client->invoice('CF', [ ['description' => 'Servicio', 'qty' => 1, 'price' => 100], ]); echo $result->authNumber;
Tipos de DTE soportados
| Método | DTE | Descripción |
|---|---|---|
invoice() |
FACT | Factura de consumidor final o NIT |
invoice() |
FCAM | Factura cambiaria con cuotas |
invoice() |
NABN | Nota de abono |
invoice() |
FESP | Factura especial (retención) |
invoice() |
RDON | Recibo por donación |
invoice() |
RECI | Recibo de colegiatura |
invoice() |
FPEQ | Factura pequeño contribuyente |
debitNote() |
NDEB | Nota de débito |
creditNote() |
NCRE | Nota de crédito parcial |
creditNoteTotal() |
— | Nota de crédito total (anulación) |
cancel() |
— | Anulación de DTE |
Variables de entorno
DIGIFACT_TAXID=12345678 DIGIFACT_USERNAME=FELUSER DIGIFACT_PASSWORD=...
Estructura del repositorio
digifact-sdk/
├── python/ SDK Python — pyproject.toml, digifact_sdk/
├── javascript/ SDK JavaScript — package.json, src/
├── php/ SDK PHP — composer.json, src/
├── docs/ Documentación y colección Postman
│ └── postman/ Colección y ambiente para Postman
├── scripts/ Herramientas de validación y smoke tests
└── .github/
└── workflows/
├── ci.yml Tests en cada push/PR
└── publish.yml Publicación a PyPI/npm/Packagist al hacer tag
Publicar una release
# Actualizar versiones en pyproject.toml y package.json, luego:
git tag v1.2.3
git push origin v1.2.3
El workflow publish.yml se activa automáticamente y publica los tres paquetes.