Skip to main content
La API de tesorería sirve para resolver los IDs de cuentas bancarias que usan otros recursos, consultar saldos, recorrer movimientos y transferir fondos PES sin abrir el dashboard. La creación y administración de cuentas bancarias continúa en la interfaz de La Pyme y en los procesos de migración. Estos seis endpoints de consulta requieren treasury:read:
  • GET /api/v1/bank-accounts
  • GET /api/v1/bank-accounts/{bank_account_id}
  • GET /api/v1/treasury/balances
  • GET /api/v1/treasury/movements
  • GET /api/v1/funds-transfers
  • GET /api/v1/funds-transfers/{funds_transfer_id}
POST /api/v1/funds-transfers requiere treasury:write e Idempotency-Key.

Cuentas bancarias

La colección y el detalle devuelven configuración segura como banco, nombre, moneda, CBU, alias, uso de chequera y estado. No exponen el ID de la cuenta contable vinculada, la organización, actores internos ni un saldo calculado.
Las referencias y las proyecciones financieras incluyen cuentas PES y DOL.

Saldos

GET /api/v1/treasury/balances devuelve las cuentas bancarias, cajas registradoras y cajas fuertes visibles. Podés filtrar por balance_type, balance_id, status y as_of. Los importes son enteros en unidades menores. native_amount está expresado en currency; functional_amount está expresado en functional_currency, que en esta versión siempre es PES. En una fuente PES, ambos valores coinciden. En una fuente DOL, native_amount es el saldo USD que se usa para operar y conciliar, mientras que functional_amount es su valor contable registrado en ARS. native_amount_quality puede ser exact, derived o unavailable. Cuando un historial DOL no conserva evidencia suficiente, native_amount es null: la API no adivina dólares a partir de pesos. anomaly_count informa cuántos hechos del saldo requieren revisión.
visibility_scope informa si la respuesta representa toda la organización o solo hechos propios del usuario delegado:
  • organization: proyección organizacional permitida.
  • own: suma limitada a movimientos creados por el usuario delegado.

Movimientos

GET /api/v1/treasury/movements devuelve un ledger inmutable y paginado. Los filtros disponibles son balance_type, balance_id, movement_type, date_from y date_to. Un native_amount o functional_amount positivo aumenta el saldo y uno negativo lo reduce. functional_amount_origin indica si el valor ARS proviene de una cotización (rate), del valor contable existente (carrying_value) o de un historial sin procedencia canónica (legacy_unknown). Cuando el origen es rate, el objeto rate conserva value, rate_date y source. occurred_on es la fecha operativa; created_at es el timestamp real de persistencia. El id identifica la línea durable del movimiento y puede guardarse para deduplicación local. La respuesta no incluye débitos/créditos internos, IDs del plan de cuentas ni una operación para editar movimientos. Las correcciones financieras se representan mediante hechos contables explícitos en La Pyme.

Transferencias de fondos

Una transferencia mueve fondos entre dos identidades compuestas. Siempre enviá balance_type y balance_id tanto en source como en destination: un mismo UUID puede identificar una caja registradora y una caja fuerte distintas. La primera versión admite únicamente dos puntas denominadas en PES. amount es un entero en centavos —por ejemplo, 125000 representa ARS 1.250,00— y occurred_on es una fecha de negocio argentina YYYY-MM-DD. No envíes currency: la API la comprueba en las dos puntas y devuelve 422 si encuentra DOL o una combinación de monedas. La creación confirma un hecho financiero completo en una sola transacción: una transferencia, un efecto negativo en el origen, uno positivo en el destino y un asiento balanceado. No tiene status, actualización, cancelación ni eliminación. La política de tesorería permite que el saldo de origen quede negativo; no existe un error de fondos insuficientes para esta operación.
La respuesta 201 incluye dos accounting_effects, siempre en orden origen y destino. Sus importes tienen signos opuestos y suman cero. Cada treasury_movement_id es el id durable que también aparece en GET /api/v1/treasury/movements; no se exponen cuentas contables ni IDs de las patas internas. Repetir exactamente el mismo cuerpo con la misma Idempotency-Key devuelve el mismo recurso sin duplicar el movimiento de dinero. Reusar la clave con un cuerpo distinto devuelve 409 IDEMPOTENCY_CONFLICT. Una punta inexistente, oculta o de otra organización devuelve 404; una punta o cuenta vinculada inactiva devuelve 409; una fecha futura, moneda no soportada o configuración contable faltante devuelve 422. La visibilidad se evalúa sobre ambas puntas. Una integración delegada no puede ver una transferencia si una de ellas queda fuera de sus cajas o cajas fuertes asignadas. Con visibilidad own, además, solo aparecen hechos creados por ese usuario.

Listar y obtener una transferencia

La colección se ordena por occurred_on, created_at e id, en orden descendente. date_from y date_to son inclusivos. Para filtrar por cualquiera de las dos puntas, enviá juntos balance_type y balance_id.
Los elementos de la lista omiten accounting_effects. Usá el detalle cuando necesites seguir los movimientos contables:

Paginación y sincronización

Las cuatro colecciones usan cursor y limit. Guardá next_cursor y repetí la misma consulta mientras has_more sea true. Consultar estos endpoints no produce efectos ni requiere Idempotency-Key. La API no agrega eventos webhook de tesorería. Para una sincronización periódica, consultá saldos, movimientos o transferencias con los filtros de fecha y cursor adecuados.