> ## Documentation Index
> Fetch the complete documentation index at: https://docs.filexpress.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Partidas contables

> Consultar partidas y crear partidas en borrador desde un sistema externo

**Permiso requerido:** `accounting.journal_entries`

## Crear partida

```http theme={null}
POST /accounting/journal-entries
```

Úsalo para llevar a la contabilidad de FileXpress operaciones que nacen en otro sistema (nómina externa, sistema de cobros, ERP, etc.).

<Note>
  Las partidas creadas por API quedan **siempre en BORRADOR**. El contador las revisa y procesa en FileXpress; hasta entonces no afectan los estados financieros.
</Note>

```json theme={null}
{
  "branch_id": "uuid",
  "entry_date": "2026-10-31",
  "description": "Comisiones de ventas octubre",
  "external_reference": "COM-2026-10",
  "details": [
    { "account_code": "510201", "debit": 1250.00, "credit": 0, "description": "Gasto por comisiones" },
    { "account_code": "210305", "debit": 0, "credit": 1250.00, "description": "Comisiones por pagar" }
  ]
}
```

| Campo | Requerido | Descripción |
| - | - | - |
| `branch_id` | Sí | Sucursal. Ver `GET /branches`. |
| `entry_date` | Sí | Fecha de la partida. Debe existir un período **ABIERTO** para ese mes. |
| `description` | Sí | Concepto (máx. 1000 caracteres). |
| `entry_type` | No | Tipo de partida (por ejemplo `DIA`, `ING`, `EGR`). Por defecto `DIA`. |
| `external_reference` | No | Referencia en tu sistema; se agrega a la descripción para trazabilidad. |
| `details` | Sí | Líneas de la partida (de 2 a 200). |

### `details[]`

| Campo | Requerido | Descripción |
| - | - | - |
| `account_id` o `account_code` | Sí (uno) | Cuenta del catálogo. Debe ser una cuenta de movimiento (`accepts_movements: true`). |
| `debit` | Sí | Monto al debe (0 si la línea es al haber). |
| `credit` | Sí | Monto al haber (0 si la línea es al debe). |
| `description` | No | Detalle de la línea. |

**Reglas**

* Cada línea lleva monto en el debe **o** en el haber, no en ambos.
* La partida debe cuadrar: suma del debe = suma del haber.
* La descripción guardada incluye el nombre de la integración, por ejemplo `Comisiones de ventas octubre [Ref: COM-2026-10] (API: Mi ERP)`.

**Respuesta `201`**: la partida creada (formato abajo), con `status: "BORRADOR"` y `entry_code: null` (el código se asigna al procesarla).

**Errores frecuentes (`422`)**

```json theme={null}
{
  "status": false,
  "message": "Validation errors",
  "errors": {
    "details.1.account": "Account 2103 has sub-accounts; use a movement account.",
    "details": "The entry is not balanced: debit 1250.00, credit 1200.00."
  }
}
```

También responde `422` si no hay un período abierto para `entry_date`.

## Listar partidas

```http theme={null}
GET /accounting/journal-entries?start_date=2026-10-01&end_date=2026-10-31
```

| Parámetro | Requerido | Descripción |
| - | - | - |
| `start_date`, `end_date` | Sí | Rango por fecha de partida (máximo 370 días). |
| `status` | No | `BORRADOR` o `PROCESADA`. |
| `branch_id` | No | Filtra por sucursal. |
| `per_page`, `page` | No | Paginación (máximo 200 por página). |

## Consultar partida

```http theme={null}
GET /accounting/journal-entries/{id}
```

```json theme={null}
{
  "status": true,
  "data": {
    "id": "uuid",
    "branch_id": "uuid",
    "entry_code": "DIA-2026-10-0042",
    "entry_type": "DIA",
    "entry_date": "2026-10-31",
    "description": "Planilla Primera quincena octubre 2026 (01/10/2026 al 15/10/2026)",
    "status": "PROCESADA",
    "reference_type": "payroll",
    "total_debit": 5320.10,
    "total_credit": 5320.10,
    "is_balanced": true,
    "details": [
      { "account_code": "510101", "account_name": "Sueldos y salarios", "debit": 4850.00, "credit": 0, "description": "Sueldos y salarios" },
      { "account_code": "210401", "account_name": "Sueldos por pagar", "debit": 0, "credit": 4820.35, "description": "Sueldos por pagar" }
    ]
  }
}
```

`reference_type` indica el origen: `sale`, `expense`, `payment_received`, `payment_made`, `payroll`, `payroll_payment`, `payroll_provision`, `external_integration` o vacío (partida manual).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.