# Create a GB Bank Account Create a GB bank account. ## 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` Default value for most countries. Checking account. - `futsu` Default value for Japan where vast majority of bank accounts are ‘futsu’. Japan-specific bank account type (普通預金) which means “ordinary”. - `savings` Savings account. - `toza` Japan-specific bank account type (当座預金) which means “current”. - `confirmation_of_payee` (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. - `confirmation_of_payee.initiate` (boolean, required) User specifies whether Confirmation of Payee is automatically initiated when creating the bank account. - `confirmation_of_payee.business_type` (enum, optional) The business type to be checked against. Legal entity information will be used if unspecified. Closed enum. Possible enum values: - `business` Business Account. - `personal` Personal Account. - `confirmation_of_payee.name` (string, optional) The name to be checked against. Legal entity information will be used if unspecified. - `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` (object, nullable) The alternative reference for this payout method, if it’s a projected payout method. - `alternative_reference.id` (string) The ID of the alternative resource being referenced. - `alternative_reference.type` (enum) The type of the alternative reference (e.g., external_account for V1 external accounts). Possible enum values: - `external_account` V1 External Account. - `payment_method` V1 Payment 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` Default value for most countries. Checking account. - `futsu` Default value for Japan where vast majority of bank accounts are ‘futsu’. Japan-specific bank account type (普通預金) which means “ordinary”. - `savings` Savings account. - `toza` Japan-specific bank account type (当座預金) which means “current”. - `bank_name` (string) The name of the bank. - `confirmation_of_payee` (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. - `confirmation_of_payee.result` (object) The result of the Confirmation of Payee check, once the check has been initiated. Closed enum. - `confirmation_of_payee.result.created` (timestamp) When the CoP result was created. - `confirmation_of_payee.result.match_result` (enum) Whether or not the information of the bank account matches what you have provided. Closed enum. Possible enum values: - `match` The information matched what was provided by the CoP service. - `mismatch` The name or business type does not match what was provided. Funds can still be sent to this account by acknowledging this result, but caution is advised. - `partial_match` The name or business type is similar to what was provided, but doesn’t completely match. Funds can still be sent to this account by acknowledging this result, but caution is advised. - `unavailable` The service is down or other technical issues that prevent Confirmation of Payee matching from happening. This is a rare occurence. Funds can still be sent to this account by acknowledging this result, but caution is advised. - `confirmation_of_payee.result.matched` (object) The fields that CoP service matched against. Only has value if MATCH or PARTIAL_MATCH, empty otherwise. - `confirmation_of_payee.result.matched.business_type` (enum, nullable) The business type given by the bank for this account, in case of a MATCH or PARTIAL_MATCH. Closed enum. Possible enum values: - `business` Business Account. - `personal` Personal Account. - `confirmation_of_payee.result.matched.name` (string, nullable) The name given by the bank for this account, in case of a MATCH or PARTIAL_MATCH. - `confirmation_of_payee.result.message` (string) Human-readable message describing the match result. - `confirmation_of_payee.result.provided` (object) The fields that are matched against what the network has on file. - `confirmation_of_payee.result.provided.business_type` (enum) The provided or Legal Entity business type to match against the CoP service. Closed enum. Possible enum values: - `business` Business Account. - `personal` Personal Account. - `confirmation_of_payee.result.provided.name` (string) The provided or Legal Entity name to match against the CoP service. - `confirmation_of_payee.status` (enum) The current state of Confirmation of Payee on this bank account. Closed enum. Possible enum values: - `awaiting_acknowledgement` The check resulted in a non-match, partial match, or the service was unavailable. Explicit acknowledgement is required to make payments to this account. - `confirmed` Either the account matches what was provided or there was explicit acknowledgement of the status. OutboundPayments can be made to the bank account. - `uninitiated` No confirmation of payee check has happened on this account. Use InitiateConfirmationOfPayee to check the user’s information against bank records before making OutboundPayments. - `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. | ```curl curl -X POST https://api.stripe.com/v2/core/vault/gb_bank_accounts \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-04-22.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 } ```