# 🏪 Vendors

Vendor and supplier management

## List vendors

> Get a paginated list of vendors with support for search, status, and category filters

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Vendors","description":"Vendor and supplier management"}],"servers":[{"url":"https://skhokho.ai","description":"Production"},{"url":"http://102.209.118.152:8000/","description":"Local"},{"url":"https://dev.skhokho.ai","description":"Development"}],"security":[{"cookieAuth":[]},{"basicAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"}},"schemas":{"Vendor":{"type":"object","description":"Comprehensive serializer for Vendor model.\nHandles multilingual fields, nested relationships, computed fields, and vendor-specific metrics.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"name":{"type":"string","maxLength":300},"description":{"type":"string","nullable":true},"entity_type":{"enum":["individual","company","non_profit","government","partnership","other"],"type":"string","description":"* `individual` - Individual\n* `company` - Company\n* `non_profit` - Non-Profit Organization\n* `government` - Government Entity\n* `partnership` - Partnership\n* `other` - Other"},"entity_type_display":{"type":"string","nullable":true,"readOnly":true},"vendor_status":{"enum":["potential","active","preferred","on_hold","inactive","blacklisted"],"type":"string","description":"* `potential` - Potential Vendor\n* `active` - Active Vendor\n* `preferred` - Preferred Vendor\n* `on_hold` - On Hold\n* `inactive` - Inactive\n* `blacklisted` - Blacklisted"},"vendor_status_display":{"type":"string","nullable":true,"readOnly":true},"vendor_category":{"enum":["goods","services","both","contractor","consultant","other"],"type":"string","description":"* `goods` - Goods Supplier\n* `services` - Service Provider\n* `both` - Goods & Services\n* `contractor` - Contractor\n* `consultant` - Consultant\n* `other` - Other"},"vendor_category_display":{"type":"string","nullable":true,"readOnly":true},"industry":{"enum":["agriculture","cleaning","construction","consulting","creative","education","events","handyman","health","home_based","hospitality","it_support","legal","logistics","manufacturing","marketing","music","non_profit","online_retail","photography","printing","professional","travel","utilities","wholesale","writing","virtual_assistance","other","",null],"type":"string","description":"* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other","nullable":true},"industry_display":{"type":"string","nullable":true,"readOnly":true},"website":{"type":"string","format":"uri","nullable":true,"maxLength":300},"company_size":{"type":"string","nullable":true,"maxLength":100},"annual_revenue":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","nullable":true,"description":"Annual revenue in USD"},"minimum_order_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","nullable":true,"description":"Minimum order amount required"},"default_currency":{"type":"string","description":"Default currency code (ISO 4217) for this entity's transactions","maxLength":3},"first_contact_date":{"type":"string","format":"date","nullable":true},"last_contact_date":{"type":"string","format":"date","nullable":true},"next_follow_up_date":{"type":"string","format":"date","nullable":true},"last_order_date":{"type":"string","format":"date","nullable":true},"contract_start_date":{"type":"string","format":"date","nullable":true},"contract_end_date":{"type":"string","format":"date","nullable":true},"quality_rating":{"type":"string","format":"decimal","pattern":"^-?\\d{0,1}(?:\\.\\d{0,2})?$","nullable":true,"description":"Quality rating out of 5.00"},"delivery_rating":{"type":"string","format":"decimal","pattern":"^-?\\d{0,1}(?:\\.\\d{0,2})?$","nullable":true,"description":"Delivery performance rating out of 5.00"},"created_by":{"allOf":[{"$ref":"#/components/schemas/ClientPersonMini"}],"readOnly":true},"assigned_to":{"allOf":[{"$ref":"#/components/schemas/ClientPersonMini"}],"readOnly":true},"account_owner":{"allOf":[{"$ref":"#/components/schemas/ClientPersonMini"}],"readOnly":true},"address":{"allOf":[{"$ref":"#/components/schemas/ClientAddress"}],"nullable":true},"banking_information":{"allOf":[{"$ref":"#/components/schemas/ClientBankingInformation"}],"nullable":true},"days_since_last_contact":{"type":"integer","nullable":true,"readOnly":true},"days_since_last_order":{"type":"integer","nullable":true,"readOnly":true},"is_follow_up_overdue":{"type":"boolean","readOnly":true},"is_contract_active":{"type":"boolean","readOnly":true},"date_created":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"last_updated":{"type":"string","format":"date-time","readOnly":true,"nullable":true}},"required":["account_owner","assigned_to","created_by","date_created","days_since_last_contact","days_since_last_order","entity_type_display","industry_display","is_contract_active","is_follow_up_overdue","last_updated","name","vendor_category_display","vendor_status_display"]},"ClientPersonMini":{"type":"object","description":"Lightweight serializer for Person model.\nUsed for nested person references in other serializers.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"full_name":{"type":"string","readOnly":true}},"required":["full_name"]},"ClientAddress":{"type":"object","description":"Serializer for Address model.\nCountry field is explicitly defined as CharField to handle django-countries CountryField.","properties":{"address_line_1":{"type":"string","nullable":true,"maxLength":300},"address_line_2":{"type":"string","nullable":true,"maxLength":300},"city":{"type":"string","nullable":true,"maxLength":300},"province_state":{"type":"string","nullable":true,"title":"Province/State","maxLength":300},"postal_code":{"type":"string","nullable":true,"maxLength":300},"country":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true,"title":"Phone Number","pattern":"^\\+?1?\\d{9,15}$","maxLength":17}}},"ClientBankingInformation":{"type":"object","description":"Serializer for BankingInformation model with all banking fields.","properties":{"bank_name":{"type":"string","nullable":true,"maxLength":200},"account_number":{"type":"string","nullable":true,"maxLength":100},"branch_code":{"type":"string","nullable":true,"maxLength":50},"account_type":{"enum":["checking","savings","business","other","",null],"type":"string","description":"* `checking` - Checking\n* `savings` - Savings\n* `business` - Business\n* `other` - Other","nullable":true},"routing_number":{"type":"string","nullable":true,"maxLength":50},"swift_code":{"type":"string","nullable":true,"maxLength":50}}}}},"paths":{"/api/v1.0/organisation/{org_uid}/vendors/":{"get":{"operationId":"organisation_vendors_list","description":"Get a paginated list of vendors with support for search, status, and category filters","summary":"List vendors","parameters":[{"in":"query","name":"category","schema":{"type":"string","enum":["both","consultant","contractor","goods","other","services"]},"description":"Filter by vendor category"},{"in":"query","name":"entity_type","schema":{"type":"string","enum":["client","lead","vendor"]},"description":"Filter by entity type"},{"in":"query","name":"industry","schema":{"type":"string","enum":["agriculture","construction","energy","finance","healthcare","hospitality","information_technology","manufacturing","media","other","retail","services","transportation"]},"description":"Filter by industry"},{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true},{"in":"query","name":"search","schema":{"type":"string"},"description":"Search vendors by name or website"},{"in":"query","name":"status","schema":{"type":"string","enum":["active","blacklisted","inactive","on_hold","potential","preferred"]},"description":"Filter by vendor status"}],"tags":["Vendors"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Vendor"}}}},"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}}}}}}
```

## Create vendor

> Create a new vendor. Vendor name is required.

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Vendors","description":"Vendor and supplier management"}],"servers":[{"url":"https://skhokho.ai","description":"Production"},{"url":"http://102.209.118.152:8000/","description":"Local"},{"url":"https://dev.skhokho.ai","description":"Development"}],"security":[{"cookieAuth":[]},{"basicAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"}},"schemas":{"VendorRequest":{"type":"object","description":"Comprehensive serializer for Vendor model.\nHandles multilingual fields, nested relationships, computed fields, and vendor-specific metrics.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"name":{"type":"string","minLength":1,"maxLength":300},"description":{"type":"string","nullable":true},"entity_type":{"enum":["individual","company","non_profit","government","partnership","other"],"type":"string","description":"* `individual` - Individual\n* `company` - Company\n* `non_profit` - Non-Profit Organization\n* `government` - Government Entity\n* `partnership` - Partnership\n* `other` - Other"},"vendor_status":{"enum":["potential","active","preferred","on_hold","inactive","blacklisted"],"type":"string","description":"* `potential` - Potential Vendor\n* `active` - Active Vendor\n* `preferred` - Preferred Vendor\n* `on_hold` - On Hold\n* `inactive` - Inactive\n* `blacklisted` - Blacklisted"},"vendor_category":{"enum":["goods","services","both","contractor","consultant","other"],"type":"string","description":"* `goods` - Goods Supplier\n* `services` - Service Provider\n* `both` - Goods & Services\n* `contractor` - Contractor\n* `consultant` - Consultant\n* `other` - Other"},"industry":{"enum":["agriculture","cleaning","construction","consulting","creative","education","events","handyman","health","home_based","hospitality","it_support","legal","logistics","manufacturing","marketing","music","non_profit","online_retail","photography","printing","professional","travel","utilities","wholesale","writing","virtual_assistance","other","",null],"type":"string","description":"* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other","nullable":true},"website":{"type":"string","format":"uri","nullable":true,"maxLength":300},"company_size":{"type":"string","nullable":true,"maxLength":100},"annual_revenue":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","nullable":true,"description":"Annual revenue in USD"},"minimum_order_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","nullable":true,"description":"Minimum order amount required"},"default_currency":{"type":"string","minLength":1,"description":"Default currency code (ISO 4217) for this entity's transactions","maxLength":3},"first_contact_date":{"type":"string","format":"date","nullable":true},"last_contact_date":{"type":"string","format":"date","nullable":true},"next_follow_up_date":{"type":"string","format":"date","nullable":true},"last_order_date":{"type":"string","format":"date","nullable":true},"contract_start_date":{"type":"string","format":"date","nullable":true},"contract_end_date":{"type":"string","format":"date","nullable":true},"quality_rating":{"type":"string","format":"decimal","pattern":"^-?\\d{0,1}(?:\\.\\d{0,2})?$","nullable":true,"description":"Quality rating out of 5.00"},"delivery_rating":{"type":"string","format":"decimal","pattern":"^-?\\d{0,1}(?:\\.\\d{0,2})?$","nullable":true,"description":"Delivery performance rating out of 5.00"},"address":{"allOf":[{"$ref":"#/components/schemas/ClientAddressRequest"}],"nullable":true},"banking_information":{"allOf":[{"$ref":"#/components/schemas/ClientBankingInformationRequest"}],"nullable":true}},"required":["name"]},"ClientAddressRequest":{"type":"object","description":"Serializer for Address model.\nCountry field is explicitly defined as CharField to handle django-countries CountryField.","properties":{"address_line_1":{"type":"string","nullable":true,"maxLength":300},"address_line_2":{"type":"string","nullable":true,"maxLength":300},"city":{"type":"string","nullable":true,"maxLength":300},"province_state":{"type":"string","nullable":true,"title":"Province/State","maxLength":300},"postal_code":{"type":"string","nullable":true,"maxLength":300},"country":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true,"title":"Phone Number","pattern":"^\\+?1?\\d{9,15}$","maxLength":17}}},"ClientBankingInformationRequest":{"type":"object","description":"Serializer for BankingInformation model with all banking fields.","properties":{"bank_name":{"type":"string","nullable":true,"maxLength":200},"account_number":{"type":"string","nullable":true,"maxLength":100},"branch_code":{"type":"string","nullable":true,"maxLength":50},"account_type":{"enum":["checking","savings","business","other","",null],"type":"string","description":"* `checking` - Checking\n* `savings` - Savings\n* `business` - Business\n* `other` - Other","nullable":true},"routing_number":{"type":"string","nullable":true,"maxLength":50},"swift_code":{"type":"string","nullable":true,"maxLength":50}}},"Vendor":{"type":"object","description":"Comprehensive serializer for Vendor model.\nHandles multilingual fields, nested relationships, computed fields, and vendor-specific metrics.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"name":{"type":"string","maxLength":300},"description":{"type":"string","nullable":true},"entity_type":{"enum":["individual","company","non_profit","government","partnership","other"],"type":"string","description":"* `individual` - Individual\n* `company` - Company\n* `non_profit` - Non-Profit Organization\n* `government` - Government Entity\n* `partnership` - Partnership\n* `other` - Other"},"entity_type_display":{"type":"string","nullable":true,"readOnly":true},"vendor_status":{"enum":["potential","active","preferred","on_hold","inactive","blacklisted"],"type":"string","description":"* `potential` - Potential Vendor\n* `active` - Active Vendor\n* `preferred` - Preferred Vendor\n* `on_hold` - On Hold\n* `inactive` - Inactive\n* `blacklisted` - Blacklisted"},"vendor_status_display":{"type":"string","nullable":true,"readOnly":true},"vendor_category":{"enum":["goods","services","both","contractor","consultant","other"],"type":"string","description":"* `goods` - Goods Supplier\n* `services` - Service Provider\n* `both` - Goods & Services\n* `contractor` - Contractor\n* `consultant` - Consultant\n* `other` - Other"},"vendor_category_display":{"type":"string","nullable":true,"readOnly":true},"industry":{"enum":["agriculture","cleaning","construction","consulting","creative","education","events","handyman","health","home_based","hospitality","it_support","legal","logistics","manufacturing","marketing","music","non_profit","online_retail","photography","printing","professional","travel","utilities","wholesale","writing","virtual_assistance","other","",null],"type":"string","description":"* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other","nullable":true},"industry_display":{"type":"string","nullable":true,"readOnly":true},"website":{"type":"string","format":"uri","nullable":true,"maxLength":300},"company_size":{"type":"string","nullable":true,"maxLength":100},"annual_revenue":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","nullable":true,"description":"Annual revenue in USD"},"minimum_order_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","nullable":true,"description":"Minimum order amount required"},"default_currency":{"type":"string","description":"Default currency code (ISO 4217) for this entity's transactions","maxLength":3},"first_contact_date":{"type":"string","format":"date","nullable":true},"last_contact_date":{"type":"string","format":"date","nullable":true},"next_follow_up_date":{"type":"string","format":"date","nullable":true},"last_order_date":{"type":"string","format":"date","nullable":true},"contract_start_date":{"type":"string","format":"date","nullable":true},"contract_end_date":{"type":"string","format":"date","nullable":true},"quality_rating":{"type":"string","format":"decimal","pattern":"^-?\\d{0,1}(?:\\.\\d{0,2})?$","nullable":true,"description":"Quality rating out of 5.00"},"delivery_rating":{"type":"string","format":"decimal","pattern":"^-?\\d{0,1}(?:\\.\\d{0,2})?$","nullable":true,"description":"Delivery performance rating out of 5.00"},"created_by":{"allOf":[{"$ref":"#/components/schemas/ClientPersonMini"}],"readOnly":true},"assigned_to":{"allOf":[{"$ref":"#/components/schemas/ClientPersonMini"}],"readOnly":true},"account_owner":{"allOf":[{"$ref":"#/components/schemas/ClientPersonMini"}],"readOnly":true},"address":{"allOf":[{"$ref":"#/components/schemas/ClientAddress"}],"nullable":true},"banking_information":{"allOf":[{"$ref":"#/components/schemas/ClientBankingInformation"}],"nullable":true},"days_since_last_contact":{"type":"integer","nullable":true,"readOnly":true},"days_since_last_order":{"type":"integer","nullable":true,"readOnly":true},"is_follow_up_overdue":{"type":"boolean","readOnly":true},"is_contract_active":{"type":"boolean","readOnly":true},"date_created":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"last_updated":{"type":"string","format":"date-time","readOnly":true,"nullable":true}},"required":["account_owner","assigned_to","created_by","date_created","days_since_last_contact","days_since_last_order","entity_type_display","industry_display","is_contract_active","is_follow_up_overdue","last_updated","name","vendor_category_display","vendor_status_display"]},"ClientPersonMini":{"type":"object","description":"Lightweight serializer for Person model.\nUsed for nested person references in other serializers.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"full_name":{"type":"string","readOnly":true}},"required":["full_name"]},"ClientAddress":{"type":"object","description":"Serializer for Address model.\nCountry field is explicitly defined as CharField to handle django-countries CountryField.","properties":{"address_line_1":{"type":"string","nullable":true,"maxLength":300},"address_line_2":{"type":"string","nullable":true,"maxLength":300},"city":{"type":"string","nullable":true,"maxLength":300},"province_state":{"type":"string","nullable":true,"title":"Province/State","maxLength":300},"postal_code":{"type":"string","nullable":true,"maxLength":300},"country":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true,"title":"Phone Number","pattern":"^\\+?1?\\d{9,15}$","maxLength":17}}},"ClientBankingInformation":{"type":"object","description":"Serializer for BankingInformation model with all banking fields.","properties":{"bank_name":{"type":"string","nullable":true,"maxLength":200},"account_number":{"type":"string","nullable":true,"maxLength":100},"branch_code":{"type":"string","nullable":true,"maxLength":50},"account_type":{"enum":["checking","savings","business","other","",null],"type":"string","description":"* `checking` - Checking\n* `savings` - Savings\n* `business` - Business\n* `other` - Other","nullable":true},"routing_number":{"type":"string","nullable":true,"maxLength":50},"swift_code":{"type":"string","nullable":true,"maxLength":50}}}}},"paths":{"/api/v1.0/organisation/{org_uid}/vendors/create/":{"post":{"operationId":"organisation_vendors_create_create","description":"Create a new vendor. Vendor name is required.","summary":"Create vendor","parameters":[{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true}],"tags":["Vendors"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VendorRequest"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/VendorRequest"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/VendorRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Vendor"}}},"description":""},"400":{"description":"Bad Request - Invalid input or missing required fields"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}}}}}}
```

## Get vendor

> Retrieve a specific vendor by unique\_id

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Vendors","description":"Vendor and supplier management"}],"servers":[{"url":"https://skhokho.ai","description":"Production"},{"url":"http://102.209.118.152:8000/","description":"Local"},{"url":"https://dev.skhokho.ai","description":"Development"}],"security":[{"cookieAuth":[]},{"basicAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"}},"schemas":{"Vendor":{"type":"object","description":"Comprehensive serializer for Vendor model.\nHandles multilingual fields, nested relationships, computed fields, and vendor-specific metrics.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"name":{"type":"string","maxLength":300},"description":{"type":"string","nullable":true},"entity_type":{"enum":["individual","company","non_profit","government","partnership","other"],"type":"string","description":"* `individual` - Individual\n* `company` - Company\n* `non_profit` - Non-Profit Organization\n* `government` - Government Entity\n* `partnership` - Partnership\n* `other` - Other"},"entity_type_display":{"type":"string","nullable":true,"readOnly":true},"vendor_status":{"enum":["potential","active","preferred","on_hold","inactive","blacklisted"],"type":"string","description":"* `potential` - Potential Vendor\n* `active` - Active Vendor\n* `preferred` - Preferred Vendor\n* `on_hold` - On Hold\n* `inactive` - Inactive\n* `blacklisted` - Blacklisted"},"vendor_status_display":{"type":"string","nullable":true,"readOnly":true},"vendor_category":{"enum":["goods","services","both","contractor","consultant","other"],"type":"string","description":"* `goods` - Goods Supplier\n* `services` - Service Provider\n* `both` - Goods & Services\n* `contractor` - Contractor\n* `consultant` - Consultant\n* `other` - Other"},"vendor_category_display":{"type":"string","nullable":true,"readOnly":true},"industry":{"enum":["agriculture","cleaning","construction","consulting","creative","education","events","handyman","health","home_based","hospitality","it_support","legal","logistics","manufacturing","marketing","music","non_profit","online_retail","photography","printing","professional","travel","utilities","wholesale","writing","virtual_assistance","other","",null],"type":"string","description":"* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other","nullable":true},"industry_display":{"type":"string","nullable":true,"readOnly":true},"website":{"type":"string","format":"uri","nullable":true,"maxLength":300},"company_size":{"type":"string","nullable":true,"maxLength":100},"annual_revenue":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","nullable":true,"description":"Annual revenue in USD"},"minimum_order_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","nullable":true,"description":"Minimum order amount required"},"default_currency":{"type":"string","description":"Default currency code (ISO 4217) for this entity's transactions","maxLength":3},"first_contact_date":{"type":"string","format":"date","nullable":true},"last_contact_date":{"type":"string","format":"date","nullable":true},"next_follow_up_date":{"type":"string","format":"date","nullable":true},"last_order_date":{"type":"string","format":"date","nullable":true},"contract_start_date":{"type":"string","format":"date","nullable":true},"contract_end_date":{"type":"string","format":"date","nullable":true},"quality_rating":{"type":"string","format":"decimal","pattern":"^-?\\d{0,1}(?:\\.\\d{0,2})?$","nullable":true,"description":"Quality rating out of 5.00"},"delivery_rating":{"type":"string","format":"decimal","pattern":"^-?\\d{0,1}(?:\\.\\d{0,2})?$","nullable":true,"description":"Delivery performance rating out of 5.00"},"created_by":{"allOf":[{"$ref":"#/components/schemas/ClientPersonMini"}],"readOnly":true},"assigned_to":{"allOf":[{"$ref":"#/components/schemas/ClientPersonMini"}],"readOnly":true},"account_owner":{"allOf":[{"$ref":"#/components/schemas/ClientPersonMini"}],"readOnly":true},"address":{"allOf":[{"$ref":"#/components/schemas/ClientAddress"}],"nullable":true},"banking_information":{"allOf":[{"$ref":"#/components/schemas/ClientBankingInformation"}],"nullable":true},"days_since_last_contact":{"type":"integer","nullable":true,"readOnly":true},"days_since_last_order":{"type":"integer","nullable":true,"readOnly":true},"is_follow_up_overdue":{"type":"boolean","readOnly":true},"is_contract_active":{"type":"boolean","readOnly":true},"date_created":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"last_updated":{"type":"string","format":"date-time","readOnly":true,"nullable":true}},"required":["account_owner","assigned_to","created_by","date_created","days_since_last_contact","days_since_last_order","entity_type_display","industry_display","is_contract_active","is_follow_up_overdue","last_updated","name","vendor_category_display","vendor_status_display"]},"ClientPersonMini":{"type":"object","description":"Lightweight serializer for Person model.\nUsed for nested person references in other serializers.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"full_name":{"type":"string","readOnly":true}},"required":["full_name"]},"ClientAddress":{"type":"object","description":"Serializer for Address model.\nCountry field is explicitly defined as CharField to handle django-countries CountryField.","properties":{"address_line_1":{"type":"string","nullable":true,"maxLength":300},"address_line_2":{"type":"string","nullable":true,"maxLength":300},"city":{"type":"string","nullable":true,"maxLength":300},"province_state":{"type":"string","nullable":true,"title":"Province/State","maxLength":300},"postal_code":{"type":"string","nullable":true,"maxLength":300},"country":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true,"title":"Phone Number","pattern":"^\\+?1?\\d{9,15}$","maxLength":17}}},"ClientBankingInformation":{"type":"object","description":"Serializer for BankingInformation model with all banking fields.","properties":{"bank_name":{"type":"string","nullable":true,"maxLength":200},"account_number":{"type":"string","nullable":true,"maxLength":100},"branch_code":{"type":"string","nullable":true,"maxLength":50},"account_type":{"enum":["checking","savings","business","other","",null],"type":"string","description":"* `checking` - Checking\n* `savings` - Savings\n* `business` - Business\n* `other` - Other","nullable":true},"routing_number":{"type":"string","nullable":true,"maxLength":50},"swift_code":{"type":"string","nullable":true,"maxLength":50}}}}},"paths":{"/api/v1.0/organisation/{org_uid}/vendors/{unique_id}/":{"get":{"operationId":"organisation_vendors_retrieve","description":"Retrieve a specific vendor by unique_id","summary":"Get vendor","parameters":[{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true},{"in":"path","name":"unique_id","schema":{"type":"string"},"required":true}],"tags":["Vendors"],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Vendor"}}},"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}}}}
```

## Update vendor

> Update a specific vendor (full or partial update). For PATCH requests, only provided fields are updated.

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Vendors","description":"Vendor and supplier management"}],"servers":[{"url":"https://skhokho.ai","description":"Production"},{"url":"http://102.209.118.152:8000/","description":"Local"},{"url":"https://dev.skhokho.ai","description":"Development"}],"security":[{"cookieAuth":[]},{"basicAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"}},"schemas":{"VendorRequest":{"type":"object","description":"Comprehensive serializer for Vendor model.\nHandles multilingual fields, nested relationships, computed fields, and vendor-specific metrics.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"name":{"type":"string","minLength":1,"maxLength":300},"description":{"type":"string","nullable":true},"entity_type":{"enum":["individual","company","non_profit","government","partnership","other"],"type":"string","description":"* `individual` - Individual\n* `company` - Company\n* `non_profit` - Non-Profit Organization\n* `government` - Government Entity\n* `partnership` - Partnership\n* `other` - Other"},"vendor_status":{"enum":["potential","active","preferred","on_hold","inactive","blacklisted"],"type":"string","description":"* `potential` - Potential Vendor\n* `active` - Active Vendor\n* `preferred` - Preferred Vendor\n* `on_hold` - On Hold\n* `inactive` - Inactive\n* `blacklisted` - Blacklisted"},"vendor_category":{"enum":["goods","services","both","contractor","consultant","other"],"type":"string","description":"* `goods` - Goods Supplier\n* `services` - Service Provider\n* `both` - Goods & Services\n* `contractor` - Contractor\n* `consultant` - Consultant\n* `other` - Other"},"industry":{"enum":["agriculture","cleaning","construction","consulting","creative","education","events","handyman","health","home_based","hospitality","it_support","legal","logistics","manufacturing","marketing","music","non_profit","online_retail","photography","printing","professional","travel","utilities","wholesale","writing","virtual_assistance","other","",null],"type":"string","description":"* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other","nullable":true},"website":{"type":"string","format":"uri","nullable":true,"maxLength":300},"company_size":{"type":"string","nullable":true,"maxLength":100},"annual_revenue":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","nullable":true,"description":"Annual revenue in USD"},"minimum_order_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","nullable":true,"description":"Minimum order amount required"},"default_currency":{"type":"string","minLength":1,"description":"Default currency code (ISO 4217) for this entity's transactions","maxLength":3},"first_contact_date":{"type":"string","format":"date","nullable":true},"last_contact_date":{"type":"string","format":"date","nullable":true},"next_follow_up_date":{"type":"string","format":"date","nullable":true},"last_order_date":{"type":"string","format":"date","nullable":true},"contract_start_date":{"type":"string","format":"date","nullable":true},"contract_end_date":{"type":"string","format":"date","nullable":true},"quality_rating":{"type":"string","format":"decimal","pattern":"^-?\\d{0,1}(?:\\.\\d{0,2})?$","nullable":true,"description":"Quality rating out of 5.00"},"delivery_rating":{"type":"string","format":"decimal","pattern":"^-?\\d{0,1}(?:\\.\\d{0,2})?$","nullable":true,"description":"Delivery performance rating out of 5.00"},"address":{"allOf":[{"$ref":"#/components/schemas/ClientAddressRequest"}],"nullable":true},"banking_information":{"allOf":[{"$ref":"#/components/schemas/ClientBankingInformationRequest"}],"nullable":true}},"required":["name"]},"ClientAddressRequest":{"type":"object","description":"Serializer for Address model.\nCountry field is explicitly defined as CharField to handle django-countries CountryField.","properties":{"address_line_1":{"type":"string","nullable":true,"maxLength":300},"address_line_2":{"type":"string","nullable":true,"maxLength":300},"city":{"type":"string","nullable":true,"maxLength":300},"province_state":{"type":"string","nullable":true,"title":"Province/State","maxLength":300},"postal_code":{"type":"string","nullable":true,"maxLength":300},"country":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true,"title":"Phone Number","pattern":"^\\+?1?\\d{9,15}$","maxLength":17}}},"ClientBankingInformationRequest":{"type":"object","description":"Serializer for BankingInformation model with all banking fields.","properties":{"bank_name":{"type":"string","nullable":true,"maxLength":200},"account_number":{"type":"string","nullable":true,"maxLength":100},"branch_code":{"type":"string","nullable":true,"maxLength":50},"account_type":{"enum":["checking","savings","business","other","",null],"type":"string","description":"* `checking` - Checking\n* `savings` - Savings\n* `business` - Business\n* `other` - Other","nullable":true},"routing_number":{"type":"string","nullable":true,"maxLength":50},"swift_code":{"type":"string","nullable":true,"maxLength":50}}},"Vendor":{"type":"object","description":"Comprehensive serializer for Vendor model.\nHandles multilingual fields, nested relationships, computed fields, and vendor-specific metrics.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"name":{"type":"string","maxLength":300},"description":{"type":"string","nullable":true},"entity_type":{"enum":["individual","company","non_profit","government","partnership","other"],"type":"string","description":"* `individual` - Individual\n* `company` - Company\n* `non_profit` - Non-Profit Organization\n* `government` - Government Entity\n* `partnership` - Partnership\n* `other` - Other"},"entity_type_display":{"type":"string","nullable":true,"readOnly":true},"vendor_status":{"enum":["potential","active","preferred","on_hold","inactive","blacklisted"],"type":"string","description":"* `potential` - Potential Vendor\n* `active` - Active Vendor\n* `preferred` - Preferred Vendor\n* `on_hold` - On Hold\n* `inactive` - Inactive\n* `blacklisted` - Blacklisted"},"vendor_status_display":{"type":"string","nullable":true,"readOnly":true},"vendor_category":{"enum":["goods","services","both","contractor","consultant","other"],"type":"string","description":"* `goods` - Goods Supplier\n* `services` - Service Provider\n* `both` - Goods & Services\n* `contractor` - Contractor\n* `consultant` - Consultant\n* `other` - Other"},"vendor_category_display":{"type":"string","nullable":true,"readOnly":true},"industry":{"enum":["agriculture","cleaning","construction","consulting","creative","education","events","handyman","health","home_based","hospitality","it_support","legal","logistics","manufacturing","marketing","music","non_profit","online_retail","photography","printing","professional","travel","utilities","wholesale","writing","virtual_assistance","other","",null],"type":"string","description":"* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other","nullable":true},"industry_display":{"type":"string","nullable":true,"readOnly":true},"website":{"type":"string","format":"uri","nullable":true,"maxLength":300},"company_size":{"type":"string","nullable":true,"maxLength":100},"annual_revenue":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","nullable":true,"description":"Annual revenue in USD"},"minimum_order_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","nullable":true,"description":"Minimum order amount required"},"default_currency":{"type":"string","description":"Default currency code (ISO 4217) for this entity's transactions","maxLength":3},"first_contact_date":{"type":"string","format":"date","nullable":true},"last_contact_date":{"type":"string","format":"date","nullable":true},"next_follow_up_date":{"type":"string","format":"date","nullable":true},"last_order_date":{"type":"string","format":"date","nullable":true},"contract_start_date":{"type":"string","format":"date","nullable":true},"contract_end_date":{"type":"string","format":"date","nullable":true},"quality_rating":{"type":"string","format":"decimal","pattern":"^-?\\d{0,1}(?:\\.\\d{0,2})?$","nullable":true,"description":"Quality rating out of 5.00"},"delivery_rating":{"type":"string","format":"decimal","pattern":"^-?\\d{0,1}(?:\\.\\d{0,2})?$","nullable":true,"description":"Delivery performance rating out of 5.00"},"created_by":{"allOf":[{"$ref":"#/components/schemas/ClientPersonMini"}],"readOnly":true},"assigned_to":{"allOf":[{"$ref":"#/components/schemas/ClientPersonMini"}],"readOnly":true},"account_owner":{"allOf":[{"$ref":"#/components/schemas/ClientPersonMini"}],"readOnly":true},"address":{"allOf":[{"$ref":"#/components/schemas/ClientAddress"}],"nullable":true},"banking_information":{"allOf":[{"$ref":"#/components/schemas/ClientBankingInformation"}],"nullable":true},"days_since_last_contact":{"type":"integer","nullable":true,"readOnly":true},"days_since_last_order":{"type":"integer","nullable":true,"readOnly":true},"is_follow_up_overdue":{"type":"boolean","readOnly":true},"is_contract_active":{"type":"boolean","readOnly":true},"date_created":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"last_updated":{"type":"string","format":"date-time","readOnly":true,"nullable":true}},"required":["account_owner","assigned_to","created_by","date_created","days_since_last_contact","days_since_last_order","entity_type_display","industry_display","is_contract_active","is_follow_up_overdue","last_updated","name","vendor_category_display","vendor_status_display"]},"ClientPersonMini":{"type":"object","description":"Lightweight serializer for Person model.\nUsed for nested person references in other serializers.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"full_name":{"type":"string","readOnly":true}},"required":["full_name"]},"ClientAddress":{"type":"object","description":"Serializer for Address model.\nCountry field is explicitly defined as CharField to handle django-countries CountryField.","properties":{"address_line_1":{"type":"string","nullable":true,"maxLength":300},"address_line_2":{"type":"string","nullable":true,"maxLength":300},"city":{"type":"string","nullable":true,"maxLength":300},"province_state":{"type":"string","nullable":true,"title":"Province/State","maxLength":300},"postal_code":{"type":"string","nullable":true,"maxLength":300},"country":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true,"title":"Phone Number","pattern":"^\\+?1?\\d{9,15}$","maxLength":17}}},"ClientBankingInformation":{"type":"object","description":"Serializer for BankingInformation model with all banking fields.","properties":{"bank_name":{"type":"string","nullable":true,"maxLength":200},"account_number":{"type":"string","nullable":true,"maxLength":100},"branch_code":{"type":"string","nullable":true,"maxLength":50},"account_type":{"enum":["checking","savings","business","other","",null],"type":"string","description":"* `checking` - Checking\n* `savings` - Savings\n* `business` - Business\n* `other` - Other","nullable":true},"routing_number":{"type":"string","nullable":true,"maxLength":50},"swift_code":{"type":"string","nullable":true,"maxLength":50}}}}},"paths":{"/api/v1.0/organisation/{org_uid}/vendors/{unique_id}/update/":{"put":{"operationId":"organisation_vendors_update_update","description":"Update a specific vendor (full or partial update). For PATCH requests, only provided fields are updated.","summary":"Update vendor","parameters":[{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true},{"in":"path","name":"unique_id","schema":{"type":"string"},"required":true}],"tags":["Vendors"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VendorRequest"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/VendorRequest"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/VendorRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Vendor"}}},"description":""},"400":{"description":"Bad Request - Invalid input"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}}}}
```

## Update vendor

> Update a specific vendor (full or partial update). For PATCH requests, only provided fields are updated.

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Vendors","description":"Vendor and supplier management"}],"servers":[{"url":"https://skhokho.ai","description":"Production"},{"url":"http://102.209.118.152:8000/","description":"Local"},{"url":"https://dev.skhokho.ai","description":"Development"}],"security":[{"cookieAuth":[]},{"basicAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"}},"schemas":{"PatchedVendorRequest":{"type":"object","description":"Comprehensive serializer for Vendor model.\nHandles multilingual fields, nested relationships, computed fields, and vendor-specific metrics.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"name":{"type":"string","minLength":1,"maxLength":300},"description":{"type":"string","nullable":true},"entity_type":{"enum":["individual","company","non_profit","government","partnership","other"],"type":"string","description":"* `individual` - Individual\n* `company` - Company\n* `non_profit` - Non-Profit Organization\n* `government` - Government Entity\n* `partnership` - Partnership\n* `other` - Other"},"vendor_status":{"enum":["potential","active","preferred","on_hold","inactive","blacklisted"],"type":"string","description":"* `potential` - Potential Vendor\n* `active` - Active Vendor\n* `preferred` - Preferred Vendor\n* `on_hold` - On Hold\n* `inactive` - Inactive\n* `blacklisted` - Blacklisted"},"vendor_category":{"enum":["goods","services","both","contractor","consultant","other"],"type":"string","description":"* `goods` - Goods Supplier\n* `services` - Service Provider\n* `both` - Goods & Services\n* `contractor` - Contractor\n* `consultant` - Consultant\n* `other` - Other"},"industry":{"enum":["agriculture","cleaning","construction","consulting","creative","education","events","handyman","health","home_based","hospitality","it_support","legal","logistics","manufacturing","marketing","music","non_profit","online_retail","photography","printing","professional","travel","utilities","wholesale","writing","virtual_assistance","other","",null],"type":"string","description":"* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other","nullable":true},"website":{"type":"string","format":"uri","nullable":true,"maxLength":300},"company_size":{"type":"string","nullable":true,"maxLength":100},"annual_revenue":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","nullable":true,"description":"Annual revenue in USD"},"minimum_order_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","nullable":true,"description":"Minimum order amount required"},"default_currency":{"type":"string","minLength":1,"description":"Default currency code (ISO 4217) for this entity's transactions","maxLength":3},"first_contact_date":{"type":"string","format":"date","nullable":true},"last_contact_date":{"type":"string","format":"date","nullable":true},"next_follow_up_date":{"type":"string","format":"date","nullable":true},"last_order_date":{"type":"string","format":"date","nullable":true},"contract_start_date":{"type":"string","format":"date","nullable":true},"contract_end_date":{"type":"string","format":"date","nullable":true},"quality_rating":{"type":"string","format":"decimal","pattern":"^-?\\d{0,1}(?:\\.\\d{0,2})?$","nullable":true,"description":"Quality rating out of 5.00"},"delivery_rating":{"type":"string","format":"decimal","pattern":"^-?\\d{0,1}(?:\\.\\d{0,2})?$","nullable":true,"description":"Delivery performance rating out of 5.00"},"address":{"allOf":[{"$ref":"#/components/schemas/ClientAddressRequest"}],"nullable":true},"banking_information":{"allOf":[{"$ref":"#/components/schemas/ClientBankingInformationRequest"}],"nullable":true}}},"ClientAddressRequest":{"type":"object","description":"Serializer for Address model.\nCountry field is explicitly defined as CharField to handle django-countries CountryField.","properties":{"address_line_1":{"type":"string","nullable":true,"maxLength":300},"address_line_2":{"type":"string","nullable":true,"maxLength":300},"city":{"type":"string","nullable":true,"maxLength":300},"province_state":{"type":"string","nullable":true,"title":"Province/State","maxLength":300},"postal_code":{"type":"string","nullable":true,"maxLength":300},"country":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true,"title":"Phone Number","pattern":"^\\+?1?\\d{9,15}$","maxLength":17}}},"ClientBankingInformationRequest":{"type":"object","description":"Serializer for BankingInformation model with all banking fields.","properties":{"bank_name":{"type":"string","nullable":true,"maxLength":200},"account_number":{"type":"string","nullable":true,"maxLength":100},"branch_code":{"type":"string","nullable":true,"maxLength":50},"account_type":{"enum":["checking","savings","business","other","",null],"type":"string","description":"* `checking` - Checking\n* `savings` - Savings\n* `business` - Business\n* `other` - Other","nullable":true},"routing_number":{"type":"string","nullable":true,"maxLength":50},"swift_code":{"type":"string","nullable":true,"maxLength":50}}},"Vendor":{"type":"object","description":"Comprehensive serializer for Vendor model.\nHandles multilingual fields, nested relationships, computed fields, and vendor-specific metrics.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"name":{"type":"string","maxLength":300},"description":{"type":"string","nullable":true},"entity_type":{"enum":["individual","company","non_profit","government","partnership","other"],"type":"string","description":"* `individual` - Individual\n* `company` - Company\n* `non_profit` - Non-Profit Organization\n* `government` - Government Entity\n* `partnership` - Partnership\n* `other` - Other"},"entity_type_display":{"type":"string","nullable":true,"readOnly":true},"vendor_status":{"enum":["potential","active","preferred","on_hold","inactive","blacklisted"],"type":"string","description":"* `potential` - Potential Vendor\n* `active` - Active Vendor\n* `preferred` - Preferred Vendor\n* `on_hold` - On Hold\n* `inactive` - Inactive\n* `blacklisted` - Blacklisted"},"vendor_status_display":{"type":"string","nullable":true,"readOnly":true},"vendor_category":{"enum":["goods","services","both","contractor","consultant","other"],"type":"string","description":"* `goods` - Goods Supplier\n* `services` - Service Provider\n* `both` - Goods & Services\n* `contractor` - Contractor\n* `consultant` - Consultant\n* `other` - Other"},"vendor_category_display":{"type":"string","nullable":true,"readOnly":true},"industry":{"enum":["agriculture","cleaning","construction","consulting","creative","education","events","handyman","health","home_based","hospitality","it_support","legal","logistics","manufacturing","marketing","music","non_profit","online_retail","photography","printing","professional","travel","utilities","wholesale","writing","virtual_assistance","other","",null],"type":"string","description":"* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other","nullable":true},"industry_display":{"type":"string","nullable":true,"readOnly":true},"website":{"type":"string","format":"uri","nullable":true,"maxLength":300},"company_size":{"type":"string","nullable":true,"maxLength":100},"annual_revenue":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","nullable":true,"description":"Annual revenue in USD"},"minimum_order_amount":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","nullable":true,"description":"Minimum order amount required"},"default_currency":{"type":"string","description":"Default currency code (ISO 4217) for this entity's transactions","maxLength":3},"first_contact_date":{"type":"string","format":"date","nullable":true},"last_contact_date":{"type":"string","format":"date","nullable":true},"next_follow_up_date":{"type":"string","format":"date","nullable":true},"last_order_date":{"type":"string","format":"date","nullable":true},"contract_start_date":{"type":"string","format":"date","nullable":true},"contract_end_date":{"type":"string","format":"date","nullable":true},"quality_rating":{"type":"string","format":"decimal","pattern":"^-?\\d{0,1}(?:\\.\\d{0,2})?$","nullable":true,"description":"Quality rating out of 5.00"},"delivery_rating":{"type":"string","format":"decimal","pattern":"^-?\\d{0,1}(?:\\.\\d{0,2})?$","nullable":true,"description":"Delivery performance rating out of 5.00"},"created_by":{"allOf":[{"$ref":"#/components/schemas/ClientPersonMini"}],"readOnly":true},"assigned_to":{"allOf":[{"$ref":"#/components/schemas/ClientPersonMini"}],"readOnly":true},"account_owner":{"allOf":[{"$ref":"#/components/schemas/ClientPersonMini"}],"readOnly":true},"address":{"allOf":[{"$ref":"#/components/schemas/ClientAddress"}],"nullable":true},"banking_information":{"allOf":[{"$ref":"#/components/schemas/ClientBankingInformation"}],"nullable":true},"days_since_last_contact":{"type":"integer","nullable":true,"readOnly":true},"days_since_last_order":{"type":"integer","nullable":true,"readOnly":true},"is_follow_up_overdue":{"type":"boolean","readOnly":true},"is_contract_active":{"type":"boolean","readOnly":true},"date_created":{"type":"string","format":"date-time","readOnly":true,"nullable":true},"last_updated":{"type":"string","format":"date-time","readOnly":true,"nullable":true}},"required":["account_owner","assigned_to","created_by","date_created","days_since_last_contact","days_since_last_order","entity_type_display","industry_display","is_contract_active","is_follow_up_overdue","last_updated","name","vendor_category_display","vendor_status_display"]},"ClientPersonMini":{"type":"object","description":"Lightweight serializer for Person model.\nUsed for nested person references in other serializers.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"full_name":{"type":"string","readOnly":true}},"required":["full_name"]},"ClientAddress":{"type":"object","description":"Serializer for Address model.\nCountry field is explicitly defined as CharField to handle django-countries CountryField.","properties":{"address_line_1":{"type":"string","nullable":true,"maxLength":300},"address_line_2":{"type":"string","nullable":true,"maxLength":300},"city":{"type":"string","nullable":true,"maxLength":300},"province_state":{"type":"string","nullable":true,"title":"Province/State","maxLength":300},"postal_code":{"type":"string","nullable":true,"maxLength":300},"country":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true,"title":"Phone Number","pattern":"^\\+?1?\\d{9,15}$","maxLength":17}}},"ClientBankingInformation":{"type":"object","description":"Serializer for BankingInformation model with all banking fields.","properties":{"bank_name":{"type":"string","nullable":true,"maxLength":200},"account_number":{"type":"string","nullable":true,"maxLength":100},"branch_code":{"type":"string","nullable":true,"maxLength":50},"account_type":{"enum":["checking","savings","business","other","",null],"type":"string","description":"* `checking` - Checking\n* `savings` - Savings\n* `business` - Business\n* `other` - Other","nullable":true},"routing_number":{"type":"string","nullable":true,"maxLength":50},"swift_code":{"type":"string","nullable":true,"maxLength":50}}}}},"paths":{"/api/v1.0/organisation/{org_uid}/vendors/{unique_id}/update/":{"patch":{"operationId":"organisation_vendors_update_partial_update","description":"Update a specific vendor (full or partial update). For PATCH requests, only provided fields are updated.","summary":"Update vendor","parameters":[{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true},{"in":"path","name":"unique_id","schema":{"type":"string"},"required":true}],"tags":["Vendors"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedVendorRequest"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedVendorRequest"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedVendorRequest"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Vendor"}}},"description":""},"400":{"description":"Bad Request - Invalid input"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}}}}
```

## Delete vendor

> Delete a specific vendor by unique\_id

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Vendors","description":"Vendor and supplier management"}],"servers":[{"url":"https://skhokho.ai","description":"Production"},{"url":"http://102.209.118.152:8000/","description":"Local"},{"url":"https://dev.skhokho.ai","description":"Development"}],"security":[{"cookieAuth":[]},{"basicAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"}}},"paths":{"/api/v1.0/organisation/{org_uid}/vendors/{unique_id}/delete/":{"delete":{"operationId":"organisation_vendors_delete_destroy","description":"Delete a specific vendor by unique_id","summary":"Delete vendor","parameters":[{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true},{"in":"path","name":"unique_id","schema":{"type":"string"},"required":true}],"tags":["Vendors"],"responses":{"204":{"description":"No Content - Successfully deleted"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.skhokho.ai/customers-crm/vendors.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
