Changelog
Changes to the Avallone API, newest first, including deprecations and breaking changes.
This page lists every change to the Avallone API that you can notice from outside, newest first.
Version numbers
Each release has a version number in the form 0.minor.patch:
- The minor number goes up when a release adds or changes something.
- The patch number goes up when a release only fixes things.
The API stays at 0.x until every endpoint follows the API design guidelines. That release will be 1.0.0.
Version numbers before this page was published were assigned afterwards, from the history of the code.
Labels
Each change has one of these labels:
| Label | Meaning |
|---|---|
| Breaking | Something works differently, and a client built for the old behaviour can fail. |
| Deprecated | Something still works, but will be removed. The entry names the replacement and the removal date. |
| Removed | Something was taken out of the API. |
| Added | Something new: an endpoint, a field, an enum value or an error code. Nothing you have built needs to change. |
| Changed | Something behaves differently, but clients built for the old behaviour keep working. |
| Fixed | An endpoint now behaves as intended. |
See API design guidelines for what counts as a breaking change, and for how much notice we give.
Releases
2026
November
0.137.0
Deprecated
Fundas alegalFormvalue. A Fund with no other legal form is still returned withlegalFormset toFund, so integrations that read the legal form keep working. ReadisFundinstead. No removal date is set yet.
Added
isFundmarks a company as a Fund.POST /companies,PUT /companies/{companyId},PUT /companyand the companies inPUT /syncaccept it. A request that leaves it out keeps the value the company already has.GET /companies,GET /companies/{companyId},GET /companies/by-ref/{refId},PUT /companies/{companyId}andPUT /companyreturnisFund.
Changed
Fundis no longer a recommendedlegalForm. A company sent withlegalFormset toFundis marked as a Fund instead, withisFundset totrueand no legal form.- Changing a Fund's
legalFormto another value no longer removes its Fund status. SendisFund: falseto do that.
October
0.136.0
Deprecated
reasonson related company relations, in the REST endpoints and inrelatedCompaniesonPUT /sync.detailsreplaces it, and lists the same reasons as entries without a role, so one field is enough.reasonswill be removed on 2027-06-30. Until then, a request that sends both must list the same reasons in both, otherwise it returns400, and inPUT /syncthe relation fails.
Added
detailssets a related company relation's company roles and reasons. Each entry is a role, a reason, or a role with a reason, such as{ "role": "General Partner", "reason": "Manages the fund" }. The role must already exist in your tenant, and names are matched without regard to case.POSTandPUTon/companies/{companyId}/related-companiesaccept it. So doPATCHandPUTon/companies/{companyId}/related-companies/{relationId}. The responses of all four include it.PUT /syncacceptsdetailson each entry ofrelatedCompanies. Without cleanup, the entries are added to the roles and reasons the relation already has, and an entry withdelete: trueremoves one. With cleanup,detailsreplaces them.
Changed
- On
POSTandPUT /companies/{companyId}/related-companies,detailscan be a list of roles and reasons. The object withownership,votingandnotesis still accepted, and still deprecated.
Fixed
reasonsin related company responses no longer containsnullfor a relation that has company roles.PATCHandPUT /companies/{companyId}/related-companies/{relationId}return the relation'sreasonsandcompanyReferenceId, asGETdoes.
0.135.0
Added
- Companies, officers from
GET /officers/{id}andGET /officers/by-ref/{refId}, related company relations and company documents includetenantId. - Officer addresses, contacts, citizenships and tax details also include
tenantId. - A document attachment can have a
nulltenantId.
- Companies, officers from
0.134.0
Breaking
- The activity log and access logs endpoints send errors in the error format, as
application/problem+json. - The activity log and access logs endpoints return
400for a query parameter they don't know,405for a method they don't support, and406when theAcceptheader doesn't allow the type they return. - The access log download moves from
GET /access-logs?date=…toGET /access-logs/{date}/content.GET /access-logsnow lists the days that have a file, and answers?date=with400. - In the activity log entry for an access log download,
outcomeisnot_foundorinvalid_date, instead ofnot-foundorinvalid-date. GET /activitiestreatstoas exclusive:from=2026-03-01&to=2026-04-01covers all of March.GET /activitiesaccepts only an RFC 3339 timestamp, such as2026-03-01T09:00:00Z, or aYYYY-MM-DDdate, infromandto. Other forms return400, such as2026-03,2026-W10, or a timestamp without seconds or withoutZor an offset.GET /activitiesreturns400for an unknownresourceType, instead of an empty list.GET /activitiesnames the link to the next pagenextPageUrl, instead ofnextPageURI.GET /activities/typesandGET /activities/resource-typesreturn their values underresults, instead of as a bare list.actor.ipAddressisnullwhen there is no IP address, instead of a placeholder such asN/A.datais[]instead ofnullfor entries recorded before 13 June 2025. Every item indatahas atype, and a change item hasbeforeandaftereven when they arenull.- In the specification, the activity log operations are
listActivities,listActivityTypesandlistActivityResourceTypes. Their schemas areActivity,ActivityListand related names, withoutApiorDto. The activity type enum isActivityType, instead ofActivityTypes.
Added
GET /access-logslists the days that have an access log file, newest first, with the size of each file. Each day'scontentUrlis the path that downloads its file.GET /access-logs/{date}returns one day, so you can check that it has a file before you download it.
Fixed
401responses from every endpoint carryWWW-Authenticate: Bearer.- The specification shows the activity log's
actorfield by its real name, marks the fields of the activity log and access logs read-only, and describes every error response of both with theProblemschema.page,limitand the page counts inmetadataare integers, instead of numbers.
- The activity log and access logs endpoints send errors in the error format, as
0.133.0
Changed
GET /officers/{id}andGET /officers/by-ref/{refId}return a body with404:statusCode,nameandmessage. The body used to be empty.
September
0.132.0
Added
GET /access-logsdownloads one day of the tenant's access logs.- Access log downloads are recorded in the activity log as
API-access-logs-requested.
0.131.0
Breaking
DELETE /companies/{id}returns404when no company matches, instead of204.
Changed
GET /companiesmatchessearch.referenceIdwithout regard to case.
0.130.3
Fixed
GET /companies/{companyId}/related-officersreturns every officer of the company, including officers with no ownership, voting or UBO data.
0.130.2
Fixed
PUT /syncreports a readable per-item failure when a related company's reference ID can't be found.
August
July
0.129.0
Added
GET /activitieslists the tenant's activity log, filtered by type, resource, user and time range.
0.128.2
Fixed
PUT /syncalways updates the same role when a company has several officer roles with the same name.
0.128.1
Fixed
PUT /syncrejects an officer and a counterparty that share a reference ID, instead of merging them into one person.
0.128.0
Breaking
POST /companies/{companyId}/related-companiesonly creates relations, and returns409when a relation already exists or would create a cycle.PUT /companies/{companyId}/related-companiesreplaces the company's relations in both directions, as parent and as subsidiary.
Added
GET,PATCH,PUTandDELETE /companies/{companyId}/related-companies/{relationId}work on a single relation.- Related company relations have an
id, atype,reasonsand aurl.
0.127.0
Added
PUT /syncacceptsamlStatusoncounterparty, limited to the documented values.
0.126.2
Fixed
overallRiskStatusonGET /counterparty/companiesshows the tenant's own risk value, including manual overrides, instead of a generic Low, Medium or High.
June
0.126.1
Fixed
PUT /syncresolves counterpartyrolesby name for the tenant, and clears them when an empty list is sent.
0.126.0
Added
GET /officers/{id}andGET /officers/by-ref/{refId}return one officer, and return404when the officer doesn't exist.GET /counterparty/individualslists individual counterparties.
0.125.0
Breaking
- In the
PUT /syncresult, the message of a failed item is a string, instead of a list with one string. - A failed item whose error wasn't expected has the message
Unknown error. Please contact support@avallone.io, instead of the internal error message.
Fixed
- When two counterparties would get the same entity name, the item fails in
PUT /syncwith the messageCounterparty with name "<name>" already exists, instead of a database error.
- In the
0.124.0
Added
GET,POSTandPUT /companies/{companyId}/related-companiesread and write a company's relations to other companies.GET,POSTandPUT /companies/{companyId}/related-officersread and write a company's officers, with their roles and ownership.
0.123.0
Changed
PUT /syncdoesn't change an officer's email when another individual already has that email or the officer has open outbound requests, and reports a warning instead.
0.122.1
Fixed
PUT /syncwith cleanup clears old relation details when a company relation changes type.
0.122.0
Added
PUT /syncacceptsforceUboon related officers, which marks the officer as a UBO whatever their ownership or voting.
May
0.121.0
Breaking
PUT /syncvalidates the fields insidecounterpartyon companies and officers, and rejects invalid values.
Added
PUT /syncacceptsfollowUpAtandriskValueoncounterparty.
0.120.0
Added
GET /counterparty/companiesreturns each counterparty's mainriskScore, includingoverallRiskStatus,createdAtandcreatedBy.
0.119.0
Breaking
GET,PUTandDELETE /companies/{id}and the document endpoints ignore thex-id-fieldheader, so{id}is always the internal ID. The header was removed without a deprecation period.- The document endpoints moved from
/companies/documents/{id}to/companies/{companyId}/documents/{docId}, and the old paths were removed.
Added
GET /companies/by-ref/{refId}returns a company by its reference ID, and204when no company has it.GET /companies/by-ref/{refId}/documents,GET /companies/by-ref/{refId}/documents/{docId}andGET /companies/by-ref/{refId}/documents/{docId}/contentread documents by the company's reference ID.GET /company-documents/{docId}/resolvereturns the company a document belongs to, and the document's path.
Fixed
PUT /companies/{id}keeps the company's existingreferenceIdwhen the request leaves it out.
0.118.0
Breaking
DELETE /companies/{id}takes the internal company ID instead of the reference ID, unless the request sendsx-id-field: referenceId. It returns204when no company matches, instead of404.GET /companies/{id}returns204when no company matches, instead of404.PUT /companyreturns200with the company, instead of201,200or304with itsreferenceId.
Deprecated
PUT /company. UsePUT /companies/{id}. No removal date is set yet.POST /company/documents. UsePOST /companies/{id}/documents. No removal date is set yet.
Added
POST /companiescreates a company, and returns201with itsidandreferenceId. It returns409when a company with the samereferenceId, or the same name and registration number, already exists.PUT /companies/{id}replaces a company, and returns204when no company matches.POST /companiesandPUT /companies/{id}take company relations fromparentCompanies, likePUT /company.GET,PUTandDELETE /companies/{id}andGETandPOST /companies/{id}/documentsaccept anx-id-fieldheader.x-id-field: referenceIdmakes{id}a reference ID. Any value other thanidorreferenceIdreturns400.GET /companies/{id}/documentslists a company's documents, andPOST /companies/{id}/documentsuploads documents to it.GET /companies/documents/{id}returns one document, andGET /companies/documents/{id}/content?attachmentId=…downloads one of its files.- Document responses list each attachment's
id,fileName,mimeType,fileSizeandurl.
Changed
GET /companies/{id}is no longer deprecated.
Fixed
POST /company/documentsreturns400whendocumentMetadatasisn't valid JSON, instead of500.
0.117.0
Added
PUT /syncacceptsresponderas a casetype, next tocollector.
0.116.3
Fixed
PUT /synckeeps a relation's existingnoteswhen the request leavesnotesout.
April
February
January
2025
December
0.114.3
Fixed
PUT /syncrejects related officer roles that have noname.
November
0.114.2
Fixed
PUT /syncmatches an officer address without acountryCodeto the stored address, instead of creating a duplicate.
0.114.1
Fixed
PUT /syncno longer fails when a contact person name or email is sent as something other than a string.
0.114.0
Changed
PUT /synctrims contact person names and email addresses, and stores email addresses in lowercase.
0.113.0
Breaking
- The
PUT /syncresult reports company relations underrelatedCompaniesinstead ofparentCompanies.
Deprecated
parentCompanieson companies inPUT /syncis deprecated, andrelatedCompaniesreplaces it.
Added
PUT /syncacceptsrelatedCompanieson companies, with an optionalreasonslist for relations that have no ownership or voting.PUT /companystill takes company relations fromparentCompaniesonly.
Changed
PUT /synconly changes a relation'sownership,votingandnoteswhen the request includes at least one of them.
- The
October
September
0.111.0
Changed
- Officer addresses in
PUT /syncno longer requirecountryCode. - An officer sent with
tinNumberand notaxCountryCodeupdates the TIN of the officer's primary tax country.
- Officer addresses in
August
0.110.2
Fixed
- Leaving out
categorieswhenPUT /syncupdates a company no longer clears its categories. Withconfig.cleanup: true, and onPUT /company, they are still cleared.
- Leaving out
0.110.1
Fixed
- Renaming a company through
PUT /syncalso renames its counterparty.
- Renaming a company through
0.110.0
Added
GET /counterparty/companiesfilters byreferenceId.
0.109.0
Changed
- An officer sent to
PUT /syncwithdelete: truedoesn't needfirstNameandlastName. - An officer without
firstNameorlastNameis reported underfailedwith the messagefirstName and lastName are required.
- An officer sent to
July
0.108.0
Changed
- Country fields in
PUT /syncaccept country names and nationalities, such asDanish, as well as ISO codes.
- Country fields in
June
0.107.1
Fixed
PUT /syncno longer sets ownership and voting to0on officer relations that don't send them.
0.107.0
Removed
GET /companies/{id}/documentsis removed. It was never implemented and always returned501.
0.106.1
Fixed
- Changing an officer address's
countryCodeinPUT /syncnow updates the officer's primary address.
- Changing an officer address's
May
0.106.0
Added
GET /company-document-typeslists the document types you can upload: the built-in types and your tenant's own.- Experimental
POST /company/documentsuploads documents to the company named bycompanyReferenceId.documentMetadatasis a JSON list with one entry per file, in file order. Each entry needsreferenceId,companyDocumentTypeIdandcountryCode, and acceptsexpiryDateorexpiringDate,issueDate,descriptionandnote. An entry whosereferenceIdbelongs to an existing document replaces that document. GET /companies/{id}/documentsis reachable, but returns501.
April
0.105.0
Breaking
- A streamed
PUT /syncresponse returns207instead of200. A response is streamed whencompanies,officersorcaseshas more than 50 items.
Fixed
PUT /synchandles invalid dates without failing the whole request.
- A streamed
March
0.104.0
Added
- Cases in
PUT /syncacceptcustomFields, an object of field names and text values. A field that doesn't exist yet is created.
- Cases in
0.103.0
Added
- Companies in
PUT /synccan be matched by their Avalloneid, by addingidtoconfig.companyIdFields.
Changed
PUT /syncmatches companies onconfig.companyIdFieldsfirst, then onreferenceId. It used to tryreferenceIdfirst.
- Companies in
0.102.0
Added
- Officers in
PUT /synccan be matched by their Avalloneid, by addingidtoconfig.officerIdFields.
- Officers in
0.101.0
Breaking
PUT /syncreturns304instead of204when every item is unmodified. Companies, officers and cases are always reported as created or updated, so this only happens whenconfig.syncleaves all three out.
0.100.0
Breaking
PUT /syncreturns a status code that reflects the result:201when every item was created,200when every item was updated,204when every item was unmodified,207for a mix, and400when every item failed or has a warning. It used to return200every time.- The results of related items, such as relations and licenses, count as items. So does a warning. Deleted items and items that weren't found don't count, so a request that only deletes returns
200.
Changed
- Only a request with more than 50 items in
companies,officersorcasesis streamed. A streamed response still returns200. - Only a streamed
PUT /syncrequest waits for another sync in the tenant to finish. Other requests run straight away, even while another sync is running. - A request that isn't streamed gets its result as soon as it finishes, without the spaces written while it works.
0.99.0
Changed
PUT /syncvalidates company and officer attachments.idsmust be a list, andmetadatamust be present.
0.98.0
Added
- Cases in
PUT /syncacceptofficers, each identified by itsreferenceId, to link them to the case. The results are reported undercaseOfficers. Unlinking isn't supported: an officer sent withdelete: trueis reported as failed.
Fixed
PUT /syncrejects a list of lists where it expects a list of items.
- Cases in
0.97.0
Added
- Companies in
PUT /syncand the company endpoints acceptindustryCodes.
Fixed
- An empty
dateOfBirthno longer breaks the officer sync inPUT /sync.
- Companies in
0.96.0
Breaking
counterpartyTypeson companies and officers is renamed tocategories, with the valuesrelated_partyandopposing_party.
0.95.0
Added
- Cases in
PUT /syncacceptcompanies, each identified by itsreferenceId, to link them to the case. The results are reported undercaseCompanies. Unlinking isn't supported: a company sent withdelete: trueis reported as failed.
Changed
- Cases no longer accept
receivedAt. It is set when the case is first synced. dueAtis optional.
- Cases in
February
0.94.0
Added
PUT /syncacceptscases, each withreferenceId,title,status,type,receivedAtanddueAt, and an optionaldescription.statustakes a request status such asopenorclosed.typemust becollector. Syncing cases needs the same permissions as the rest ofPUT /sync.- Deleting a case isn't supported: a case sent with
delete: trueis reported as failed. - The results are reported under
cases.
0.93.0
Changed
- A company with an invalid
incorporatedAtdate is saved with a warning inPUT /sync, instead of the request being rejected.
- A company with an invalid
0.92.2
Fixed
config.cleanuponPUT /syncno longer clears relations of companies that weren't in the request.
0.92.1
Fixed
PUT /syncreports the correct result for parent company relations.
0.92.0
Breaking
- The
PUT /syncresult reports related officers by the officer'sreferenceId, instead of the company's.
Changed
config.cleanup: trueonPUT /syncnow clears a company's fields and relations before applying the update. With the defaultfalse, only the fields you send are updated. The option is experimental.- Only a
PUT /syncrequest with more than 20 companies or more than 20 officers waits for another sync in the tenant to finish.
- The
0.91.0
Added
PUT /syncresults includewarning, with the reference IDs and messages of items that were saved with warnings.
Changed
- An officer with an invalid
dateOfBirthfails on its own inPUT /sync, instead of the whole request being rejected with400.
0.90.0
Added
- The OpenAPI specification documents the experimental company endpoints.
0.89.0
Breaking
- The experimental
PUT /companiesendpoint moved toPUT /company.
Fixed
PUT /companynow updates the company's relations fromparentCompaniesandrelatedOfficers. The relations sent replace the existing ones.
- The experimental
January
0.88.0
Added
- Experimental
PUT /companiescreates or updates a single company, and experimentalDELETE /companies/{referenceId}deletes one.
- Experimental
0.87.2
Fixed
PUT /syncno longer fails when a custom field it refers to was deleted.
0.87.1
Fixed
GET /companiesno longer fails when a company has a custom field value whose field was deleted.
0.87.0
Changed
- A
PUT /syncrequest with at most one company and at most one officer no longer waits for other syncs in the tenant to finish.
- A
0.86.1
Fixed
- Deleting a company through the API now removes it the same way as deleting it in Avallone.
0.86.0
Added
- Officers in
PUT /syncaccept tax details:hasRecentTaxChanges,isUSCitizenandhasBeenUSCitizen, and one tax country, withtaxCountryCodeandtinNumber. The tax country is stored as the officer's primary tax country.
- Officers in
0.85.0
Added
- The OpenAPI specification describes
PUT /syncin more detail, with request examples.
- The OpenAPI specification describes
0.84.0
Added
- The
searchparameter ofGET /companiesacceptsreferenceId.
- The
0.83.0
Breaking
isRelatedPartyon companies and officers is replaced bycounterpartyTypes, a list of counterparty types. Company responses includecounterpartyTypes.
2024
December
0.82.1
Fixed
- A company sent to
PUT /syncwithdelete: trueis now deleted. The item still needs itsname.
- A company sent to
0.82.0
Deprecated
GET /companies/{companyId}is deprecated.
0.81.0
Changed
- When another sync is running,
PUT /syncnow tries 5 times, 5 seconds apart, before returning409.
- When another sync is running,
0.80.0
Changed
- When another sync is already running for the tenant,
PUT /synctries 3 times, 2 seconds apart, before returning409. It used to return400or409straight away.
- When another sync is already running for the tenant,
November
October
0.77.0
Added
- Contact persons in
PUT /syncacceptisPrimary. Only the first contact marked primary is kept as primary, and it replaces the company's previous primary contact.
- Contact persons in
September
0.76.0
Removed
PUT /syncno longer acceptscases.
0.75.0
Breaking
PUT /syncno longer copiesownershipintovotingwhen a parent company relation leavesvotingout. Anullownership or voting is stored as0, and a field you leave out keeps its value.
0.74.0
Added
PUT /syncsyncs a company'scontactPersonsas their own records, and removes a contact person sent withdelete: true.
0.73.0
Added
- Cases in
PUT /synccan link a company or officer by its Avalloneidinstead of itsreferenceId.
- Cases in
August
July
0.71.0
Changed
- In the specification, counterparty company fields such as
registrationNumberappear under getter names such asgetRegistrationNumber, and the schemas are renamed toApiCounterpartyDtoandApiCounterpartiesResponseDto. The JSON responses are unchanged.
- In the specification, counterparty company fields such as
0.70.0
Changed
- A company document created from
attachmentsinPUT /api/v1/syncis recorded with an approved document request.
- A company document created from
0.69.0
Breaking
- Syncing cases through
PUT /api/v1/syncrequires theCREATE_CLIENT_CASEandUPDATE_CLIENT_CASEpermissions.
- Syncing cases through
0.68.0
Added
- Cases in
PUT /api/v1/syncacceptcreatedAt,status(openorclosed),riskScore(low,mediumorhigh) andresponsible.
- Cases in
0.67.1
Fixed
- An officer address with type
primaryis saved as the officer's primary address.
- An officer address with type
0.67.0
Added
PUT /api/v1/syncacceptscases, each with areferenceIdand aname, and reports them undercasesin the response.config.caseIdFieldschooses how cases are matched, andcasescan be listed inconfig.sync.
0.66.0
Changed
- Company relations in
PUT /api/v1/syncno longer requireownership.
- Company relations in
0.65.1
Fixed
GET /api/v1/counterparty/companiesno longer fails when the user who last changed an AML status has no name or no longer exists.
0.65.0
Deprecated
amlStatuson counterparty companies is deprecated. Useaml.
Added
- Counterparty companies include
aml, withstatus,updatedAtandupdatedBy.
Changed
- Counterparties created through
PUT /api/v1/syncstart with the AML statusnone.
0.64.1
Fixed
PUT /api/v1/syncno longer fails whenattachmentshas an empty list of IDs.
June
0.64.0
Added
- Companies and officers in
PUT /api/v1/syncacceptattachments, which turn uploaded files into documents with the given metadata.
- Companies and officers in
0.63.0
Changed
PUT /api/v1/syncmatches officers onconfig.officerIdFieldsonly. It used to tryreferenceIdfirst.officerIdFieldsdefaults toreferenceId.
Fixed
- Several officers with the same name in one
PUT /api/v1/syncrequest are kept apart, instead of being merged.
0.62.0
Added
config.saveReferenceIdinPUT /api/v1/syncstores the sentreferenceIdeven when records are matched by other ID fields.
May
0.61.1
Fixed
PUT /api/v1/syncno longer overwrites the contact person of an existing counterparty company.
0.61.0
Changed
- Individual counterparties updated through
PUT /api/v1/syncare screened again when the tenant has automatic screening turned on.
- Individual counterparties updated through
0.60.0
Changed
- Counterparty companies updated through
PUT /api/v1/syncare screened again when the tenant has automatic screening turned on.
- Counterparty companies updated through
0.59.0
Changed
contactPersonson a company inPUT /api/v1/syncis saved for every company, not only for counterparty companies.
April
0.58.0
Changed
- Counterparties created through
PUT /api/v1/syncare screened automatically when the tenant has automatic screening turned on.
- Counterparties created through
0.57.1
Fixed
- Updating an individual counterparty through
PUT /api/v1/syncupdates the existing counterparty, instead of creating another one.
- Updating an individual counterparty through
0.57.0
Added
- Companies in
PUT /api/v1/syncacceptdelete: true, which deletes a counterparty company.
- Companies in
0.56.0
Added
- Counterparty companies include
customFields.
Fixed
PUT /api/v1/syncno longer creates an empty address for a counterparty company sent without address fields.
- Counterparty companies include
March
0.55.1
Fixed
- Updating a counterparty company through
PUT /api/v1/syncsaves the changes, and keeps the existing contact person when none is sent.
- Updating a counterparty company through
0.55.0
Changed
PUT /api/v1/syncupdates existing counterparty companies and individual counterparties, instead of reporting them as failed.
0.54.0
Added
PUT /api/v1/synccreates counterparty companies. Companies acceptcontactPersons, andcounterparty.rolesfor counterparty companies.
0.53.0
Added
- Officers in
PUT /api/v1/syncacceptdelete: true, which deletes the officer. - The
PUT /api/v1/syncresponse includes adeletedcount and list of reference IDs.
- Officers in
0.52.1
Fixed
- Custom fields are saved when
PUT /api/v1/synccreates an individual counterparty.
- Custom fields are saved when
0.52.0
Added
- Officers in
PUT /api/v1/syncacceptaddresses, each with atypeofprimaryorbusiness. - The
PUT /api/v1/syncresponse reports officer addresses underresidencies.
Changed
- A company address of type
businessinPUT /api/v1/syncis no longer reported as failed. It isn't stored.
- Officers in
0.51.0
Added
- Counterparty companies include
amlStatus, withapprovedAtandapprovedBy, ornullwhen the counterparty isn't AML-approved.
- Counterparty companies include
February
0.50.1
Fixed
- The specification no longer marks
isPepon officers, orcompaniesin the sync payload, as required.
- The specification no longer marks
0.50.0
Added
- Officers in
PUT /api/v1/syncaccept the typecounterparty_officer.
- Officers in
0.49.0
Added
- Officers in
PUT /api/v1/syncaccept atype:officer, the default, orcounterparty. Acounterpartyofficer is created as an individual counterparty. - Officers in
PUT /api/v1/syncacceptemail, andcounterparty.rolesfor individual counterparties.
- Officers in
0.48.1
Fixed
company-relationsandofficer-relationsinconfig.syncare applied. Before, relations were skipped whenconfig.syncwas set.
0.48.0
Added
config.syncinPUT /api/v1/syncchooses which parts of the payload to process:companies,officers,company-relationsandofficer-relations.config.companyIdFieldsandconfig.officerIdFieldsare documented. They choose which fields match existing records, and default toreferenceId.
0.47.0
Changed
PUT /api/v1/syncmatches reference IDs and other ID fields without regard to upper or lower case.
0.46.0
Changed
PUT /api/v1/syncmatches officers against existing individual counterparties as well.
0.45.1
Fixed
- A counterparty company that can't be created is reported as a failed item, instead of failing the whole
PUT /api/v1/syncrequest.
- A counterparty company that can't be created is reported as a failed item, instead of failing the whole
0.45.0
Added
- Officers in
PUT /api/v1/syncacceptcustomFields. Custom fields that don't exist yet are created.
- Officers in
0.44.0
Changed
PUT /api/v1/synccreates a company custom field when a company sends one that doesn't exist yet.
0.43.0
Deprecated
GET /api/v1/counterpartiesis deprecated. UseGET /api/v1/counterparty/companies.
Added
GET /api/v1/counterparty/companieslists the tenant's counterparty companies, paginated withpageandlimit. Each result hasname,registrationNumber,referenceId,incorporationCountryCode,addressesandcontactPerson.
0.42.1
Fixed
- The specification describes the company
typefield once, with the company type values, instead of also listing legal form values.
- The specification describes the company
January
0.42.0
Added
- Companies in
PUT /api/v1/syncaccept the typerelated_company, and sync can create them.
- Companies in
0.41.0
Breaking
- After
referenceId,PUT /api/v1/syncmatches companies onconfig.companyIdFieldsinstead of on registration number and name.companyIdFieldsdefaults toreferenceId, so by default companies are matched onreferenceIdonly. To match on registration number and name, list them incompanyIdFields.
Added
- Companies in
PUT /api/v1/syncaccept atype:entity, the default, orcounterparty. typecan be used as an ID field to match existing companies and officers.
Changed
PUT /api/v1/synconly creates companies of typeentity. A company of typecounterpartythat doesn't exist yet is reported as failed.
- After
0.40.0
Removed
- The deprecated
POST /api/v1/companiesandPUT /api/v1/companies/{companyId}endpoints were removed.
- The deprecated
0.39.0
Changed
PUT /api/v1/syncmatches officers against existing counterparty officers as well as officers.PUT /api/v1/syncrecords an officer relation for an officer whose role title isRelated Person, even when noownershipis sent.
0.38.1
Fixed
PUT /api/v1/companies/{companyId}validates the fields in its body, instead of silently dropping them.
2023
July
0.38.0
Changed
PUT /api/v1/syncworks again, and runs one sync per tenant at a time. A second request while a sync is running returns400with the messageSync already in progress.
June
0.37.0
Changed
PUT /api/v1/syncwas switched off, and returned400with the messageToo many requests.
May
0.36.0
Breaking
- Company
addressesonGET /companies,GET /companies/{companyId},POST /companiesandPUT /companies/{companyId}changed from an object with aprimaryaddress to a list. Responses list the primary address only, without atype, and[null]when the company has none.addressstill holds the same address. POST /companiesandPUT /companies/{companyId}read the address withtypeprimaryfrom the list.
Deprecated
- In
PUT /sync, theaddressesobject with aprimaryaddress is deprecated. Send a list of addresses, each with atype.
Added
- Companies in
PUT /syncacceptaddressesas a list, each address with atype. Onlyprimaryis accepted: an address of another type is reported as failed.
- Company
0.35.0
Added
- Companies in
PUT /syncaccepthasLicensesand alicenseslist, each entry with aname.delete: trueremoves an entry. - The
PUT /syncresponse reports the result oflicenses.
- Companies in
0.34.0
Added
- Officers in
PUT /syncaccept acontactInfolist, each entry with atypeanddetails.delete: trueremoves an entry. - The
PUT /syncresponse reports the results offoreignTaxInfo,citizenshipsandcontactInfo.
- Officers in
0.33.0
Added
- Officers in
PUT /syncaccept acitizenshipslist, each entry with acountryCode,givenAtBirthandsocialSecurityNumber.delete: trueremoves an entry.
- Officers in
0.32.0
Added
- Companies in
PUT /syncacceptlei.
- Companies in
0.31.0
Added
- Officers in
PUT /syncacceptdateOfBirth,cityOfBirthandcountryOfBirth.
- Officers in
0.30.0
Added
- Companies in
PUT /syncaccepttaxNumber,hasForeignTaxand aforeignTaxInfolist, each entry with acountryCode,taxNumberandisTin.delete: trueremoves an entry, andconfig.cleanupreplaces the list.
- Companies in
April
0.29.0
Changed
- Several schemas in the OpenAPI specification were renamed, for example
ApiCompanyDTOtoCompanyDto.
- Several schemas in the OpenAPI specification were renamed, for example
0.28.0
Added
- Companies in
PUT /syncacceptisSelfOwned. - Officer relations in
PUT /syncacceptnotes, and officer roles accept astartAtdate.
Fixed
isListed: falseis no longer overridden by the olderisPublicfield.
- Companies in
0.27.0
Added
- Companies in
PUT /syncacceptgiin,isListed,stockExchangeName,stockExchangeCountryCode,isUnderSupervision,supervisingInstitutionNameandsupervisorLicenseNumber.
- Companies in
0.26.0
Changed
POST /companiesandPUT /companies/{companyId}use the same create-or-update logic asPUT /sync.
0.25.0
Breaking
config.collectionStrategyinPUT /syncwas replaced by the booleanconfig.cleanup, which defaults tofalse.
0.24.1
Fixed
- Recreating collections in
PUT /syncalso replaces the company's officer relations.
- Recreating collections in
0.24.0
Deprecated
POST /companiesandPUT /companies/{companyId}are deprecated. UsePUT /sync.
Removed
- The experimental
/company-relationsendpoints were removed. - The deprecated
/company-structureendpoints were removed. GET /company-document-typesand the document endpoints on/companies/{id}/documentswere removed.
Changed
registrationNumberis optional for companies inPUT /sync,POST /companiesandPUT /companies/{companyId}.
0.23.0
Changed
- Officer role names in
PUT /syncare matched without regard to case.
- Officer role names in
0.22.0
Added
- The OpenAPI specification includes request examples for
PUT /sync.
- The OpenAPI specification includes request examples for
0.21.0
Breaking
- An officer role in
relatedOfficersnames the role innameinstead ofrole.
Added
relatedOfficersinPUT /synccreates and updates officer relations, each withroles(withname,titleandnotes),ownershipandvoting.delete: trueremoves the roles listed inroles, and the officer's ownership and voting.
- An officer role in
0.20.0
Breaking
- The default
config.collectionStrategyinPUT /syncchanged fromrecreatetoincremental, so relations that are not sent are kept.
Changed
PUT /syncmatches companies and officers byreferenceIdfirst, then by their other identifying fields.companyIdFieldsandofficerIdFieldsare no longer shown in the OpenAPI specification.
- The default
March
0.19.0
Breaking
- An officer's
referenceIdinPUT /syncmust be a string.
- An officer's
0.18.1
Fixed
- The
PUT /syncresponse includes the results of parent relations.
- The
0.18.0
Breaking
- The parent relations result in the
PUT /syncresponse is namedparentCompaniesinstead ofcompanyParents.
Added
- Companies in
PUT /syncaccept arelatedOfficerslist. Creating these relations is reported as not supported yet. - The
PUT /syncresponse reports the result of officer relations underrelatedOfficers.
- The parent relations result in the
0.17.0
Added
- Company relation responses include
otherRelationDetails.
- Company relation responses include
0.16.0
Added
config.collectionStrategyinPUT /syncchooses betweenrecreate, which replaces a company's parent relations with the ones sent, andincremental, which only adds and updates them. The default isrecreate.- A parent company in
PUT /syncacceptsdelete: trueto remove that relation. - The
PUT /syncresponse reports the result of parent relations undercompanyParents.
0.15.0
Removed
- The experimental
/officersendpoints, which were never implemented and returned501, were removed.
Added
PUT /syncaccepts aconfigobject, withcompanyIdFieldsandofficerIdFieldschoosing which fields match existing records. Officers are matched byreferenceIdby default.- Companies accept and return a
referenceIdonPOST /companiesandPUT /companies/{companyId}.
Changed
- Country codes in
PUT /syncare no longer rejected when they don't match the exact code list. Recognisable country values are converted to the code.
Fixed
- When
PUT /syncfails unexpectedly, the response body holds anerrormessage instead of being cut off.
- The experimental
February
0.14.0
Breaking
- The
PUT /syncresponse groups its results per resource, undercompaniesandofficers, instead of reportingcreated,updatedandfailedat the top level.
Added
PUT /syncaccepts anofficerslist, each with areferenceId,firstName,lastNameandisPep.
- The
0.13.1
Fixed
PUT /syncmatches existing companies on registration number and name together, so different companies that share a registration number are no longer merged.
January
0.13.0
Changed
groupConnectionaccepts the names of the tenant's own group connection types, not only the built-in values.
2022
December
0.12.0
Added
- Companies accept a
legalTypeslist inPUT /sync,POST /companiesandPUT /companies/{companyId}.
- Companies accept a
0.11.0
Added
- Companies accept
vatNumber,incorporatedAtandlegalForminPUT /sync,POST /companiesandPUT /companies/{companyId}, and return them in responses.
Fixed
POST /companiesandPUT /companies/{companyId}store the registration number as the registration number, not as the VAT number.
- Companies accept
0.10.0
Added
- Company relation responses include
isUboPropagatedToSubsidiaries.
- Company relation responses include
November
October
0.7.0
Added
- Companies accept a
groupConnectionfield inPUT /sync,POST /companiesandPUT /companies/{companyId}, and return it in responses.
- Companies accept a
September
0.6.0
Changed
PUT /syncrequests can run for up to 15 minutes before timing out.
0.5.0
Changed
- An invalid parent company or address in
PUT /syncno longer stops the company from being saved. The company is saved without it, and the error is reported underfailed.
Fixed
- Sending
parentCompanies: []inPUT /syncremoves all of the company's parent relations.
- An invalid parent company or address in
August
0.4.1
Fixed
PUT /syncaccepts API tokens on every request.- The OpenAPI specification shows
parentCompaniesas a list.
0.4.0
Breaking
- Company
addresseson the/companiesendpoints andPUT /syncchanged from a list to an object with aprimaryaddress.
- Company
0.3.0
Added
- Companies in
PUT /syncacceptparentCompanies, each with areferenceId, anownershippercentage and an optionalvotingpercentage. - When a company in
PUT /syncincludesparentCompanies, parent relations that are not in the list are removed.
- Companies in
0.2.1
Fixed
PUT /syncfinds existing companies beyond the first 10,000 in a tenant.
0.2.0
Added
PUT /synccreates or updates companies in bulk, matched to existing companies by registration number. It needs theADD_COMPANYandUPDATE_COMPANYpermissions.- The
PUT /syncresponse reports how many companies werecreated,updatedandfailed, with their reference IDs and the errors for each failed company.
July
0.1.2
Fixed
- The OpenAPI specification marks optional company fields as optional and names the response schemas of the
/companiesendpoints.
- The OpenAPI specification marks optional company fields as optional and names the response schemas of the
June
0.1.1
Fixed
- The OpenAPI specification shows the example country codes on document upload correctly.
0.1.0
Added
This is the earliest recorded version. The API existed before it, but its earlier changes aren't recorded.
- The API is served under
/api/v1. GET,POSTandPUTon/companiesread and write companies./companies/{id}/documentsandGET /company-document-typesare listed, but return501.- The experimental
/company-relationsand/officersendpoints and the deprecated/company-structureendpoints are available.
- The API is served under