{"openapi":"3.1.0","info":{"title":"GSVS TN VED API","description":"Фактическая сверка кодов ТН ВЭД по каталогу ГСВС РК и правилам ПП РФ №312.","version":"1.0.0"},"paths":{"/api/v1/check":{"post":{"tags":["Проверка"],"summary":"Проверить коды ТН ВЭД","operationId":"api_check_api_v1_check_post","security":[{"APIKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Проверка"],"summary":"Проверить небольшой список кодов ТН ВЭД","operationId":"api_check_get_api_v1_check_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"codes","in":"query","required":true,"schema":{"type":"string","description":"Коды ТН ВЭД через запятую.","title":"Codes"},"description":"Коды ТН ВЭД через запятую."},{"name":"checks","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Проверки через запятую. По умолчанию выполняются обе.","title":"Checks"},"description":"Проверки через запятую. По умолчанию выполняются обе."},{"name":"include_sources","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Sources"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/check/export":{"post":{"tags":["Проверка"],"summary":"Проверить коды и выгрузить результат в Excel","operationId":"api_check_export_api_v1_check_export_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportRequest"}}},"required":true},"responses":{"200":{"description":"Excel-файл с результатами проверки.","content":{"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/v1/catalogs":{"get":{"tags":["Состояние"],"summary":"Получить состояние используемых каталогов","operationId":"api_catalogs_api_v1_catalogs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogsResponse"}}}}}}},"/api/v1/health":{"get":{"tags":["Состояние"],"summary":"Проверить готовность API и каталогов","operationId":"api_health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/":{"get":{"summary":"Index","operationId":"index__get","parameters":[{"name":"result_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Result Id"}},{"name":"filter_mode","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Filter Mode"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Analyze","operationId":"analyze__post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_analyze__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/export.xlsx":{"get":{"summary":"Export Excel","operationId":"export_excel_export_xlsx_get","parameters":[{"name":"result_id","in":"query","required":true,"schema":{"type":"string","title":"Result Id"}},{"name":"filter_mode","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Filter Mode"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Body_analyze__post":{"properties":{"manual_codes":{"type":"string","title":"Manual Codes","default":""},"upload_file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Upload File"}},"type":"object","title":"Body_analyze__post"},"CatalogStatus":{"properties":{"id":{"type":"string","enum":["kz_import_gsvs","ru_export_pp312"],"title":"Id"},"title":{"type":"string","title":"Title"},"status":{"type":"string","enum":["ready","stale","degraded","unavailable"],"title":"Status"},"version_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version Date"},"last_checked_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Checked At"},"records_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Records Count"},"data_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Hash"},"source":{"anyOf":[{"$ref":"#/components/schemas/PublicSource"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["id","title","status"],"title":"CatalogStatus"},"CatalogsResponse":{"properties":{"catalogs":{"items":{"$ref":"#/components/schemas/CatalogStatus"},"type":"array","title":"Catalogs"}},"type":"object","required":["catalogs"],"title":"CatalogsResponse"},"CheckItemResult":{"properties":{"input_code":{"type":"string","title":"Input Code"},"normalized_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Normalized Code"},"valid":{"type":"boolean","title":"Valid"},"checks":{"additionalProperties":{"anyOf":[{"$ref":"#/components/schemas/KzCheckResult"},{"$ref":"#/components/schemas/RfCheckResult"}]},"propertyNames":{"enum":["kz_import_gsvs","ru_export_pp312"]},"type":"object","title":"Checks"},"error":{"anyOf":[{"$ref":"#/components/schemas/ItemError"},{"type":"null"}]}},"type":"object","required":["input_code","valid","checks"],"title":"CheckItemResult"},"CheckRequest":{"properties":{"codes":{"items":{"type":"string"},"type":"array","maxItems":500,"minItems":1,"title":"Codes","description":"Коды ТН ВЭД. Некорректные коды возвращаются как отдельные результаты.","examples":[["8424900000","9603901000"]]},"checks":{"items":{"type":"string","enum":["kz_import_gsvs","ru_export_pp312"]},"type":"array","minItems":1,"title":"Checks"},"include_sources":{"type":"boolean","title":"Include Sources","default":true}},"type":"object","required":["codes"],"title":"CheckRequest"},"CheckResponse":{"properties":{"request_id":{"type":"string","title":"Request Id"},"checked_at":{"type":"string","title":"Checked At"},"catalogs":{"additionalProperties":{"$ref":"#/components/schemas/CatalogStatus"},"propertyNames":{"enum":["kz_import_gsvs","ru_export_pp312"]},"type":"object","title":"Catalogs"},"results":{"items":{"$ref":"#/components/schemas/CheckItemResult"},"type":"array","title":"Results"},"errors":{"items":{"$ref":"#/components/schemas/RequestError"},"type":"array","title":"Errors"}},"type":"object","required":["request_id","checked_at","catalogs","results","errors"],"title":"CheckResponse"},"ExportRequest":{"properties":{"codes":{"items":{"type":"string"},"type":"array","maxItems":500,"minItems":1,"title":"Codes","description":"Коды ТН ВЭД. Некорректные коды возвращаются как отдельные результаты.","examples":[["8424900000","9603901000"]]},"checks":{"items":{"type":"string","enum":["kz_import_gsvs","ru_export_pp312"]},"type":"array","minItems":1,"title":"Checks"},"include_sources":{"type":"boolean","title":"Include Sources","default":true},"format":{"type":"string","const":"xlsx","title":"Format","default":"xlsx"},"language":{"type":"string","const":"ru","title":"Language","default":"ru"}},"type":"object","required":["codes"],"title":"ExportRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","enum":["ok","degraded","unavailable"],"title":"Status"},"checked_at":{"type":"string","title":"Checked At"},"catalogs":{"items":{"$ref":"#/components/schemas/CatalogStatus"},"type":"array","title":"Catalogs"}},"type":"object","required":["status","checked_at","catalogs"],"title":"HealthResponse"},"ItemError":{"properties":{"code":{"type":"string","const":"INVALID_TN_VED_CODE","title":"Code"},"message":{"type":"string","title":"Message"}},"type":"object","required":["code","message"],"title":"ItemError"},"KzCatalogRecord":{"properties":{"record_key":{"type":"string","title":"Record Key"},"tnved_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tnved Code"},"kpved_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kpved Code"},"gsvs_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gsvs Code"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date"},"last_update_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Update Date"},"is_twofold_purpose":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Twofold Purpose"},"is_withdrawal":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Withdrawal"},"is_use_in_vstore":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Use In Vstore"},"is_can_select":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Can Select"},"source_origin":{"type":"string","title":"Source Origin"}},"type":"object","required":["record_key","source_origin"],"title":"KzCatalogRecord"},"KzCheckResult":{"properties":{"status":{"type":"string","enum":["listed","not_listed","catalog_unavailable"],"title":"Status"},"match_type":{"type":"string","enum":["exact","none"],"title":"Match Type"},"matched_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Matched Code"},"restriction_detected":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Restriction Detected"},"is_twofold_purpose":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Twofold Purpose"},"is_withdrawal":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Withdrawal"},"is_use_in_vstore":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Use In Vstore"},"is_can_select":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Can Select"},"records":{"anyOf":[{"items":{"$ref":"#/components/schemas/KzCatalogRecord"},"type":"array"},{"type":"null"}],"title":"Records"},"source":{"anyOf":[{"$ref":"#/components/schemas/PublicSource"},{"type":"null"}]}},"type":"object","required":["status","match_type"],"title":"KzCheckResult"},"PublicSource":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"normative_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Normative Url"},"operational_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Operational Url"}},"type":"object","title":"PublicSource"},"RequestError":{"properties":{"check":{"type":"string","enum":["kz_import_gsvs","ru_export_pp312"],"title":"Check"},"code":{"type":"string","const":"CATALOG_UNAVAILABLE","title":"Code"},"message":{"type":"string","title":"Message"}},"type":"object","required":["check","code","message"],"title":"RequestError"},"RfCheckResult":{"properties":{"status":{"type":"string","enum":["listed","not_listed","catalog_unavailable"],"title":"Status"},"match_type":{"type":"string","enum":["exact","prefix","none"],"title":"Match Type"},"matched_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Matched Code"},"restriction_applies":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Restriction Applies"},"rules":{"anyOf":[{"items":{"$ref":"#/components/schemas/RuleMatch"},"type":"array"},{"type":"null"}],"title":"Rules"},"source":{"anyOf":[{"$ref":"#/components/schemas/PublicSource"},{"type":"null"}]}},"type":"object","required":["status","match_type"],"title":"RfCheckResult"},"RuleMatch":{"properties":{"appendix":{"type":"integer","title":"Appendix"},"rule_code":{"type":"string","title":"Rule Code"},"rule_description":{"type":"string","title":"Rule Description"},"matched_pattern":{"type":"string","title":"Matched Pattern"},"match_type":{"type":"string","enum":["exact","prefix"],"title":"Match Type"},"exclude_patterns":{"items":{"type":"string"},"type":"array","title":"Exclude Patterns"}},"type":"object","required":["appendix","rule_code","rule_description","matched_pattern","match_type","exclude_patterns"],"title":"RuleMatch"},"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"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}}}}