---
title: Movimientos y transferencias
category:
  uri: guides
content:
  excerpt: Registra gastos, ingresos y transferencias sin duplicados.
---

# Movimientos y transferencias

## Registrar un gasto o ingreso

`amountDecimal` representa unidades completas como string. Para MXN 36.00 envía `"36.00"`, no `3600`.

```curl
curl --request POST \
  "https://api.kanan.app/v1/financial/movements" \
  --header "Authorization: Bearer <KNI_LIVE_SECRET>" \
  --header "X-Kanan-Tracker-Id: <TRACKER_UUID>" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: expense-<STABLE_UNIQUE_ID>" \
  --data '{
    "type": "expense",
    "amountDecimal": "36.00",
    "accountId": "<ACCOUNT_UUID>",
    "categoryId": "<CATEGORY_ID>",
    "currencyCode": "MXN",
    "occurredOn": "2026-09-04",
    "description": "Traslado a casa",
    "merchantName": "Didi"
  }'
```

`categoryId` puede omitirse para usar la categoría de sistema desconocida. `cashboxId` puede omitirse cuando la cuenta solo tiene una caja elegible. Sin `occurredOn`, la API usa la fecha local del tracker.

## Consultar y corregir

`GET /movements` admite filtros de tipo, categoría, cuenta, caja, fechas, límite y offset. No combines `categoryId` con `categoryIds`.

Para corregir un movimiento:

1. Consulta `GET /movements/{movementId}`.
2. Conserva el encabezado `ETag`.
3. Envía el valor en `If-Match` al ejecutar `PATCH /movements/{movementId}`.

Esto evita sobrescribir una versión más reciente. Las transferencias no se editan como movimientos individuales.

## Transferencias

Usa `POST /transfers`; no simules una transferencia con dos movimientos independientes.

```json
{
  "amountDecimal": "500.00",
  "fromAccountId": "<ORIGIN_ACCOUNT_UUID>",
  "toAccountId": "<DESTINATION_ACCOUNT_UUID>",
  "currencyCode": "MXN",
  "occurredOn": "2026-09-04",
  "description": "Fondeo de efectivo"
}
```

La API registra la salida y la entrada como una sola operación de dominio. Cada caja puede omitirse únicamente cuando la cuenta correspondiente tiene una sola caja activa elegible.
