Supplier Service
Overview
The Supplier Service manages supplier entities in the system.
Suppliers represent companies or individuals that provide goods or services.
Each supplier includes:
Id- unique identifierCode- unique supplier codeName- supplier nameEmail- contact emailPhone- contact phone numberIsActive- active status flagRelatedEntityId- optional linked entityRelatedEntityRelationship- relationship descriptionPaymentTermsDays- number of days for paymentIsPayOnAccount- whether supplier is paid on accountCreditLimit- optional credit limit
All operations are tenant-aware.
Endpoints
GET
/api/v1/Supplier/GetSupplierById/{id}
Returns a supplier by its ID.
Route parameters:
id(long, required) - supplier identifier
Behavior:
- Looks up the supplier by ID
- Returns
404 Not Foundif supplier does not exist
Response:
SupplierModel- supplier details
Authorization:
- Requires Bearer Token
GET
/api/v1/Supplier/GetSupplierByCode/{code}
Returns a supplier by code.
Route parameters:
code(string, required) - supplier code
Behavior:
- Looks up the supplier by code
- Returns
404 Not Foundif supplier does not exist
Response:
SupplierModel- supplier details
Authorization:
- Requires Bearer Token
GET
/api/v1/Supplier/GetSupplierByEmail/{email}
Returns suppliers by email.
Route parameters:
email(string, required) - supplier email
Behavior:
- Searches suppliers by email
- Returns
404 Not Foundif no suppliers exist
Response:
List<SupplierModel>- suppliers matching the email
Authorization:
- Requires Bearer Token
GET
/api/v1/Supplier/GetAllSuppliers?isActive={isActive}
Returns all suppliers filtered by active status.
Query parameters:
isActive(bool, required) - filter by active/inactive suppliers
Behavior:
- Returns all suppliers matching the status
- Returns
404 Not Foundif no suppliers exist
Response:
List<SupplierModel>- list of suppliers
Authorization:
- Requires Bearer Token
POST
/api/v1/Supplier/AddNewSupplier
Creates a new supplier.
Request body (SupplierModel):
Code(string, required) - supplier codeName(string, required) - supplier nameEmail(string?, optional) - contact emailPhone(string?, optional) - contact phoneIsActive(bool?, optional, default: true)RelatedEntityId(long?, optional)RelatedEntityRelationship(string?, optional)PaymentTermsDays(int?, optional)IsPayOnAccount(bool?, optional)CreditLimit(decimal?, optional)
Behavior:
- Validates required fields in service layer
- Adds the supplier to the database
- Writes an audit log entry on success
Errors:
- Returns
400 Bad Requestif validation - or insertion -
Response:
200 OK-"New supplier added successfully"400 Bad Request-"Add new supplier failed"
Authorization:
- Requires Bearer Token
PUT
/api/v1/Supplier/UpdateSupplierById/{id}
Updates an existing supplier.
Route parameters:
id(long, required) - supplier identifier
Request body (SupplierModel):
- Only the fields to update need to be provided
Idis set from route
Behavior:
- Validates required fields in service layer
- Updates the supplier record in the database
- Writes an audit log entry on success
Errors:
- Returns
400 Bad Requestif validation - or supplier does not exist
Response:
200 OK- empty (success)400 Bad Request- empty (failure)
Authorization:
- Requires Bearer Token
DELETE
/api/v1/Supplier/DeleteSupplierById/{id}
Deletes a supplier by ID.
Route parameters:
id(long, required) - supplier identifier
Behavior:
- Performs a hard delete
- Writes an audit log entry on success
Errors:
- Returns
400 Bad Requestif the supplier does not exist
Response:
200 OK-"Supplier deleted successfully"400 Bad Request-"Supplier not found"
Authorization:
- Requires Bearer Token
Notes
- Validation is enforced in the service layer, not via model attributes
- Code and Email are used for searching and uniqueness
- Tenant-aware operations ensure data isolation per tenant
- Internal errors are logged but not exposed to API consumers