Skip to content

Bank Accounts

Bank accounts can be associated with a case and used to run Bank Account Verification (BAV) checks. Each bank account stores the account holder's name, sort code, account number, country, and optionally the bank name. Once created, bank accounts are immutable — if details need to be corrected, delete the existing record and create a new one.


List bank accounts

Returns all active bank accounts associated with a case. Each bank account includes the latest completed BAV attempt and the full BAV history, both ordered by most recent first.

GET /api/cases/{caseId}/bank-accounts

Response 200 OK

json
[
    {
        "id": 1,
        "caseId": 123,
        "documentId": null,
        "countryCode": "GB",
        "firstName": "MICHELLE",
        "middleNames": null,
        "lastName": "BOYNTON",
        "sortCode": "207106",
        "accountNumber": "12345678",
        "bankName": "Monzo",
        "latestBavAttempt": {
            "id": 99,
            "createTs": "2025-08-27T14:16:14Z",
            "bankName": "Monzo",
            "riskRating": {
                "id": 1,
                "name": "Low"
            }
        },
        "bavAttemptHistory": [
            {
                "id": 99,
                "createTs": "2025-08-27T14:16:14Z",
                "bankName": "Monzo",
                "riskRating": {
                    "id": 1,
                    "name": "Low"
                }
            },
            {
                "id": 87,
                "createTs": "2025-06-10T09:30:00Z",
                "bankName": "Monzo",
                "riskRating": {
                    "id": 2,
                    "name": "Medium"
                }
            }
        ]
    }
]

latestBavAttempt will be null if no completed BAV check has been run against this account yet. bavAttemptHistory will be an empty array in the same case. bankName may be null on both the bank account and individual BAV attempts if the bank name was not available from the source.


Create a bank account

Creates a new bank account against a case. countryCode must be a valid ISO 3166-1 alpha-2 code (e.g. GB). sortCode must be exactly 6 numeric characters with no hyphens or spaces. accountNumber must be exactly 8 numeric characters.

POST /api/cases/{caseId}/bank-accounts

Request

json
{
    "countryCode": "GB",
    "firstName": "MICHELLE",
    "middleNames": null,
    "lastName": "BOYNTON",
    "sortCode": "207106",
    "accountNumber": "12345678",
    "bankName": "Monzo"
}

Response 200 OK

Returns the ID of the newly created bank account.

json
1

Response 400 Bad Request

Returned if any required fields are missing, fail validation, or the country code is not recognised.

json
{
    "errors": [
        "The SortCode field is required.",
        "The CountryCode field must be 2 characters."
    ]
}

Response 409 Conflict

Returned if a bank account with the same sort code and account number already exists on this case. The ID of the existing account is returned so you can reference or delete it.

json
{
  "duplicateId": 1
}

Delete a bank account

Soft deletes a bank account. The record is retained for audit purposes but will no longer appear in list results or be eligible for BAV checks. Any existing BAV history against this account is preserved.

DELETE /api/cases/{caseId}/bank-accounts/{id}

Response 204 No Content

Response 404 Not Found

Returned if the bank account does not exist or does not belong to the specified case.