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 ARS 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 ARS y USD.

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 ARS. En una fuente ARS, ambos valores coinciden. En una fuente USD, 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 USD 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 una vista paginada del estado actual. Los filtros disponibles son balance_type, balance_id, movement_type, date_from y date_to. Una corrección autorizada de un movimiento manual elegible puede actualizar o eliminar una fila. Al sincronizar, conciliá por id y reemplazá la vista local con la respuesta más reciente. 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 mientras el movimiento existe y puede guardarse para conciliar una vista local. La respuesta no incluye débitos/créditos internos, IDs del plan de cuentas ni operaciones para editar o eliminar movimientos. Esas correcciones se hacen en la interfaz de La Pyme y aparecen en consultas posteriores.

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 ARS. amount es un entero en centavos. Por ejemplo, 125000 representa ARS 1.250,00. Además, 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 USD 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.