Referencia HTTP del API
Facturas
Lista, obtiene, parchea y elimina filas por cliente. Gastos en /api/expenses; ingresos en /api/revenue.
Endpoints de este tema
GET/api/expenses
Facturas de gasto paginadas de un cliente (query client_id obligatorio).
GET — query: client_id (uuid obligatorio), page (≥1), limit (1–200), from / to (YYYY-MM-DD), q (búsqueda).
{
invoices[], page, limit, total, totalPages
}
Cada fila: id, createdAt, invoiceKind, provider, invoiceNumber, documentDate, total, currency, fileUrl, mimeType, clientId.GET/api/expenses/[id]
Obtiene una factura de gasto por id.
Ruta [id] = UUID de factura de gasto (debe pertenecer a la org).
{ invoice: { id, createdAt, invoiceKind, provider, invoiceNumber, documentDate, total, currency, fileUrl, mimeType, rawText?, clientId } }PATCH/api/expenses/[id]
Fusiona parsed_data en una factura de gasto.
Content-Type: application/json
{ "parsed_data": { InvoiceExtract parcial } }
(parsed_data se fusiona con el existente y se revalida){ invoice: { …misma forma que GET /api/expenses/[id]… } }DELETE/api/expenses/[id]
Elimina una factura de gasto.
Ruta [id] = UUID de factura de gasto.
200 { ok: true }. 404 si no existe.GET/api/revenue
Facturas de ingreso paginadas de un cliente (query client_id obligatorio).
Mismos query params que GET /api/expenses; filas con invoice_kind=revenue.
Misma forma paginada que GET /api/expenses.
GET/api/revenue/[id]
Obtiene una factura de ingreso por id.
Ruta [id] = UUID de factura de ingreso.
Misma forma de factura única que GET /api/expenses/[id].
PATCH/api/revenue/[id]
Fusiona parsed_data en una factura de ingreso.
Mismo cuerpo JSON que PATCH /api/expenses/[id].
Mismo objeto invoice que PATCH /api/expenses/[id].
DELETE/api/revenue/[id]
Elimina una factura de ingreso.
Ruta [id] = UUID de factura de ingreso.
200 { ok: true }. 404 si no existe.