/update_account

Updates account name and status(frozen/unfrozen) of a bank account.

This endpoint allows updating of bank account names and status(frozen/unfrozen). The bank account being updated is indicated by passing the existing account name and using the usersignature header.

Bank account name must be (case-insensitive) unique among a user's accounts. For example, two different users can have bank accounts name "default", but one user cannot have two bank accounts named "default" and "DEFAULT".

Bank account active must be boolean. For example, bank accounts active is"true" or "false".

Requests

Both authsignature and usersignature headers are required for this request.

The account_name key is required. Its string value of the existing bank account name.
The new_account_name key is optional. its string value must be unique (case-insensitive) among a user's bank accounts name.
The active key is optional. its boolean.

POST /0.2/update_account HTTP/1.1
Host: sandbox.silamoney.com
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
usersignature: [GENERATED USERSIGNATURE HEX STRING HERE]
Content-Type: application/json

{
  "header": {
    "created": 1234567890, 
    "app_handle": "handle.silamoney.eth", 
    "user_handle":"user.silamoney.eth", 
    "version": "0.2", 
    "crypto": "ETH", 
    "reference": "<your unique id>"
  }, 
  "account_name": "Old Account Name",
  "new_account_name": "New Account Name",
  "active": true
}

***

HTTP/1.1 200 OK

{
  "message": "Account updated.",
  "success": true,
  "status": "SUCCESS",
  "response_time_ms": "171",
  "account": {
    "account_number": "*1234",
    "routing_number": "123456789",
    "account_name": "New Account Name",
    "account_type": "CHECKING",
    "account_status": "active",
    "active": true,
    "account_link_status": "microdeposit_automatically_verified"
  "web_debit_verified":true
 },
 "changes": [
    {
      "attribute": "account_name",
      "old_value": "Old Account Name",
      "new_value": "New Account Name"
    },
    {
      "attribute": "active",
      "old_value": false,
      "new_value": true
    }
  ]
}
const res = await Sila.updateAccount({
    account_name: 'old account name',
    new_account_name: 'new account name',
    active:true,
}, userHandle, walletPrivateKey);

// Success Response Object
{
  "request": {
    "handle": "user_handle_947e7e56-e6b3-4cee-9942-514010e6fceb",
    "account": {
      "account_name": "sila_bank",
      "new_account_name": "This is a automation testing dummy text."
    }
  },
  "response": {
    "statusCode": 200,
    "headers": {
      "server": "nginx/1.14.0 (Ubuntu)",
      "date": "Tue, 19 Apr 2022 13:10:06 GMT",
      "content-type": "application/json",
      "content-length": "542",
      "connection": "close",
      "access-control-allow-origin": "*",
      "access-control-allow-headers": "*",
      "allow": "POST, OPTIONS",
      "vary": "Cookie"
    },
    "data": {
      "success": true,
      "message": "Bank account updated successfully.",
      "reference": "9d5074bd-1acc-4680-b932-19fe917df91d",
      "account": {
        "account_number": "*9012",
        "routing_number": "123456780",
        "account_name": "This is a automation testing dummy text.",
        "account_type": "CHECKING",
        "account_status": "active",
        "active": true,
        "account_link_status": "unverified_manual_input",
        "web_debit_verified": true
      },
      "changes": [
        {
          "attribute": "account_name",
          "old_value": "sila_bank",
          "new_value": "This is a automation testing dummy text."
        }
      ],
      "status": "SUCCESS",
      "response_time_ms": "129"
    }
  }
}
payload = {
    "user_handle": "user handle",
    "account_name": "old account name",
    "new_account_name": "new account name",
    "active": True
}

response = User.update_account(
    app, payload, eth_private_key)

{
   "success":true,
   "message":"Bank account updated successfully.",
   "reference":"018c68fb-1692-493e-a130-9cadd4d03fc9",
   "account":{
      "account_number":"*9013",
      "routing_number":"123456780",
      "account_name":"accountupdated",
      "account_type":"CHECKING",
      "account_status":"active",
      "active":true,
      "account_link_status":"unverified_manual_input",
      "web_debit_verified":true
   },
   "changes":[
      {
         "attribute":"account_name",
         "old_value":"forupdate",
         "new_value":"accountupdated"
      }
   ],
   "status":"SUCCESS",
   "response_time_ms":"147",
   "status_code":200,
}
ApiResponse response = api.updateAccount("user handle", "user private key", "account name", "new account name", active);

UpdateAccountResponse parsedResponse = (UpdateAccountResponse) response.getData();

parsedResponse.getStatus();
parsedResponse.getMessage();
parsedResponse.getAccount().getAccountLinkStatus();
parsedResponse.getAccount().getAccountName();
parsedResponse.getAccount().getAccountNumber();
parsedResponse.getAccount().getAccountStatus();
parsedResponse.getAccount().getAccountType();
parsedResponse.getAccount().getRoutingNumber();
parsedResponse.getAccount().isActive();
parsedResponse.getAccount().getWebDebitVerified() // true/false
parsedResponse.getChanges().get(0).getAttribute();
parsedResponse.getChanges().get(0).getNewValue();
parsedResponse.getChanges().get(0).getOldValue();
//Load your information
$userHandle = 'user.silamoney.eth';
$userPrivateKey = 'some private key';
$accountName = 'account';
$newAccountName = 'new account';
$isActive = true; // Optional

//Call the API
$response = $client->updateAccount($userHandle, $userPrivateKey, $accountName, $newAccountName, $isActive);

// Success 200
echo $response->getStatusCode(); // 200
echo $response->getData()->getStatus(); // SUCCESS
echo $response->getData()->status;
echo $response->getData()->changes
echo $response->getData()->account;
echo $response->getData()->account->webDebitVerified;
//Load your informations
var response = api.UpdateAccount(
userHandle: "user handle",
userPrivateKey: "user private key",
accountName: "account name",
newAccountName: "new account name",
isActive: true
);

// Success response object
Console.WriteLine(response.StatusCode); // 200

var parsedResponse = (UpdateAccountResponse)response.Data;

Console.WriteLine(parsedResponse.Message); // Account updated.
Console.WriteLine(parsedResponse.Success); // true
Console.WriteLine(parsedResponse.Status); // SUCCESS
Console.WriteLine(parsedResponse.ResponseTimeMs); // 1712

Console.WriteLine(parsedResponse.Changes); // changes

Console.WriteLine(parsedResponse.Account); // Account
Console.WriteLine(parsedResponse.Account.AccountLinkStatus); // Account Link Status
Console.WriteLine(parsedResponse.Account.AccountName); // Account Name
Console.WriteLine(parsedResponse.Account.AccountNumber); // Account Number
Console.WriteLine(parsedResponse.Account.AccountStatus); // Account Status
Console.WriteLine(parsedResponse.Account.AccountType); // Account Type
Console.WriteLine(parsedResponse.Account.Active); // Active
Console.WriteLine(parsedResponse.Account.RoutingNumber); // Routing Number
Console.WriteLine(parsedResponse.Account.MatchScore); // Match Score
Console.WriteLine(parsedResponse.Account.AccountOwnerName); // Account Owner Name
Console.WriteLine(parsedResponse.Account.EntityName); // Entity Name
Console.WriteLine(parsedResponse.Account.WebDebitVerified); // true

Key

Type

Description

header

JSON object

Required. Requires these keys in JSON format: created, app_handle, user_handle. See the /check_handle endpoint for the complete list of fields in this object.

account_name

String

Required. Min length 1, Max length 40, Example: Custom Account Name

new_account_name

String

Optional. Min length 1, Max length 40, Example: New Custom Account Name

active

Boolean

Optional. , Example: true

Responses

The success attribute is a JSON key sent in the response body.

Status Code

success Attribute

Description

200

true

Successfully updated account.

400

false

Bad request format.

401

false

Auth signature is absent or derived address does not belong to app_handle.

403

false

Account name already in use.


Did this page help you?