Skip to content

Egresos

CRUD sobre los egresos de tu empresa. Cada egreso pertenece a una cuenta y opcionalmente a un proveedor, categoría y proyecto.

Efectos colaterales

Crear un Expense por API:

  • Descuenta paid_cents (o el monto pagado) del balance de la cuenta.
  • Si el egreso no está pagado (paid: false) crea una cuenta por pagar asociada.
  • Dispara automatizaciones aplicables (por ejemplo expense_created cuando esté en el catálogo de triggers).

Period locking: si tu contabilidad cerró el periodo al que pertenece occurred_at, recibirás 422 period_locked. La API key no puede saltarse cierres.

El objeto Expense

json
{
  "id":             "65d4a1f1234567890abcdef0",
  "occurred_at":    "2026-05-20T14:23:11Z",
  "description":    "Renta oficina mayo",
  "amount_cents":   1200000,
  "amount":         12000.0,
  "paid_cents":     1200000,
  "paid_amount":    12000.0,
  "total_cents":    1200000,
  "total":          12000.0,
  "currency":       "mxn",
  "paid":           true,
  "refunded":       false,
  "classification": "expense",
  "account_id":     "65b3a1f1234567890abcdef0",
  "account_name":   "BBVA MXN",
  "category_id":    null,
  "category_name":  "Renta",
  "vendor_id":      "65e1a1f1234567890abcdef0",
  "project_id":     null,
  "project_name":   null,
  "created_at":     "2026-05-20T14:23:12Z",
  "updated_at":     "2026-05-20T14:23:12Z"
}

Campos

CampoTipoDescripción
idstringObjectId.
occurred_atstringFecha del egreso.
descriptionstringTexto libre.
amount_centsintMonto antes de impuestos.
paid_centsintLo efectivamente pagado.
total_centsintTotal con impuestos / cargos.
currencystringISO 4217 lowercase.
paidbooltrue si está pagado al 100% — false genera una cuenta por pagar.
refundedboolMarca si fue reembolsado.
classificationstringexpense, cost_of_sale, etc. Default expense.
account_id / account_namestringCuenta origen.
category_id / category_namestringCategoría (opcional).
vendor_idstringProveedor (opcional).
project_id / project_namestringProyecto (opcional).

Listar egresos

GET/api/v1/expensesread-expenses

Paginado estándar. Ver guía de paginación.


Obtener un egreso

GET/api/v1/expenses/:idread-expenses

Crear un egreso

POST/api/v1/expensescreate-expenses

Campos aceptados en data: account_id (requerido), vendor_id, category_id, amount_cents (requerido), paid_cents, total_cents, currency, occurred_at, description, paid, classification, project_id.

bash
curl -X POST https://developers.fi-nova.com/api/v1/expenses \
  -H 'Authorization: Bearer finova_sk_TU_SECRETO' \
  -H 'Content-Type: application/json' \
  -d '{
    "data": {
      "account_id":   "65b3a1f1234567890abcdef0",
      "vendor_id":    "65e1a1f1234567890abcdef0",
      "amount_cents": 1200000,
      "paid_cents":   1200000,
      "total_cents":  1200000,
      "currency":     "mxn",
      "occurred_at":  "2026-05-20T14:23:11Z",
      "description":  "Renta oficina mayo",
      "paid":         true,
      "classification": "expense"
    }
  }'

Actualizar un egreso

PUT/api/v1/expenses/:idupdate-expenses

Mismos campos que create. Si cambias occurred_at a otro periodo, ambos periodos deben estar abiertos.


Eliminar un egreso

DELETE/api/v1/expenses/:iddelete-expenses

Revierte los efectos colaterales (balance de cuenta, cuenta por pagar asociada si aplicaba).

Hecho con cuidado por Finova.