# Balances Explained

## Realtime Balance

You can read realtime account balances using the following API. This API works both Primary and Virtual accounts.

## GET /v1/partner/accounts/{accountId}/balance

> Get account balance

```json
{"openapi":"3.0.0","info":{"title":"Horizon Link - API Docs","version":"1.0"},"servers":[{"url":"api-url"}],"paths":{"/v1/partner/accounts/{accountId}/balance":{"get":{"operationId":"AccountController_getAccountBalance","summary":"Get account balance","parameters":[{"name":"accountId","required":true,"in":"path","schema":{"type":"string"}},{"name":"authorization","in":"header","description":"Authorization header containing your API Token","schema":{"type":"string"}},{"name":"x-alg-nonce","in":"header","description":"Nonce used to generate the payload signature","schema":{"type":"string"}},{"name":"x-alg-signature","in":"header","description":"Payload signature","schema":{"type":"string"}},{"name":"date","in":"header","description":"Date of the request un UTC/GMT","schema":{"type":"string"}}],"responses":{"200":{"description":"Returns account real-time balance positions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerAccountBalanceResponse"}}}},"400":{"description":"Input validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerCommonErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerCommonErrorResponse"}}}},"404":{"description":"Account not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerCommonErrorResponse"}}}},"422":{"description":"Unprocessable entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerAccountErrorResponse"}}}}},"tags":["Accounts"]}}},"components":{"schemas":{"PartnerAccountBalanceResponse":{"type":"object","properties":{"currency":{"type":"string","enum":["AFN","EUR","ALL","DZD","USD","AOA","XCD","ARS","AMD","AWG","AUD","AZN","BSD","BHD","BDT","BBD","BYN","BZD","XOF","BMD","INR","BTN","BOB","BOV","BAM","BWP","NOK","BRL","BND","BGN","BIF","CVE","KHR","XAF","CAD","KYD","CLP","CLF","CNY","COP","COU","KMF","CDF","NZD","CRC","HRK","CUP","CUC","ANG","CZK","DKK","DJF","DOP","EGP","SVC","ERN","SZL","ETB","FKP","FJD","XPF","GMD","GEL","GHS","GIP","GTQ","GBP","GNF","GYD","HTG","HNL","HKD","HUF","ISK","IDR","XDR","IRR","IQD","ILS","JMD","JPY","JOD","KZT","KES","KPW","KRW","KWD","KGS","LAK","LBP","LSL","ZAR","LRD","LYD","CHF","MOP","MKD","MGA","MWK","MYR","MVR","MRU","MUR","XUA","MXN","MXV","MDL","MNT","MAD","MZN","MMK","NAD","NPR","NIO","NGN","OMR","PKR","PAB","PGK","PYG","PEN","PHP","PLN","QAR","RON","RUB","RWF","WST","STN","SAR","RSD","SCR","SLL","SGD","XSU","SBD","SOS","SSP","LKR","SDG","SRD","SEK","CHE","CHW","SYP","TWD","TJS","THB","TOP","TTD","TND","TRY","TMT","UGX","UAH","AED","USN","UYU","UYI","UYW","UZS","VUV","VES","VND","YER","ZMW","ZWL","XBA","XBB","XBC","XBD","XTS","XXX","XAU","XPD","XPT","XAG","AFA","FIM","ADP","ESP","FRF","AOK","AOR","RUR","ATS","AYM","AZM","BYB","BYR","BEC","BEF","BEL","BAD","BRB","BRR","BGJ","CYP","CSK","ECS","ECV","GQE","EEK","XEU","GEK","DDM","DEM","GHC","GHP","GRD","GWE","ITL","IEP","LVL","ZAL","LTL","LUC","LUF","LUL","MGF","MLF","MTL","MRO","MZE","NLG","PLZ","PTE","ROK","STD","CSD","SKK","SIT","RHD","ESA","ESB","SDD","SRG","TJR","TPE","TRL","TMM","UAK","USS","VEB","VEF","YUD","ZRN","ZMK","ZWN","ZWR"]},"availableBalance":{"type":"number"},"ledgerBalance":{"type":"number"},"pendingCredits":{"type":"number"}},"required":["currency","availableBalance","ledgerBalance","pendingCredits"]},"PartnerCommonErrorResponse":{"type":"object","properties":{"errorType":{"type":"string","enum":["VALIDATION_ERROR","FORBIDDEN","NOT_FOUND","UNAUTHORIZED","PRECONDITION_FAILED","REQUEST_TIMEOUT","SERVICE_UNAVAILABLE"]},"reason":{"type":"string","nullable":true},"validationFailures":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/PartnerValidationFieldError"}}},"required":["errorType"]},"PartnerValidationFieldError":{"type":"object","properties":{"message":{"type":"string"},"path":{"type":"string","nullable":true}},"required":["message"]},"PartnerAccountErrorResponse":{"type":"object","properties":{"errorType":{"type":"string","enum":["ACCOUNT_NOT_AVAILABLE"]},"reason":{"type":"string","nullable":true},"validationFailures":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/PartnerValidationFieldError"}}},"required":["errorType"]}}}}
```

## Balance breakdown

All amounts including account balances returned in hundreds to preserve floating point precision and reduce errors on JSON serialize/deserialize steps.

> ie. £1.92 represented as `192` Similarly. £27.01 would be shown as `2791`

{% code title="Real-time balance" %}

```json
{​
  "currency": "GBP",​
  "availableBalance": 400,​
  "ledgerBalance": 500,​
  "pendingCredits": 0​
​}
```

{% endcode %}

<table data-view="cards"><thead><tr><th>Balance</th><th>Description</th></tr></thead><tbody><tr><td>Available Balance</td><td>Balance on account ledger minus pending debits.</td></tr><tr><td>Ledger Balance</td><td>Balance on account ledger including pending debits, excluding pending credits.</td></tr><tr><td>Pending Credits</td><td>Total pending funds on account ledger.</td></tr></tbody></table>

{% hint style="info" %}
Currency code on balance is always the same currency as the account involved.
{% endhint %}
