Entities Address Service
Overview
The Entities Address Service manages addresses associated with entities (customers or suppliers).
Addresses can be used for billing, shipping, or general contact purposes.
Each entity address includes:
EntityID- identifier of the associated entityName- address label or nameLine1,Line2- street addressCity,StateRegion,PostalCode,CountryCode- location dataPhone,Email- contact informationIsBilling,IsShipping- flags for address purpose
All operations are tenant-aware and audited.
Endpoints
GET
/api/v1/EntitiesAddress/GetEntityAddressById/{id}
Returns a single address by its ID.
Route parameters:
id(long, required) - address identifier
Behavior:
- Looks up the address by ID
- Returns
404 Not Foundif the address does not exist
Response:
AddressModel- address details
Authorization:
- Requires Bearer Token
GET
/api/v1/EntitiesAddress/GetEntityAddressByEntityID/{entityId}
Returns all addresses for a specific entity.
Route parameters:
entityId(long, required) - entity identifier
Behavior:
- Filters addresses by
EntityID - Returns
404 Not Foundif no addresses exist
Response:
List<AddressModel>- all addresses for the entity
Authorization:
- Requires Bearer Token
POST
/api/v1/EntitiesAddress/AddNewEntityAddress
Creates a new entity address.
Request body (AddressModel):
EntityID(long, required) - associated entityName(string, required) - address name or labelLine1(string, required) - first line of addressLine2(string?, optional) - second line of addressCity(string, required)StateRegion(string?, optional)PostalCode(string, required)CountryCode(string, required)Phone(string?, optional)Email(string?, optional)IsBilling(bool?, optional, default: false)IsShipping(bool?, optional, default: false)
Behavior:
- Validates required fields using
IsReadyToAdd() - Adds the address to the database
- Writes an audit log entry on success
Errors:
- Returns
400 Bad Requestif validation - or insertion -
Response:
200 OK-"New entity address added"400 Bad Request-"Add new entity address failed"
Authorization:
- Requires Bearer Token
PUT
/api/v1/EntitiesAddress/UpdateEntityAddressById/{id}
Updates an existing entity address.
Route parameters:
id(long, required) - address identifier
Request body (AddressModel):
- Only the fields to update need to be provided
- Required for update:
Id(set from route),Name - Optional:
Line1,Line2,City,StateRegion,PostalCode,CountryCode,Phone,Email,IsBilling,IsShipping,EntityID
Behavior:
- Validates required fields using
IsReadyToUpdate() - Updates only the provided fields
- Writes an audit log entry on success
Errors:
- Returns
400 Bad Requestif validation - or address does not exist
Response:
200 OK-"Update Customer Address successful"400 Bad Request-"Update Customer Address failed"
Authorization:
- Requires Bearer Token
DELETE
/api/v1/EntitiesAddress/DeleteEntityAddressById/{id}
Deletes an entity address by its ID.
Route parameters:
id(long, required) - address identifier
Behavior:
- Performs a hard delete
- Writes an audit log entry on success
Errors:
- Returns
400 Bad Requestif the address does not exist
Response:
200 OK-"Customer Address deleted successfully"400 Bad Request-"Customer Address not found"
Authorization:
- Requires Bearer Token
Notes
- Validation is enforced in the service layer (
IsReadyToAdd()/IsReadyToUpdate()) - An entity can have multiple addresses; billing and shipping flags can coexist
- Tenant-aware operations ensure data isolation per tenant
- Internal errors are logged but not exposed to API consumers