treasury:read:
GET /api/v1/bank-accountsGET /api/v1/bank-accounts/{bank_account_id}GET /api/v1/treasury/balancesGET /api/v1/treasury/movementsGET /api/v1/funds-transfersGET /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.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.
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 poroccurred_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.
accounting_effects. Usá el detalle cuando
necesites seguir los movimientos contables:
Paginación y sincronización
Las cuatro colecciones usancursor 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.
