Saltearse al contenido

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

MetodoTipo
salesInvoice()Factura de venta
purchaseInvoice()Factura de compra
salesOrder()Pedido de venta
purchaseOrder()Pedido de compra
salesDeliveryNote()Albaran de venta
purchaseDeliveryNote()Albaran de compra