# 🤝 Clients

Client and customer relationship management

## List clients

> Get a list of all clients with optional filters

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Clients","description":"Client and customer relationship 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":{"Client":{"type":"object","description":"Comprehensive serializer for Client model.\nHandles multilingual fields, nested relationships, and computed fields.\nOptimized for list and detail views with optional prefetching support.","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},"lifecycle_stage":{"enum":["prospect","active_client","matured_client","inactive","dormant","lost_opportunity"],"type":"string","description":"* `prospect` - Prospect\n* `active_client` - Active Client\n* `matured_client` - Matured Client\n* `inactive` - Inactive\n* `dormant` - Dormant\n* `lost_opportunity` - Lost Opportunity","title":"Client Lifecycle Stage"},"lifecycle_stage_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"},"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},"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},"is_follow_up_overdue":{"type":"boolean","readOnly":true},"primary_contact":{"allOf":[{"$ref":"#/components/schemas/ClientContactMini"}],"nullable":true,"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","entity_type_display","industry_display","is_follow_up_overdue","last_updated","lifecycle_stage_display","name","primary_contact"]},"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}}},"ClientContactMini":{"type":"object","description":"Lightweight serializer for Contact model.\nUsed for nested contact references in other serializers.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"first_name":{"type":"string","maxLength":150},"last_name":{"type":"string","maxLength":150},"name":{"type":"string","readOnly":true},"email":{"type":"string","format":"email","nullable":true,"maxLength":254},"phone":{"type":"string","nullable":true,"maxLength":17},"job_title":{"type":"string","readOnly":true,"nullable":true},"primary_contact":{"type":"boolean","description":"Indicates if this is the primary contact for the entity"},"is_active":{"type":"boolean"},"entity_type":{"enum":["client","vendor","lead"],"type":"string","description":"Type of entity this contact belongs to\n\n* `client` - Client\n* `vendor` - Vendor\n* `lead` - Lead"},"entity_id":{"type":"string","nullable":true,"description":"ID of the entity this contact belongs to (optional for potential clients/vendors)","maxLength":100}},"required":["entity_type","first_name","job_title","last_name","name"]}}},"paths":{"/api/v1.0/organisation/{org_uid}/clients/":{"get":{"operationId":"organisation_clients_list","description":"Get a list of all clients with optional filters","summary":"List clients","parameters":[{"in":"query","name":"company_size","schema":{"type":"string"},"description":"Filter by company size"},{"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":"query","name":"lifecycle_stage","schema":{"type":"string","enum":["active_client","dormant","inactive","lost_opportunity","matured_client","prospect"]},"description":"Filter by client lifecycle stage"},{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true},{"in":"query","name":"search","schema":{"type":"string"},"description":"Search clients by name"}],"tags":["Clients"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Client"}}}},"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}}}}}}
```

## Create client

> Create a new client. Client name is required.

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Clients","description":"Client and customer relationship 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":{"ClientRequest":{"type":"object","description":"Comprehensive serializer for Client model.\nHandles multilingual fields, nested relationships, and computed fields.\nOptimized for list and detail views with optional prefetching support.","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"},"lifecycle_stage":{"enum":["prospect","active_client","matured_client","inactive","dormant","lost_opportunity"],"type":"string","description":"* `prospect` - Prospect\n* `active_client` - Active Client\n* `matured_client` - Matured Client\n* `inactive` - Inactive\n* `dormant` - Dormant\n* `lost_opportunity` - Lost Opportunity","title":"Client Lifecycle Stage"},"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"},"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},"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}}},"Client":{"type":"object","description":"Comprehensive serializer for Client model.\nHandles multilingual fields, nested relationships, and computed fields.\nOptimized for list and detail views with optional prefetching support.","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},"lifecycle_stage":{"enum":["prospect","active_client","matured_client","inactive","dormant","lost_opportunity"],"type":"string","description":"* `prospect` - Prospect\n* `active_client` - Active Client\n* `matured_client` - Matured Client\n* `inactive` - Inactive\n* `dormant` - Dormant\n* `lost_opportunity` - Lost Opportunity","title":"Client Lifecycle Stage"},"lifecycle_stage_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"},"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},"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},"is_follow_up_overdue":{"type":"boolean","readOnly":true},"primary_contact":{"allOf":[{"$ref":"#/components/schemas/ClientContactMini"}],"nullable":true,"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","entity_type_display","industry_display","is_follow_up_overdue","last_updated","lifecycle_stage_display","name","primary_contact"]},"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}}},"ClientContactMini":{"type":"object","description":"Lightweight serializer for Contact model.\nUsed for nested contact references in other serializers.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"first_name":{"type":"string","maxLength":150},"last_name":{"type":"string","maxLength":150},"name":{"type":"string","readOnly":true},"email":{"type":"string","format":"email","nullable":true,"maxLength":254},"phone":{"type":"string","nullable":true,"maxLength":17},"job_title":{"type":"string","readOnly":true,"nullable":true},"primary_contact":{"type":"boolean","description":"Indicates if this is the primary contact for the entity"},"is_active":{"type":"boolean"},"entity_type":{"enum":["client","vendor","lead"],"type":"string","description":"Type of entity this contact belongs to\n\n* `client` - Client\n* `vendor` - Vendor\n* `lead` - Lead"},"entity_id":{"type":"string","nullable":true,"description":"ID of the entity this contact belongs to (optional for potential clients/vendors)","maxLength":100}},"required":["entity_type","first_name","job_title","last_name","name"]}}},"paths":{"/api/v1.0/organisation/{org_uid}/clients/create/":{"post":{"operationId":"organisation_clients_create_create","description":"Create a new client. Client name is required.","summary":"Create client","parameters":[{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true}],"tags":["Clients"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientRequest"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/ClientRequest"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/ClientRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Client"}}},"description":""},"400":{"description":"Bad Request - Invalid input or missing required fields"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}}}}}}
```

## Get client

> Retrieve a specific client

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Clients","description":"Client and customer relationship 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":{"Client":{"type":"object","description":"Comprehensive serializer for Client model.\nHandles multilingual fields, nested relationships, and computed fields.\nOptimized for list and detail views with optional prefetching support.","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},"lifecycle_stage":{"enum":["prospect","active_client","matured_client","inactive","dormant","lost_opportunity"],"type":"string","description":"* `prospect` - Prospect\n* `active_client` - Active Client\n* `matured_client` - Matured Client\n* `inactive` - Inactive\n* `dormant` - Dormant\n* `lost_opportunity` - Lost Opportunity","title":"Client Lifecycle Stage"},"lifecycle_stage_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"},"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},"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},"is_follow_up_overdue":{"type":"boolean","readOnly":true},"primary_contact":{"allOf":[{"$ref":"#/components/schemas/ClientContactMini"}],"nullable":true,"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","entity_type_display","industry_display","is_follow_up_overdue","last_updated","lifecycle_stage_display","name","primary_contact"]},"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}}},"ClientContactMini":{"type":"object","description":"Lightweight serializer for Contact model.\nUsed for nested contact references in other serializers.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"first_name":{"type":"string","maxLength":150},"last_name":{"type":"string","maxLength":150},"name":{"type":"string","readOnly":true},"email":{"type":"string","format":"email","nullable":true,"maxLength":254},"phone":{"type":"string","nullable":true,"maxLength":17},"job_title":{"type":"string","readOnly":true,"nullable":true},"primary_contact":{"type":"boolean","description":"Indicates if this is the primary contact for the entity"},"is_active":{"type":"boolean"},"entity_type":{"enum":["client","vendor","lead"],"type":"string","description":"Type of entity this contact belongs to\n\n* `client` - Client\n* `vendor` - Vendor\n* `lead` - Lead"},"entity_id":{"type":"string","nullable":true,"description":"ID of the entity this contact belongs to (optional for potential clients/vendors)","maxLength":100}},"required":["entity_type","first_name","job_title","last_name","name"]}}},"paths":{"/api/v1.0/organisation/{org_uid}/clients/{unique_id}/":{"get":{"operationId":"organisation_clients_retrieve","description":"Retrieve a specific client","summary":"Get client","parameters":[{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true},{"in":"path","name":"unique_id","schema":{"type":"string"},"required":true}],"tags":["Clients"],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Client"}}},"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}}}}
```

## Update client

> Update a specific client (full or partial update)

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Clients","description":"Client and customer relationship 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":{"ClientRequest":{"type":"object","description":"Comprehensive serializer for Client model.\nHandles multilingual fields, nested relationships, and computed fields.\nOptimized for list and detail views with optional prefetching support.","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"},"lifecycle_stage":{"enum":["prospect","active_client","matured_client","inactive","dormant","lost_opportunity"],"type":"string","description":"* `prospect` - Prospect\n* `active_client` - Active Client\n* `matured_client` - Matured Client\n* `inactive` - Inactive\n* `dormant` - Dormant\n* `lost_opportunity` - Lost Opportunity","title":"Client Lifecycle Stage"},"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"},"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},"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}}},"Client":{"type":"object","description":"Comprehensive serializer for Client model.\nHandles multilingual fields, nested relationships, and computed fields.\nOptimized for list and detail views with optional prefetching support.","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},"lifecycle_stage":{"enum":["prospect","active_client","matured_client","inactive","dormant","lost_opportunity"],"type":"string","description":"* `prospect` - Prospect\n* `active_client` - Active Client\n* `matured_client` - Matured Client\n* `inactive` - Inactive\n* `dormant` - Dormant\n* `lost_opportunity` - Lost Opportunity","title":"Client Lifecycle Stage"},"lifecycle_stage_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"},"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},"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},"is_follow_up_overdue":{"type":"boolean","readOnly":true},"primary_contact":{"allOf":[{"$ref":"#/components/schemas/ClientContactMini"}],"nullable":true,"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","entity_type_display","industry_display","is_follow_up_overdue","last_updated","lifecycle_stage_display","name","primary_contact"]},"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}}},"ClientContactMini":{"type":"object","description":"Lightweight serializer for Contact model.\nUsed for nested contact references in other serializers.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"first_name":{"type":"string","maxLength":150},"last_name":{"type":"string","maxLength":150},"name":{"type":"string","readOnly":true},"email":{"type":"string","format":"email","nullable":true,"maxLength":254},"phone":{"type":"string","nullable":true,"maxLength":17},"job_title":{"type":"string","readOnly":true,"nullable":true},"primary_contact":{"type":"boolean","description":"Indicates if this is the primary contact for the entity"},"is_active":{"type":"boolean"},"entity_type":{"enum":["client","vendor","lead"],"type":"string","description":"Type of entity this contact belongs to\n\n* `client` - Client\n* `vendor` - Vendor\n* `lead` - Lead"},"entity_id":{"type":"string","nullable":true,"description":"ID of the entity this contact belongs to (optional for potential clients/vendors)","maxLength":100}},"required":["entity_type","first_name","job_title","last_name","name"]}}},"paths":{"/api/v1.0/organisation/{org_uid}/clients/{unique_id}/update/":{"put":{"operationId":"organisation_clients_update_update","description":"Update a specific client (full or partial update)","summary":"Update client","parameters":[{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true},{"in":"path","name":"unique_id","schema":{"type":"string"},"required":true}],"tags":["Clients"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientRequest"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/ClientRequest"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/ClientRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Client"}}},"description":""},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}}}}
```

## Update client

> Update a specific client (full or partial update)

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Clients","description":"Client and customer relationship 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":{"PatchedClientRequest":{"type":"object","description":"Comprehensive serializer for Client model.\nHandles multilingual fields, nested relationships, and computed fields.\nOptimized for list and detail views with optional prefetching support.","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"},"lifecycle_stage":{"enum":["prospect","active_client","matured_client","inactive","dormant","lost_opportunity"],"type":"string","description":"* `prospect` - Prospect\n* `active_client` - Active Client\n* `matured_client` - Matured Client\n* `inactive` - Inactive\n* `dormant` - Dormant\n* `lost_opportunity` - Lost Opportunity","title":"Client Lifecycle Stage"},"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"},"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},"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}}},"Client":{"type":"object","description":"Comprehensive serializer for Client model.\nHandles multilingual fields, nested relationships, and computed fields.\nOptimized for list and detail views with optional prefetching support.","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},"lifecycle_stage":{"enum":["prospect","active_client","matured_client","inactive","dormant","lost_opportunity"],"type":"string","description":"* `prospect` - Prospect\n* `active_client` - Active Client\n* `matured_client` - Matured Client\n* `inactive` - Inactive\n* `dormant` - Dormant\n* `lost_opportunity` - Lost Opportunity","title":"Client Lifecycle Stage"},"lifecycle_stage_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"},"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},"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},"is_follow_up_overdue":{"type":"boolean","readOnly":true},"primary_contact":{"allOf":[{"$ref":"#/components/schemas/ClientContactMini"}],"nullable":true,"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","entity_type_display","industry_display","is_follow_up_overdue","last_updated","lifecycle_stage_display","name","primary_contact"]},"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}}},"ClientContactMini":{"type":"object","description":"Lightweight serializer for Contact model.\nUsed for nested contact references in other serializers.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"first_name":{"type":"string","maxLength":150},"last_name":{"type":"string","maxLength":150},"name":{"type":"string","readOnly":true},"email":{"type":"string","format":"email","nullable":true,"maxLength":254},"phone":{"type":"string","nullable":true,"maxLength":17},"job_title":{"type":"string","readOnly":true,"nullable":true},"primary_contact":{"type":"boolean","description":"Indicates if this is the primary contact for the entity"},"is_active":{"type":"boolean"},"entity_type":{"enum":["client","vendor","lead"],"type":"string","description":"Type of entity this contact belongs to\n\n* `client` - Client\n* `vendor` - Vendor\n* `lead` - Lead"},"entity_id":{"type":"string","nullable":true,"description":"ID of the entity this contact belongs to (optional for potential clients/vendors)","maxLength":100}},"required":["entity_type","first_name","job_title","last_name","name"]}}},"paths":{"/api/v1.0/organisation/{org_uid}/clients/{unique_id}/update/":{"patch":{"operationId":"organisation_clients_update_partial_update","description":"Update a specific client (full or partial update)","summary":"Update client","parameters":[{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true},{"in":"path","name":"unique_id","schema":{"type":"string"},"required":true}],"tags":["Clients"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedClientRequest"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedClientRequest"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedClientRequest"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Client"}}},"description":""},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}}}}
```

## Delete client

> Delete a specific client

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Clients","description":"Client and customer relationship 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}/clients/{unique_id}/delete/":{"delete":{"operationId":"organisation_clients_delete_destroy","description":"Delete a specific client","summary":"Delete client","parameters":[{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true},{"in":"path","name":"unique_id","schema":{"type":"string"},"required":true}],"tags":["Clients"],"responses":{"204":{"description":"No Content"},"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/clients.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.
