An enterprise is FinDesk's tenant — internally modelled by App\Models\Team. Every other V2 resource is scoped to one enterprise via the X-Enterprise-Id request header. Use the endpoints below to discover which enterprises the authenticated user can act on.
Attributes
The shape returned by App\Http\Resources\V2\TeamResource::toArray():
| Attribute | Type | Description |
|---|---|---|
id |
string (UUID) | Enterprise UUID — the value to send in X-Enterprise-Id. |
name |
string | Enterprise display name. |
is_active |
boolean | True when the active column equals 1. |
created_at |
string (ISO 8601) | Record creation timestamp. |
updated_at |
string (ISO 8601) | Record updated timestamp. |
List enterprises
GET /api/v2/enterprises
Returns all enterprises the authenticated user belongs to (via auth()->user()->allTeams()). The response is a TeamsResource collection. Unlike the other V2 resources this endpoint is not paginated and does not require the X-Enterprise-Id header — it is the discovery endpoint that tells you which UUIDs are valid.
Request headers
| Header | Required | Description |
|---|---|---|
Authorization |
Yes | Bearer {token}. |
Accept |
Yes | application/json. |
Responses
200—TeamsResourcecollection envelope ({ "data": [ ... ] }).
Retrieve an enterprise
GET /api/v2/enterprises/{team:uuid}
The {team} path parameter is the enterprise UUID. Route-model binding resolves on the uuid column.
Responses
200— singleTeamResourceenvelope.403 Forbidden— caller does not belong to the enterprise.
V2 differences — Enterprise endpoints are read-only.
App\Http\Middleware\NormalizeApiInputruns for every authenticated V2 request, but as no body is accepted on these endpoints it has no observable effect.