> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.cable.tech/v-2-0/api-documentation/api-reference/company/update-companies/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.cable.tech/_mcp/server. # Update companies in batch PUT https://api.cable.tech/v2/company Content-Type: application/json Reference: https://docs.cable.tech/api-documentation/api-reference/company/update-companies ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. ## Request ### Body (application/json) This endpoint expects a list of Company. - `list of Company` ## Response ### 200 Batch processing result - `success` (boolean, required) — Indicates if the write operation was successful. - `write_count` (integer, required) — The number of records written to the database. - `message` (string, required) — Provides additional information about the operation result. - `organization_id` (string, required) — The organization ID for which the operation was performed. ## Errors ### 400 Bad Request Error Invalid company data in batch - `code` (integer, required) - `message` (string, required) - `errors` (list of GeneralErrorErrorsItems, optional) — Detailed information about errors in specific fields. ### 401 Unauthorized Error Unauthorized request - `code` (integer, required) - `message` (string, required) - `errors` (list of GeneralErrorErrorsItems, optional) — Detailed information about errors in specific fields. ### 404 Not Found Error Company not found in batch - `code` (integer, required) - `message` (string, required) - `errors` (list of GeneralErrorErrorsItems, optional) — Detailed information about errors in specific fields. ### 429 Too Many Requests Error Rate limit exceeded - `code` (integer, required) - `message` (string, required) - `errors` (list of GeneralErrorErrorsItems, optional) — Detailed information about errors in specific fields. ### 500 Internal Server Error Server error - `code` (integer, required) - `message` (string, required) - `errors` (list of GeneralErrorErrorsItems, optional) — Detailed information about errors in specific fields. ## Types ### Company Request body for adding information about companies - `company_id` (string, required) — Unique external identifier of the company entity, ID stored in your database / back-office - `timestamp` (datetime, required) — When this company record was created or last modified in your system, in ISO 8601 format. - `is_test_company` (boolean, required, default: false) — If the company is a test company, this should be set to true - `account_status` (enum, optional) — The account status for the related person at that timestamp. Refer to the Developer Guide "Entity Account Statuses" to understand what account statuses mean at Cable, and how to use them - Allowed values: `APPROVED`, `BLOCKED`, `CLOSED`, `PENDING`, `REJECTED` - `legal_name` (string, optional) — Legal name of the business - `trading_name` (string, optional) — Trading name of the business - `email` (string, optional) — Main contact email for the company - `addresses` (list of CompanyAddressesItems, optional) - `phone_number` (string, optional) — Main contact telephone number for the company - `type` (string, optional) — Business entity type. eg. Sole Trader, Limited Company - `registration_number` (CompanyRegistrationNumber, optional) - `incorporation_date` (date, optional) — Date when the company was incorporated - `incorporation_country` (string, optional) — 2 or 3 Character ISO 3166 Country Code (https://w.wiki/4rY) - `incorporation_state` (string, optional) — State where the company was incorporated (US only) - `primary_operation_country` (string, optional) — 2 or 3 Character ISO 3166 Country Code (https://w.wiki/4rY) - `industry` (string, optional) — Nature of business - `industry_classification` (CompanyIndustryClassification, optional) - `source_of_wealth` (string, optional) — Source of wealth of the company - `source_of_funds` (string, optional) — Source of initial deposit of the company - `first_transaction_completed_at` (datetime, optional) — Original timestamp of when the person completed their first transaction - `product_type` (string, optional) - `registered_as_inactive` (boolean, optional) — If the company is registered as inactive, this should be set to true ### GeneralErrorErrorsItems - `field` (string, optional) - `message` (string, optional) ### CompanyAddressesItems - `type` (string, optional) — Type of address. eg. Registered, Trading, Legal - `address` (Address, optional) — Legal/contact address for the entity ### CompanyRegistrationNumber - `type` (string, required) — Type of registration number, e.g. Companies House number (UK), EIN number (US) etc. - `value` (string, required) — The registration number ### CompanyIndustryClassification - `code_type` (string, required) — Type of industry classification code - `code` (list of string, required) — Industry classification codes - `description` (string, optional) — Description of the industry classification code ### Address Legal/contact address for the entity - `lines` (list of string, optional) - `city` (string, optional) - `state` (string, optional) - `county` (string, optional) - `postal_code` (string, optional) - `country` (string, optional) ## Examples **Request** ```json [ { "company_id": "comp-987654321", "timestamp": "2024-01-15T09:30:00Z", "is_test_company": false } ] ``` **Response** ```json { "success": true, "write_count": 1, "message": "Batch update completed successfully.", "organization_id": "org-123456789" } ``` **SDK Code** ```python import requests url = "https://api.cable.tech/v2/company" payload = [ { "company_id": "comp-987654321", "timestamp": "2024-01-15T09:30:00Z", "is_test_company": False } ] headers = { "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.put(url, json=payload, headers=headers) print(response.json()) ``` ```javascript const url = 'https://api.cable.tech/v2/company'; const options = { method: 'PUT', headers: {Authorization: 'Bearer ', 'Content-Type': 'application/json'}, body: '[{"company_id":"comp-987654321","timestamp":"2024-01-15T09:30:00Z","is_test_company":false}]' }; 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.cable.tech/v2/company" payload := strings.NewReader("[\n {\n \"company_id\": \"comp-987654321\",\n \"timestamp\": \"2024-01-15T09:30:00Z\",\n \"is_test_company\": false\n }\n]") req, _ := http.NewRequest("PUT", 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.cable.tech/v2/company") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Put.new(url) request["Authorization"] = 'Bearer ' request["Content-Type"] = 'application/json' request.body = "[\n {\n \"company_id\": \"comp-987654321\",\n \"timestamp\": \"2024-01-15T09:30:00Z\",\n \"is_test_company\": false\n }\n]" response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.put("https://api.cable.tech/v2/company") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("[\n {\n \"company_id\": \"comp-987654321\",\n \"timestamp\": \"2024-01-15T09:30:00Z\",\n \"is_test_company\": false\n }\n]") .asString(); ``` ```php request('PUT', 'https://api.cable.tech/v2/company', [ 'body' => '[ { "company_id": "comp-987654321", "timestamp": "2024-01-15T09:30:00Z", "is_test_company": false } ]', 'headers' => [ 'Authorization' => 'Bearer ', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.cable.tech/v2/company"); var request = new RestRequest(Method.PUT); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "[\n {\n \"company_id\": \"comp-987654321\",\n \"timestamp\": \"2024-01-15T09:30:00Z\",\n \"is_test_company\": false\n }\n]", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = [ [ "company_id": "comp-987654321", "timestamp": "2024-01-15T09:30:00Z", "is_test_company": false ] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.cable.tech/v2/company")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "PUT" 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() ```