V0 - Create/Update organization (externalId)
Creates a new organization or updates an existing one, identified by its external source ID. If no organization exists with this external ID, a new one is created — className is required in this case. If one exists, the supplied fields are merged into it.
curl --request POST \
--url https://stage-expense.findity.com/api/admin/organizations/externalid/{externalId}/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"vat": "123456-1234",
"partnerCode": "xxxx",
"address": {
"city": "City",
"country": "Sweden",
"postalCode": "-",
"countryId": "2b9fbaa2630511e18824b0dd45bff075",
"countryCode": "SE",
"street3": "<unknown>",
"street2": "<unknown>",
"street1": "Example street"
},
"className": "com.findity.consumer.Company",
"licenses": {},
"settings": {
"externallyActivated": true,
"ignoreMileageExpenseCategory": true,
"templateOrganizationId": "xxx",
"forceNonDeductableVatOnCategories": true,
"errorMailRecipient": "errormail@ExOrg2.com",
"ignoreSubsistenceAllowanceCategory": true,
"recipient": {
"fortnoxAuthCode": "xxx"
}
},
"name": "Example organization 2",
"externalSourceId": "1234"
}
'import requests
url = "https://stage-expense.findity.com/api/admin/organizations/externalid/{externalId}/"
payload = {
"vat": "123456-1234",
"partnerCode": "xxxx",
"address": {
"city": "City",
"country": "Sweden",
"postalCode": "-",
"countryId": "2b9fbaa2630511e18824b0dd45bff075",
"countryCode": "SE",
"street3": "<unknown>",
"street2": "<unknown>",
"street1": "Example street"
},
"className": "com.findity.consumer.Company",
"licenses": {},
"settings": {
"externallyActivated": True,
"ignoreMileageExpenseCategory": True,
"templateOrganizationId": "xxx",
"forceNonDeductableVatOnCategories": True,
"errorMailRecipient": "errormail@ExOrg2.com",
"ignoreSubsistenceAllowanceCategory": True,
"recipient": { "fortnoxAuthCode": "xxx" }
},
"name": "Example organization 2",
"externalSourceId": "1234"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
vat: '123456-1234',
partnerCode: 'xxxx',
address: {
city: 'City',
country: 'Sweden',
postalCode: '-',
countryId: '2b9fbaa2630511e18824b0dd45bff075',
countryCode: 'SE',
street3: '<unknown>',
street2: '<unknown>',
street1: 'Example street'
},
className: 'com.findity.consumer.Company',
licenses: {},
settings: {
externallyActivated: true,
ignoreMileageExpenseCategory: true,
templateOrganizationId: 'xxx',
forceNonDeductableVatOnCategories: true,
errorMailRecipient: 'errormail@ExOrg2.com',
ignoreSubsistenceAllowanceCategory: true,
recipient: {fortnoxAuthCode: 'xxx'}
},
name: 'Example organization 2',
externalSourceId: '1234'
})
};
fetch('https://stage-expense.findity.com/api/admin/organizations/externalid/{externalId}/', 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/organizations/externalid/{externalId}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'vat' => '123456-1234',
'partnerCode' => 'xxxx',
'address' => [
'city' => 'City',
'country' => 'Sweden',
'postalCode' => '-',
'countryId' => '2b9fbaa2630511e18824b0dd45bff075',
'countryCode' => 'SE',
'street3' => '<unknown>',
'street2' => '<unknown>',
'street1' => 'Example street'
],
'className' => 'com.findity.consumer.Company',
'licenses' => [
],
'settings' => [
'externallyActivated' => true,
'ignoreMileageExpenseCategory' => true,
'templateOrganizationId' => 'xxx',
'forceNonDeductableVatOnCategories' => true,
'errorMailRecipient' => 'errormail@ExOrg2.com',
'ignoreSubsistenceAllowanceCategory' => true,
'recipient' => [
'fortnoxAuthCode' => 'xxx'
]
],
'name' => 'Example organization 2',
'externalSourceId' => '1234'
]),
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/organizations/externalid/{externalId}/"
payload := strings.NewReader("{\n \"vat\": \"123456-1234\",\n \"partnerCode\": \"xxxx\",\n \"address\": {\n \"city\": \"City\",\n \"country\": \"Sweden\",\n \"postalCode\": \"-\",\n \"countryId\": \"2b9fbaa2630511e18824b0dd45bff075\",\n \"countryCode\": \"SE\",\n \"street3\": \"<unknown>\",\n \"street2\": \"<unknown>\",\n \"street1\": \"Example street\"\n },\n \"className\": \"com.findity.consumer.Company\",\n \"licenses\": {},\n \"settings\": {\n \"externallyActivated\": true,\n \"ignoreMileageExpenseCategory\": true,\n \"templateOrganizationId\": \"xxx\",\n \"forceNonDeductableVatOnCategories\": true,\n \"errorMailRecipient\": \"errormail@ExOrg2.com\",\n \"ignoreSubsistenceAllowanceCategory\": true,\n \"recipient\": {\n \"fortnoxAuthCode\": \"xxx\"\n }\n },\n \"name\": \"Example organization 2\",\n \"externalSourceId\": \"1234\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://stage-expense.findity.com/api/admin/organizations/externalid/{externalId}/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"vat\": \"123456-1234\",\n \"partnerCode\": \"xxxx\",\n \"address\": {\n \"city\": \"City\",\n \"country\": \"Sweden\",\n \"postalCode\": \"-\",\n \"countryId\": \"2b9fbaa2630511e18824b0dd45bff075\",\n \"countryCode\": \"SE\",\n \"street3\": \"<unknown>\",\n \"street2\": \"<unknown>\",\n \"street1\": \"Example street\"\n },\n \"className\": \"com.findity.consumer.Company\",\n \"licenses\": {},\n \"settings\": {\n \"externallyActivated\": true,\n \"ignoreMileageExpenseCategory\": true,\n \"templateOrganizationId\": \"xxx\",\n \"forceNonDeductableVatOnCategories\": true,\n \"errorMailRecipient\": \"errormail@ExOrg2.com\",\n \"ignoreSubsistenceAllowanceCategory\": true,\n \"recipient\": {\n \"fortnoxAuthCode\": \"xxx\"\n }\n },\n \"name\": \"Example organization 2\",\n \"externalSourceId\": \"1234\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://stage-expense.findity.com/api/admin/organizations/externalid/{externalId}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"vat\": \"123456-1234\",\n \"partnerCode\": \"xxxx\",\n \"address\": {\n \"city\": \"City\",\n \"country\": \"Sweden\",\n \"postalCode\": \"-\",\n \"countryId\": \"2b9fbaa2630511e18824b0dd45bff075\",\n \"countryCode\": \"SE\",\n \"street3\": \"<unknown>\",\n \"street2\": \"<unknown>\",\n \"street1\": \"Example street\"\n },\n \"className\": \"com.findity.consumer.Company\",\n \"licenses\": {},\n \"settings\": {\n \"externallyActivated\": true,\n \"ignoreMileageExpenseCategory\": true,\n \"templateOrganizationId\": \"xxx\",\n \"forceNonDeductableVatOnCategories\": true,\n \"errorMailRecipient\": \"errormail@ExOrg2.com\",\n \"ignoreSubsistenceAllowanceCategory\": true,\n \"recipient\": {\n \"fortnoxAuthCode\": \"xxx\"\n }\n },\n \"name\": \"Example organization 2\",\n \"externalSourceId\": \"1234\"\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
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
The external source id of the organization
Body
The organization payload. When creating, className is required and must be com.findity.consumer.Company. When updating, only the fields you want to change need to be supplied.
VAT or company registration number for the organization.
"123456-1234"
Code of the partner that should own this organization. The partner must exist in the calling client application.
"xxxx"
The organization's primary address.
Hide child attributes
Hide child attributes
City.
"City"
Country name. Either country + countryCode or countryId should be provided.
"Sweden"
Postal/ZIP code.
"-"
Findity-internal country ID. Alternative to supplying country + countryCode.
"2b9fbaa2630511e18824b0dd45bff075"
ISO 3166-1 alpha-2 country code (e.g. SE).
"SE"
Street address line 3 (optional).
Street address line 2 (optional).
Street address line 1.
"Example street"
Required when creating an organization, and should then always be set to com.findity.consumer.Company
"com.findity.consumer.Company"
License assignments to grant the organization. Array of {type, price, quantity} items.
Organization-level settings. All fields are optional.
Hide child attributes
Hide child attributes
Whether the organization was activated via external onboarding flow.
If true, the default mileage expense category is not created for this organization.
ID of a template organization to copy initial settings, categories, and accounting setup from.
"xxx"
If true, non-deductable VAT is enforced on expense categories regardless of category default.
Email address that receives error notifications for failed exports.
"errormail@ExOrg2.com"
If true, the default subsistence allowance category is not created.
Display name of the organization.
"Example organization 2"
The external identifier used to identify this specific Organization. This variable is required if you are creating or updating an Organization
"1234"
Response
Organization created or updated successfully. Returns the resulting organization object in the same shape as GET.
curl --request POST \
--url https://stage-expense.findity.com/api/admin/organizations/externalid/{externalId}/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"vat": "123456-1234",
"partnerCode": "xxxx",
"address": {
"city": "City",
"country": "Sweden",
"postalCode": "-",
"countryId": "2b9fbaa2630511e18824b0dd45bff075",
"countryCode": "SE",
"street3": "<unknown>",
"street2": "<unknown>",
"street1": "Example street"
},
"className": "com.findity.consumer.Company",
"licenses": {},
"settings": {
"externallyActivated": true,
"ignoreMileageExpenseCategory": true,
"templateOrganizationId": "xxx",
"forceNonDeductableVatOnCategories": true,
"errorMailRecipient": "errormail@ExOrg2.com",
"ignoreSubsistenceAllowanceCategory": true,
"recipient": {
"fortnoxAuthCode": "xxx"
}
},
"name": "Example organization 2",
"externalSourceId": "1234"
}
'import requests
url = "https://stage-expense.findity.com/api/admin/organizations/externalid/{externalId}/"
payload = {
"vat": "123456-1234",
"partnerCode": "xxxx",
"address": {
"city": "City",
"country": "Sweden",
"postalCode": "-",
"countryId": "2b9fbaa2630511e18824b0dd45bff075",
"countryCode": "SE",
"street3": "<unknown>",
"street2": "<unknown>",
"street1": "Example street"
},
"className": "com.findity.consumer.Company",
"licenses": {},
"settings": {
"externallyActivated": True,
"ignoreMileageExpenseCategory": True,
"templateOrganizationId": "xxx",
"forceNonDeductableVatOnCategories": True,
"errorMailRecipient": "errormail@ExOrg2.com",
"ignoreSubsistenceAllowanceCategory": True,
"recipient": { "fortnoxAuthCode": "xxx" }
},
"name": "Example organization 2",
"externalSourceId": "1234"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
vat: '123456-1234',
partnerCode: 'xxxx',
address: {
city: 'City',
country: 'Sweden',
postalCode: '-',
countryId: '2b9fbaa2630511e18824b0dd45bff075',
countryCode: 'SE',
street3: '<unknown>',
street2: '<unknown>',
street1: 'Example street'
},
className: 'com.findity.consumer.Company',
licenses: {},
settings: {
externallyActivated: true,
ignoreMileageExpenseCategory: true,
templateOrganizationId: 'xxx',
forceNonDeductableVatOnCategories: true,
errorMailRecipient: 'errormail@ExOrg2.com',
ignoreSubsistenceAllowanceCategory: true,
recipient: {fortnoxAuthCode: 'xxx'}
},
name: 'Example organization 2',
externalSourceId: '1234'
})
};
fetch('https://stage-expense.findity.com/api/admin/organizations/externalid/{externalId}/', 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/organizations/externalid/{externalId}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'vat' => '123456-1234',
'partnerCode' => 'xxxx',
'address' => [
'city' => 'City',
'country' => 'Sweden',
'postalCode' => '-',
'countryId' => '2b9fbaa2630511e18824b0dd45bff075',
'countryCode' => 'SE',
'street3' => '<unknown>',
'street2' => '<unknown>',
'street1' => 'Example street'
],
'className' => 'com.findity.consumer.Company',
'licenses' => [
],
'settings' => [
'externallyActivated' => true,
'ignoreMileageExpenseCategory' => true,
'templateOrganizationId' => 'xxx',
'forceNonDeductableVatOnCategories' => true,
'errorMailRecipient' => 'errormail@ExOrg2.com',
'ignoreSubsistenceAllowanceCategory' => true,
'recipient' => [
'fortnoxAuthCode' => 'xxx'
]
],
'name' => 'Example organization 2',
'externalSourceId' => '1234'
]),
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/organizations/externalid/{externalId}/"
payload := strings.NewReader("{\n \"vat\": \"123456-1234\",\n \"partnerCode\": \"xxxx\",\n \"address\": {\n \"city\": \"City\",\n \"country\": \"Sweden\",\n \"postalCode\": \"-\",\n \"countryId\": \"2b9fbaa2630511e18824b0dd45bff075\",\n \"countryCode\": \"SE\",\n \"street3\": \"<unknown>\",\n \"street2\": \"<unknown>\",\n \"street1\": \"Example street\"\n },\n \"className\": \"com.findity.consumer.Company\",\n \"licenses\": {},\n \"settings\": {\n \"externallyActivated\": true,\n \"ignoreMileageExpenseCategory\": true,\n \"templateOrganizationId\": \"xxx\",\n \"forceNonDeductableVatOnCategories\": true,\n \"errorMailRecipient\": \"errormail@ExOrg2.com\",\n \"ignoreSubsistenceAllowanceCategory\": true,\n \"recipient\": {\n \"fortnoxAuthCode\": \"xxx\"\n }\n },\n \"name\": \"Example organization 2\",\n \"externalSourceId\": \"1234\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://stage-expense.findity.com/api/admin/organizations/externalid/{externalId}/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"vat\": \"123456-1234\",\n \"partnerCode\": \"xxxx\",\n \"address\": {\n \"city\": \"City\",\n \"country\": \"Sweden\",\n \"postalCode\": \"-\",\n \"countryId\": \"2b9fbaa2630511e18824b0dd45bff075\",\n \"countryCode\": \"SE\",\n \"street3\": \"<unknown>\",\n \"street2\": \"<unknown>\",\n \"street1\": \"Example street\"\n },\n \"className\": \"com.findity.consumer.Company\",\n \"licenses\": {},\n \"settings\": {\n \"externallyActivated\": true,\n \"ignoreMileageExpenseCategory\": true,\n \"templateOrganizationId\": \"xxx\",\n \"forceNonDeductableVatOnCategories\": true,\n \"errorMailRecipient\": \"errormail@ExOrg2.com\",\n \"ignoreSubsistenceAllowanceCategory\": true,\n \"recipient\": {\n \"fortnoxAuthCode\": \"xxx\"\n }\n },\n \"name\": \"Example organization 2\",\n \"externalSourceId\": \"1234\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://stage-expense.findity.com/api/admin/organizations/externalid/{externalId}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"vat\": \"123456-1234\",\n \"partnerCode\": \"xxxx\",\n \"address\": {\n \"city\": \"City\",\n \"country\": \"Sweden\",\n \"postalCode\": \"-\",\n \"countryId\": \"2b9fbaa2630511e18824b0dd45bff075\",\n \"countryCode\": \"SE\",\n \"street3\": \"<unknown>\",\n \"street2\": \"<unknown>\",\n \"street1\": \"Example street\"\n },\n \"className\": \"com.findity.consumer.Company\",\n \"licenses\": {},\n \"settings\": {\n \"externallyActivated\": true,\n \"ignoreMileageExpenseCategory\": true,\n \"templateOrganizationId\": \"xxx\",\n \"forceNonDeductableVatOnCategories\": true,\n \"errorMailRecipient\": \"errormail@ExOrg2.com\",\n \"ignoreSubsistenceAllowanceCategory\": true,\n \"recipient\": {\n \"fortnoxAuthCode\": \"xxx\"\n }\n },\n \"name\": \"Example organization 2\",\n \"externalSourceId\": \"1234\"\n}"
response = http.request(request)
puts response.read_body
