# Create a GB Bank Account

Create a GB bank account.

## Request

```curl
curl -X POST https://api.stripe.com/v2/core/vault/gb_bank_accounts \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-03-25.preview" \
  --json '{
    "sort_code": "108800",
    "account_number": "00012345"
  }'
```

### Response

```json
{
  "id": "gbba_test_61QxvysjMYlAri7b116NoALk2zSQmWXk6WVQ0RRC4FH6",
  "object": "v2.core.vault.gb_bank_account",
  "archived": false,
  "bank_account_type": "checking",
  "bank_name": "Test Bank",
  "last4": "2345",
  "created": "2024-08-16T21:49:30.380Z",
  "sort_code": "108800",
  "confirmation_of_payee": {
    "result": {
      "created": "2024-10-25T17:29:53.000Z",
      "match_result": "partial_match",
      "matched": {
        "business_type": "personal",
        "name": "Jenny Rosen"
      },
      "message": "The provided name Jennifer Rosen partially matches the name Jenny Rosen the bank has on file for this account.",
      "provided": {
        "business_type": "personal",
        "name": "Jennifer Rosen"
      }
    },
    "status": "confirmed"
  },
  "livemode": true
}
```

## Parameters

- `currency` (string, required)
  The currency of the bank account.

- `account_number` (string, optional)
  The Account Number of the bank account.

- `bank_account_type` (enum, optional)
  The type of the bank account (checking or savings).
Possible enum values:
  - `checking`
    Checking account.

  - `savings`
    Savings account.

- [`confirmation_of_payee`](https://docs.stripe.com/api/v2/core/vault/gb-bank-accounts/create.md?query=confirmation_of_payee&api-version=2026-03-25.preview) (object, optional)
  Whether or not to automatically perform Confirmation of Payee to verify the users information against what was provided by the bank. Doing so is required for all bank accounts not owned by you before making domestic UK OutboundPayments.

- `iban` (string, optional)
  The IBAN of the bank account.

- `sort_code` (string, optional)
  The Sort Code of the bank account.

## Returns

## Response attributes

- `id` (string)
  The ID of the GBBankAccount object.

- `object` (string, value is "v2.core.vault.gb_bank_account")
  String representing the object’s type. Objects of the same type share the same value of the object field.

- [`alternative_reference`](https://docs.stripe.com/api/v2/core/vault/gb-bank-accounts/create.md?query=alternative_reference&api-version=2026-03-25.preview) (object, nullable)
  The alternative reference for this payout method, if it’s a projected payout method.

- `archived` (boolean)
  Whether this bank account object was archived. Bank account objects can be archived through the /archive API, and they will not be automatically archived by Stripe. Archived bank account objects cannot be used as outbound destinations and will not appear in the outbound destination list.

- `bank_account_type` (enum)
  The type of the bank account (checking or savings).
Possible enum values:
  - `checking`
    Checking account.

  - `savings`
    Savings account.

- `bank_name` (string)
  The name of the bank.

- [`confirmation_of_payee`](https://docs.stripe.com/api/v2/core/vault/gb-bank-accounts/create.md?query=confirmation_of_payee&api-version=2026-03-25.preview) (object)
  Information around the status of Confirmation of Payee matching done on this bank account. Confirmation of Payee is a name matching service that must be done before making OutboundPayments in the UK.

- `created` (timestamp)
  Creation time.

- `last4` (string)
  The last 4 digits of the account number or IBAN.

- `livemode` (boolean)
  Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.

- `sort_code` (string, nullable)
  The Sort Code of the bank account.

- `supported_currencies` (array of strings)
  The list of currencies supported by this bank account.

## Error Codes

| HTTP status code | Code | Description |
| --- | --- | --- |
| 400 | gb_bank_account_incompatible_currency | Returned in cases where the currency provided is incompatible with GB bank accounts. This occurs when the credentials provided do not match with the currency provided. |
| 400 | gb_bank_account_unsupported_currency | Returned in cases where the currency provided is unsupported for the GB bank accounts. This occurs when the currency provided is not supported for GB regardless of the credentials provided. |
| 404 | not_found | The resource wasn’t found. |
| 409 | idempotency_error | An idempotent retry occurred with different request parameters. |
