Bank Accounts

Bank accounts are the entities that hold the main features of an account and establish the connection with a single service provider. Bank accounts are not connected to a ledger and do not hold balances or currency, as these are held by transaction accounts. The owner of a bank account can be a client or organization, which is identified by the owner field. The ownerOfFunds identifies who owns the funds represented under the related transaction accounts. For client-owned bank accounts, clientId is populated and both features.accountHolder and features.senderName are set to client. For organization-owned bank accounts, clientId is null and both features.accountHolder and features.senderName are set to organization.

Organization-owned bank accounts can only be added to the system by the support team through migration. Client-owned bank accounts can be added to the system either through migration or by using the Create Bank Account API. According to the Service Provider account model, a bank account can have a single transaction account or multiple transaction accounts. 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.

Create Client Bank Account

This Create Bank Account API can only be called for Client owner.

POST /bank-accounts*
There is a single workflow to create an account. The bank account will always be created in the pending state whilst the asynchronous account creation occurs on the underlying service provider. Once this is actioned successfully, the account will be activated and you will receive the related bank-account-activated webhook. Please refer to our Idempotency Support page when implementing this POST request.

Connect Type

Connect type "explicit" means the service provider was given in the request while bank account creation and "implicit" means determining the appropriate service provider by the IF system. If the connect method is "plug-in" then connect type must be "explicit" and if the connect method is "built-in" then connect type can be "implicit" or "explicit".

Connect Method

The Connect method field indicates how a bank account is connected to a service provider. Depending on whether IF has a direct integration with the service provider, it can have one of two values:

  • built-in: The service provider is directly integrated with IF.
  • plug-in: The service provider is not directly integrated with IF.

1. Issuing: You can ask for a bank account to be opened at a specific service provider of your choice. If this is the first bank account created for this client at the selected service provider, the client might be required to be created at the service provider first depending on the service provider’s workflows. If the service provider supports single-currency bank accounts, the currency field is required in the Create Bank Account request payload. If the service provider supports multi-currency bank accounts, the currency field must not be included in the Create Bank Account request payload.

{
   "workflow":{
      "code":"client.issuing"
   },
   "data":{
      "bankAccount":{
         "clientId":"00000000-0000-0000-0000-000000000000",
         "currency":"EUR",
         "alias":"Client Bank Account", 
         "attributes": {
           "purpose": "expenses"
         }  
      }
   },
   "connect":{
      "method":"built-in",
      "type":"explicit",
      "serviceProvider":"service-provider-code"
   },
   "metadata":{

   }
}
{
    "workflow": {
        "code": "client.issuing"
    },
    "data": {
        "bankAccount": {
            "id": "00000000-0000-0000-0000-000000000000",
            "clientId": "00000000-0000-0000-0000-000000000000",
            "status": "pending",
            "owner": "client",
            "ownerOfFunds": "client",
            "alias": "Client Bank Account",
            "attributes": {
              "purpose": "expenses"
            },  
            "features": {
                "multiCurrency": false,
                "safeguarded": true,
                "serviceProviderAccountType": "virtual-account",
                "accountHolder": "client",
                "senderName": "client"
            },
            "connection": {
                "serviceProvider": "service-provider-code",
                "state": "creation-in-progress",
                "method": "built-in"
            },
            "serviceProvider": "service-provider-code"
        }
    },
    "connect": {
        "type": "explicit",
        "method": "built-in",
        "serviceProvider":"service-provider-code" 
    },
    "metadata": {}
}
{
   "workflow":{
      "code":"client.issuing"
   },
   "data":{
      "bankAccount":{
         "clientId":"00000000-0000-0000-0000-000000000000",
         "currency":"EUR",
         "alias":"Client Bank Account", 
         "attributes": {
           "purpose": "expenses"
         }  
      }
   },
   "connect":{
      "method":"built-in",
      "type":"implicit"
   },
   "metadata":{

   }
}
{
    "workflow": {
        "code": "client.issuing"
    },
    "data": {
        "bankAccount": {
            "id": "00000000-0000-0000-0000-000000000000",
            "clientId": "00000000-0000-0000-0000-000000000000",
            "status": "pending",
            "owner": "client",
            "ownerOfFunds": "client",
            "alias": "Client Bank Account",
            "attributes": {
              "purpose": "expenses"
            },  
            "features": {
                "multiCurrency": false,
                "safeguarded": true,
                "serviceProviderAccountType": "virtual-account",
                "accountHolder": "client",
                "senderName": "client"
            },
            "connection": {
                "serviceProvider": "service-provider-code",
                "state": "creation-in-progress",
                "method": "built-in"
            },
            "serviceProvider": "service-provider-code"
        }
    },
    "connect": {
        "type": "implicit",
        "method": "built-in",
        "serviceProvider":"service-provider-code" 
    },
    "metadata": {}
}
{
  "workflow": {
    "code": "client.issuing"
  },
  "data": {
    "bankAccount": {
      "clientId": "00000000-0000-0000-0000-000000000000",
      "alias": "Multi Currency Client Account",
      "attributes": {
        "accountPurpose": "salary"
      }
    }
  },
  "connect": {
    "method": "built-in",
    "type": "explicit",
    "serviceProvider": "service-provider-code"
  },
  "metadata": {}
}
{
  "workflow": {
    "code": "client.issuing"
  },
  "data": {
    "bankAccount": {
      "id": "00000000-0000-0000-0000-000000000000",
      "clientId": "00000000-0000-0000-0000-000000000000",
      "status": "pending",
      "owner": "client",
      "ownerOfFunds": "client",
      "alias": "Multi Currency Client Account",
      "attributes": {
        "accountPurpose": "salary"
      },
      "features": {
        "multiCurrency": true,
        "safeguarded": false,
        "serviceProviderAccountType": "real-account",
        "accountHolder": "client",
        "senderName": "client"
      },
      "connection": {
        "serviceProvider": "service-provider-code",
        "state": "creation-in-progress",
        "method": "built-in"
      },
      "accountHolderIdentityType": null,
      "accountHolderName": null,
      "serviceProvider": "service-provider-code"
    }
  },
  "connect": {
      "method": "built-in",
      "type": "explicit",
      "serviceProvider": "service-provider-code"
   },
  "metadata": {}
}
{
   "workflow":{
      "code":"client.issuing"
   },
   "data":{
      "bankAccount":{
         "clientId":"00000000-0000-0000-0000-000000000000",
         "currency":"EUR",
         "alias":"Client Money Account"
      }
   },
   "connect":{
         "method":"plug-in",
         "type": "explicit",
         "serviceProvider":"service-provider-code"
   },
   "metadata":{

   }
}
{
    "workflow": {
        "code": "client.issuing"
    },
    "data": {
        "bankAccount": {
            "id": "00000000-0000-0000-0000-000000000000",
            "clientId": "00000000-0000-0000-0000-000000000000",
            "status":"pending",
            "owner": "client",
            "ownerOfFunds": "client",
            "alias": "Client Money Account",
            "features": {
                "multiCurrency": false,
                "safeguarded": true,
                "serviceProviderAccountType": "real-account",
                "accountHolder": "client",
                "senderName": "client"
            },
            "connection": {
              "id":null,
              "method":"plug-in",
              "serviceProvider":"service-provider-code",
              "reference":null,
              "state":"creation-in-progress",
              "status":null,
              "error":null
         },
            "serviceProvider": "service-provider-code"
        }
    },
    "connect": {
        "type": "explicit",
        "serviceProvider": "service-provider-code",
        "method": "plug-in"
    },
    "metadata": {}
}

  1. Migration: You can migrate an existing bank account from a service provider into the IF platform using an identifier from the underlying service provider within the connect.id field. Before migrating a bank account, the related client must already exist in IF, and the bank account must be in an active state at the service provider. Organization-owned bank accounts can only be migrated by the support team. Client-owned bank accounts can be migrated once the related client has already been migrated. If the service provider maintains a client or customer resource equivalent to the IF client, the migration request validates that the bank account at the service provider is owned by that client. The migration endpoint also requires the bank account currency so that it can be validated against the currencies supported by the service provider. For single-currency bank accounts, one transaction account is created for the specified currency. For multi-currency bank accounts, transaction accounts are created for the currencies supported by the service provider. After a successful migration, a bank-account-migrated webhook is sent. If the service provider supports single-currency bank accounts, the currency field is required in the Migrate Bank Account request payload. If the service provider supports multi-currency bank accounts, the currency field must not be included in the Migrate Bank Account request payload.
{
    "workflow": {
        "code": "client.migration"
    },
    "data": {
        "bankAccount": {
            "clientId": "00000000-0000-0000-0000-000000000000",
            "currency": "GBP",
            "alias": "GBP Client Bank Account"
        }
    },
    "connect": {
        "id":"00000000-0000-0000-0000-000000000000",
        "method": "built-in",
        "type": "explicit",
        "serviceProvider": "service-provider-code"
    },
    "metadata": {}
}
{
   "workflow":{
      "code":"client.migration"
   },
   "data":{
      "bankAccount":{
         "id":"00000000-0000-0000-0000-000000000000",
         "clientId":"00000000-0000-0000-0000-000000000000",
         "owner":"client",
         "ownerOfFunds":"client",
         "serviceProvider":"service-provider-code",
         "status":"active",
         "alias":"GBP Client Bank Account",
         "features":{
            "multiCurrency":false,
            "safeguarded":false,
            "serviceProviderAccountType":"real-account",
            "accountHolder":"client",
            "senderName":"client"
         },
         "attributes":null,
         "serviceProvider": "service-provider-code",
         "accountHolderName":"Sherlock Holmes",
         "accountHolderIdentityType":"individual", 
         "connection":{
            "id":"00000000-0000-0000-0000-000000000000",
            "serviceProvider":"service-provider-code",
            "reference":"00000000-0000-0000-0000-000000000000",
            "state":"completed-up-to-date",
            "status":"active",
            "error":null,
            "method":"built-in"
         }
      }
   },
   "connect":{
      "id":"00000000-0000-0000-0000-000000000000",
      "method":"built-in",
      "type":"explicit",
      "serviceProvider":"service-provider-code"
   },
   "metadata":{
      
   }
}
{
    "workflow": {
        "code": "client.migration"
    },
    "data": {
        "bankAccount": {
            "clientId": "00000000-0000-0000-0000-000000000000",
            "alias": "Multi Currency Bank Account"
        }
    },
    "connect": {
        "id":"00000000-0000-0000-0000-000000000000",
        "method": "built-in",
        "type": "explicit",
        "serviceProvider": "service-provider-code"
    },
    "metadata": {}
}
{
   "workflow":{
      "code":"client.migration"
   },
   "data":{
      "bankAccount":{
        "id":"00000000-0000-0000-0000-000000000000",
         "clientId":"00000000-0000-0000-0000-000000000000",
         "owner":"client",
         "ownerOfFunds":"client",
         "serviceProvider":"service-provider-code",
         "status":"active",
         "alias":"Multi Currency Bank Account",
         "features":{
            "multiCurrency":true,
            "safeguarded":false,
            "serviceProviderAccountType":"real-account",
            "accountHolder":"client",
            "senderName":"client"
         },
         "attributes":null,
         "serviceProvider": "service-provider-code",
         "accountHolderName":"Sherlock Holmes",
         "accountHolderIdentityType":"individual", 
         "connection":{
            "id":"00000000-0000-0000-0000-000000000000",
            "serviceProvider":"service-provider-code",
            "reference":"00000000-0000-0000-0000-000000000000",
            "state":"completed-up-to-date",
            "status":"active",
            "error":null,
            "method":"built-in"
         }
    }	
   },
  "connect":{
      "id":"00000000-0000-0000-0000-000000000000",
      "method":"built-in",
      "type":"explicit",
      "serviceProvider":"service-provider-code"
   },
   "metadata":{}
}

Update Bank Account

PATCH /bank-accounts/{id}
There is a single workflow to update a bank account

  1. Direct: These fields can be updated using the direct workflow.

    • alias
    • attributes
    • status **
    • connection (for only plug-in connection)
    • depositInformation

    For all bank accounts, the alias, attributes, and status fields can be updated. For attributes object, refers to the Custom Attributes page.

The connection and deposit information objects can be updated only when the connection method is plug-in. Deposit information shared will be accessible by the relevant transaction account. Additionally for plug-in method, the bank account should only be updated to the declined status if the service provider has rejected the creation of the account and cannot be re-attempted. If the account creation can be retried, only the connection should be updated to creation-failed.

** Status can be changed as per diagram below. The status change from pending to active can only be actioned via API for plug-in bank accounts.

📘

Important

When updating status to inactive or suspended, Griffin-specific restriction details may also be supplied in the same request under attributes. These attributes are not persisted on the Bank Account in IF; they are passed through to the service provider for the status update only.

They are currently required only for Griffin, and only when status is set to inactive or suspended. For other service providers, and for other status updates (for example active or closed), they are not required.

When required, all of the following attributes must be provided:

  • griffinRestrictionReasonCode
  • griffinRestrictionLegalStatus
  • griffinRestrictionNotes (maximum 2000 characters)

griffinRestrictionReasonCode values:

CodeDescription
customer-requestThe account holder requested the restriction (for example temporary hold or voluntary freeze).
deceasedThe account holder is deceased.
dormantThe account is dormant due to prolonged inactivity.
fraud-1st-partySuspected or confirmed first-party fraud by the account holder.
fraud-3rd-partySuspected or confirmed third-party fraud against the account.
fraud-app-perpetratorThe account is linked to Authorized Push Payment (APP) fraud as a perpetrator.
fraud-app-victimThe account is linked to Authorized Push Payment (APP) fraud as a victim.
money-launderingSuspected or confirmed money laundering activity.
terrorist-financingSuspected or confirmed terrorist financing activity.
sanctionsThe account or related party is subject to sanctions screening concerns.
law-enforcementRestriction applied following a law enforcement request or order.
risk-appetiteRestriction applied because the account falls outside the organisation’s risk appetite.
otherRestriction reason is not covered by the other codes. Provide detail in notes.

griffinRestrictionLegalStatus values:

CodeDescription
suspectedThe underlying concern is suspected but not yet formally charged or confirmed.
formal-charge-filedA formal charge or legal proceeding has been filed.
conviction-confirmedA conviction or equivalent legal outcome has been confirmed.
not-applicableNo legal status applies (for example customer request, dormancy, or risk appetite).

{
   "workflow":{
      "code":"client.direct"
   },
   "data":{
      "bankAccount":{
         "alias":"GBP Client Salary Account",
         "status":"closed"
      }
   },
   "connect": {},
   "metadata":{}
}
{
 "workflow": {
    "code": "client.direct"
  },
  "data": {
    "bankAccount": {
      "id": "00000000-0000-0000-0000-000000000000",
      "clientId": "00000000-0000-0000-0000-000000000000",
      "status": "closed",
      "owner": "client",
      "ownerOfFunds": "client",
      "alias": "GBP Client Salary Account",
      "attributes": {
        "accountType": "safeguarding-account"
      },
      "features": {
        "multiCurrency": false,
        "safeguarded": false,
        "serviceProviderAccountType": "real-account",
        "accountHolder": "client",
        "senderName": "client"
      },
      "connection": {
        "id": "00000000-0000-0000-0000-000000000000",
        "serviceProvider": "service-provider-code",
        "reference": null,
        "state": "update-in-progress",
        "status": "active",
        "error": null,
        "method": "built-in"
      },
      "serviceProvider": "service-provider-code",
      "accountHolderName":"Sherlock Holmes",
      "accountHolderIdentityType":"individual",
    }
  },
  "connect": {
  },
  "metadata": {}
}
{
   "workflow":{
      "code":"client.direct"
   },
   "data":{
      "bankAccount":{
         "alias":"Client Salary Account",
         "status":"active",
         "depositInformation":{
            "EUR":{
               "country":"GB",
               "iban":"GB66LHVB04032900777171",
               "routingCodes":{
                  "bic":"BCIRLULLXXX"
               },
               "accountNumber":null
            },
            "USD":{
               "country":"US",
               "iban":null,
               "accountNumber":"12345678",
               "routingCodes":{
                  "bic":"CHASUS33"
               }
            }
         },
         "connection":{
            "id":"00000000-0000-0000-0000-000000000000",
            "reference":"00000000-0000-0000-0000-000000000000",
            "state":"completed-up-to-date"
         }
      }
   },
   "connect":{

   },
   "metadata":{

   }
}

{
   "workflow":{
      "code":"client.direct"
   },
   "data":{
      "bankAccount":{
          "id": "00000000-0000-0000-0000-000000000000",
          "clientId": "00000000-0000-0000-0000-000000000000",
          "status": "active",
          "owner": "client",
          "ownerOfFunds": "client",
          "alias": "Client Salary Account",
          "attributes": {
            "accountType": "safeguarding-account"
          },
          "features": {
            "multiCurrency": false,
            "safeguarded": false,
            "serviceProviderAccountType": "real-account",
            "accountHolder": "client",
            "senderName": "client"
          },
          "connection": {
            "id": "00000000-0000-0000-0000-000000000000",
            "serviceProvider": "service-provider-code",
            "reference": "00000000-0000-0000-0000-000000000000",
            "state": "completed-up-to-date",
            "status": "active",
            "method": "plug-in",
            "error": null
          },
          "serviceProvider": "service-provider-code",
          "accountHolderName":"Sherlock Holmes",
          "accountHolderIdentityType":"individual",

      }
   },
   "connect":{
   },
   "metadata":{

   }
}
{
   "workflow":{
      "code":"client.direct"
   },
   "data":{
      "bankAccount": {
         "connection":{
           "state":"creation-failed",
           "error":{
             "category": "functional/technical",
             "origin": "customer/platform/provider",
             "code":"..free text..",
             "message":"..free text..",
             "attributes":{
               "key01": "value01",
               "key02": "value02"
             }
           }
        }
      }
   },
   "connect":{

   },
   "metadata":{

   }
}
{
   "workflow":{
      "code":"client.direct"
   },
   "data":{
      "bankAccount":{
         "id": "00000000-0000-0000-0000-000000000000",
          "clientId": "00000000-0000-0000-0000-000000000000",
          "status": "pending",
          "owner": "client",
          "ownerOfFunds": "client",
          "alias": "Client Salary Account",
          "attributes": {
            "accountType": "safeguarding-account"
          },
          "features": {
            "multiCurrency": false,
            "safeguarded": false,
            "serviceProviderAccountType": "real-account",
            "accountHolder": "client",
            "senderName": "client"
          },
         "serviceProvider": "service-provider-code",
         "accountHolderName":"Sherlock Holmes",
         "accountHolderIdentityType":"individual",
         "connection":{
           "id":null,
           "method":"plug-in",
           "serviceProvider":"service-provider-code",
           "reference":null,
           "state":"creation-failed",
           "status":null,
           "error":{
             "category": "functional/technical",
             "origin": "customer/platform/provider",
             "code":"..free text..",
             "message":"..free text..",
             "attributes":{
               "key01": "value01",
               "key02": "value02"
             }
           }
         }
      }
   },
   "connect":{
   },
   "metadata":{}
}
{
   "workflow":{
      "code":"client.direct"
   },
   "data":{
      "bankAccount":{
         "status":"declined",
         "connection":{
           "state":"creation-failed",
           "error":{
             "category": "functional/technical",
             "origin": "customer/platform/provider",
             "code":"..free text..",
             "message":"..free text..",
             "attributes":{
               "key01": "value01",
               "key02": "value02"
             }
           }
        }
      }
   },
   "connect":{
   },
   "metadata":{

   }
}
{
   "workflow":{
      "code":"client.direct"
   },
   "data":{
      "bankAccount":{
          "id": "00000000-0000-0000-0000-000000000000",
          "clientId": "00000000-0000-0000-0000-000000000000",
          "status": "declined",
          "owner": "client",
          "ownerOfFunds": "client",
          "alias": "Client Salary Account",
          "attributes": {
            "accountType": "safeguarding-account"
          },
          "features": {
            "multiCurrency": false,
            "safeguarded": false,
            "serviceProviderAccountType": "real-account",
            "accountHolder": "client",
            "senderName": "client"
          },
          "serviceProvider": "service-provider-code",
          "accountHolderName":"Sherlock Holmes",
          "accountHolderIdentityType":"individual",
          "connection":{
           "id":null,
           "method":"plug-in",
           "serviceProvider":"service-provider-code",
           "reference":null,
           "state":"creation-failed",
           "status":null,
           "error":{
             "category": "functional/technical",
             "origin": "customer/platform/provider",
             "code":"..free text..",
             "message":"..free text..",
             "attributes":{
               "key01": "value01",
               "key02": "value02"
             }
           }
        }
      }
   },
   "connect":{
   },
   "metadata":{

   }
}
{
  "workflow": {
    "code": "client.direct"
  },
  "data": {
    "bankAccount": {
      "status": "inactive",
      "attributes": {
        "griffinRestrictionReasonCode": "customer-request",
        "griffinRestrictionLegalStatus": "not-applicable",
        "griffinRestrictionNotes": "Customer requested temporary account restriction"
      }
    }
  },
  "connect": {},
  "metadata": {}
}
{
 "workflow": {
    "code": "client.direct"
  },
  "data": {
    "bankAccount": {
      "id": "00000000-0000-0000-0000-000000000000",
      "clientId": "00000000-0000-0000-0000-000000000000",
      "status": "inactive",
      "owner": "client",
      "ownerOfFunds": "client",
      "alias": "GBP Client Salary Account",
      "attributes": {
        "accountType": "safeguarding-account"
      },
      "features": {
        "multiCurrency": false,
        "safeguarded": false,
        "serviceProviderAccountType": "real-account",
        "accountHolder": "client",
        "senderName": "client"
      },
      "connection": {
        "id": "00000000-0000-0000-0000-000000000000",
        "serviceProvider": "griffin",
        "reference": null,
        "state": "update-in-progress",
        "status": "active",
        "error": null,
        "method": "built-in"
      },
      "serviceProvider": "griffin",
      "accountHolderName":"Sherlock Holmes",
      "accountHolderIdentityType":"individual"
    }
  },
  "connect": {
  },
  "metadata": {}
}

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 Bank Account",
      "features": {
        "multiCurrency": false,
        "safeguarded": false,
        "serviceProviderAccountType": "real-account",
        "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": {}
}
{
  "workflow": {},
  "data": {
    "bankAccount": {
      "id": "00000000-0000-0000-0000-000000000000",
      "clientId": "00000000-0000-0000-0000-000000000000",
      "status": "active",
      "owner": "client",
      "ownerOfFunds": "client",
      "alias": "Client Bank Account",
      "features": {
        "multiCurrency": false,
        "safeguarded": false,
        "serviceProviderAccountType": "real-account",
        "accountHolder": "client",
        "senderName": "client"
      },
      "connection": {
        "id": "00000000-0000-0000-0000-000000000000",
        "serviceProvider": "service-provider-code",
        "reference": "00000000-0000-0000-0000-000000000000",
        "state": "completed-up-to-date",
        "status": "active",
        "method": "built-in"
      },
      "serviceProvider": "service-provider-code",
      "accountHolderName":"Sherlock Holmes",
      "accountHolderIdentityType":"individual",
    }
  },
  "connect": {},
  "metadata": {}
}

List Bank Accounts

GET /bank-accounts

Supported query parameters:

parameterdescription
metadata.page.number0-indexed, default=0
metadata.page.sizedefault=20, max=100
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 identity 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",
          "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",
          "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"
      },
      {
        "id": "00000000-0000-0000-0000-000000000000",
        "clientId": "00000000-0000-0000-0000-000000000000",
        "status": "active",
        "owner": "client",
        "ownerOfFunds": "client",
        "alias": "GBP Account",
        "features": {
          "multiCurrency": false,
          "safeguarded": false,
          "serviceProviderAccountType": "real-account",
          "accountHolder": "client",
          "senderName": "client"
        },
        "connection": {
          "id": "310152057408",
          "serviceProvider": "nium",
          "reference": "310152057408",
          "state": "completed-up-to-date",
          "status": "active",
          "method": "built-in"
        },
        "accountHolderName":"Sherlock Holmes",
        "accountHolderIdentityType":"individual",
        "serviceProvider": "nium"
      }
    ]
  },
  "connect": {},
  "metadata": {
    "page": {
      "size": 20,
      "number": 0,
      "totalElements": 3,
      "totalPages": 1
    }
  }
}

Webhooks

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

    • bank-account-migrated
    • bank-account-created
    • bank-account-activated
    • bank-account-inactivated
    • bank- account-suspended
    • bank- account-closed
    • bank- account-declined
    • bank- account-information-updated

    These types are exposed in the webhook.type field.

    {
       "webhook":{
          "module":"bank-accounts",
          "type":"bank-account-migrated"
       },
       "data":{
          "bankAccount":{
             "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",
                "accountHolder":"organization",
                "senderName":"organization"
             },
             "accountHolderName":null,
             "accountHolderIdentityType":null,
             "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
             },
             "serviceProvider":"railsbank"
          }
       },
       "connect":{
    
       },
       "metadata":{
    
       }
    }
    {
       "webhook":{
          "module":"bank-accounts",
          "type":"bank-account-created"
       },
       "data":{
          "bankAccount":{
             "id":"00000000-0000-0000-0000-000000000000",
             "clientId":"00000000-0000-0000-0000-000000000000",
             "status":"pending",
             "owner":"client",
             "ownerOfFunds":"client",
             "alias":"GBP Account",
             "features":{
                "multiCurrency":false,
                "safeguarded":false,
                "serviceProviderAccountType":"real-account",
                "accountHolder":"client",
                "senderName":"client"
             },
             "accountHolderName":null,
             "accountHolderIdentityType":null,
             "connection":{
                "serviceProvider": "service-provider-code",
                "state": "creation-in-progress",
                 "method": "built-in"
             },
             "serviceProvider":"service-provider-code"
          }
       },
       "connect":{
    
       },
       "metadata":{
    
       }
    }
    {
       "webhook":{
          "module":"bank-accounts",
          "type":"bank-account-activated"
       },
       "data":{
          "bankAccount":{
             "id":"00000000-0000-0000-0000-000000000000",
             "clientId":"00000000-0000-0000-0000-000000000000",
             "status":"active",
             "owner":"client",
             "ownerOfFunds":"client",
             "alias":"GBP Account",
             "features":{
                "multiCurrency":false,
                "safeguarded":false,
                "serviceProviderAccountType":"real-account",
                "accountHolder":"client",
                "senderName":"client"
             },
             "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":{
    
       }
    }
    {
       "webhook":{
          "module":"bank-accounts",
          "type":"bank-account-inactivated"
       },
       "data":{
          "bankAccount":{
             "id":"00000000-0000-0000-0000-000000000000",
             "clientId":"00000000-0000-0000-0000-000000000000",
             "status":"inactive",
             "owner":"client",
             "ownerOfFunds":"client",
             "alias":"GBP Account",
             "features":{
                "multiCurrency":false,
                "safeguarded":false,
                "serviceProviderAccountType":"real-account",
                "accountHolder":"client",
                "senderName":"client"
             },
             "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":{
    
       }
    }
    {
       "webhook":{
          "module":"bank-accounts",
          "type":"bank-account-suspended"
       },
       "data":{
          "bankAccount":{
             "id":"00000000-0000-0000-0000-000000000000",
             "clientId":"00000000-0000-0000-0000-000000000000",
             "status":"suspended",
             "owner":"client",
             "ownerOfFunds":"client",
             "alias":"GBP Account",
             "features":{
                "multiCurrency":false,
                "safeguarded":false,
                "serviceProviderAccountType":"real-account",
                "accountHolder":"client",
                "senderName":"client"
             },
             "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":{
    
       }
    }
    {
       "webhook":{
          "module":"bank-accounts",
          "type":"bank-account-closed"
       },
       "data":{
          "bankAccount":{
             "id":"00000000-0000-0000-0000-000000000000",
             "clientId":"00000000-0000-0000-0000-000000000000",
             "status":"closed",
             "owner":"client",
             "ownerOfFunds":"client",
             "alias":"GBP Account",
             "features":{
                "multiCurrency":false,
                "safeguarded":false,
                "serviceProviderAccountType":"real-account",
                "accountHolder":"client",
                "senderName":"client"
             },
             "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":{
    
       }
    }
    {
       "webhook":{
          "module":"bank-accounts",
          "type":"bank-account-declined"
       },
       "data":{
          "bankAccount":{
             "id":"00000000-0000-0000-0000-000000000000",
             "clientId":"00000000-0000-0000-0000-000000000000",
             "status":"declined",
             "owner":"client",
             "ownerOfFunds":"client",
             "alias":"GBP Account",
             "features":{
                "multiCurrency":false,
                "safeguarded":false,
                "serviceProviderAccountType":"real-account",
                "accountHolder":"client",
                "senderName":"client"
             },
             "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":{
    
       }
    }
    {
       "webhook":{
          "module":"bank-accounts",
          "type":"bank-account-information-updated"
       },
       "data":{
          "bankAccount":{
             "id":"00000000-0000-0000-0000-000000000000",
             "clientId":"00000000-0000-0000-0000-000000000000",
             "status":"active",
             "owner":"client",
             "ownerOfFunds":"client",
             "alias":"GBP Account",
             "features":{
                "multiCurrency":false,
                "safeguarded":false,
                "serviceProviderAccountType":"real-account",
                "accountHolder":"client",
                "senderName":"client"
             },
             "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":{
    
       }
    }
  2. Bank Account Connection Webhook: Bank Account connection webhooks have "bank-accounts" in the module field in the webhook container object. Also, there is a "connection" object in the bank account object.

    There are 6 types of webhooks sent for accounts:

    • connection-creation-instructed
    • connection-created
    • connection-creation-failed
    • connection-update-instructed
    • connection-updated
    • connection-update-failed
{
   "webhook":{
      "module":"bank-accounts",
      "type":"connection-created"
   },
   "data":{
      "bankAccount":{
         "id":"00000000-0000-0000-0000-000000000000",
         "clientId":"00000000-0000-0000-0000-000000000000",
         "status":"active",
         "owner":"client",
         "ownerOfFunds":"client",
         "alias":"GBP Account",
         "features":{
            "multiCurrency":false,
            "safeguarded":false,
            "serviceProviderAccountType":"real-account",
            "accountHolder":"client",
            "senderName":"client"
         },
        "serviceProvider":"service-provider-code",
        "accountHolderName":"Sherlock Holmes",
        "accountHolderIdentityType":"individual",
         "connection":{
            "id":"00000000-0000-0000-0000-000000000000",
            "method":"built-in",
            "serviceProvider":"service-provider-code",
            "reference":"00000000-0000-0000-0000-000000000000",
            "state":"completed-up-to-date",
            "status":"active",
            "error":null
         }
      }
   },
   "connect":{
      
   },
   "metadata":{
      
   }
}
{
   "webhook":{
      "module":"bank-accounts",
      "type":"connection-updated"
   },
   "data":{
        "bankAccount":{
         "id":"00000000-0000-0000-0000-000000000000",
         "clientId":"00000000-0000-0000-0000-000000000000",
         "status":"closed",
         "owner":"client",
         "ownerOfFunds":"client",
         "alias":"GBP Account",
         "features":{
            "multiCurrency":false,
            "safeguarded":false,
            "serviceProviderAccountType":"real-account",
            "accountHolder":"client",
            "senderName":"client"
         },
         "serviceProvider":"service-provider-code",
         "accountHolderName":"Sherlock Holmes",
         "accountHolderIdentityType":"individual",
         "connection":{
            "id":"00000000-0000-0000-0000-000000000000",
            "method":"built-in",
            "serviceProvider":"service-provider-code",
            "reference":"00000000-0000-0000-0000-000000000000",
            "state":"completed-up-to-date",
            "status":"closed",
            "error":null
         }
      }
   },
   "connect":{
   },
   "metadata":{

   }
}
{
   "webhook":{
      "module":"bank-accounts",
      "type":"connection-created"
   },
   "data":{
      "bankAccount":{
         "id":"00000000-0000-0000-0000-000000000000",
         "clientId":"00000000-0000-0000-0000-000000000000",
         "status":"active",
         "owner":"client",
         "ownerOfFunds":"client",
         "alias":"GBP Account",
         "features":{
            "multiCurrency":false,
            "safeguarded":false,
            "serviceProviderAccountType":"real-account",
            "accountHolder":"client",
            "senderName":"client"
         },
        "serviceProvider":"service-provider-code",
        "accountHolderName":"Sherlock Holmes",
        "accountHolderIdentityType":"individual",
        "connection":{
            "id":"00000000-0000-0000-0000-000000000000",
            "method":"plug-in",
            "serviceProvider":"service-provider-code",
            "reference":"00000000-0000-0000-0000-000000000000",
            "state":"completed-up-to-date",
            "status":"active",
            "error":null
         }
      }
   },
  "connect":{
   },
   "metadata":{

   }
}
{
   "webhook":{
      "module":"bank-accounts",
      "type":"connection-updated"
   },
   "data":{
      "bankAccount":{
         "id":"00000000-0000-0000-0000-000000000000",
         "clientId":"00000000-0000-0000-0000-000000000000",
         "status":"active",
         "owner":"client",
         "ownerOfFunds":"client",
         "alias":"GBP Account",
         "features":{
            "multiCurrency":false,
            "safeguarded":false,
            "serviceProviderAccountType":"real-account",
            "accountHolder":"client",
            "senderName":"client"
         },
        "serviceProvider":"service-provider-code",
        "accountHolderName":"Sherlock Holmes",
        "accountHolderIdentityType":"individual",
        "connection":{
            "id":"00000000-0000-0000-0000-000000000000",
            "method":"plug-in",
            "serviceProvider":"service-provider-code",
            "reference":"00000000-0000-0000-0000-000000000000",
            "state":"completed-up-to-date",
            "status":"closed",
            "error":null
         }
      }
   },
   "connect":{
      
   },
   "metadata":{
      
   }
}
{
   "webhook":{
      "module":"bank-accounts",
      "type":"connection-creation-failed"
   },
   "data":{
      "bankAccount":{
         "id":"00000000-0000-0000-0000-000000000000",
         "clientId":"00000000-0000-0000-0000-000000000000",
         "status":"pending",
         "owner":"client",
         "ownerOfFunds":"client",
         "alias":"GBP Account",
         "features":{
            "multiCurrency":false,
            "safeguarded":false,
            "serviceProviderAccountType":"real-account",
            "accountHolder":"client",
            "senderName":"client"
         },
        "serviceProvider":"service-provider-code",
        "accountHolderName":"Sherlock Holmes",
        "accountHolderIdentityType":"individual",
         "connection":{
            "id":null,
            "method":"built-in",
            "serviceProvider":"service-provider-code",
            "reference":null,
            "state":"creation-failed",
            "status":"null",
            "error":{
               "category":"technical",
               "origin":"platform",
               "code":"unknown_error",
               "message":"Unknown Error",
               "attributes":{
                  "key":"value"
               }
            }
         }
      }
   },
   "connect":{
   },
   "metadata":{

   }
}
{
   "webhook":{
      "module":"bank-accounts",
      "type":"connection-update-failed"
   },
   "data":{
      "bankAccount":{
         "id":"00000000-0000-0000-0000-000000000000",
         "clientId":"00000000-0000-0000-0000-000000000000",
         "status":"close",
         "owner":"client",
         "ownerOfFunds":"client",
         "alias":"GBP Account",
         "features":{
            "multiCurrency":false,
            "safeguarded":false,
            "serviceProviderAccountType":"real-account",
            "accountHolder":"client",
            "senderName":"client"
         },
        "serviceProvider":"service-provider-code",
        "accountHolderName":"Sherlock Holmes",
        "accountHolderIdentityType":"individual",
         "connection":{
            "id":"00000000-0000-0000-0000-000000000000",
            "method":"built-in",
            "serviceProvider":"service-provider-code",
            "reference":"reference",
            "state":"completed-outdated",
            "status":"active",
            "error":{
               "category":"functional",
               "origin":"platform",
               "code":"invalid_account_number",
               "message":"Account Number is Invalid",
               "attributes":{
                  "account_number":"Account Number length is too long."
               }
            }
         }
      }
   },
   "connect":{
      
   },
   "metadata":{
      
   }
}
{
   "webhook":{
      "module":"bank-accounts",
      "type":"connection-creation-failed"
   },
   "data":{
      "bankAccount":{
         "id":"00000000-0000-0000-0000-000000000000",
         "clientId":"00000000-0000-0000-0000-000000000000",
         "status":"close",
         "owner":"client",
         "ownerOfFunds":"client",
         "alias":"GBP Account",
         "features":{
            "multiCurrency":false,
            "safeguarded":false,
            "serviceProviderAccountType":"real-account",
            "accountHolder":"client",
            "senderName":"client"
         },
         "serviceProvider":"service-provider-code",
         "accountHolderName":"Sherlock Holmes",
         "accountHolderIdentityType":"individual",
         "connection":{
            "id":null,
            "method":"plug-in",
            "serviceProvider":"service-provider-code",
            "reference":null,
            "state":"creation-failed",
            "status":"null",
            "error":{
               "category":"functional",
               "origin":"platform",
               "code":"invalid_iban",
               "message":"IBAN is invalid",
               "attributes":{
                  "iban_error":"IBAN is invalid."
               }
            }
         }
      }
   },
   "connect":{
      
   },
   "metadata":{
      
   }
}
{
   "webhook":{
      "module":"bank-accounts",
      "type":"connection-update-failed"
   },
   "data":{
      "bankAccount":{
         "id":"00000000-0000-0000-0000-000000000000",
         "clientId":"00000000-0000-0000-0000-000000000000",
         "status":"close",
         "owner":"client",
         "ownerOfFunds":"client",
         "alias":"GBP Account",
         "features":{
            "multiCurrency":false,
            "safeguarded":false,
            "serviceProviderAccountType":"real-account",
            "accountHolder":"client",
            "senderName":"client"
         },
         "serviceProvider":"service-provider-code",
         "accountHolderName":"Sherlock Holmes",
         "accountHolderIdentityType":"individual",
 				 "connection":{
            "id":"00000000-0000-0000-0000-000000000000",
            "method":"plug-in",
            "serviceProvider":"service-provider-code",
            "reference":"reference",
            "state":"completed-outdated",
            "status":"active",
            "error":{
               "category":"functional",
               "origin":"provider",
               "code":"invalid_account_number",
               "message":"Account Number is Invalid",
               "attributes":{
                  "key":"value"
               }
            }
         }
      }
   },
   "connect":{
      
   },
   "metadata":{
      
   }
}