What this API does:
Depending on permissions, this API can retrieve a list of a customer’s consented accounts; or information about a specific account.
Before calling the API, you must have an access token issued by Virgin Money using 'Authorization Code' grant.
Endpoint configuration
Sandbox: cb.sandbox-api-nc.cybservices.co.uk/open-banking/v3.1/aisp/accounts
Production: api.openbanking.virginmoney.com/open-banking/v3.1/aisp/accounts
This API returns a list of the accounts that the customer has authorised you to access. You can use the AccountId(s) to retrieve further information for a specific account.
The selection of authorised accounts happens at Virgin Money's interface.
Sandbox: cb.sandbox-api-nc.cybservices.co.uk/open-banking/v3.1/aisp/accounts/{AccountId}
Production: api.openbanking.virginmoney.com/open-banking/v3.1/aisp/accounts/{AccountId}
Account information for each AccountId is retrieved in the call to GET/accounts.
API calls
Accounts
Name | Description |
---|---|
x-fapi-auth-date string (header) | The time when the PSU last logged in with the TPP. |
x-fapi-customer-ip-address string (header) | The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id string (header) | An RFC4122 UID used as a correlation id. |
Authorization * string (header) | An Authorisation Token as per https://tools.ietf.org/html/rfc6750 Link opens in a new window |
Responses
Code | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
200 | OK { #/definitions/OBReadAccount4OBReadAccount4{
Headers:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
400 | Bad request { #/definitions/OBErrorResponse1OBErrorResponse1{
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
401 | Unauthorized | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
403 | Forbidden { #/definitions/OBErrorResponse1OBErrorResponse1{
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
404 | Not found | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
405 | Method Not Allowed | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
406 | Not Acceptable | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
429 | Too Many Requests Headers:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
500 | Internal Server Error { #/definitions/OBErrorResponse1OBErrorResponse1{
|
Name | Description |
---|---|
AccountId * string (path) | AccountId |
x-fapi-auth-date string (header) | The time when the PSU last logged in with the TPP. |
x-fapi-customer-ip-address string (header) | The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id string (header) | An RFC4122 UID used as a correlation id. |
Authorization * string (header) | An Authorisation Token as per https://tools.ietf.org/html/rfc6750 Link opens in a new window |
Responses
Code | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
200 | OK { #/definitions/OBReadAccount4OBReadAccount4{
Headers:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
400 | Bad request { #/definitions/OBErrorResponse1OBErrorResponse1{
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
401 | Unauthorized | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
403 | Forbidden { #/definitions/OBErrorResponse1OBErrorResponse1{
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
404 | Not found | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
405 | Method Not Allowed | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
406 | Not Acceptable | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
429 | Too Many Requests Headers:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
500 | Internal Server Error { #/definitions/OBErrorResponse1OBErrorResponse1{
|
Models
Data* | {
| ||||||||||||||||||||||||||
Links | #/definitions/LinksLinks{
| ||||||||||||||||||||||||||
Meta | #/definitions/MetaMeta{
|
description: | Unambiguous identification of the account to which credit and debit entries are made. | ||||||||
AccountId* | AccountIdstring A unique and immutable identifier used to identify the account resource. This identifier has no meaning to the account owner. | ||||||||
Currency* | ActiveOrHistoricCurrencyCode_0string Identification of the currency in which the account is held. | ||||||||
AccountType* | OBExternalAccountType1Codestring Specifies the type of account (personal or business). [ Business, Personal ] | ||||||||
AccountSubType* | OBExternalAccountSubType1Codestring Specifies the sub type of account (product family group). [ ChargeCard, CreditCard, CurrentAccount, EMoney, Loan, Mortgage, PrePaidCard, Savings ] | ||||||||
Description | Description_0string Specifies the description of the account type. | ||||||||
Nickname | Nicknamestring The nickname of the account, assigned by the account owner in order to provide an additional means of identification of the account. | ||||||||
Account | [{
|
ActiveOrHistoricCurrencyCode_0
Identification of the currency in which the account is held.
Usage: Currency should only be used in case one and the same account number covers several currencies
and the initiating party needs to identify which currency needs to be used for settlement on the account.
Specifies the type of account (personal or business).
[ Business, Personal ]
Specifies the sub type of account (product family group).
[ ChargeCard, CreditCard, CurrentAccount, EMoney, Loan, Mortgage, PrePaidCard, Savings ]
The nickname of the account, assigned by the account owner in order to provide an additional means of identification of the account.
OBExternalAccountIdentification4Code
Name of the identification scheme, in a coded form as published in an external list.
The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.
Note, the account name is not the product name or the nickname of the account.
description: | Links relevant to the payload |
Self* | string |
First | string |
Prev | string |
Next | string |
Last | string |
description: | Meta Data relevant to the payload |
TotalPages | integer($int32) |
FirstAvailableDateTime | ISODateTimestring($date-time) All dates in the JSON payloads are represented in ISO 8601 date-time format. |
LastAvailableDateTime | ISODateTimestring($date-time) All dates in the JSON payloads are represented in ISO 8601 date-time format. |
All dates in the JSON payloads are represented in ISO 8601 date-time format.
All date-time fields in responses must include the timezone. An example is below:
2017-04-05T10:43:07+00:00
description: | An array of detail error codes, and messages, and URLs to documentation to help remediation. | ||||||||
Code* | string minLength: 1 maxLength: 40 High level textual error code, to help categorize the errors. | ||||||||
Id | string minLength: 1 maxLength: 40 A unique reference for the error instance, for audit purposes, in case of unknown/unclassified errors. | ||||||||
Message* | string minLength: 1 maxLength: 500 Brief Error message, e.g., 'There is something wrong with the request parameters provided' | ||||||||
Errors* | [ minItems: 1#/definitions/OBError1OBError1{
|
ErrorCode* | string Low level textual error code, e.g., UK.OBIE.Field.Missing |
Message* | string minLength: 1 maxLength: 500 A description of the error that occurred. e.g., 'A mandatory field isn't supplied' or 'RequestedExecutionDateTime must be in future' |
Path | string minLength: 1 maxLength: 500 Recommended but optional reference to the JSON Path of the field with error, e.g., Data.Initiation.InstructedAmount.Currency |
Url | string URL to help remediate the problem, or provide more information, or to API Reference, or help etc |
Having trouble?
Contact our dedicated team members via our ticketing system or via our support mailbox