Skip to content

Current account balance.

GET  /api/v1/user/balance  · Permission: balance.read

Terminal window
curl https://restlink23telecom.com/api/v1/user/balance \
-H "X-API-Key: $API_KEY"
200 OK
{
"balance": 1250.50,
"currency": "EUR",
"updated": "2026.02.13 10:15:00",
"credit_limit": 0,
"available_balance": 1250.50
}

available_balance is balance + credit_limit — the actual amount you can spend. Accounts without a credit line have credit_limit: 0, so available_balance equals balance.

When available_balance drops to zero or below, the response additionally contains "credit_blocked": true. Treat this as an account-funding warning. It is gated on available_balance, not on balance — a credit account with a negative balance that is still within its credit_limit is not flagged.

New processing on the current send endpoints does not create a send-time 402. It accepts and queues direct API traffic fail-open when Portal’s local balance or pricing data is unavailable. This keeps transactional traffic moving, but it does not guarantee that the upstream account has enough credit.

Monitor available_balance and credit_blocked before large campaigns. For an accepted message, use its later delivery report as the source of truth for final status and cost; do not retry an accepted message_id merely because the local cost is 0 or the balance cache is degraded.

Balance and pricing are served from a background-refreshed cache. If the cache is unavailable, the API still returns HTTP 200 but flags degradation via response headers:

HeaderValuesMeaning
X-Sms-Gateway-Statuspartial, unavailableData quality indicator
X-Sms-Gateway-Reasoncache_disabled, cache_miss_refresh_failedMachine-readable reason

These headers are absent on healthy responses. Degraded balance responses look like {"balance": 0, "currency": "EUR", "unavailable": true, "reason": "…"} — check the unavailable flag before alerting on a zero balance.

Poll balance once every few minutes at most (the cache refreshes on its own cadence), alert on credit_blocked: true, and ignore zero-balance readings that carry the unavailable: true flag.