Every organization unit of a client company has a type, identified by its code. Each company has the built-in type business_entity, and the company can define its own types. A type code never changes; you pass it as type wherever these routes take a type. Endpoints (all Company Key):
  • GET /v2/organization-unit-types — list the unit types of the company
  • POST /v2/organization-units — create a unit of any type
  • GET /v2/organization-units — list units, optionally of one type
  • GET /v2/organization-units/{organizationUnitId} — get one unit
  • PATCH /v2/organization-units/{organizationUnitId} — rename a unit or move it to another type

Unit types

GET /v2/organization-unit-types lists every type of the company, archived types included: the built-in type first, then the other types by name.

Create a unit

POST /v2/organization-units with a JSON body:
  • The unit is created at the top of the organization (this route takes no parentId).
  • Units created through the Partner API are approved straight away.
  • Response: id, name, type, companyId.

List and read units

  • GET /v2/organization-units lists the units of the company, newest first. The optional type query parameter keeps only units of that type; an archived type is accepted as a filter.
  • GET /v2/organization-units/{organizationUnitId} returns one unit of any type, with updatedAt. The optional type query parameter is an assertion: if the unit has another type, the answer is 404.
  • Each unit carries id, name, type, companyId, parentId, isArchived, isApproved and createdAt.

Update a unit

PATCH /v2/organization-units/{organizationUnitId} with name, type, or both:
  • name — new display name, at most 255 characters, unique within the target type (case-insensitive). The name is stored exactly as sent, including characters such as $.
  • type — move the unit to another type that is not archived.
  • The optional type query parameter asserts the unit’s current type, as on the read route.
  • A unit that is archived cannot be updated.
  • The response is the updated unit, with updatedAt.

Unit attributes

The Partner API neither sets nor returns unit attributes. An attributes field in a create or update body is ignored, and no unit response carries attributes. Required attributes of a type are not checked on these routes: a unit created here has no attribute values, and an update leaves the stored values as they are.

Errors

The organization unit routes answer 404 when the unit is not found.

Business entities

A business entity is an organization unit of the built-in business_entity type:
  • List them with GET /v2/organization-units?type=business_entity.
  • Create one with POST /v2/organization-units and "type": "business_entity".
  • The organizationUnitId returned by onboarding is the company’s default business_entity unit.
  • A unit moved to another type no longer appears in the type=business_entity list.
The v1 business entity routes are deprecated and have no v2 twin; see Migrating to v2.

Submit documents to any unit

Use the /v2 document routes with organizationUnitId; they accept an active, unarchived unit of any type of your company:
  • POST /v2/documents/submit — see Document Submission. A unit that is not found, is archived or belongs to another company is answered with 422 and genericErrors: Organization unit not found or access denied (not 404).
  • POST /v2/documents/upload/start — see Chunked Upload. complianceFrameworkId and controlId are still required with organizationUnitId. The unit is not checked at start; it is resolved when the last chunk arrives. If it cannot be resolved then, the last chunk answers 404 and the session becomes Failed.
The v1 submit and upload start routes are deprecated; see Migrating to v2.