# Update a US Bank Account Update a USBankAccount object. This is limited to supplying a previously empty routing_number field. ## Parameters - `fedwire_routing_number` (string, optional) The bank account’s Fedwire routing number can be provided for update if it was empty previously. - `routing_number` (string, optional) The bank account’s ACH routing number can be provided for update if it was empty previously. ## Returns ## Response attributes - `id` (string) The ID of the USBankAccount object. - `object` (string, value is "v2.core.vault.us_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 USBankAccount object was archived. - `bank_account_type` (enum) The type of bank account (checking or savings). Possible enum values: - `checking` Checkings account. - `savings` Savings account. - `bank_name` (string) The name of the bank this bank account belongs to. This field is populated automatically by Stripe based on the routing number. - `created` (timestamp) Creation time of the object. - `fedwire_routing_number` (string, nullable) The fedwire routing number of the bank account. - `financial_connections_account` (string, nullable) The ID of the Financial Connections Account used to create the bank account. - `last4` (string) The last 4 digits of the account number. - `livemode` (boolean) Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. - `routing_number` (string, nullable) The ACH routing number of the bank account. - `supported_currencies` (array of strings) The list of currencies supported by this bank account. - `verification` (object) The bank account verification details. - `verification.microdeposit_verification_details` (object, nullable) The microdeposit verification details if the status is awaiting verification. - `verification.microdeposit_verification_details.expires` (timestamp) Time when microdeposits will expire and have to be re-sent. - `verification.microdeposit_verification_details.microdeposit_type` (enum) Microdeposit type can be amounts or descriptor_type. Possible enum values: - `amounts` - `descriptor_code` - `verification.microdeposit_verification_details.sent` (timestamp) Time when microdeposits were sent. - `verification.status` (enum) The bank account verification status. Possible enum values: - `awaiting_verification` Verification of the bank account has been initiated and requires further action to be completed. - `unverified` The bank account is unverified. - `verification_failed` Verification of the bank account has failed. - `verified` The bank account is verified. ## Error Codes | HTTP status code | Code | Description | | ---------------- | ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 400 | archived_us_bank_account | Returned in cases where the bank account cannot be updated due to being archived. | | 400 | blocked_us_bank_account | Returned in cases where the bank account cannot be used due to suspicious activity. | | 400 | invalid_us_bank_account | Returned in cases where the bank account provided is not valid (wrong format of account number or a routing number that does not correspond to a banking institution). | | 400 | limit_us_bank_account | Returned when the number of USBankAccount objects on a given V2 Account has exceeded the limit of 10. USBankAccount objects may be archived with /archive, at which point they will not count against the limit. If you are not passing a V2 Account ID in the Stripe-Context header you may receive this error since you are creating all your USBankAccount objects in your own workspace. | | 400 | unsupported_us_bank | Returned in cases where Stripe is unable to support this bank at this time. | | 400 | us_bank_account_field_already_exists | Returned in cases where the bank account cannot be updated due to requesting to update a field that already exists. | | 400 | us_bank_account_incompatible_currency | Returned in cases where the currency provided is incompatible with US bank accounts. This occurs when the credentials provided do not match with the currency 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/us_bank_accounts/usba_test_61OHSEF60mEpRiXpR16NqdMu76SQRZLd31xuji87MN5M \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-04-22.preview" \ -H "Stripe-Context: {{CONTEXT}}" \ --json '{ "fedwire_routing_number": "110000000" }' ``` ### Response ```json { "id": "usba_test_61OHSEF60mEpRiXpR16NqdMu76SQRZLd31xuji87MN5M", "object": "v2.core.vault.us_bank_account", "bank_account_type": "checking", "bank_name": "Test Bank", "created": "2023-05-15T16:29:15.738Z", "archived": false, "last4": "6789", "routing_number": "110000000", "verification": { "microdeposit_verification_details": null, "status": "verified" }, "livemode": true } ```