/api/v1/businesses/:businessId/locations
auth: jwt (administrator | update_taxcore_credentials)List all Locations for a business.
handlers: LocationsController.list
| name | required | default | description |
|---|---|---|---|
businessId pathuuid | yes | — | Target business UUID. Administrator bypass via requireBusinessAccess. |
APIResponseDataList<LocationDTO>APIError/api/v1/businesses/:businessId/locations
auth: jwt (administrator | update_taxcore_credentials)Create a new Location for the business. locationType defaults server-side; isDefault optionally promotes this Location to the business's default (existing default cleared atomically).
handlers: LocationsController.create
| name | required | default | description |
|---|---|---|---|
businessId pathuuid | yes | — | Target business UUID. |
name bodystring | yes | — | Display name (min 1 char). |
street bodystring | null | no | — | Street address (min 1 char when set). |
city bodystring | null | no | — | City (min 1 char when set). |
administrativeUnit bodystring | null | no | — | State / province / region (min 1 char when set). |
country bodystring | null | no | — | ISO 3166-1 alpha-2 code (e.g. 'VU'). |
locationType body'Headquarters' | 'BranchOffice' | no | — | Defaults to BranchOffice in the repository when omitted. |
isDefault bodyboolean | no | — | Promote this Location to the business default. |
APIResponseDataObject<LocationDTO>APIErrorAPIError/api/v1/businesses/:businessId/locations/:locationId
auth: jwt (administrator | update_taxcore_credentials)Fetch a single Location scoped to the business.
handlers: LocationsController.getById
| name | required | default | description |
|---|---|---|---|
businessId pathuuid | yes | — | Target business UUID. |
locationId pathuuid | yes | — | Target Location UUID. |
APIResponseDataObject<LocationDTO>APIError/api/v1/businesses/:businessId/locations/:locationId
auth: jwt (administrator | update_taxcore_credentials)Partial update of a Location. isDefault=true is routed through the dedicated setDefault path so the previous default is cleared atomically. status='inactive' soft-disables the Location.
handlers: LocationsController.update
| name | required | default | description |
|---|---|---|---|
businessId pathuuid | yes | — | Target business UUID. |
locationId pathuuid | yes | — | Target Location UUID. |
name bodystring | no | — | Display name (min 1 char). |
street bodystring | null | no | — | Street address. Null clears. |
city bodystring | null | no | — | City. Null clears. |
administrativeUnit bodystring | null | no | — | Administrative unit. Null clears. |
country bodystring | null | no | — | ISO 3166-1 alpha-2 code, or null. |
locationType body'Headquarters' | 'BranchOffice' | no | — | Updated location type. |
status body'active' | 'inactive' | no | — | Soft-enable/disable. |
isDefault bodyboolean | no | — | Promote this Location to the business default (atomic swap). |
APIResponseDataObject<LocationDTO>APIErrorAPIError/api/v1/businesses/:businessId/locations/:locationId
auth: jwt (administrator | update_taxcore_credentials)Hard-delete a Location (or soft-delete depending on repository impl — see ILocationRepository.remove).
handlers: LocationsController.remove
| name | required | default | description |
|---|---|---|---|
businessId pathuuid | yes | — | Target business UUID. |
locationId pathuuid | yes | — | Target Location UUID. |
voidAPIError