Bank Accounts

Bank accounts are the entities that hold the main features of the account. The bank accounts do not hold balances. Each bank account is connected to a single service provider. The owner of a bank account can be a client or organization. Currently, the bank account can only be migrated by the support team as an organization owner for this release. According to the Service provider account model, a bank account can have a single transaction account or multiple. An example of this would be a Service Provider who supports a Multi-Currency Account on a single account number wherein IF treats the overarching account number as the Bank Account and the underlying currencies held as individual Transaction Accounts.

Get a Bank Account

GET /bank-accounts/{id}

{
  "workflow": {},
  "data": {
    "bankAccount": {
      "id": "00000000-0000-0000-0000-000000000000",
      "clientId": null,
      "status": "active",
      "owner": "organization",
      "ownerOfFunds": "client",
      "alias": "Organization Account",
      "features": {
        "multiCurrency": false,
        "safeguarded": false,
        "serviceProviderAccountType": "real-account",
        "virtualization": "not-applicable",
        "fundsSegregated": false,
        "accountHolder": "organization",
        "senderName": "organization"
      },
      "connection": {
        "id": "310152057408",
        "serviceProvider": "nium",
        "reference": "310152057408",
        "state": "completed-up-to-date",
        "status": "active",
        "method": "built-in"
      },
      "accountHolderIdentityType": null,
      "accountHolderName": null,
      "serviceProvider": "nium"
    }
  },
  "connect": {},
  "metadata": {}
}

List Bank Accounts

GET /bank-accounts

Supported query parameters:

parameterdescription
metadata.page.number0-indexed, default=0
metadata.page.sizedefault=10
data.bankAccount.clientIdUUID of client
data.bankAccount.statusone of pending, active, inactive, suspended, closed, declined
data.bankAccount.ownerone of client, organization
data.bankAccount.ownerOfFundsone of client, organization
data.bankAccount.aliasFree text account alias
data.bankAccount.accountHolderNamethe holder name of the bank account
data.bankAccount.accountHolderIdentityTypethe holder idenetity type of the bank account
data.bankAccount.serviceProviderthe service provider to which the bank account is connected
{
  "workflow": {},
  "data": {
    "bankAccounts": [
      {
        "id": "00000000-0000-0000-0000-000000000000",
        "clientId": null,
        "status": "active",
        "owner": "organization",
        "ownerOfFunds": "client",
        "alias": "Organization Account",
        "features": {
          "multiCurrency": false,
          "safeguarded": false,
          "serviceProviderAccountType": "real-account",
          "virtualization": "not-applicable",
          "fundsSegregated": false,
          "accountHolder": "organization",
          "senderName": "organization"
        },
        "connection": {
          "id": "00000000000",
          "serviceProvider": "nium",
          "reference": "310152057408",
          "state": "completed-up-to-date",
          "status": "active",
          "method": "built-in"
        },
        "accountHolderIdentityType": null,
        "accountHolderName": null,
        "serviceProvider": "nium"
      },
      {
        "id": "00000000-0000-0000-0000-000000000000",
        "clientId": null,
        "status": "active",
        "owner": "organization",
        "ownerOfFunds": "client",
        "alias": "Operational Account",
        "features": {
          "multiCurrency": true,
          "safeguarded": true,
          "serviceProviderAccountType": "real-account",
          "virtualization": "not-applicable",
          "fundsSegregated": false,
          "accountHolder": "organization",
          "senderName": "organization"
        },
        "connection": {
          "id": "00000000-0000-0000-0000-000000000000",
          "serviceProvider": "currencycloud",
          "reference": "210507-19653",
          "state": "completed-up-to-date",
          "status": "active",
          "method": "built-in"
        },
        "accountHolderIdentityType": null,
        "accountHolderName": null,
        "serviceProvider": "currencycloud"
      }
    ]
  },
  "connect": {},
  "metadata": {
    "page": {
      "size": 10,
      "number": 0,
      "totalElements": 2,
      "totalPages": 1
    }
  }
}

Webhooks

  1. Bank Account Webhooks: Bank Account webhooks have "bank-accounts" in the module field in the webhook container object.
    There are one type of webhook sent for bank accounts:

    • bank-account-migrated

    These types are exposed in the webhook.type field.

{
   "webhook":{
      "module":"bank-accounts",
      "type":"bank-account-migrated"
   },
   "data":{
      "account":{
         "id":"00000000-0000-0000-0000-000000000000",
         "clientId":null,
         "status":"active",
         "owner":"organization",
         "ownerOfFunds":"client",
         "alias":"GBP Account",
         "features":{
            "multiCurrency":false,
            "safeguarded":false,
            "serviceProviderAccountType":"real-account",
            "virtualization":"not-applicable",
            "fundsSegregated":false,
            "accountHolder":"organization",
            "senderName":"organization"
         },
         "connection":{
            "id":"00000000-0000-0000-0000-000000000000",
            "method":"built-in",
            "serviceProvider":"railsbank",
            "reference":"00000000-0000-0000-0000-000000000000",
            "state":"completed-up-to-date",
            "status":"active",
            "error":null
         },
         "accountHolderName":"Sherlock Holmes",
         "accountHolderIdentityType":"individual",
         "serviceProvider":"railsbank"
      }
   },
   "connect":{

   },
   "metadata":{

   }
}