Vendors
📄️ Get vendors (paginated)
Returns a paginated list of vendors. Query params: `page` (default 1), `pageSize` (default 20), `search` (optional name filter).
📄️ Create vendor
Creates a new vendor profile. Body: CreateVendorCommand. Returns 201 Created with the new vendor.
📄️ Advanced vendor search
Full-featured vendor search with filters (name, VAT, categories, products, compliances, subprocessors), full-text search, sorting, and pagination. Body: VendorSearchRequest.
📄️ Get vendor names
Returns a lightweight list of all vendors with only ID and name. Used to populate dropdowns and autocomplete fields.
📄️ Claim vendor profile
Allows an anonymous user to submit a claim request for an existing vendor profile. Body: ClaimVendorProfileCommand with vatIdPrefix, vatId, companyName, contactEmail, and optional message. Returns 202 Accepted.
📄️ Get vendor by ID
Returns the full vendor profile including categories, products, controls, compliances, and subprocessors. Returns 404 if not found.
📄️ Update vendor
Partially updates vendor profile fields (name, description, address, etc.). Body: UpdateVendorCommand. Returns 404 if not found.
📄️ Delete vendor
Permanently deletes the vendor profile. Returns 204 on success, 404 if not found.
📄️ Get vendor by VAT number
Looks up a vendor by VAT country prefix (e.g. `PL`) and VAT number (e.g. `1234567890`). Returns 404 if no vendor matches.
📄️ Check if vendor can be edited
Returns a boolean indicating whether the current user has permission to edit the specified vendor profile.
📄️ Get vendor ESG profile
Returns the Environmental, Social, and Governance (ESG) data for the vendor. Returns 404 if the vendor or its ESG profile does not exist.
📄️ Add product to vendor
Links a catalog product to the vendor. Body: `{ 'productId': '<guid>' }`.
📄️ Remove product from vendor
Removes the link between the vendor and the product. `relationId` is the ID of the vendor-product relation, not the product itself. Returns 204 on success.
📄️ Add category to vendor
Links a catalog category to the vendor. Body: `{ 'categoryId': '<guid>' }`.
📄️ Remove category from vendor
Removes the vendor-category link. `relationId` is the ID of the relation row. Returns 204 on success.
📄️ Add control to vendor
Links a security control to the vendor with a compliance status. Body: `{ 'controlId', 'status', 'comment' }`.
📄️ Update vendor control
Updates the status or comment on an existing vendor-control link. Body: `{ 'status', 'comment' }`. Returns 204 on success.
📄️ Remove control from vendor
Removes the vendor-control link. Returns 204 on success.
📄️ Add compliance to vendor
Links a compliance standard to the vendor. Body: `{ 'complianceId': '<guid>' }`.
📄️ Remove compliance from vendor
Removes the vendor-compliance link. Returns 204 on success.
📄️ Add subprocessor to vendor
Links a third-party subprocessor to the vendor with a status. Body: `{ 'subprocessorId', 'status', 'comment' }`.
📄️ Remove subprocessor from vendor
Removes the vendor-subprocessor link. Returns 204 on success.
📄️ Create vendor resource
Adds a new resource (document, link, file) to the vendor profile. Body: CreateResourceCommand with name, url, categoryId, statusId, availability (`public`|`restricted`). Returns 201 Created.
📄️ Update vendor resource
Updates fields of an existing vendor resource (name, url, category, status, availability). Body: UpdateResourceCommand. Returns 404 if not found.
📄️ Delete vendor resource
Permanently deletes a vendor resource. Returns 204 on success, 404 if not found.
📄️ Request resource access
Submits an access request for a restricted vendor resource. Body: `{ 'message': '...' }` (optional message to the vendor). Returns 202 Accepted.