> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.mercoa.com/embedded-ap-ar/api-reference/entity/metadata/update/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.mercoa.com/_mcp/server. # Update POST https://api.mercoa.com/entity/{entityId}/metadata/{key} Content-Type: application/json Update metadata associated with a specific key Reference: https://docs.mercoa.com/embedded-ap-ar/api-reference/entity/metadata/update ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. ## Request ### Path parameters - `entityId` (string, required) — Entity ID or Entity ForeignID - `key` (string, required) ### Body (application/json) This endpoint expects a list of string. - `list of string` ## Response ### 200 - `list of string` ## Errors ### 400 Bad Request - `errorName` ("BadRequest", required) - `content` (string, required) ### 401 Unauthorized - `errorName` ("Unauthorized", required) - `content` (string, required) ### 403 Forbidden - `errorName` ("Forbidden", required) - `content` (string, required) ### 404 Not Found - `errorName` ("NotFound", required) - `content` (string, required) ### 409 Conflict - `errorName` ("Conflict", required) - `content` (string, required) ### 500 Internal Server Error - `errorName` ("InternalServerError", required) - `content` (string, required) ### 501 Unimplemented - `errorName` ("Unimplemented", required) - `content` (string, required) ## Examples ### KeyValue **Request** ```json [ "{key: 'prop_123', value: 'Beach Rental'}", "{key: 'prop_456', value: 'City Rental'}" ] ``` **Response** ```json [ "{key: 'prop_123', value: 'Beach Rental'}", "{key: 'prop_456', value: 'City Rental'}" ] ``` **SDK Code** ```python KeyValue import requests url = "https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/propertyId" payload = ["{key: 'prop_123', value: 'Beach Rental'}", "{key: 'prop_456', value: 'City Rental'}"] headers = { "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```typescript KeyValue import { MercoaClient } from "@mercoa/javascript"; const client = new MercoaClient({ token: "YOUR_TOKEN" }); await client.entity.metadata.update("ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced", "propertyId", ["{key: 'prop_123', value: 'Beach Rental'}", "{key: 'prop_456', value: 'City Rental'}"]); ``` ```go KeyValue package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/propertyId" payload := strings.NewReader("[\n \"{key: 'prop_123', value: 'Beach Rental'}\",\n \"{key: 'prop_456', value: 'City Rental'}\"\n]") req, _ := http.NewRequest("POST", 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 KeyValue require 'uri' require 'net/http' url = URI("https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/propertyId") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = 'Bearer ' request["Content-Type"] = 'application/json' request.body = "[\n \"{key: 'prop_123', value: 'Beach Rental'}\",\n \"{key: 'prop_456', value: 'City Rental'}\"\n]" response = http.request(request) puts response.read_body ``` ```java KeyValue import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/propertyId") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("[\n \"{key: 'prop_123', value: 'Beach Rental'}\",\n \"{key: 'prop_456', value: 'City Rental'}\"\n]") .asString(); ``` ```php KeyValue request('POST', 'https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/propertyId', [ 'body' => '[ "{key: \'prop_123\', value: \'Beach Rental\'}", "{key: \'prop_456\', value: \'City Rental\'}" ]', 'headers' => [ 'Authorization' => 'Bearer ', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp KeyValue using RestSharp; var client = new RestClient("https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/propertyId"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "[\n \"{key: 'prop_123', value: 'Beach Rental'}\",\n \"{key: 'prop_456', value: 'City Rental'}\"\n]", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift KeyValue import Foundation let headers = [ "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = ["{key: 'prop_123', value: 'Beach Rental'}", "{key: 'prop_456', value: 'City Rental'}"] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/propertyId")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" 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() ``` ### String **Request** ```json [ "proj_123", "proj_456" ] ``` **Response** ```json [ "proj_123", "proj_456" ] ``` **SDK Code** ```python String import requests url = "https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/projectId" payload = ["proj_123", "proj_456"] headers = { "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```typescript String import { MercoaClient } from "@mercoa/javascript"; const client = new MercoaClient({ token: "YOUR_TOKEN" }); await client.entity.metadata.update("ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced", "projectId", ["proj_123", "proj_456"]); ``` ```go String package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/projectId" payload := strings.NewReader("[\n \"proj_123\",\n \"proj_456\"\n]") req, _ := http.NewRequest("POST", 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 String require 'uri' require 'net/http' url = URI("https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/projectId") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = 'Bearer ' request["Content-Type"] = 'application/json' request.body = "[\n \"proj_123\",\n \"proj_456\"\n]" response = http.request(request) puts response.read_body ``` ```java String import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/projectId") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("[\n \"proj_123\",\n \"proj_456\"\n]") .asString(); ``` ```php String request('POST', 'https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/projectId', [ 'body' => '[ "proj_123", "proj_456" ]', 'headers' => [ 'Authorization' => 'Bearer ', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp String using RestSharp; var client = new RestClient("https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/projectId"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "[\n \"proj_123\",\n \"proj_456\"\n]", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift String import Foundation let headers = [ "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = ["proj_123", "proj_456"] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/projectId")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" 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() ``` ### GLAccounts **Request** ```json [ "{key: '60205', value: '60205 Marketing Expense'}", "{key: '60215', value: '60215 Office Expense'}", "{key: '60225', value: '60225 Payroll Expense'}", "{key: '60550', value: '60550 Rent Expense'}" ] ``` **Response** ```json [ "{key: '60205', value: '60205 Marketing Expense'}", "{key: '60215', value: '60215 Office Expense'}", "{key: '60225', value: '60225 Payroll Expense'}", "{key: '60550', value: '60550 Rent Expense'}" ] ``` **SDK Code** ```python GLAccounts import requests url = "https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/glAccountId" payload = ["{key: '60205', value: '60205 Marketing Expense'}", "{key: '60215', value: '60215 Office Expense'}", "{key: '60225', value: '60225 Payroll Expense'}", "{key: '60550', value: '60550 Rent Expense'}"] headers = { "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```typescript GLAccounts import { MercoaClient } from "@mercoa/javascript"; const client = new MercoaClient({ token: "YOUR_TOKEN" }); await client.entity.metadata.update("ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced", "glAccountId", ["{key: '60205', value: '60205 Marketing Expense'}", "{key: '60215', value: '60215 Office Expense'}", "{key: '60225', value: '60225 Payroll Expense'}", "{key: '60550', value: '60550 Rent Expense'}"]); ``` ```go GLAccounts package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/glAccountId" payload := strings.NewReader("[\n \"{key: '60205', value: '60205 Marketing Expense'}\",\n \"{key: '60215', value: '60215 Office Expense'}\",\n \"{key: '60225', value: '60225 Payroll Expense'}\",\n \"{key: '60550', value: '60550 Rent Expense'}\"\n]") req, _ := http.NewRequest("POST", 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 GLAccounts require 'uri' require 'net/http' url = URI("https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/glAccountId") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = 'Bearer ' request["Content-Type"] = 'application/json' request.body = "[\n \"{key: '60205', value: '60205 Marketing Expense'}\",\n \"{key: '60215', value: '60215 Office Expense'}\",\n \"{key: '60225', value: '60225 Payroll Expense'}\",\n \"{key: '60550', value: '60550 Rent Expense'}\"\n]" response = http.request(request) puts response.read_body ``` ```java GLAccounts import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/glAccountId") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("[\n \"{key: '60205', value: '60205 Marketing Expense'}\",\n \"{key: '60215', value: '60215 Office Expense'}\",\n \"{key: '60225', value: '60225 Payroll Expense'}\",\n \"{key: '60550', value: '60550 Rent Expense'}\"\n]") .asString(); ``` ```php GLAccounts request('POST', 'https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/glAccountId', [ 'body' => '[ "{key: \'60205\', value: \'60205 Marketing Expense\'}", "{key: \'60215\', value: \'60215 Office Expense\'}", "{key: \'60225\', value: \'60225 Payroll Expense\'}", "{key: \'60550\', value: \'60550 Rent Expense\'}" ]', 'headers' => [ 'Authorization' => 'Bearer ', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp GLAccounts using RestSharp; var client = new RestClient("https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/glAccountId"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "[\n \"{key: '60205', value: '60205 Marketing Expense'}\",\n \"{key: '60215', value: '60215 Office Expense'}\",\n \"{key: '60225', value: '60225 Payroll Expense'}\",\n \"{key: '60550', value: '60550 Rent Expense'}\"\n]", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift GLAccounts import Foundation let headers = [ "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = ["{key: '60205', value: '60205 Marketing Expense'}", "{key: '60215', value: '60215 Office Expense'}", "{key: '60225', value: '60225 Payroll Expense'}", "{key: '60550', value: '60550 Rent Expense'}"] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/glAccountId")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" 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() ``` ### GLAccountsWithSubtitles **Request** ```json [ "{key: '60205', value: {value: '60205 Marketing Expense', subtitle: 'Expense'}}", "{key: '60215', value: {value: '60215 Office Expense', subtitle: 'Expense'}}", "{key: '60225', value: {value: '60225 Payroll Expense', subtitle: 'Expense'}}", "{key: '60550', value: {value: '60550 Rent Expense', subtitle: 'Expense'}}" ] ``` **Response** ```json [ "{key: '60205', value: {value: '60205 Marketing Expense', subtitle: 'Expense'}}", "{key: '60215', value: {value: '60215 Office Expense', subtitle: 'Expense'}}", "{key: '60225', value: {value: '60225 Payroll Expense', subtitle: 'Expense'}}", "{key: '60550', value: {value: '60550 Rent Expense', subtitle: 'Expense'}}" ] ``` **SDK Code** ```python GLAccountsWithSubtitles import requests url = "https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/glAccountId" payload = ["{key: '60205', value: {value: '60205 Marketing Expense', subtitle: 'Expense'}}", "{key: '60215', value: {value: '60215 Office Expense', subtitle: 'Expense'}}", "{key: '60225', value: {value: '60225 Payroll Expense', subtitle: 'Expense'}}", "{key: '60550', value: {value: '60550 Rent Expense', subtitle: 'Expense'}}"] headers = { "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```typescript GLAccountsWithSubtitles import { MercoaClient } from "@mercoa/javascript"; const client = new MercoaClient({ token: "YOUR_TOKEN" }); await client.entity.metadata.update("ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced", "glAccountId", ["{key: '60205', value: {value: '60205 Marketing Expense', subtitle: 'Expense'}}", "{key: '60215', value: {value: '60215 Office Expense', subtitle: 'Expense'}}", "{key: '60225', value: {value: '60225 Payroll Expense', subtitle: 'Expense'}}", "{key: '60550', value: {value: '60550 Rent Expense', subtitle: 'Expense'}}"]); ``` ```go GLAccountsWithSubtitles package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/glAccountId" payload := strings.NewReader("[\n \"{key: '60205', value: {value: '60205 Marketing Expense', subtitle: 'Expense'}}\",\n \"{key: '60215', value: {value: '60215 Office Expense', subtitle: 'Expense'}}\",\n \"{key: '60225', value: {value: '60225 Payroll Expense', subtitle: 'Expense'}}\",\n \"{key: '60550', value: {value: '60550 Rent Expense', subtitle: 'Expense'}}\"\n]") req, _ := http.NewRequest("POST", 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 GLAccountsWithSubtitles require 'uri' require 'net/http' url = URI("https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/glAccountId") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = 'Bearer ' request["Content-Type"] = 'application/json' request.body = "[\n \"{key: '60205', value: {value: '60205 Marketing Expense', subtitle: 'Expense'}}\",\n \"{key: '60215', value: {value: '60215 Office Expense', subtitle: 'Expense'}}\",\n \"{key: '60225', value: {value: '60225 Payroll Expense', subtitle: 'Expense'}}\",\n \"{key: '60550', value: {value: '60550 Rent Expense', subtitle: 'Expense'}}\"\n]" response = http.request(request) puts response.read_body ``` ```java GLAccountsWithSubtitles import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/glAccountId") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("[\n \"{key: '60205', value: {value: '60205 Marketing Expense', subtitle: 'Expense'}}\",\n \"{key: '60215', value: {value: '60215 Office Expense', subtitle: 'Expense'}}\",\n \"{key: '60225', value: {value: '60225 Payroll Expense', subtitle: 'Expense'}}\",\n \"{key: '60550', value: {value: '60550 Rent Expense', subtitle: 'Expense'}}\"\n]") .asString(); ``` ```php GLAccountsWithSubtitles request('POST', 'https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/glAccountId', [ 'body' => '[ "{key: \'60205\', value: {value: \'60205 Marketing Expense\', subtitle: \'Expense\'}}", "{key: \'60215\', value: {value: \'60215 Office Expense\', subtitle: \'Expense\'}}", "{key: \'60225\', value: {value: \'60225 Payroll Expense\', subtitle: \'Expense\'}}", "{key: \'60550\', value: {value: \'60550 Rent Expense\', subtitle: \'Expense\'}}" ]', 'headers' => [ 'Authorization' => 'Bearer ', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp GLAccountsWithSubtitles using RestSharp; var client = new RestClient("https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/glAccountId"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "[\n \"{key: '60205', value: {value: '60205 Marketing Expense', subtitle: 'Expense'}}\",\n \"{key: '60215', value: {value: '60215 Office Expense', subtitle: 'Expense'}}\",\n \"{key: '60225', value: {value: '60225 Payroll Expense', subtitle: 'Expense'}}\",\n \"{key: '60550', value: {value: '60550 Rent Expense', subtitle: 'Expense'}}\"\n]", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift GLAccountsWithSubtitles import Foundation let headers = [ "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = ["{key: '60205', value: {value: '60205 Marketing Expense', subtitle: 'Expense'}}", "{key: '60215', value: {value: '60215 Office Expense', subtitle: 'Expense'}}", "{key: '60225', value: {value: '60225 Payroll Expense', subtitle: 'Expense'}}", "{key: '60550', value: {value: '60550 Rent Expense', subtitle: 'Expense'}}"] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.mercoa.com/entity/ent_a0f6ea94-0761-4a5e-a416-3c453cb7eced/metadata/glAccountId")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" 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() ```