Get account balance
GET/v1/accounts/:id/balances
Requests without the header PSU-IP-Address
is limited to 4 calls per day when the PSU has granted consent to access the account.
See XS2A Framework Implementation Guidelines, Section 6.6.3 for additional details.
Request
Path Parameters
Resource ID.
Header Parameters
- keyId must be formatted as
keyId="SN=XXX,CA=YYY"
whereXXX
is the serial number of the signing certificate in hexadecimal encoding andYYY
is the full Distinguished Name of the Certificate Authority having certificate - algorithm must identify the same algorithm for the signature as presented in the signing certificate and should be
rsa-sha256
- headers must contain
date
,digest
,x-request-id
,psu-id
,psu-corporate-id
, andtpp-redirect-uri
when available - signature must be computed as
Base64(RSA-SHA256(signingString))
Make a published future breaking change active before the date when it is going to be made default, for adopting changes early. (see Future Breaking Changes)
Advertises which content types, expressed as MIME types, the client is able to understand. Using content negotiation, the server then selects one of the proposals, uses it and informs the client of its choice with the Content-Type response header.
Advertises which character set the client is able to understand. Using content negotiation, the server then selects one of the proposals, uses it and informs the client of its choice within the Content-Type response header.
Advertises which content encoding, usually a compression algorithm, the client is able to understand. Using content negotiation, the server selects one of the proposals, uses it and informs the client of its choice with the Content-Encoding response header.
Advertises which natural languages the client is able to understand, and which locale variant is preferred. Using content negotiation, the server then selects one of the proposals, uses it and informs the client of its choice with the Content-Language response header.
The domain name of the server (for virtual hosting), and (optionally) the TCP port number on which the server is listening.
Request identifier unique to the call generated by the TPP.
TPP session identifier.
Call back URI of the TPP, where the transaction flow shall be redirected to after a Redirect.
Set to false to automatically trigger biometric authentication for mobile apps whenever available. Default is true.
The certificate used for signing the request in base64 encoding.
HTTP Message Signature as specified by https://tools.ietf.org/html/draft-cavage-http-signatures-10 with requirements imposed by Berlin Group's NextGenPSD2 Framework.
If any value in the Signature header is ISO-8859-1 or UTF-8 encoded, the Signature header needs to be URL encode compliant to RFC-2047, which means MIME encoding the signature.
Also, the signature must be wrapped using this format: =?charset?encoding?encoded signature?=
Example of this encoding: =?utf-8?B?a2V5QTQsQ0E9Mi41LjQuOTc9IzB........jMTM1MDUzNDQ0ZTRmMmQ0NjUz?=
Java example of how to implement encoding:
if (charset.equals(StandardCharsets.UTF_8)) {
Signature = String.format("=?utf-8?B?%s?=", Base64.getEncoder().encodeToString(signature.getBytes(StandardCharsets.UTF_8)));
}
The PSU identifier.
The PSU Corporate agreement identifier.
Possible values: [PRIVATE
, CORPORATE
]
Explicitly set PSU context. If not set the PSU is promted to select context when performing SCA the first time
The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP.
The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.
The forwarded value for the User-Agent header field between the PSU and TPP, if available.
The forwarded value for the Accept header field between the PSU and TPP, if available.
The forwarded value for the Accept-Charset header field between the PSU and TPP, if available.
The forwarded value for the Accept-Encoding header field between the PSU and TPP, if available.
The forwarded value for the Accept-Language header field between the PSU and TPP, if available.
The forwarded value for the HTTP method used between the PSU and TPP, if available.
The forwarded value of the device ID used by the PSU, if available.
The forwarded value of the Geo Location of the corresponding HTTP request between the PSU and TPP, if available.
Responses
- 200
- 400
- 401
- 404
- 429
- 500
OK
- application/json
- Schema
- Example (from schema)
Schema
Array [
]
account
object
Possible values: <= 30 characters
Identifier that uniquely identifies an individual account at a specific financial institution in a particular country, and which includes a bank identifier of the financial institution servicing that account.
Possible values: <= 34 characters
Expanded version of the basic bank account number (BBAN), structured as defined by ISO 13616-1:2007, intended for use internationally, which uniquely identifies an individual account at a specific financial institution, in a particular country.
Possible values: [AED
, AFN
, ALL
, AMD
, ANG
, AOA
, ARS
, AUD
, AWG
, AZN
, BAM
, BBD
, BDT
, BGN
, BHD
, BIF
, BMD
, BND
, BOB
, BRL
, BSD
, BTN
, BWP
, BYR
, BZD
, CAD
, CDF
, CHF
, CLP
, CNY
, COP
, CRC
, CUC
, CUP
, CVE
, CZK
, DJF
, DKK
, DOP
, DZD
, EGP
, ERN
, ETB
, EUR
, FJD
, FKP
, GBP
, GEL
, GGP
, GHS
, GIP
, GMD
, GNF
, GTQ
, GYD
, HKD
, HNL
, HRK
, HTG
, HUF
, IDR
, ILS
, IMP
, INR
, IQD
, IRR
, ISK
, JEP
, JMD
, JOD
, JPY
, KES
, KGS
, KHR
, KMF
, KPW
, KRW
, KWD
, KYD
, KZT
, LAK
, LBP
, LKR
, LRD
, LSL
, LYD
, MAD
, MDL
, MGA
, MKD
, MMK
, MNT
, MOP
, MRO
, MUR
, MVR
, MWK
, MXN
, MYR
, MZN
, NAD
, NGN
, NIO
, NOK
, NPR
, NZD
, OMR
, PAB
, PEN
, PGK
, PHP
, PKR
, PLN
, PYG
, QAR
, RON
, RSD
, RUB
, RWF
, SAR
, SBD
, SCR
, SDG
, SEK
, SGD
, SHP
, SLL
, SOS
, SPL
, SRD
, STD
, SVC
, SYP
, SZL
, THB
, TJS
, TMT
, TND
, TOP
, TRY
, TTD
, TVD
, TWD
, TZS
, UAH
, UGX
, USD
, UYU
, UZS
, VEF
, VND
, VUV
, WST
, XAF
, XCD
, XDR
, XOF
, XPF
, YER
, ZAR
, ZMW
, ZWD
]
ISO 4217 Alphabetic Currency Code.
balances
object[]
balanceAmount
object
Note that even though the contract sets a precision of 18 and a scale of 5, the provided fraction digits must adhere to the minor units as defined in ISO 4217 for the provided currency code.
Possible values: [AED
, AFN
, ALL
, AMD
, ANG
, AOA
, ARS
, AUD
, AWG
, AZN
, BAM
, BBD
, BDT
, BGN
, BHD
, BIF
, BMD
, BND
, BOB
, BRL
, BSD
, BTN
, BWP
, BYR
, BZD
, CAD
, CDF
, CHF
, CLP
, CNY
, COP
, CRC
, CUC
, CUP
, CVE
, CZK
, DJF
, DKK
, DOP
, DZD
, EGP
, ERN
, ETB
, EUR
, FJD
, FKP
, GBP
, GEL
, GGP
, GHS
, GIP
, GMD
, GNF
, GTQ
, GYD
, HKD
, HNL
, HRK
, HTG
, HUF
, IDR
, ILS
, IMP
, INR
, IQD
, IRR
, ISK
, JEP
, JMD
, JOD
, JPY
, KES
, KGS
, KHR
, KMF
, KPW
, KRW
, KWD
, KYD
, KZT
, LAK
, LBP
, LKR
, LRD
, LSL
, LYD
, MAD
, MDL
, MGA
, MKD
, MMK
, MNT
, MOP
, MRO
, MUR
, MVR
, MWK
, MXN
, MYR
, MZN
, NAD
, NGN
, NIO
, NOK
, NPR
, NZD
, OMR
, PAB
, PEN
, PGK
, PHP
, PKR
, PLN
, PYG
, QAR
, RON
, RSD
, RUB
, RWF
, SAR
, SBD
, SCR
, SDG
, SEK
, SGD
, SHP
, SLL
, SOS
, SPL
, SRD
, STD
, SVC
, SYP
, SZL
, THB
, TJS
, TMT
, TND
, TOP
, TRY
, TTD
, TVD
, TWD
, TZS
, UAH
, UGX
, USD
, UYU
, UZS
, VEF
, VND
, VUV
, WST
, XAF
, XCD
, XDR
, XOF
, XPF
, YER
, ZAR
, ZMW
, ZWD
]
ISO 4217 Alphabetic Currency Code.
Possible values: [closingBooked
, openingBooked
, expected
, interimAvailable
, forwardAvailable
]
Balance Type
closingBooked
- Balance of the account at the end of the pre-agreed account reporting period.
It is the sum of the opening booked balance at the beginning of the period and all entries booked to the account during the pre-agreed account reporting period.
For card-accounts, this is composed of invoiced, but not yet paid entries.
Most requests for balances of an account belonging to a private customer will include this balancetype
openingBooked
- Book balance of the account at the beginning of the account reporting period.
It always equals the closing book balance from the previous report.
expected
- Balance composed of booked entries and pending items known at the time of calculation, which projects the end of day balance if everything is booked on the account and no other entry is posted.
For card accounts, this is composed of invoiced, but not yet paid entries, not yet invoiced but already booked entries and pending item (not yet booked)
Most requests for balances of an account belonging to a private customer will include this balancetype
interimAvailable
- Available balance calculated in the course of the account servicer's business day, at the time specified, and subject to further changes during the business day.
The interim balance is calculated on the basis of booked credit and debit items during the calculation time/period specified. For card-accounts,
this is composed of invoiced, but not yet paid entries and not yet invoiced but already booked entries
forwardAvailable
- Forward available balance of money that is at the disposal of the account owner on the date specified.
_links
object
property name*
Link
Possible values: [GET
, PUT
, POST
, DELETE
]
{
"account": {
"bban": "95360573002",
"iban": "NO0995360573002",
"currency": "NOK"
},
"balances": [
{
"balanceAmount": {
"amount": "100.26",
"currency": "NOK"
},
"balanceType": "closingBooked"
}
],
"_links": {
"self": {
"href": "https://openbanking.obos.no/",
"verbs": [
"GET"
]
}
}
}
Bad Request
- application/json
- Schema
- Example (from schema)
- Example
Schema
{
"id": "5884127160",
"system": "ERA-PSD2",
"status": 400,
"code": "ERROR_CODE",
"message": "error message appears here"
}
{
"id": "5615873375",
"status": 400,
"system": "ERA-PSD2",
"code": "FORMAT_ERROR"
}
Unauthorized
- application/json
- Schema
- Example (from schema)
Schema
_links
object
property name*
Link
Possible values: [GET
, PUT
, POST
, DELETE
]
{
"_links": {}
}
Not Found
- application/json
- Schema
- Example (from schema)
- Example
Schema
{
"id": "5884127160",
"system": "ERA-PSD2",
"status": 400,
"code": "ERROR_CODE",
"message": "error message appears here"
}
{
"id": "5615873376",
"system": "ERA-PSD2",
"status": 404,
"code": "RESOURCE_UNKNOWN",
"message": "Account not found."
}
Too Many Requests
- application/json
- Schema
- Example (from schema)
- Example
Schema
{
"id": "5884127160",
"system": "ERA-PSD2",
"status": 400,
"code": "ERROR_CODE",
"message": "error message appears here"
}
{
"id": "5615873377",
"system": "ERA-PSD2",
"status": 429,
"code": "ACCESS_EXCEEDED"
}
Internal Server Error
- application/json
- Schema
- Example (from schema)
- Example
Schema
{
"id": "5884127160",
"system": "ERA-PSD2",
"status": 400,
"code": "ERROR_CODE",
"message": "error message appears here"
}
{
"id": "5615873378",
"system": "ERA-PSD2",
"status": 500,
"code": "SYSTEM_ERROR"
}