Cliente cURL con interfaz de transporte, excepción por HTTP, soporte de 429/Retry-After y métodos fiscales explícitos. Preparado para registrar como singleton de Laravel.
PHP/Laravel y JavaScript/Node.js
Integrá Factumel desde un servidor utilizando un SDK sin dependencias pesadas. Ambos clientes implementan las operaciones de creación, firma, envío, consulta de estado, PDF y XML, además de CAE y preparación fiscal.
Estado: los SDKs están disponibles como código fuente en el repositorio de Factumel. Aún no se publicaron oficialmente en Packagist o npm. No incluyas las API keys en navegadores, apps móviles o código cliente.
Cliente ESM para Node.js 20+, tipado TypeScript y fetch inyectable, sin dependencias. Admite pruebas offline con el runner nativo de Node.
Las versiones incluidas en el repositorio incorporan issueAndSubmitDocument y los métodos de CFE recibidos (receivedDocuments, receivedDocument y receivedXml). La emisión en una llamada exige externalId y responde 202 si DGI está pendiente; no aplica reintentos fiscales automáticos.
PHP: crear cliente
use Factumel\Sdk\Client;
$factumel = new Client(
apiKey: getenv('FACTUMEL_API_KEY'),
);
$companies = $factumel->companies();
$cae = $factumel->cae($companyId, '111');
$ready = $factumel->issuanceReadiness($companyId, '111');JavaScript: crear cliente
import { FactumelClient } from "@factumel/sdk";
const factumel = new FactumelClient({
apiKey: process.env.FACTUMEL_API_KEY,
});
const companies = await factumel.companies();
const cae = await factumel.cae(companyId, { documentType: "111" });
const ready = await factumel.issuanceReadiness(companyId, "111");La importación con nombre de paquete funcionará cuando se instale desde la carpeta fuente con un gestor compatible o tras publicarlo. Para pruebas dentro del propio repositorio es posible importar desde sdk/javascript/src/index.mjs.
Recuperación ante errores de red
Ambos clientes obligan a proporcionar un externalId al crear un CFE. Si una solicitud de emisión o envío pierde conexión, no repitas el POST a ciegas. Recuperá el documento por companyId y externalId, consultá su estado y conciliá antes de tomar decisiones.
Los SDKs no transmiten datos fiscales hasta que tu aplicación llama explícitamente a issueDocument o submitDocument. Los ejemplos no confirman la habilitación en DGI.
Pruebas
php sdk/php/tests/run.php
npm run test:sdk:javascriptEl test de JavaScript se incorpora al build de Dokploy; PHP requiere que el entorno de prueba tenga PHP y ext-curl. Las pruebas offline no sustituyen los casos E2E con ePrueba de DGI.