{"openapi":"3.1.0","info":{"title":"GET /api/v1/vendors/check-duplicates","version":"1.0.0","description":"Check for duplicate vendors"},"servers":[{"url":"https://api.ondayzero.com","description":"Production"}],"paths":{"/api/v1/vendors/check-duplicates":{"get":{"tags":["vendors"],"summary":"Check for duplicate vendors","description":"Check if a vendor already exists using name, email, tax ID similarity.","operationId":"check_duplicates_api_v1_vendors_check_duplicates_get","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","description":"Vendor name to check","title":"Name"},"description":"Vendor name to check"},{"name":"email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Email to check","title":"Email"},"description":"Email to check"},{"name":"tax_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tax ID to check","title":"Tax Id"},"description":"Tax ID to check"},{"name":"exclude_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Vendor ID to exclude (for updates)","title":"Exclude Id"},"description":"Vendor ID to exclude (for updates)"},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-business-id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Business-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VendorDuplicateCheckResponse"}}}},"401":{"description":"Unauthorized - Authentication required","content":{"application/json":{"example":{"detail":"Not authenticated"}}}},"403":{"description":"Forbidden - Insufficient permissions","content":{"application/json":{"example":{"detail":"Not enough permissions"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VendorDuplicateCandidateResponse":{"properties":{"id":{"type":"string","title":"Id","description":"Vendor UUID."},"name":{"type":"string","title":"Name","description":"Vendor name."},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"Vendor email."},"similarity_score":{"type":"number","title":"Similarity Score","description":"Similarity score (0.0-1.0)."},"match_type":{"type":"string","title":"Match Type","description":"Type of match (name, email, tax_id, phone)."}},"type":"object","required":["id","name","similarity_score","match_type"],"title":"VendorDuplicateCandidateResponse","description":"A potential duplicate vendor."},"VendorDuplicateCheckResponse":{"properties":{"has_duplicates":{"type":"boolean","title":"Has Duplicates","description":"Whether duplicates were found."},"duplicates":{"items":{"$ref":"#/components/schemas/VendorDuplicateCandidateResponse"},"type":"array","title":"Duplicates","description":"List of potential duplicates."}},"type":"object","required":["has_duplicates"],"title":"VendorDuplicateCheckResponse","description":"Response for duplicate check operation."}},"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Token","description":"API token authentication. Format: `Bearer dz_...`"}}},"security":[{"BearerAuth":[]}]}