Skip to main content
PUT
/
users
/
{user_identifier}
/
members
/
{member_identifier}
/
accounts
/
{account_identifier}
Update account by member
curl --request PUT \
  --url https://int-api.mx.com/users/{user_identifier}/members/{member_identifier}/accounts/{account_identifier} \
  --header 'Accept-Version: <accept-version>' \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "account": {
    "account_subtype": "PERSONAL",
    "account_type": "CHECKING",
    "apr": 5.25,
    "apy": 2.35,
    "available_balance": 1000,
    "balance": 1000,
    "cash_surrender_value": 1000,
    "credit_limit": 5000,
    "currency_code": "USD",
    "death_benefit": 1000,
    "interest_rate": 1,
    "is_business": false,
    "is_closed": false,
    "is_hidden": false,
    "loan_amount": 1000,
    "metadata": "some metadata",
    "name": "Test account 2",
    "nickname": "Swiss Account",
    "original_balance": 10,
    "property_type": "VEHICLE",
    "skip_webhook": true
  }
}
'
import requests

url = "https://int-api.mx.com/users/{user_identifier}/members/{member_identifier}/accounts/{account_identifier}"

payload = { "account": {
        "account_subtype": "PERSONAL",
        "account_type": "CHECKING",
        "apr": 5.25,
        "apy": 2.35,
        "available_balance": 1000,
        "balance": 1000,
        "cash_surrender_value": 1000,
        "credit_limit": 5000,
        "currency_code": "USD",
        "death_benefit": 1000,
        "interest_rate": 1,
        "is_business": False,
        "is_closed": False,
        "is_hidden": False,
        "loan_amount": 1000,
        "metadata": "some metadata",
        "name": "Test account 2",
        "nickname": "Swiss Account",
        "original_balance": 10,
        "property_type": "VEHICLE",
        "skip_webhook": True
    } }
headers = {
    "Accept-Version": "<accept-version>",
    "Authorization": "Basic <encoded-value>",
    "Content-Type": "application/json"
}

response = requests.put(url, json=payload, headers=headers)

print(response.text)
const options = {
  method: 'PUT',
  headers: {
    'Accept-Version': '<accept-version>',
    Authorization: 'Basic <encoded-value>',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    account: {
      account_subtype: 'PERSONAL',
      account_type: 'CHECKING',
      apr: 5.25,
      apy: 2.35,
      available_balance: 1000,
      balance: 1000,
      cash_surrender_value: 1000,
      credit_limit: 5000,
      currency_code: 'USD',
      death_benefit: 1000,
      interest_rate: 1,
      is_business: false,
      is_closed: false,
      is_hidden: false,
      loan_amount: 1000,
      metadata: 'some metadata',
      name: 'Test account 2',
      nickname: 'Swiss Account',
      original_balance: 10,
      property_type: 'VEHICLE',
      skip_webhook: true
    }
  })
};

fetch('https://int-api.mx.com/users/{user_identifier}/members/{member_identifier}/accounts/{account_identifier}', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://int-api.mx.com/users/{user_identifier}/members/{member_identifier}/accounts/{account_identifier}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
  CURLOPT_POSTFIELDS => json_encode([
    'account' => [
        'account_subtype' => 'PERSONAL',
        'account_type' => 'CHECKING',
        'apr' => 5.25,
        'apy' => 2.35,
        'available_balance' => 1000,
        'balance' => 1000,
        'cash_surrender_value' => 1000,
        'credit_limit' => 5000,
        'currency_code' => 'USD',
        'death_benefit' => 1000,
        'interest_rate' => 1,
        'is_business' => false,
        'is_closed' => false,
        'is_hidden' => false,
        'loan_amount' => 1000,
        'metadata' => 'some metadata',
        'name' => 'Test account 2',
        'nickname' => 'Swiss Account',
        'original_balance' => 10,
        'property_type' => 'VEHICLE',
        'skip_webhook' => true
    ]
  ]),
  CURLOPT_HTTPHEADER => [
    "Accept-Version: <accept-version>",
    "Authorization: Basic <encoded-value>",
    "Content-Type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://int-api.mx.com/users/{user_identifier}/members/{member_identifier}/accounts/{account_identifier}"

	payload := strings.NewReader("{\n  \"account\": {\n    \"account_subtype\": \"PERSONAL\",\n    \"account_type\": \"CHECKING\",\n    \"apr\": 5.25,\n    \"apy\": 2.35,\n    \"available_balance\": 1000,\n    \"balance\": 1000,\n    \"cash_surrender_value\": 1000,\n    \"credit_limit\": 5000,\n    \"currency_code\": \"USD\",\n    \"death_benefit\": 1000,\n    \"interest_rate\": 1,\n    \"is_business\": false,\n    \"is_closed\": false,\n    \"is_hidden\": false,\n    \"loan_amount\": 1000,\n    \"metadata\": \"some metadata\",\n    \"name\": \"Test account 2\",\n    \"nickname\": \"Swiss Account\",\n    \"original_balance\": 10,\n    \"property_type\": \"VEHICLE\",\n    \"skip_webhook\": true\n  }\n}")

	req, _ := http.NewRequest("PUT", url, payload)

	req.Header.Add("Accept-Version", "<accept-version>")
	req.Header.Add("Authorization", "Basic <encoded-value>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.put("https://int-api.mx.com/users/{user_identifier}/members/{member_identifier}/accounts/{account_identifier}")
  .header("Accept-Version", "<accept-version>")
  .header("Authorization", "Basic <encoded-value>")
  .header("Content-Type", "application/json")
  .body("{\n  \"account\": {\n    \"account_subtype\": \"PERSONAL\",\n    \"account_type\": \"CHECKING\",\n    \"apr\": 5.25,\n    \"apy\": 2.35,\n    \"available_balance\": 1000,\n    \"balance\": 1000,\n    \"cash_surrender_value\": 1000,\n    \"credit_limit\": 5000,\n    \"currency_code\": \"USD\",\n    \"death_benefit\": 1000,\n    \"interest_rate\": 1,\n    \"is_business\": false,\n    \"is_closed\": false,\n    \"is_hidden\": false,\n    \"loan_amount\": 1000,\n    \"metadata\": \"some metadata\",\n    \"name\": \"Test account 2\",\n    \"nickname\": \"Swiss Account\",\n    \"original_balance\": 10,\n    \"property_type\": \"VEHICLE\",\n    \"skip_webhook\": true\n  }\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://int-api.mx.com/users/{user_identifier}/members/{member_identifier}/accounts/{account_identifier}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)
request["Accept-Version"] = '<accept-version>'
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"account\": {\n    \"account_subtype\": \"PERSONAL\",\n    \"account_type\": \"CHECKING\",\n    \"apr\": 5.25,\n    \"apy\": 2.35,\n    \"available_balance\": 1000,\n    \"balance\": 1000,\n    \"cash_surrender_value\": 1000,\n    \"credit_limit\": 5000,\n    \"currency_code\": \"USD\",\n    \"death_benefit\": 1000,\n    \"interest_rate\": 1,\n    \"is_business\": false,\n    \"is_closed\": false,\n    \"is_hidden\": false,\n    \"loan_amount\": 1000,\n    \"metadata\": \"some metadata\",\n    \"name\": \"Test account 2\",\n    \"nickname\": \"Swiss Account\",\n    \"original_balance\": 10,\n    \"property_type\": \"VEHICLE\",\n    \"skip_webhook\": true\n  }\n}"

response = http.request(request)
puts response.read_body
{
  "account": {
    "account_number": "3331261",
    "account_ownership": "INDIVIDUAL",
    "annuity_policy_to_date": "2025-12-31",
    "annuity_provider": "Metlife",
    "annuity_term_year": 30,
    "apr": 1,
    "apy": 2.35,
    "available_balance": 1000,
    "available_credit": 4000,
    "balance": 1000,
    "cash_balance": 2500,
    "cash_surrender_value": 1000,
    "created_at": "2025-02-13T18:08:00+00:00",
    "credit_limit": 5000,
    "currency_code": "USD",
    "day_payment_is_due": 14,
    "death_benefit": 1000,
    "federal_insurance_status": "INSURED",
    "guid": "ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1",
    "id": "1040434698",
    "imported_at": "2015-10-13T17:57:37.000Z",
    "interest_rate": 3.25,
    "institution_code": "3af3685e-05d9-7060-359f-008d0755e993",
    "insured_name": "Tommy Shelby",
    "is_closed": false,
    "is_hidden": false,
    "is_manual": false,
    "last_payment": 100,
    "last_payment_at": "2023-07-25T17:14:46Z",
    "loan_amount": 1000,
    "margin_balance": 1000,
    "matures_on": "2015-10-13T17:57:37.000Z",
    "member_guid": "MBR-7c6f361b-e582-15b6-60c0-358f12466b4b",
    "member_id": "member123",
    "member_is_managed_by_user": false,
    "metadata": "some metadata",
    "minimum_balance": 100,
    "minimum_payment": 10,
    "name": "Test account 2",
    "nickname": "My Checking",
    "original_balance": 10,
    "pay_out_amount": 10,
    "payment_due_at": "2015-10-13T17:57:37.000Z",
    "payoff_balance": 10,
    "premium_amount": 1,
    "property_type": "VEHICLE",
    "routing_number": "68899990000000",
    "started_on": "2025-10-13T17:57:37.000Z",
    "statement_balance": 1000.5,
    "subtype": "MONEY_MARKET",
    "today_ugl_amount": 1000.5,
    "today_ugl_percentage": 6.9,
    "total_account_value": 1,
    "total_account_value_ugl": 1,
    "type": "CHECKING",
    "updated_at": "2025-02-13T18:09:00+00:00",
    "user_guid": "USR-fa7537f3-48aa-a683-a02a-b18940482f54",
    "user_id": "u-1234"
  }
}
This endpoint allows you to update certain attributes of an account resource, including manual accounts. For manual accounts, you can update every field listed. For aggregated accounts, you can only update is_business, is_hidden and metadata.

Authorizations

Authorization
string
header
required

The MX Platform API requires basic access authentication using your client_id and api_key. These credentials must be Base64 encoded and included in the Authorization header of each API request to ensure secure access.

Here's an example using curl to access v20250224. Replace https://int-api.mx.com/endpoint with the actual API endpoint you wish to access and your Base64 encoded client_id and api_key.

curl -L -X POST `https://int-api.mx.com/endpoint' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Accept-Version: v20250224'
-H 'Authorization: Basic BASE_64_ENCODING_OF{client_id:api_key}'

Headers

Accept-Version
string
default:v20250224
required

MX Platform API version.

Example:

"v20250224"

Path Parameters

account_identifier
string
required

Use either the account id you defined or the MX-defined account guid. See MX-Defined GUIDs vs IDs Defined by You.

member_identifier
string
required

Use either the member id you defined or the MX-defined member guid. See MX-Defined GUIDs vs IDs Defined by You.

user_identifier
string
required

Use either the user id you defined or the MX-defined user guid. See MX-Defined GUIDs vs IDs Defined by You​.

Body

application/json
account
object

Response

200 - application/json

OK

account
object