Appearance
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_createdcuando 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
| Campo | Tipo | Descripción |
|---|---|---|
id | string | ObjectId. |
occurred_at | string | Fecha del egreso. |
description | string | Texto libre. |
amount_cents | int | Monto antes de impuestos. |
paid_cents | int | Lo efectivamente pagado. |
total_cents | int | Total con impuestos / cargos. |
currency | string | ISO 4217 lowercase. |
paid | bool | true si está pagado al 100% — false genera una cuenta por pagar. |
refunded | bool | Marca si fue reembolsado. |
classification | string | expense, cost_of_sale, etc. Default expense. |
account_id / account_name | string | Cuenta origen. |
category_id / category_name | string | Categoría (opcional). |
vendor_id | string | Proveedor (opcional). |
project_id / project_name | string | Proyecto (opcional). |
Listar egresos
GET
/api/v1/expensesread-expensesPaginado estándar. Ver guía de paginación.
Obtener un egreso
GET
/api/v1/expenses/:idread-expensesCrear un egreso
POST
/api/v1/expensescreate-expensesCampos 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-expensesMismos campos que create. Si cambias occurred_at a otro periodo, ambos periodos deben estar abiertos.
Eliminar un egreso
DELETE
/api/v1/expenses/:iddelete-expensesRevierte los efectos colaterales (balance de cuenta, cuenta por pagar asociada si aplicaba).