> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.modernfi.com/api-reference/accounts/update/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.modernfi.com/_mcp/server. # Update Account PATCH https://api.modernfi.com/digital-banking/v1/accounts/{account_id} Content-Type: application/json Updates an account. Note: account_type is immutable and cannot be changed after creation. Reference: https://docs.modernfi.com/api-reference/accounts/update ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. ## Servers - `https://api.modernfi.com` (Production, default) - `https://api.uat.modernfi.com` (UAT) - `http://localhost:8000` (Local) ## Request ### Path parameters - `account_id` (string, required) ### Body (application/json) This endpoint expects an UpdateAccountRequest. - `depositor_ids` (list of string, optional, nullable) - `account_title` (string, optional, nullable) - `institution_sweep_account_id` (string, optional, nullable) - `institution_return_account_id` (string, optional, nullable) - `is_reciprocation_prioritized` (boolean, optional, nullable) - `is_receiving_printed_statements` (boolean, optional, nullable) - `signer_primary` (string, optional, nullable) - `signer_secondary` (string, optional, nullable) - `beneficiary_name` (string, optional, nullable) - `institution_cost_center_id` (string, optional, nullable) - `cost_center_id` (string, optional, nullable) - `notes` (string, optional, nullable) - `managed_sweep_target_balance` (UpdateAccountRequestManagedSweepTargetBalance, optional, nullable) - `program_tags` (list of string, optional, nullable) - `account_officer` (string, optional, nullable) — Account officer assigned to this account - `custom_field_1` (string, optional, nullable) — Custom field 1 - `custom_field_2` (string, optional, nullable) — Custom field 2 - `custom_field_3` (string, optional, nullable) — Custom field 3 - `custom_field_4` (string, optional, nullable) — Custom field 4 - `institution_alternative_id` (string, optional, nullable, deprecated) ## Response ### 200 Successful Response - `id` (string, required) - `institution_id` (string, required) - `signer_primary` (string, required, nullable) - `account_title` (string, required) - `interest_rate` (string, required) - `interest_rate_tiers` (list of InterestRateTierResponse, required) - `insurance_limit` (string, required) - `account_type` (enum, required) - Allowed values: `MMDA`, `DDA` - `created_at` (string, required) - `is_joint_account` (boolean, required) - `total_balance` (string, required) - `pending_balance` (string, required) - `is_reciprocation_prioritized` (boolean, required) - `is_receiving_printed_statements` (boolean, required) - `rate_configuration` (enum, required) - Allowed values: `FIXED`, `FLOATING_MARKET`, `FLOATING_CUSTOM`, `TIERED`, `MIXED` - `signer_primary_tin_last4` (string, optional, nullable) - `closed_at` (string, optional, nullable) - `signer_secondary` (string, optional, nullable) - `beneficiary_name` (string, optional, nullable) - `beneficiary_tin` (string, optional, nullable) - `beneficiary_tin_last4` (string, optional, nullable) - `institution_sweep_account_id` (string, optional, nullable) - `institution_return_account_id` (string, optional, nullable) - `institution_branch_id` (string, optional, nullable) - `cost_center_id` (string, optional, nullable) - `cost_center_code` (string, optional, nullable) - `depositors` (list of DepositorResponse, optional, nullable) - `managed_sweep_target_balance` (string, optional, nullable) - `shadow_account` (ShadowAccountResponse, optional, nullable) - `notes` (string, optional, nullable) - `pricing_group_id` (string, optional, nullable) - `rate` (string, optional, nullable) - `floating_spread` (string, optional, nullable) - `floating_spread_bps` (string, optional, nullable) - `rate_index_type` (enum, optional, nullable) - Allowed values: `EFFR`, `CU_RECEIVE_DEFAULT`, `BANK_RECEIVE_DEFAULT`, `EFFR_UPPER_BAND`, `EFFR_LOWER_BAND`, `SOFR_OVERNIGHT`, `SOFR_1M`, `SOFR_3M`, `SOFR_6M`, `SOFR_12M`, `CMT_1M`, `CMT_3M`, `CMT_6M`, `FIDELITY_FISXX`, `FIDELITY_SPAXX`, `FIDELITY_FCIXX`, `WSJ_PRIME`, `IORB` - `floating_rate_percentage` (string, optional, nullable) - `index_rate` (string, optional, nullable) - `custom_benchmark_id` (string, optional, nullable) - `custom_benchmark_rate` (string, optional, nullable) - `account_officer` (string, optional, nullable) — Account officer assigned to this account - `is_non_interest_bearing` (boolean, optional, default: false) — Whether this account is non-interest-bearing - `custom_field_1` (string, optional, nullable) — Custom field 1 - `custom_field_2` (string, optional, nullable) — Custom field 2 - `custom_field_3` (string, optional, nullable) — Custom field 3 - `custom_field_4` (string, optional, nullable) — Custom field 4 - `is_q2_funds_transfer_enabled` (boolean, optional, default: false) — Whether the Q2 digital banking integration may move this account's funds. False when the institution's Q2 enrollment is not enabled or the account is exempt from integration. - `institution_account_id` (string, optional, nullable, deprecated) - `institution_alternative_id` (string, optional, nullable, deprecated) ## Errors ### 400 Bad Request Error Bad Request - Invalid input or validation error - `detail` (list of map from string to any, required) ### 401 Unauthorized Error Unauthenticated - Invalid or missing authentication credentials - `detail` (string, required) ### 403 Forbidden Error Unauthorized - Insufficient permissions to access resource - `detail` (string, required) ### 422 Unprocessable Entity Error Validation Error - `detail` (list of ValidationError, optional) ### 500 Internal Server Error Internal Server Error - `detail` (string, required) ## Types ### UpdateAccountRequestManagedSweepTargetBalance ### InterestRateTierResponse - `min_balance` (string, required) - `max_balance` (string, required) - `rate` (string, optional, nullable) - `floating_spread` (string, optional, nullable) - `rate_index_type` (enum, optional, nullable) - Allowed values: `EFFR`, `CU_RECEIVE_DEFAULT`, `BANK_RECEIVE_DEFAULT`, `EFFR_UPPER_BAND`, `EFFR_LOWER_BAND`, `SOFR_OVERNIGHT`, `SOFR_1M`, `SOFR_3M`, `SOFR_6M`, `SOFR_12M`, `CMT_1M`, `CMT_3M`, `CMT_6M`, `FIDELITY_FISXX`, `FIDELITY_SPAXX`, `FIDELITY_FCIXX`, `WSJ_PRIME`, `IORB` - `floating_rate_percentage` (string, optional, nullable) - `custom_benchmark_id` (string, optional, nullable) ### DepositorResponse - `id` (string, required) - `institution_id` (string, required) - `institution_depositor_id` (string, required, nullable) - `first_name` (string, required, nullable) - `last_name` (string, required, nullable) - `entity_name` (string, required, nullable) - `is_organization` (boolean, required) - `phone_numbers` (list of PhoneNumberData, required) - `emails` (list of EmailData, required) - `addresses` (list of AddressData, required) - `depositor_type` (enum, required) - Allowed values: `CONSUMER`, `BUSINESS`, `NONPROFIT`, `LOCAL_GOVERNMENT`, `FEDERAL_GOVERNMENT`, `US_DEPOSITORY`, `FOREIGN_DEPOSITORY`, `FOREIGN_GOVERNMENT` - `tin_last_four` (string, optional, nullable) — Last 4 digits of the TIN (masked). - `ownership_category` (enum, optional, nullable) - Allowed values: `JOINT`, `SINGLE`, `RETIREMENT`, `ESTATE_REVOCABLE_TRUST`, `OTHER_CONSUMER`, `CORPORATION`, `LIMITED_LIABILITY_COMPANY`, `LIMITED_PARTNERSHIP`, `SOLE_PROPRIETORSHIP`, `OTHER_BUSINESS`, `CLUBS_ASSOCIATIONS`, `OTHER_NONPROFIT`, `MUNICIPALITIES`, `SCHOOL_DISTRICTS`, `OTHER_LOCAL_GOVERNMENT`, `US_GOVERNMENT`, `US_DEPOSITORY` - `account_officer` (string, optional, nullable) - `notes` (string, optional, nullable) - `institution_opt_out_federal_ids` (list of string, optional) — List of institutions (by federal_id) excluded from receiving this depositor's funds - `tin` (string, optional, nullable, deprecated) ### ShadowAccountResponse - `id` (string, required) - `account_number` (string, required) - `account_type` (enum, required) - Allowed values: `MMDA`, `DDA` - `closed_at` (string, optional, nullable) ### ValidationError - `loc` (list of ValidationErrorLocItems, required) - `msg` (string, required) - `type` (string, required) - `input` (any, optional) - `ctx` (ValidationErrorCtx, optional) ### PhoneNumberData - `number` (string, required) - `is_primary` (boolean, optional, default: true) ### EmailData - `email_address` (string, required) - `is_primary` (boolean, optional, default: true) ### AddressData - `street` (string, required) - `city` (string, required) - `state` (string, required) - `zip` (string, required) - `country_code` (string, required) — ISO 3166-1 alpha-2 country code (e.g., US) - `is_primary` (boolean, optional, default: true) ### ValidationErrorLocItems ### ValidationErrorCtx ## Examples **Request** ```json {} ``` **Response** ```json { "id": "string", "institution_id": "string", "signer_primary": "string", "account_title": "string", "interest_rate": "string", "interest_rate_tiers": [ { "min_balance": "string", "max_balance": "string", "rate": "string", "floating_spread": "string", "rate_index_type": "EFFR", "floating_rate_percentage": "string", "custom_benchmark_id": "string" } ], "insurance_limit": "string", "account_type": "MMDA", "created_at": "string", "is_joint_account": true, "total_balance": "string", "pending_balance": "string", "is_reciprocation_prioritized": true, "is_receiving_printed_statements": true, "rate_configuration": "FIXED", "signer_primary_tin_last4": "string", "closed_at": "string", "signer_secondary": "string", "beneficiary_name": "string", "beneficiary_tin": "string", "beneficiary_tin_last4": "string", "institution_sweep_account_id": "string", "institution_return_account_id": "string", "institution_branch_id": "string", "cost_center_id": "string", "cost_center_code": "string", "depositors": [ { "id": "string", "institution_id": "string", "institution_depositor_id": "string", "first_name": "string", "last_name": "string", "entity_name": "string", "is_organization": true, "phone_numbers": [ { "number": "string", "is_primary": true } ], "emails": [ { "email_address": "string", "is_primary": true } ], "addresses": [ { "street": "string", "city": "string", "state": "string", "zip": "string", "country_code": "string", "is_primary": true } ], "depositor_type": "CONSUMER", "tin_last_four": "string", "ownership_category": "JOINT", "account_officer": "string", "notes": "string", "institution_opt_out_federal_ids": [ "string" ], "tin": "string" } ], "managed_sweep_target_balance": "string", "shadow_account": { "id": "string", "account_number": "string", "account_type": "MMDA", "closed_at": "string" }, "notes": "string", "pricing_group_id": "string", "rate": "string", "floating_spread": "string", "floating_spread_bps": "string", "rate_index_type": "EFFR", "floating_rate_percentage": "string", "index_rate": "string", "custom_benchmark_id": "string", "custom_benchmark_rate": "string", "account_officer": "string", "is_non_interest_bearing": false, "custom_field_1": "string", "custom_field_2": "string", "custom_field_3": "string", "custom_field_4": "string", "is_q2_funds_transfer_enabled": false, "institution_account_id": "string", "institution_alternative_id": "string" } ``` **SDK Code** ```python import requests url = "https://api.modernfi.com/digital-banking/v1/accounts/account_id" payload = {} headers = { "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.patch(url, json=payload, headers=headers) print(response.json()) ``` ```javascript const url = 'https://api.modernfi.com/digital-banking/v1/accounts/account_id'; const options = { method: 'PATCH', headers: {Authorization: 'Bearer ', 'Content-Type': 'application/json'}, body: '{}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.modernfi.com/digital-banking/v1/accounts/account_id" payload := strings.NewReader("{}") req, _ := http.NewRequest("PATCH", url, payload) req.Header.Add("Authorization", "Bearer ") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.modernfi.com/digital-banking/v1/accounts/account_id") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Patch.new(url) request["Authorization"] = 'Bearer ' request["Content-Type"] = 'application/json' request.body = "{}" response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.patch("https://api.modernfi.com/digital-banking/v1/accounts/account_id") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("{}") .asString(); ``` ```php request('PATCH', 'https://api.modernfi.com/digital-banking/v1/accounts/account_id', [ 'body' => '{}', 'headers' => [ 'Authorization' => 'Bearer ', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.modernfi.com/digital-banking/v1/accounts/account_id"); var request = new RestRequest(Method.PATCH); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = [] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.modernfi.com/digital-banking/v1/accounts/account_id")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "PATCH" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```