FactuAPI
Session
const ctx = await FactuApi.session('admin@openfactu.com', 'admin123', 'Mi Empresa');Crear documento
const invoice = ctx.api.salesInvoice();invoice.partnerId = 'partner-id';invoice.seriesId = 'series-id';invoice.periodId = 'period-id';invoice.addLine({ itemId: 'item-id', quantity: 2, price: 100, taxGroupId: 'tax-id' });const result = await ctx.api.save(invoice);IDs pre-asignados
const albaran = ctx.api.salesDeliveryNote();console.log(albaran.id); // UUID disponible antes de save()
const factura = ctx.api.salesInvoice();factura.addLine({ baseType: 'SDN', baseId: albaran.id });Transacciones atomicas
await FactuApi.transaction(ctx.tenantId, ctx.db, ctx.user, async (tx) => { const albaran = tx.salesDeliveryNote(); await tx.save(albaran);
const factura = tx.salesInvoice(); factura.addLine({ baseType: 'SDN', baseId: albaran.id }); await tx.save(factura); // Si falla → rollback de ambos});Tipos de documento
| Metodo | Tipo |
|---|---|
salesInvoice() | Factura de venta |
purchaseInvoice() | Factura de compra |
salesOrder() | Pedido de venta |
purchaseOrder() | Pedido de compra |
salesDeliveryNote() | Albaran de venta |
purchaseDeliveryNote() | Albaran de compra |