Skip to main content
PATCH
/
v1
/
organizations
/
{organization_id}
/
ledgers
/
{ledger_id}
/
assets
/
{asset_id}
Update an Asset
curl --request PATCH \
  --url https://ledger.sandbox.lerian.net/v1/organizations/{organization_id}/ledgers/{ledger_id}/assets/{asset_id} \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Brazilian Real - Updated",
  "status": {
    "code": "INACTIVE",
    "description": "Asset temporarily deactivated due to regulatory review"
  },
  "metadata": {
    "symbol": "R$",
    "country": "Brazil",
    "isoNumeric": "986",
    "supportsFractions": true,
    "decimalPlaces": 2,
    "category": "fiat",
    "environment": "production",
    "updatedBy": "system_admin",
    "notes": "BRL asset blocked pending compliance verification"
  }
}
'
import requests

url = "https://ledger.sandbox.lerian.net/v1/organizations/{organization_id}/ledgers/{ledger_id}/assets/{asset_id}"

payload = {
"name": "Brazilian Real - Updated",
"status": {
"code": "INACTIVE",
"description": "Asset temporarily deactivated due to regulatory review"
},
"metadata": {
"symbol": "R$",
"country": "Brazil",
"isoNumeric": "986",
"supportsFractions": True,
"decimalPlaces": 2,
"category": "fiat",
"environment": "production",
"updatedBy": "system_admin",
"notes": "BRL asset blocked pending compliance verification"
}
}
headers = {"Content-Type": "application/json"}

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

print(response.text)
const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Brazilian Real - Updated',
status: {
code: 'INACTIVE',
description: 'Asset temporarily deactivated due to regulatory review'
},
metadata: {
symbol: 'R$',
country: 'Brazil',
isoNumeric: '986',
supportsFractions: true,
decimalPlaces: 2,
category: 'fiat',
environment: 'production',
updatedBy: 'system_admin',
notes: 'BRL asset blocked pending compliance verification'
}
})
};

fetch('https://ledger.sandbox.lerian.net/v1/organizations/{organization_id}/ledgers/{ledger_id}/assets/{asset_id}', 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://ledger.sandbox.lerian.net/v1/organizations/{organization_id}/ledgers/{ledger_id}/assets/{asset_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Brazilian Real - Updated',
'status' => [
'code' => 'INACTIVE',
'description' => 'Asset temporarily deactivated due to regulatory review'
],
'metadata' => [
'symbol' => 'R$',
'country' => 'Brazil',
'isoNumeric' => '986',
'supportsFractions' => true,
'decimalPlaces' => 2,
'category' => 'fiat',
'environment' => 'production',
'updatedBy' => 'system_admin',
'notes' => 'BRL asset blocked pending compliance verification'
]
]),
CURLOPT_HTTPHEADER => [
"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://ledger.sandbox.lerian.net/v1/organizations/{organization_id}/ledgers/{ledger_id}/assets/{asset_id}"

payload := strings.NewReader("{\n \"name\": \"Brazilian Real - Updated\",\n \"status\": {\n \"code\": \"INACTIVE\",\n \"description\": \"Asset temporarily deactivated due to regulatory review\"\n },\n \"metadata\": {\n \"symbol\": \"R$\",\n \"country\": \"Brazil\",\n \"isoNumeric\": \"986\",\n \"supportsFractions\": true,\n \"decimalPlaces\": 2,\n \"category\": \"fiat\",\n \"environment\": \"production\",\n \"updatedBy\": \"system_admin\",\n \"notes\": \"BRL asset blocked pending compliance verification\"\n }\n}")

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

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.patch("https://ledger.sandbox.lerian.net/v1/organizations/{organization_id}/ledgers/{ledger_id}/assets/{asset_id}")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Brazilian Real - Updated\",\n \"status\": {\n \"code\": \"INACTIVE\",\n \"description\": \"Asset temporarily deactivated due to regulatory review\"\n },\n \"metadata\": {\n \"symbol\": \"R$\",\n \"country\": \"Brazil\",\n \"isoNumeric\": \"986\",\n \"supportsFractions\": true,\n \"decimalPlaces\": 2,\n \"category\": \"fiat\",\n \"environment\": \"production\",\n \"updatedBy\": \"system_admin\",\n \"notes\": \"BRL asset blocked pending compliance verification\"\n }\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://ledger.sandbox.lerian.net/v1/organizations/{organization_id}/ledgers/{ledger_id}/assets/{asset_id}")

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

request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Brazilian Real - Updated\",\n \"status\": {\n \"code\": \"INACTIVE\",\n \"description\": \"Asset temporarily deactivated due to regulatory review\"\n },\n \"metadata\": {\n \"symbol\": \"R$\",\n \"country\": \"Brazil\",\n \"isoNumeric\": \"986\",\n \"supportsFractions\": true,\n \"decimalPlaces\": 2,\n \"category\": \"fiat\",\n \"environment\": \"production\",\n \"updatedBy\": \"system_admin\",\n \"notes\": \"BRL asset blocked pending compliance verification\"\n }\n}"

response = http.request(request)
puts response.read_body
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "organizationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "ledgerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "<string>",
  "code": "<string>",
  "status": {
    "code": "<string>",
    "description": "<string>"
  },
  "metadata": {},
  "createdAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z",
  "deletedAt": "2023-11-07T05:31:56Z"
}

Headers

Content-Type
string

The type of media of the resource. Recommended value is application/json.

X-Request-Id
string<uuid>

A unique identifier used to trace and track each request.

Authorization
string

Bearer JWT token for authentication. Required when PLUGIN_AUTH_ENABLED=true (enforced in multi-tenant deployments). Optional in default OSS single-tenant mode. Format: Bearer <token>

Path Parameters

organization_id
string<uuid>
required

The unique identifier of the Organization associated with the Ledger.

ledger_id
string<uuid>
required

The unique identifier of the associated Ledger.

asset_id
string<uuid>
required

The unique identifier of the asset that you want to retrieve, delete or update.

Body

application/json
name
string

The name of the Asset.

Maximum string length: 256
status
object

An object containing information about the status. Important: If not provided, the default status will be 'ACTIVE'.

metadata
object

An object containing key-value pairs to add as metadata, where the field name is the key and the field value is the value. For example, to add a Cost Center, use 'costCenter': 'BR_11101997'.

Constraints: keys must be at most 100 characters; string values at most 2000 characters. Nested objects are not allowed (values must be string, number, or boolean), the structure may not exceed a maximum depth of 10, and a maximum of 100 keys is permitted.

Response

Indicates that the request was successful and the response contains the expected data.

id
string<uuid>

The unique identifier of the Asset.

organizationId
string<uuid>

The unique identifier of the Organization.

ledgerId
string<uuid>

The unique identifier of the Ledger.

name
string

The name of the Asset.

Maximum string length: 256
type
enum<string>

The type of Asset.

Available options:
currency,
crypto,
commodity,
others
code
string

The code used to refer to the Asset.

status
object

An object containing information about the status.

metadata
object

An object containing key-value pairs to add as metadata, where the field name is the key and the field value is the value. For example, to add a Cost Center, use 'costCenter': 'BR_11101997'.

Constraints: keys must be at most 100 characters; string values at most 2000 characters. Nested objects are not allowed (values must be string, number, or boolean), the structure may not exceed a maximum depth of 10, and a maximum of 100 keys is permitted.

createdAt
string<date-time>

Timestamp of creation (UTC).

updatedAt
string<date-time>

Timestamp of last update (UTC).

deletedAt
string<date-time> | null

Timestamp of soft deletion, if applicable (UTC).