V0 - Update partner
Updates an existing Partner.
curl --request PUT \
--url https://stage-expense.findity.com/api/admin/partners/{id}/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
"name": "Example Partner AB",
"vat": "556677-1234",
"partnerCode": "mqejvq",
"clientApplicationId": "12345678",
"administrators": [
{
"id": "c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6",
"email": "new.admin@example.com",
"firstName": "Anna",
"lastName": "Andersson",
"delete": false,
"skipMail": false,
"supportRole": false
}
]
}
'import requests
url = "https://stage-expense.findity.com/api/admin/partners/{id}/"
payload = {
"id": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
"name": "Example Partner AB",
"vat": "556677-1234",
"partnerCode": "mqejvq",
"clientApplicationId": "12345678",
"administrators": [
{
"id": "c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6",
"email": "new.admin@example.com",
"firstName": "Anna",
"lastName": "Andersson",
"delete": False,
"skipMail": False,
"supportRole": False
}
]
}
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({
id: 'a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4',
name: 'Example Partner AB',
vat: '556677-1234',
partnerCode: 'mqejvq',
clientApplicationId: '12345678',
administrators: [
{
id: 'c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6',
email: 'new.admin@example.com',
firstName: 'Anna',
lastName: 'Andersson',
delete: false,
skipMail: false,
supportRole: false
}
]
})
};
fetch('https://stage-expense.findity.com/api/admin/partners/{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://stage-expense.findity.com/api/admin/partners/{id}/",
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([
'id' => 'a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4',
'name' => 'Example Partner AB',
'vat' => '556677-1234',
'partnerCode' => 'mqejvq',
'clientApplicationId' => '12345678',
'administrators' => [
[
'id' => 'c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6',
'email' => 'new.admin@example.com',
'firstName' => 'Anna',
'lastName' => 'Andersson',
'delete' => false,
'skipMail' => false,
'supportRole' => false
]
]
]),
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-expense.findity.com/api/admin/partners/{id}/"
payload := strings.NewReader("{\n \"id\": \"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4\",\n \"name\": \"Example Partner AB\",\n \"vat\": \"556677-1234\",\n \"partnerCode\": \"mqejvq\",\n \"clientApplicationId\": \"12345678\",\n \"administrators\": [\n {\n \"id\": \"c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6\",\n \"email\": \"new.admin@example.com\",\n \"firstName\": \"Anna\",\n \"lastName\": \"Andersson\",\n \"delete\": false,\n \"skipMail\": false,\n \"supportRole\": false\n }\n ]\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-expense.findity.com/api/admin/partners/{id}/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4\",\n \"name\": \"Example Partner AB\",\n \"vat\": \"556677-1234\",\n \"partnerCode\": \"mqejvq\",\n \"clientApplicationId\": \"12345678\",\n \"administrators\": [\n {\n \"id\": \"c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6\",\n \"email\": \"new.admin@example.com\",\n \"firstName\": \"Anna\",\n \"lastName\": \"Andersson\",\n \"delete\": false,\n \"skipMail\": false,\n \"supportRole\": false\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://stage-expense.findity.com/api/admin/partners/{id}/")
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 \"id\": \"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4\",\n \"name\": \"Example Partner AB\",\n \"vat\": \"556677-1234\",\n \"partnerCode\": \"mqejvq\",\n \"clientApplicationId\": \"12345678\",\n \"administrators\": [\n {\n \"id\": \"c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6\",\n \"email\": \"new.admin@example.com\",\n \"firstName\": \"Anna\",\n \"lastName\": \"Andersson\",\n \"delete\": false,\n \"skipMail\": false,\n \"supportRole\": false\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
"name": "Example Partner AB",
"vat": null,
"dateCreated": "2026-06-24T06:50:28Z",
"lastUpdated": "2026-06-24T06:50:29Z",
"partnerCode": "mqejvq",
"invoiceAddress": {
"id": "b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5",
"street1": null,
"postalCode": null,
"city": null,
"country": {
"id": "2b9fbaa2630511e18824b0dd45bff075",
"iso2": "SE",
"iso3": "SWE",
"name": "Sweden",
"lastUpdated": "2014-06-23T19:16:29Z",
"distanceUnit": "KM"
}
},
"invoiceEmailAddress": null,
"invoiceRefOur": null,
"invoiceRefTheir": null,
"clientApplicationId": "12345678",
"identityProviderId": null,
"identityProviderEnabled": false,
"licenseGroup": 0,
"partnerType": "DIRECT",
"inheritedLicenseGroup": 2,
"licensingEnabled": "INHERITED",
"inheritedLicensingEnabled": "ACTIVE",
"payedByClientApplication": false,
"administrators": [
{
"id": "c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6",
"externalSourceId": null,
"firstName": "Eva",
"lastName": "Lindberg",
"email": "eva.lindberg@example.com",
"supportRole": false,
"invite": false
}
],
"sendEventToExternalSystem": true,
"templateOrganizations": [],
"memberOrganizations": [],
"settings": {
"general": {
"product": "companyexpense",
"productName": "",
"tokenExpiration": 3600,
"refreshTokenExpiration": 3888000,
"useNewLoginPage": true
},
"design": {
"accentColor": "#012a2d",
"darkAccentColor": "#012a2d",
"textOnAccentColor": "#FFFFFF",
"textOnHoverColor": "#FFFFFF",
"logoUrl": "https://expense.findity.com/api/resources/example-logo",
"favIconUrl": "https://expense.findity.com/api/resources/example-favicon",
"customCss": ""
},
"support": {
"type": "zammad",
"title": "Support",
"email": "support@findity.com",
"url": "https://help.findity.com/"
},
"url": {
"apiRootUrl": "https://expense.findity.com/api",
"uiRootUrl": "https://expense.findity.com/ui/#",
"authRootUrl": "https://expense.findity.com/login/#"
}
},
"clientApplicationName": "Demo",
"content": []
}{
"result": "error",
"description": "Partner with same VAT already exists"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Standard application/json content type.
Findity API version. Use 3 for the current admin API.
Path Parameters
External id of the partner to update.
Body
External id of the partner to update. Must match the id in the URL path.
"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
Display name of the partner.
"Example Partner AB"
VAT or company registration number for the partner. Used as the uniqueness key when checkDuplicateVat=true.
"556677-1234"
Short identifier for the partner. Auto-generated on create; on update, may be changed but must not collide with an existing partner's code.
"mqejvq"
Id of the client application that owns this partner.
"12345678"
Add, update, or remove partner administrators. Reference an existing person by id, or create a new one by omitting id and providing email, firstName, and lastName.
Hide child attributes
Hide child attributes
Id of an existing person to grant partner-admin access to. Omit to create a new person instead.
"c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6"
Email for the person. Required when id is omitted - creates a new person and sends them an invite.
"new.admin@example.com"
First name. Only used when creating a new person.
"Anna"
Last name. Only used when creating a new person.
"Andersson"
Set to true to remove this person's partner-admin access. Requires id.
false
Set to false to resend the invite email to a pending administrator.
false
If true, grants restricted support access instead of full partner-manager access.
false
Response
Partner created or updated successfully. Returns the resulting partner object in the same shape as GET /partners/{id}/.
curl --request PUT \
--url https://stage-expense.findity.com/api/admin/partners/{id}/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
"name": "Example Partner AB",
"vat": "556677-1234",
"partnerCode": "mqejvq",
"clientApplicationId": "12345678",
"administrators": [
{
"id": "c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6",
"email": "new.admin@example.com",
"firstName": "Anna",
"lastName": "Andersson",
"delete": false,
"skipMail": false,
"supportRole": false
}
]
}
'import requests
url = "https://stage-expense.findity.com/api/admin/partners/{id}/"
payload = {
"id": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
"name": "Example Partner AB",
"vat": "556677-1234",
"partnerCode": "mqejvq",
"clientApplicationId": "12345678",
"administrators": [
{
"id": "c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6",
"email": "new.admin@example.com",
"firstName": "Anna",
"lastName": "Andersson",
"delete": False,
"skipMail": False,
"supportRole": False
}
]
}
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({
id: 'a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4',
name: 'Example Partner AB',
vat: '556677-1234',
partnerCode: 'mqejvq',
clientApplicationId: '12345678',
administrators: [
{
id: 'c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6',
email: 'new.admin@example.com',
firstName: 'Anna',
lastName: 'Andersson',
delete: false,
skipMail: false,
supportRole: false
}
]
})
};
fetch('https://stage-expense.findity.com/api/admin/partners/{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://stage-expense.findity.com/api/admin/partners/{id}/",
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([
'id' => 'a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4',
'name' => 'Example Partner AB',
'vat' => '556677-1234',
'partnerCode' => 'mqejvq',
'clientApplicationId' => '12345678',
'administrators' => [
[
'id' => 'c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6',
'email' => 'new.admin@example.com',
'firstName' => 'Anna',
'lastName' => 'Andersson',
'delete' => false,
'skipMail' => false,
'supportRole' => false
]
]
]),
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-expense.findity.com/api/admin/partners/{id}/"
payload := strings.NewReader("{\n \"id\": \"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4\",\n \"name\": \"Example Partner AB\",\n \"vat\": \"556677-1234\",\n \"partnerCode\": \"mqejvq\",\n \"clientApplicationId\": \"12345678\",\n \"administrators\": [\n {\n \"id\": \"c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6\",\n \"email\": \"new.admin@example.com\",\n \"firstName\": \"Anna\",\n \"lastName\": \"Andersson\",\n \"delete\": false,\n \"skipMail\": false,\n \"supportRole\": false\n }\n ]\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-expense.findity.com/api/admin/partners/{id}/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4\",\n \"name\": \"Example Partner AB\",\n \"vat\": \"556677-1234\",\n \"partnerCode\": \"mqejvq\",\n \"clientApplicationId\": \"12345678\",\n \"administrators\": [\n {\n \"id\": \"c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6\",\n \"email\": \"new.admin@example.com\",\n \"firstName\": \"Anna\",\n \"lastName\": \"Andersson\",\n \"delete\": false,\n \"skipMail\": false,\n \"supportRole\": false\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://stage-expense.findity.com/api/admin/partners/{id}/")
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 \"id\": \"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4\",\n \"name\": \"Example Partner AB\",\n \"vat\": \"556677-1234\",\n \"partnerCode\": \"mqejvq\",\n \"clientApplicationId\": \"12345678\",\n \"administrators\": [\n {\n \"id\": \"c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6\",\n \"email\": \"new.admin@example.com\",\n \"firstName\": \"Anna\",\n \"lastName\": \"Andersson\",\n \"delete\": false,\n \"skipMail\": false,\n \"supportRole\": false\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
"name": "Example Partner AB",
"vat": null,
"dateCreated": "2026-06-24T06:50:28Z",
"lastUpdated": "2026-06-24T06:50:29Z",
"partnerCode": "mqejvq",
"invoiceAddress": {
"id": "b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5",
"street1": null,
"postalCode": null,
"city": null,
"country": {
"id": "2b9fbaa2630511e18824b0dd45bff075",
"iso2": "SE",
"iso3": "SWE",
"name": "Sweden",
"lastUpdated": "2014-06-23T19:16:29Z",
"distanceUnit": "KM"
}
},
"invoiceEmailAddress": null,
"invoiceRefOur": null,
"invoiceRefTheir": null,
"clientApplicationId": "12345678",
"identityProviderId": null,
"identityProviderEnabled": false,
"licenseGroup": 0,
"partnerType": "DIRECT",
"inheritedLicenseGroup": 2,
"licensingEnabled": "INHERITED",
"inheritedLicensingEnabled": "ACTIVE",
"payedByClientApplication": false,
"administrators": [
{
"id": "c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6",
"externalSourceId": null,
"firstName": "Eva",
"lastName": "Lindberg",
"email": "eva.lindberg@example.com",
"supportRole": false,
"invite": false
}
],
"sendEventToExternalSystem": true,
"templateOrganizations": [],
"memberOrganizations": [],
"settings": {
"general": {
"product": "companyexpense",
"productName": "",
"tokenExpiration": 3600,
"refreshTokenExpiration": 3888000,
"useNewLoginPage": true
},
"design": {
"accentColor": "#012a2d",
"darkAccentColor": "#012a2d",
"textOnAccentColor": "#FFFFFF",
"textOnHoverColor": "#FFFFFF",
"logoUrl": "https://expense.findity.com/api/resources/example-logo",
"favIconUrl": "https://expense.findity.com/api/resources/example-favicon",
"customCss": ""
},
"support": {
"type": "zammad",
"title": "Support",
"email": "support@findity.com",
"url": "https://help.findity.com/"
},
"url": {
"apiRootUrl": "https://expense.findity.com/api",
"uiRootUrl": "https://expense.findity.com/ui/#",
"authRootUrl": "https://expense.findity.com/login/#"
}
},
"clientApplicationName": "Demo",
"content": []
}{
"result": "error",
"description": "Partner with same VAT already exists"
}
