Update organization
Updates one or more fields on an existing organization identified by its internal ID or externalSourceId. Only the fields present in the request body are updated; omitted fields are left unchanged. Returns 403 when the organization does not exist or the authenticated user is not an administrator of it.
curl --request PUT \
--url https://stage-api.findity.com/api/v1/admin/organizations/{organizationId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Acme Corp Updated",
"vat": "556838-8200",
"phone": "+46701234567",
"externalSourceId": "ext-acme-001",
"sendEventToExternalSystem": true
}
'import requests
url = "https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}"
payload = {
"name": "Acme Corp Updated",
"vat": "556838-8200",
"phone": "+46701234567",
"externalSourceId": "ext-acme-001",
"sendEventToExternalSystem": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Acme Corp Updated',
vat: '556838-8200',
phone: '+46701234567',
externalSourceId: 'ext-acme-001',
sendEventToExternalSystem: true
})
};
fetch('https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}', 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://stage-api.findity.com/api/v1/admin/organizations/{organizationId}",
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([
'name' => 'Acme Corp Updated',
'vat' => '556838-8200',
'phone' => '+46701234567',
'externalSourceId' => 'ext-acme-001',
'sendEventToExternalSystem' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://stage-api.findity.com/api/v1/admin/organizations/{organizationId}"
payload := strings.NewReader("{\n \"name\": \"Acme Corp Updated\",\n \"vat\": \"556838-8200\",\n \"phone\": \"+46701234567\",\n \"externalSourceId\": \"ext-acme-001\",\n \"sendEventToExternalSystem\": true\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://stage-api.findity.com/api/v1/admin/organizations/{organizationId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Acme Corp Updated\",\n \"vat\": \"556838-8200\",\n \"phone\": \"+46701234567\",\n \"externalSourceId\": \"ext-acme-001\",\n \"sendEventToExternalSystem\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Acme Corp Updated\",\n \"vat\": \"556838-8200\",\n \"phone\": \"+46701234567\",\n \"externalSourceId\": \"ext-acme-001\",\n \"sendEventToExternalSystem\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "11adfe2a080040e3892ffb89c21ec44e",
"externalSourceId": "ext-acme-001",
"name": "Example Ltd.",
"vat": "123456-1234",
"phone": "+46701234567",
"status": "NORMAL",
"type": "COMPANY",
"dateCreated": "2024-01-15T09:30:00Z",
"lastUpdated": "2024-06-01T14:22:00Z",
"clientApplicationId": "ca1234567890abcdef1234567890abcd",
"personId": "8ab28c4f84d89c570184e1da2bf10540",
"reportReviewOnPartner": false,
"sendEventToExternalSystemPartnerLevel": false,
"sendEventToExternalSystem": false,
"automaticSetupEnabled": true,
"automaticSetupCompleted": false,
"supportAccessEndDate": null,
"policyUrl": null,
"address": {
"street1": "Storgatan 1",
"city": "Stockholm",
"postalCode": "11122",
"countryName": "Sweden",
"countryIso2Code": "SE"
},
"partner": {
"partnerId": "abc123def456abc123def456abc123de",
"partnerName": "Acme Partner AB",
"partnerCode": "ACME",
"payedByPartner": true
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
String. The organization's internal ID (32-character hex string) or its externalSourceId. When the value matches the format of an internal ID, the internal ID takes precedence.
"11adfe2a080040e3892ffb89c21ec44e"
Query Parameters
String. Comma-separated list of optional data sections to include in the response. Accepted values: address, invoiceDetails, settings, design, partner.
"address,partner"
Body
At least one known property must be present in the request body. Unknown properties are ignored when combined with at least one known property, but a body containing only unknown properties returns 400 with code NO_KNOWN_JSON_PROPERTIES.
Optional. When provided, must match the organization's internal ID or externalSourceId in the URL. Returns 400 with code INVALID_ID if the value does not match.
Display name of the organization. String with maximum length of 255 characters.
255"Acme Corp"
Organization registration number (VAT/company number). String with maximum length of 255 characters.
255Main phone number of the organization. String with maximum length of 255 characters.
255Caller-supplied identifier used to address this organization from an external system. Must be unique within the client application. String with maximum length of 255 characters.
255ISO 8601 timestamp until which Findity support staff has elevated access to this organization.
Whether events from this organization are sent to the external system.
Response
OK — returns the updated organization
Unique internal identifier of the organization. 32-character hex string. Read-only; assigned by the server on creation.
^[0-9a-fA-F]{32}$Display name of the organization.
Lifecycle status of the organization.
NORMAL, NEW, INCOMPLETE ISO 8601 timestamp of when the organization was created.
ISO 8601 timestamp of when the organization was last modified.
Whether expense report review is delegated to partner level rather than handled within this organization.
Whether events are forwarded to the external system at partner level (rather than organization level).
Whether events from this organization are sent to the external system.
Caller-supplied identifier used to address this organization from an external system. Null when no external source ID has been set.
Organization registration number (VAT/company number).
Main phone number of the organization. Null when no phone number has been set.
What kind of organization this is. COMPANY is a real organization, TEMPLATE is a template organization usable as templateOrganizationId when creating one. Template organizations have no employees, partner or design, so design comes back empty and meta is left out for them.
COMPANY, TEMPLATE ID of the client application (partner integration) that created this organization.
ID of the person that administers this organization. When several persons are linked to the authenticated account, this is the specific person holding the administrator role for this organization, which is not necessarily the logged in person. Falls back to the logged in person when no separate person is found.
^[0-9a-fA-F]{32}$Whether the organization is set up automatically from its partner template. Always present, and null when the flag has never been set.
Whether the automatic setup has finished. Always present, and null when the flag has never been set; a client that drives onboarding treats enabled and not completed as setup still pending.
ISO 8601 timestamp until which Findity support staff has elevated access to this organization. Null when no support access window is active.
Pre-signed URL to the organization's active policy document. Null when no policy document is configured.
Postal address of the organization. Only present when include=address is requested. Null when the organization has no address on record.
Hide child attributes
Hide child attributes
Invoice address and billing contact. Only present when include=invoiceDetails is requested. Null when the organization has no invoice details on record.
Hide child attributes
Hide child attributes
First line of the invoice street address.
City name.
Postal or ZIP code.
Full country name.
ISO 3166-1 alpha-2 country code (2-letter uppercase, e.g. SE).
Email address for invoice delivery.
Organization-specific configuration settings. Only present when include=settings is requested. Empty object when the organization has no custom settings configured.
Branding and visual design configuration for this organization, resolved by merging client application, partner and organization level design. Only present when include=design is requested. Empty object when the organization has no custom design configured.
Hide child attributes
Hide child attributes
Hex color code, either three or six digits (e.g. #1A73E8).
^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$Hex color code, either three or six digits (e.g. #0B4FA8).
^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$Hex color code, either three or six digits. Defaults to accentColor when not configured.
^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$Hex color code, either three or six digits. Defaults to darkAccentColor when not configured.
^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$Six digit hex color code, always #FFFFFF or #000000. Derived from accentColor for readable text on that background.
^#[0-9A-Fa-f]{6}$Six digit hex color code, always #FFFFFF or #000000. Derived from darkAccentColor for readable text on that background.
^#[0-9A-Fa-f]{6}$Six digit hex color code, always #FFFFFF or #000000. Derived from secondaryAccentColor for readable text on that background.
^#[0-9A-Fa-f]{6}$Six digit hex color code, always #FFFFFF or #000000. Derived from secondaryDarkAccentColor for readable text on that background.
^#[0-9A-Fa-f]{6}$URL to the organization logo.
URL to the logo used in the menu.
URL to the organization icon.
Partner affiliation details. Only present when include=partner is requested. Null when the organization has no partner association.
Hide child attributes
Hide child attributes
Additional computed data about the organization. Only present on GET /organizations when include=meta.permissions is requested. This is per-organization metadata and is unrelated to the list level meta object that carries count and total. The name follows the include=meta.* convention used across the Findity APIs, and matches the same field on GET /v1/expense/me/organizations. Left out for template organizations, which cannot have an employee and therefore no permissions to report.
Hide child attributes
Hide child attributes
What the authenticated user is allowed to do in this organization. Null when permissions cannot be resolved for the organization.
Hide child attributes
Hide child attributes
If user can connect new credit cards.
If user can view expenses, i.e. is an employee of an organization.
If user can approve expenses in the organization.
If user can create expenses.
If user can create expense reports.
If user can send in single expenses.
If user can send expense reports.
If user is allowed to delete the account.
If user has administration rights for the organization, allowing them to manage organization settings, members, and related configuration.
curl --request PUT \
--url https://stage-api.findity.com/api/v1/admin/organizations/{organizationId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Acme Corp Updated",
"vat": "556838-8200",
"phone": "+46701234567",
"externalSourceId": "ext-acme-001",
"sendEventToExternalSystem": true
}
'import requests
url = "https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}"
payload = {
"name": "Acme Corp Updated",
"vat": "556838-8200",
"phone": "+46701234567",
"externalSourceId": "ext-acme-001",
"sendEventToExternalSystem": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Acme Corp Updated',
vat: '556838-8200',
phone: '+46701234567',
externalSourceId: 'ext-acme-001',
sendEventToExternalSystem: true
})
};
fetch('https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}', 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://stage-api.findity.com/api/v1/admin/organizations/{organizationId}",
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([
'name' => 'Acme Corp Updated',
'vat' => '556838-8200',
'phone' => '+46701234567',
'externalSourceId' => 'ext-acme-001',
'sendEventToExternalSystem' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://stage-api.findity.com/api/v1/admin/organizations/{organizationId}"
payload := strings.NewReader("{\n \"name\": \"Acme Corp Updated\",\n \"vat\": \"556838-8200\",\n \"phone\": \"+46701234567\",\n \"externalSourceId\": \"ext-acme-001\",\n \"sendEventToExternalSystem\": true\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://stage-api.findity.com/api/v1/admin/organizations/{organizationId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Acme Corp Updated\",\n \"vat\": \"556838-8200\",\n \"phone\": \"+46701234567\",\n \"externalSourceId\": \"ext-acme-001\",\n \"sendEventToExternalSystem\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Acme Corp Updated\",\n \"vat\": \"556838-8200\",\n \"phone\": \"+46701234567\",\n \"externalSourceId\": \"ext-acme-001\",\n \"sendEventToExternalSystem\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "11adfe2a080040e3892ffb89c21ec44e",
"externalSourceId": "ext-acme-001",
"name": "Example Ltd.",
"vat": "123456-1234",
"phone": "+46701234567",
"status": "NORMAL",
"type": "COMPANY",
"dateCreated": "2024-01-15T09:30:00Z",
"lastUpdated": "2024-06-01T14:22:00Z",
"clientApplicationId": "ca1234567890abcdef1234567890abcd",
"personId": "8ab28c4f84d89c570184e1da2bf10540",
"reportReviewOnPartner": false,
"sendEventToExternalSystemPartnerLevel": false,
"sendEventToExternalSystem": false,
"automaticSetupEnabled": true,
"automaticSetupCompleted": false,
"supportAccessEndDate": null,
"policyUrl": null,
"address": {
"street1": "Storgatan 1",
"city": "Stockholm",
"postalCode": "11122",
"countryName": "Sweden",
"countryIso2Code": "SE"
},
"partner": {
"partnerId": "abc123def456abc123def456abc123de",
"partnerName": "Acme Partner AB",
"partnerCode": "ACME",
"payedByPartner": true
}
}
