---
title: "Update a bank account"
method: PUT
path: "/v1/bankaccounts/{id}"
tags: ["BankAccounts"]
---

# Update a bank account

`PUT /v1/bankaccounts/{id}`

## Request

- Base URL: `https://api.altoviz.com`
- URL: `https://api.altoviz.com/v1/bankaccounts/{id}`
- Auth: none required
- TypeScript: <https://skmtc.dev/altoviz/apis/altoviz-api/docs/v1/bankaccounts/:id/put.ts> (a function with typed inputs; its response is checked against the schema)

Refused with 400 on a connected account, whose contents Altoviz mirrors rather than owns.

## Path parameters

- `id` integer, required

## Request body

- BankAccountCreate: Bank account
  - `bankName` string, nullable: Bank name
  - `bic` string, nullable: BIC
  - `currency` string, nullable: ISO currency code. Defaults to EUR.
  - `defaultPaymentMethod` 'Transfer' | 'Order' | 'Check' | 'Cash' | 'Card' | 'Bill' | 'Usec' | 'Other'
  - `iban` string, nullable: IBAN
  - `initialBalance` number, double: Balance the account held before the first transaction Altoviz knows about. The running `balance` is derived from it, so changing it moves every balance after it.
  - `metadata` object, nullable: Metadata: free-form key/value pairs carried with the bank account, for an integration to keep its own identifiers and flags against it. Sent as a PATCH, not a replacement: keys you send are added or updated, keys you leave out keep whatever they held, and a key is removed only when you send it as `null`. Omitting the property entirely leaves the whole bag untouched, and `""` stores an empty value rather than removing the key.
  - `name` string, nullable: Name

## Response `200`

OK

- BankAccount: Bank account
  - `accountNumber` string, nullable: Accounting account number
  - `balance` number, double: Current balance, derived from the initial balance and every transaction since
  - `bankName` string, nullable: Bank name
  - `bic` string, nullable: BIC
  - `connected` boolean: Whether this account is synchronized from a provider, which is exactly whether Altoviz.Api.Models.BankAccount.Provider is set. A connected account is read-only: `PUT` and `DELETE` on it are refused. Disconnect it in the Altoviz application first if you mean to take it over by hand.
  - `currency` string, nullable: ISO currency code. Defaults to EUR.
  - `defaultPaymentMethod` 'Transfer' | 'Order' | 'Check' | 'Cash' | 'Card' | 'Bill' | 'Usec' | 'Other'
  - `iban` string, nullable: IBAN
  - `id` integer: Bank account ID
  - `initialBalance` number, double: Balance the account held before the first transaction Altoviz knows about. The running `balance` is derived from it, so changing it moves every balance after it.
  - `isMain` boolean: Whether this is the company's main account
  - `journalCode` string, nullable: Accounting journal code
  - `lastUpdatedAt` string, date-time, nullable: When the account was last synchronized with its provider
  - `logoUri` string, nullable: Bank logo URL
  - `metadata` object, nullable: Metadata: free-form key/value pairs carried with the bank account, for an integration to keep its own identifiers and flags against it. Sent as a PATCH, not a replacement: keys you send are added or updated, keys you leave out keep whatever they held, and a key is removed only when you send it as `null`. Omitting the property entirely leaves the whole bag untouched, and `""` stores an empty value rather than removing the key.
  - `name` string, nullable: Name
  - `pendingTransactions` integer: Transactions not yet reconciled with a document
  - `pendingTransactionsTotal` number, double: Total value of the transactions not yet reconciled
  - `provider` BankAccountProvider: The provider a bank account is synchronized from. Read-only throughout: a connection is established in the Altoviz application, never through this API.
    - `accountId` string, nullable: The account's identifier at the provider
    - `accountStatus` string, nullable: The connection's status as the provider last reported it
    - `bankName` string, nullable: The bank name the provider reports, which may differ from the account's own
    - `type` 'Standard' | 'Stripe' | 'GoCardless' | 'Paypal' | 'SumUp' | 'Linxo' | 'Other'
  - `synchronizing` boolean: Whether a synchronization is running

## Other responses

- `400`: Bad Request
- `404`: Not Found

## Changes

- **2026-09-14** `4f7fa64cf9e3`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/altoviz/apis/altoviz-api/changes/v1/bankaccounts/:id/put.md)

---

[API](https://skmtc.dev/altoviz/apis/altoviz-api.md) - [All operations](https://skmtc.dev/altoviz/apis/altoviz-api/llms.txt) - [OpenAPI document](https://skmtc.dev/altoviz/apis/altoviz-api/revisions/4f7fa64cf9e3?raw)
