Saltar al contenido principal

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).

Petición
GET — query: client_id (uuid obligatorio), page (≥1), limit (1–200), from / to (YYYY-MM-DD), q (búsqueda).
Respuesta
{
  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.

Petición
Ruta [id] = UUID de factura de gasto (debe pertenecer a la org).
Respuesta
{ 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.

Petición
Content-Type: application/json

{ "parsed_data": { InvoiceExtract parcial } }
(parsed_data se fusiona con el existente y se revalida)
Respuesta
{ invoice: { …misma forma que GET /api/expenses/[id]… } }

DELETE/api/expenses/[id]

Elimina una factura de gasto.

Petición
Ruta [id] = UUID de factura de gasto.
Respuesta
200 { ok: true }. 404 si no existe.

GET/api/revenue

Facturas de ingreso paginadas de un cliente (query client_id obligatorio).

Petición
Mismos query params que GET /api/expenses; filas con invoice_kind=revenue.
Respuesta
Misma forma paginada que GET /api/expenses.

GET/api/revenue/[id]

Obtiene una factura de ingreso por id.

Petición
Ruta [id] = UUID de factura de ingreso.
Respuesta
Misma forma de factura única que GET /api/expenses/[id].

PATCH/api/revenue/[id]

Fusiona parsed_data en una factura de ingreso.

Petición
Mismo cuerpo JSON que PATCH /api/expenses/[id].
Respuesta
Mismo objeto invoice que PATCH /api/expenses/[id].

DELETE/api/revenue/[id]

Elimina una factura de ingreso.

Petición
Ruta [id] = UUID de factura de ingreso.
Respuesta
200 { ok: true }. 404 si no existe.