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.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.
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.
