V2 · Core resources

Organisations

Read organisations (legal entities) and their contact details for an enterprise.

An organisation represents a legal entity (Pty Ltd, trust, sole trader, etc.) inside an enterprise. As with People, V2 is effectively read-only: store, update, and destroy routes return 403 Forbidden because their form requests use App\Http\Requests\Api\V2\Concerns\DeniesAccess.

Attributes

The shape returned by App\Http\Resources\V2\OrganisationResource::toArray():

Attribute Type Description
id string (UUID) Stable public identifier.
enterprise_id string (UUID) | null UUID of the owning enterprise.
legal_name string Legal name (maps to the name column).
legal_structure string | null Organisation-type label (OrganisationType->name).
short_name string | null Short / abbreviated name (shortname column).
trust_name string | null Trust name (where applicable).
acn string | null Australian Company Number.
abn string | null Australian Business Number.
entity_type string | null ABN entity-type label (AbnType->name).
abn_registration string | null (date) ABN registration date (abn_date column).
abn_status string | null ABN status label (AbnStatus->name).
gst_registered boolean True when gst_registered == 1.
gst_date string | null (date) GST registration date.
business_name / business_name2 / business_name3 string | null Up to three trading names (trading_name, trading_name2, trading_name3).
former_name / former_name2 / former_name3 string | null Up to three former names.
description string | null Free-text description.
established_date string | null (date) Date the organisation was established.
employees_count integer | null Employee count.
industry string | null Industry label (industry->name).
website string | null Website URL.
created_at string (ISO 8601) Record creation timestamp.
updated_at string (ISO 8601) Record updated timestamp.
phone_numbers object NumbersResource collection — same shape as on People.
emails object EmailsResource collection — same shape as on People.
addresses object AddressesResource collection — same shape as on People.

The nested resource shapes are documented on the People page.

List organisations

GET /api/v2/organisations

Returns a paginated list of organisations belonging to the enterprise identified by X-Enterprise-Id. Page size is fixed at 100.

Responses

  • 200 — paginated OrganisationsResource collection.
  • 403 Forbidden — caller is not a member of the enterprise.

Retrieve an organisation

GET /api/v2/organisations/{organisation:uuid}

Responses

  • 200 — single OrganisationResource envelope.
  • 403 Forbidden — caller is not a member of the enterprise or the organisation's team_id does not match.

Create an organisation

POST /api/v2/organisations

StoreOrganisationRequest uses the DeniesAccess trait — always returns 403 Forbidden.

Update an organisation

PUT /api/v2/organisations/{organisation:uuid}

UpdateOrganisationRequest uses the DeniesAccess trait — always returns 403 Forbidden.

Delete an organisation

DELETE /api/v2/organisations/{organisation:uuid}

DestroyOrganisationRequest uses the DeniesAccess trait — always returns 403 Forbidden.

V2 differences — Although the write endpoints currently deny access, every V2 request body is normalised by App\Http\Middleware\NormalizeApiInput. Keys are recursively Str::snake()-converted, so LegalName, legalName, and legal_name will all resolve to the same key when write support is enabled. Mixing casings within one payload is supported but order-sensitive: the later sibling wins.