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": {}
}- 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-migratedwebhook is sent. If the service provider supports single-currency bank accounts, thecurrencyfield is required in the Migrate Bank Account request payload. If the service provider supports multi-currency bank accounts, thecurrencyfield 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
-
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, andstatusfields can be updated. Forattributesobject, 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.

{
"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":{
}
}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:
| parameter | description |
|---|---|
| metadata.page.number | 0-indexed, default=0 |
| metadata.page.size | default=20, max=100 |
| data.bankAccount.clientId | UUID of client |
| data.bankAccount.status | one of pending, active, inactive, suspended, closed, declined |
| data.bankAccount.owner | one of client, organization |
| data.bankAccount.ownerOfFunds | one of client, organization |
| data.bankAccount.alias | Free text account alias |
| data.bankAccount.accountHolderName | the holder name of the bank account |
| data.bankAccount.accountHolderIdentityType | the holder identity type of the bank account |
| data.bankAccount.serviceProvider | the 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
-
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":{ } } -
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":{
}
}Updated 9 days ago