Accounts API

The Account Information Service (AIS) API allows you to retrieve account details, balances, and transaction history with customer consent.

Required Consent

All AIS endpoints require an active account-access consent. Pass the consent ID in the X-Consent-ID header.

List Accounts

Returns a list of accounts the customer has consented to share.

GET/open-banking/v1/accounts

Retrieve all accounts covered by the consent.

Request

GET /open-banking/v1/accounts
Authorization: Bearer {access_token}
X-Consent-ID: {consent_id}

Response

{
  "data": [
    {
      "account_id": "acc_1234567890",
      "status": "enabled",
      "currency": "GBP",
      "account_type": "current",
      "account_sub_type": "personal",
      "nickname": "Main Account",
      "opening_date": "2020-01-15",
      "identifiers": [
        {
          "scheme": "SortCodeAccountNumber",
          "id": "608371-12345678"
        },
        {
          "scheme": "IBAN",
          "id": "GB33BUKB60837112345678"
        }
      ],
      "servicer": {
        "scheme": "BICFI",
        "id": "HABORLONXXX"
      }
    }
  ],
  "links": {
    "self": "/accounts"
  }
}

Account Fields

FieldTypeDescription
account_idstringUnique account identifier
statusstringenabled, disabled, or pending
currencystringISO 4217 currency code
account_typestringcurrent, savings, credit_card, or loan
account_sub_typestringOptional. personal, business, etc.
nicknamestringCustomer's name for the account
opening_datestringAccount opening date (ISO 8601)
identifiersarrayAccount identifiers (IBAN, Sort Code, etc.)
servicerobjectServicing institution (BIC)

Get Account

GET/open-banking/v1/accounts/{accountId}

Retrieve details for a specific account.

Request

GET /open-banking/v1/accounts/acc_1234567890
Authorization: Bearer {access_token}
X-Consent-ID: {consent_id}

Response

{
  "data": {
    "account_id": "acc_1234567890",
    "status": "enabled",
    "currency": "GBP",
    "account_type": "current",
    "nickname": "Main Account",
    "identifiers": [
      {
        "scheme": "SortCodeAccountNumber",
        "id": "608371-12345678"
      }
    ]
  },
  "links": {
    "self": "/accounts/acc_1234567890"
  }
}

Get Balances

Returns current balances for an account. Requires ReadBalances permission.

GET/open-banking/v1/accounts/{accountId}/balances

Retrieve balances for a specific account.

Request

GET /open-banking/v1/accounts/acc_1234567890/balances
Authorization: Bearer {access_token}
X-Consent-ID: {consent_id}

Response

{
  "data": [
    {
      "account_id": "acc_1234567890",
      "balance_type": "booked",
      "amount": {
        "amount": "1234.56",
        "currency": "GBP"
      },
      "credit_debit_indicator": "Credit",
      "date_time": "2024-01-15T10:30:00Z"
    },
    {
      "account_id": "acc_1234567890",
      "balance_type": "available",
      "amount": {
        "amount": "1034.56",
        "currency": "GBP"
      },
      "credit_debit_indicator": "Credit",
      "date_time": "2024-01-15T10:30:00Z",
      "credit_lines": [
        {
          "type": "available",
          "amount": {
            "amount": "500.00",
            "currency": "GBP"
          },
          "included": true
        }
      ]
    }
  ],
  "links": {
    "self": "/accounts/acc_1234567890/balances"
  }
}

Balance Types

FieldTypeDescription
bookedBalanceTypePosted balance (cleared transactions)
availableBalanceTypeAvailable to spend (includes pending)
pendingBalanceTypeBalance including holds
expectedBalanceTypeFuture expected balance
closing_bookedBalanceTypeEnd of day booked balance

Get All Balances

Returns balances for all consented accounts in a single request.

GET/open-banking/v1/balances

Retrieve balances for all consented accounts.

Get Transactions

Returns transaction history for an account. Requires ReadTransactions permission.

GET/open-banking/v1/accounts/{accountId}/transactions

Retrieve transactions for a specific account.

Request

GET /open-banking/v1/accounts/acc_1234567890/transactions?fromBookingDateTime=2024-01-01T00:00:00Z
Authorization: Bearer {access_token}
X-Consent-ID: {consent_id}

Response

{
  "data": [
    {
      "transaction_id": "txn_abc123",
      "account_id": "acc_1234567890",
      "status": "booked",
      "booking_date_time": "2024-01-15T14:30:00Z",
      "value_date_time": "2024-01-15T00:00:00Z",
      "amount": {
        "amount": "25.99",
        "currency": "GBP"
      },
      "credit_debit_indicator": "Debit",
      "transaction_information": "ACME Store Purchase",
      "merchant_details": {
        "name": "ACME Store",
        "category_code": "5411"
      },
      "reference": "POS-12345"
    },
    {
      "transaction_id": "txn_def456",
      "account_id": "acc_1234567890",
      "status": "booked",
      "booking_date_time": "2024-01-14T09:00:00Z",
      "amount": {
        "amount": "1500.00",
        "currency": "GBP"
      },
      "credit_debit_indicator": "Credit",
      "transaction_information": "SALARY",
      "creditor_account": {
        "scheme": "SortCodeAccountNumber",
        "id": "123456-87654321",
        "name": "Employer Ltd"
      }
    }
  ],
  "links": {
    "self": "/accounts/acc_1234567890/transactions"
  },
  "meta": {
    "first_available_date_time": "2023-01-01T00:00:00Z",
    "last_available_date_time": "2024-01-15T23:59:59Z"
  }
}

Query Parameters

FieldTypeDescription
fromBookingDateTimestringFilter transactions from this date (ISO 8601)
toBookingDateTimestringFilter transactions until this date (ISO 8601)

Transaction Fields

FieldTypeDescription
transaction_idstringUnique transaction identifier
statusstringbooked or pending
booking_date_timestringWhen transaction was posted
value_date_timestringValue date for interest calculation
amountobjectTransaction amount and currency
credit_debit_indicatorstringCredit or Debit
transaction_informationstringDescription from bank
merchant_detailsobjectMerchant name and MCC code
creditor_accountobjectPayee account details (for credits)
debtor_accountobjectPayer account details (for debits)
referencestringPayment reference

Get All Transactions

Returns transactions for all consented accounts.

GET/open-banking/v1/transactions

Retrieve transactions for all consented accounts.

Get Standing Orders

Returns standing orders for an account. Requires ReadStandingOrders permission.

GET/open-banking/v1/accounts/{accountId}/standing-orders

Retrieve standing orders for an account.

Get Direct Debits

Returns direct debit mandates for an account. Requires ReadDirectDebits permission.

GET/open-banking/v1/accounts/{accountId}/direct-debits

Retrieve direct debits for an account.

Error Responses

Common error responses for the Accounts API:

400
missing_consent

X-Consent-ID header is required

401
invalid_consent

Consent not found or expired

403
wrong_consent_type

This endpoint requires an AIS consent

403
account_not_consented

Account not covered by consent

403
permission_denied

Consent does not include required permission

404
account_not_found

Account not found