> ## Documentation Index
> Fetch the complete documentation index at: https://docs.go.gbgplc.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bank Account Validation

Validate bank account details and confirm the account holder.

This page documents the **Bank Account Validation** module, including its variants, capabilities, and the result values it returns.

## Bank Account Validation: EU BAV

EU Bank Account Validation check

### Capabilities

The module returns the following capabilities.

#### Account exists and active confirmed only

Account Exists And Active Confirmed Only

| Code | Label | Description |
| - | - | - |
| `Y` | Yes | Yes |
| `N` | No | No |

#### Account number format validation only

Account Number Format Validation Only

| Code | Label | Description |
| - | - | - |
| `Y` | Yes | Yes |
| `N` | No | No |

#### Account number format validation unsuccessful

Account Number Format Validation Unsuccessful

| Code | Label | Description |
| - | - | - |
| `Y` | Yes | Yes |
| `N` | No | No |

#### Creditor account details could not be validated

Creditor Account Details Could Not Be Validated

| Code | Label | Description |
| - | - | - |
| `Y` | Yes | Yes |
| `N` | No | No |

#### Creditor account in flagged status of closed dormant or blocked

Creditor Account In Flagged Status Of Closed Dormant Or Blocked

| Code | Label | Description |
| - | - | - |
| `Y` | Yes | Yes |
| `N` | No | No |

#### Creditor account information not found in response

Creditor Account Information Not Found In Response

| Code | Label | Description |
| - | - | - |
| `Y` | Yes | Yes |
| `N` | No | No |

#### Creditor agent Id invalid unable to lookup provider

Creditor Agent Id Invalid Unable To Lookup Provider

| Code | Label | Description |
| - | - | - |
| `Y` | Yes | Yes |
| `N` | No | No |

#### Creditor name match could not be completed

Creditor Name Match Could Not Be Completed

| Code | Label | Description |
| - | - | - |
| `Y` | Yes | Yes |
| `N` | No | No |

#### Invalid or missing registration Id

Invalid Or Missing Registration Id

| Code | Label | Description |
| - | - | - |
| `Y` | Yes | Yes |
| `N` | No | No |

#### Match score

Name match score 0-100, scaled from the supplier's 0-1 value and rounded. Only present on response code 2000; the supplier's raw value is carried in notes as matchScoreRaw. Band the result with Supplier Decision rather than with this number - the supplier's banding is not a fixed range of scores.

| Detail | Description |
| - | - |
| Type | Integer |
| Range | 0–100 |
| Default | `0` |

#### Reason code

Extra Reason Code. 0 = not supplied (the default; iPiD does not define a code 0 and only returns a reason code on some responses). 1 = Account Invalid. 2 = Out of Coverage of Bank.

| Detail | Description |
| - | - |
| Type | Integer |
| Range | 0–2 |
| Default | `0` |

#### Supplier decision

Supplier Decision

| Code | Label | Description |
| - | - | - |
| `Strong Match` | Strong Match | Strong Match |
| `Partial Match` | Partial Match | Partial Match |
| `Weak Match` | Weak Match | Weak Match |
| `unrecognised value` | unrecognised value | unrecognised value |

#### IBAN match

IBAN Match Flag

| Code | Label | Description |
| - | - | - |
| `match` | match | match |
| `mismatch` | mismatch | mismatch |
| `unrecognised value` | unrecognised value | unrecognised value |
| `not available` | not available | not available |

### Default outcomes

The following default outcomes are available for evaluation and routing in the Journey builder.

| Outcome | Condition | Description |
| - | - | - |
| `Strong Match` | Supplier Decision is `Strong Match` | The data source finds a strong match between the subject's name and the account holder's name. |
| `Partial Match` | Supplier Decision is `Partial Match` | The data source finds a partial match between the subject's name and the account holder's name. |
| `Error` | An error occurs during processing | A system or data source error stopped the check from completing. |
| `Weak Match` | Supplier Decision is `Weak Match` | The data source finds only a weak match between the subject's name and the account holder's name. |
| `Match Score Unknown` | Default, when no conditions matched | The data source doesn't return a recognised match decision, so the module can't rate the name match. |

### Input payload

The following is a sample payload used to submit data to the **EU BAV** module for processing.

```json JSON theme={null}
{
  "context": {
    "config": {
      "_mockMode": "on"
    },
    "subject": {
      "identity": {
        "firstName": "Partial",
        "middleNames": [
          "Partial"
        ],
        "lastNames": [
          "Match"
        ]
      },
      "accounts": [
        {
          "type": "bankAccount",
          "iban": "IT60X0542811101000000123456"
        }
      ]
    }
  }
}
```

| Field | Required | Description |
| - | - | - |
| `FullName/firstName` | Yes | The subject's first name. |
| `FullName/middleNames` | No | Any additional registered names of the subject. |
| `FullName/lastNames` | Yes | The subject's last name or names. |
| `FullName/title` | No | The subject's title, for example, Mr, Ms, or Dr. |
| `BankAccount/accountNumber` | No | The bank account number. |
| `BankAccount/sortCode` | No | The sort code of the bank branch that holds the account. |
| `BankAccount/routingNumber` | No | The routing number of the bank that holds the account. |
| `BankAccount/iban` | Yes | The International Bank Account Number (IBAN) of the account to validate. |
| `BankAccount/bic` | No | The Bank Identifier Code, or SWIFT code, of the bank that holds the account. |
| `BankAccount/accountHolderName` | No | The name of the account holder as registered with the bank. |
| `BankAccount/bankName` | No | The name of the bank that holds the account. |
| `BankAccount/country` | No | The country of the bank that holds the account. |
| `BankAccount/accountType` | No | The type of bank account. |

### Sample response

The following is a sample response returned by the module.

```json JSON theme={null}
{
  "response": {
    "outcome": "Partial Match",
    "advice": {}
  }
}
```
