Saldos
La API de Saldos retorna los saldos de wallet del socio por moneda. ARi mantiene una wallet por par (socio, moneda); el saldo es la proyección en vivo del libro mayor neto de cualquier compromiso FX o stablecoin en vuelo.
| Endpoint | Propósito |
|---|---|
POST /api/v1/balances/getAllBalances |
Obtiene todos los saldos de wallet del contexto autenticado. |
POST /api/v1/balances/getBalancesByCurrency |
Obtiene los saldos filtrados por moneda. |
Inicio rápido
curl -fsS -X POST "https://sandbox-api.ariari.xyz/api/v1/balances/getAllBalances" \
-H "Ocp-Apim-Subscription-Key: $SU_CLAVE" \
-H "Content-Type: application/json" \
-d '{}'
# {
# "wallets": [
# { "wallet_id": "...", "currency": "USD",
# "available_balance": "12500.00", "last_updated_at": "2026-04-28T10:30:00Z" },
# { "wallet_id": "...", "currency": "CRC",
# "available_balance": "6402500.00", "last_updated_at": "2026-04-28T10:30:00Z" }
# ],
# "total_wallets": 2
# }available_balance refleja fondos que pueden respaldar inmediatamente una nueva orden FX o transferencia. Los compromisos pendientes en vuelo ya están netos — este número es el que debe mostrar al cliente.
Ejemplo multi-lenguaje — `getAllBalances`
Generado desde el spec OpenAPI vivo. Elija su lenguaje; su elección persiste a través de otras páginas.
curl -fsS -X POST "https://sandbox-api.ariari.xyz/api/v1/balances/getAllBalances" \
-H "Ocp-Apim-Subscription-Key: $YOUR_KEY"const response = await fetch('https://sandbox-api.ariari.xyz/api/v1/balances/getAllBalances', {
method: 'POST',
headers: {
'Ocp-Apim-Subscription-Key': process.env.ARI_SANDBOX_KEY!,
},
});
if (!response.ok) {
const problem = await response.json();
throw new Error(`${problem.error_code}: ${problem.detail}`);
}
const result = await response.json();using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key",
Environment.GetEnvironmentVariable("ARI_SANDBOX_KEY"));
var response = await client.PostAsync("https://sandbox-api.ariari.xyz/api/v1/balances/getAllBalances", null);
response.EnsureSuccessStatusCode();
var result = await response.Content.ReadAsStringAsync();val client = HttpClient(CIO) {
install(ContentNegotiation) { json() }
}
val response: HttpResponse = client.post("https://sandbox-api.ariari.xyz/api/v1/balances/getAllBalances") {
header("Ocp-Apim-Subscription-Key", System.getenv("ARI_SANDBOX_KEY"))
}
val result: String = response.bodyAsText()Null no es cero
available_balance es un string (preservando precisión decimal). null está reservado para "dato no disponible" — la wallet existe pero una búsqueda de precio o libro mayor falló transitoriamente. null no es lo mismo que "0.00". Trate null como una señal transitoria para reintentar; nunca lo muestre al cliente como cero.
Vea también
- Referencia del objeto `Wallet` — esquema en el cable y garantías de
BalanceWalletDtoyAriWalletDto - Autenticación — modelo de clave de suscripción APIM, scope
balances.read - Errores — códigos
DB-WAL-* - Órdenes FX — verificación de saldo antes de colocar una orden
- Webhooks — los cambios de saldo se propagan vía eventos
transfer.completed; los saldos por sí mismos no tienen un evento dedicado - Sandbox — wallets de prueba precargados con fondos