Saldo
Consulta tu saldo de Polar (disponible, retenido y retirado) y su estimado en tu moneda local.
GET /api/v1/balance
Devuelve en polar tu saldo de Polar, donde Polar acredita tus ventas:
| Campo | Qué es |
|---|---|
availableCents | Disponible para retirar. |
pendingCents | Retenido por Polar: cada cobro queda retenido 7 días. nextReleaseAt / nextReleaseCents dicen cuándo y cuánto se libera. |
paidOutCents | Lo que ya retiraste (o está en camino). |
balanceCents | Disponible + retenido. |
payoutAccountReady | false si todavía no configuraste en Polar la cuenta donde recibís los retiros. |
financeUrl | Página de finanzas de tu organización en Polar. También puedes retirar por API con POST /api/v1/payouts. |
localEstimate | El mismo saldo en la moneda local de tu cuenta de cobro (ver abajo). |
localEstimate: el saldo en tu moneda
Cuando retirás desde Polar, Stripe convierte los dólares a la moneda de tu cuenta de cobro. localEstimate usa esa misma cotización de Stripe (no la de otro proveedor), así el estimado coincide con lo que recibís:
| Campo | Qué es |
|---|---|
currency | Moneda local, en minúsculas (ars, clp, cop, pen, uyu…). |
currencySource | payout_account (moneda de tu cuenta de cobro de Polar) o country (todavía sin cuenta de cobro: moneda de tu país). |
rate | Unidades de moneda local por 1 USD, con el fee de conversión de Stripe incluido (fxFeeRate, hoy 1 %). |
asOf | Hora de la cotización (se renueva cada 15 minutos). |
available | Estimado de lo que llega al retirar el disponible. Con availableBasis: "payout_estimate" ya descuenta las comisiones de retiro de Polar; con "gross", está calculado sobre el bruto. |
pending | Estimado del saldo retenido. |
paidOut | Lo ya retirado, con el monto exacto que acreditó Stripe en cada retiro (paidOutExact: false si algún retiro fue en otra moneda). |
Los montos van en la unidad menor de la moneda (centavos; en monedas sin decimales, como clp, unidades). available y pending son estimados: el monto final se fija con la cotización del momento del retiro. localEstimate es null si tu cuenta de cobro está en USD o si no hay cotización disponible.
Si no conectaste Polar, polar es { "connected": false }. Si tu conexión es anterior a este permiso, polar.needsReconnect es true: reconecta Polar desde el dashboard. Si Polar no responde, polar.unavailable es true y el resto de la respuesta llega igual.
El entorno lo define la API key: con una clave de prueba (vxp_test_...) lees el saldo de Polar de prueba. La respuesta trae además connected (igual a polar.connected), sandbox y updatedAt.
curl https://api.vexorpay.com/api/v1/balance \
-H "Authorization: Bearer vxp_live_tu_clave"Respuesta exitosa
200 OK
{
"polar": {
"connected": true,
"needsReconnect": false,
"currency": "usd",
"balanceCents": 4713,
"availableCents": 0,
"pendingCents": 4713,
"nextReleaseAt": "2026-10-31T07:55:38.123Z",
"nextReleaseCents": 4713,
"paidOutCents": 0,
"payoutAccountReady": false,
"financeUrl": "https://polar.sh/dashboard/mi-org/finance",
"localEstimate": {
"currency": "ars",
"currencySource": "payout_account",
"rate": 1514.26,
"fxFeeRate": 0.01,
"asOf": "2026-10-25T12:00:00.000Z",
"source": "stripe_fx_quote",
"available": 0,
"availableBasis": "gross",
"pending": 7136707,
"paidOut": 0,
"paidOutExact": true
}
},
"connected": true,
"sandbox": false,
"updatedAt": "2026-01-02T12:06:00.000Z"
}Sin Polar conectado devuelve 200 con { "connected": false, "polar": { "connected": false }, "sandbox": false, "updatedAt": "..." }.
Errores
| Error | HTTP | Causa |
|---|---|---|
unexpected_error | 500 | No pudimos leer el saldo de tu cuenta. |